Google is committed to advancing racial equity for Black communities. See how.
इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

OTNS का उपयोग करके थ्रेड नेटवर्क का अनुकरण करें

5abd22afa2f2ee9a.png

थ्रेड एंड ओटीएनएस क्या है

थ्रेड एक आईपी-आधारित कम-शक्ति वायरलेस मेष नेटवर्किंग प्रोटोकॉल है जो सुरक्षित डिवाइस-टू-डिवाइस और डिवाइस-टू-क्लाउड संचार को सक्षम करता है। थ्रेड नेटवर्क विफलता के एकल बिंदु से बचने के लिए टोपोलॉजी परिवर्तनों के लिए अनुकूल हो सकते हैं।

Google द्वारा जारी OpenThread थ्रेड का एक ओपन-सोर्स कार्यान्वयन है। अपने छोटे कोड आकार और मेमोरी फ़ुटप्रिंट के बावजूद, OpenThread थ्रेड 1.1.1 विनिर्देश में परिभाषित सभी विशेषताओं का समर्थन करता है।

OpenThread Network Simulator (OTNS) का उपयोग पॉज़िक्स प्लेटफार्मों पर सिम्युलेटेड OpenThread नोड्स चलाकर थ्रेड नेटवर्क का अनुकरण करने के लिए किया जा सकता है। ओटीएनएस सिम्युलेटेड थ्रेड नेटवर्क की कल्पना और संचालन के लिए एक आसान उपयोग वाला वेब इंटरफेस (ओटीएनएस-वेब) प्रदान करता है।

आप क्या सीखेंगे

  • ओटीएनएस और उसकी निर्भरता स्थापित करें
  • OTNS के लिए OpenThread बनाएँ
  • OTNS-Web में नोड्स कैसे जोड़ें / स्थानांतरित करें / हटाएं
  • नेटवर्क सिमुलेशन संचालित करने के लिए ओटीएनएस-वेब की अन्य उपयोगी सुविधाओं का उपयोग करें
  • OpenThread की नो-सिंगल-पॉइंट-ऑफ-विफलता को सत्यापित करें

यह कोडलैब ओटीएनएस-सीएलआई और ओटीएनएस-वेब पर केंद्रित है। ओटीएनएस की अन्य विशेषताएं, जैसे कि पायथन स्क्रिप्टिंग, कवर नहीं की जाती हैं।

आपको किस चीज़ की ज़रूरत पड़ेगी

  • लिनक्स x86_64 या मैक ओएस।
  • गित
  • 1.11+ जाओ
  • वेब ब्राउज़र। OTNS- वेब सिमुलेशन प्रदर्शित करने के लिए एक वेब ब्राउज़र का उपयोग करता है।
  • थ्रेड प्राइमर । इस कोडेलैब में क्या पढ़ाया जाता है, यह समझने के लिए आपको थ्रेड की मूल अवधारणाओं को जानना होगा।

गो स्थापित करें

OTNS को बनाने के लिए 1.11+ की आवश्यकता है।

  1. Https://golang.org/dl/ से गो स्थापित करें
  2. $PATH $(go env GOPATH)/bin (सामान्य रूप से $HOME/go/bin ) जोड़ें:
$ export PATH=$PATH:$(go env GOPATH)/bin

ओटीएनएस कोड प्राप्त करें

$ git clone https://github.com/openthread/ot-ns.git ./otns
$ cd otns

निर्भरता स्थापित करें

$ ./script/install-deps
grpcwebproxy installed: /usr/local/google/home/simonlin/go/bin/grpcwebproxy

आपको sudo लिए एक पासवर्ड इनपुट करने के लिए कहा जा सकता है।

ओट्स स्थापित करें

otns को $GOPATH/bin स्थापित करें:

$ ./script/install
otns installed: /usr/local/google/home/simonlin/go/bin/otns

चलो जांचें कि क्या otns ठीक से स्थापित है

  1. भागो which otns अगर जाँच करने के लिए otns निष्पादन में खोजा है $PATH.
  2. यदि otns कमांड नहीं मिला है, तो सत्यापित करें कि आपने $(go env GOPATH)/bin को $PATH. जोड़ा है $PATH.

GitHub से OpenThread कोड प्राप्त करें

$ mkdir -p ~/src
$ git clone https://github.com/openthread/openthread ~/src/openthread

OTNS=1 साथ OTNS=1 बनाएँ

$ cd ~/src/openthread
$ ./script/bootstrap
$ ./bootstrap
$ make -f examples/Makefile-simulation OTNS=1

आप OpenThread निष्पादनयोग्य को output निर्देशिका में पा सकते हैं:

लिनक्स

$ ls ~/src/openthread/output/simulation/bin
ot-cli-ftd        ot-cli-mtd        ot-ncp-ftd        ot-ncp-mtd        ot-rcp

मैक ओ एस

$ ls ~/src/openthread/output/simulation/bin
ot-cli-ftd        ot-cli-mtd        ot-ncp-ftd        ot-ncp-mtd        ot-rcp

अब ओटीएनएस चलाने का समय आ गया है ...

भागो otns :

00 बी 211 डी 500

जब सफलतापूर्वक शुरू किया जाता है, तो ओटीएनएस एक CLI कंसोल ( OTNS-CLI ) दर्ज करेगा और नेटवर्क विज़ुअलाइज़ेशन और प्रबंधन ( OTNS-Web ) के लिए एक वेब ब्राउज़र लॉन्च OTNS-Web :

a0e05178d66929b1.png

यदि आप ओटीएनएस-वेब के लिए केवल एक खाली पृष्ठ देख सकते हैं, तो संभावना है कि आपके ब्राउज़र में वेबजीएल सक्षम नहीं है। WebGL को सक्षम करने के तरीके पर कृपया https://superuser.com/a/836833 देखें

निम्नलिखित अनुभागों में, आप OTNS-CLI और OTNS-Web माध्यम से ओटीएनएस सिमुलेशन का प्रबंधन करने जा रहे हैं।

ओटीएनएस-सीएलआई

OTNS-CLI OTNS सिमुलेशन के प्रबंधन के लिए एक कमांड लाइन इंटरफेस (CLI) प्रदान करता है।

00 बी 211 डी 500

आप OTNS-CLI माध्यम से कमांड टाइप कर सकते हैं। आदेशों की पूरी सूची के लिए ओटीएनएस सीएलआई संदर्भ देखें। चिंता न करें, आप केवल इस कोडलैब में इनमें से कुछ कमांड का उपयोग करने जा रहे हैं।

OTNS- वेब

OTNS-Web OTNS का नेटवर्क विज़ुअलाइज़ेशन और मैनेजमेंट टूल है। यह नकली थ्रेड नेटवर्क के नोड्स, संदेश और लिंक का एक दृश्य प्रतिनिधित्व प्रदान करता है। OTNS-Web के विभिन्न तत्वों पर ध्यान दें:

4c5b43509a2ca0d0.png

OTNS-CLI के माध्यम से नोड जोड़ें

स्थिति में एक रूटर जोड़ें (300, 100)

> add router x 300 y 100
1
Done

आपको OTNS-Web में निर्मित नोड देखना चाहिए। नोड राउटर के रूप में शुरू होता है और कुछ ही सेकंड में लीडर बन जाता है:

6ca8c2e63ed9818d.png

OTNS-CLI माध्यम से अधिक नोड्स जोड़ें

> add fed x 200 y 100
2
Done
> add med x 400 y 100
3
Done
> add sed x 300 y 200
4
Done

नोड्स को एक विभाजन में विलय करने के लिए कुछ सेकंड प्रतीक्षा करें। आपको OTNS-WEB में नोड्स देखना चाहिए:

3ee67903c01aa612.png

OTNS-Web द्वारा नोड्स जोड़ें

आप OTNS-Web माध्यम से नोड्स भी जोड़ सकते हैं। Action Bar के New Router बटन पर क्लिक करें। आपको New Router बटन के ठीक ऊपर एक नोड बनाया जाना चाहिए। OTNS-CLI के माध्यम से आपके द्वारा बनाए गए लीडर के पास नोड खींचें। सभी नोड्स को अंततः एक विभाजन में विलय करना चाहिए:

420258bb92561146.png

अन्य प्रकार के नोड बनाने के लिए एक्शन बार पर FED, MED और SED बटन भी क्लिक करें। उन्हें उस थ्रेड नेटवर्क पर संलग्न करने के लिए मौजूदा नोड्स के पास स्थिति में खींचें:

fe15d6f9726a099e.png

अब आपने एक विभाजन का एक थ्रेड नेटवर्क बनाया है जिसमें कई नोड हैं। अगले भाग में, हम अनुकरण की गति को तेज करने के लिए अनुकरण गति को समायोजित करने जा रहे हैं।

वर्तमान में, सिमुलेशन 1X गति से चलना चाहिए, जिसका अर्थ है कि अब तक का अनुकरण किया गया समय वास्तविक समय के समान है क्योंकि हमने पहला नोड बनाया था।

OTNS-CLI माध्यम से गति समायोजित करें

आप OTNS-CLI माध्यम से सिमुलेशन गति को समायोजित कर सकते हैं।

100X अनुकरण गति सेट करें

0e091950

आपको नोड्स को पहले की तुलना में अधिक बार संदेश भेजते देखना चाहिए।

MAX गति को MAX सेट करें

> speed max
Done

अब, ओटीएनएस कोशिश कर रहा है कि यह जितनी तेजी से हो सके उतनी तेजी से अनुकरण करे, इसलिए आपको बड़ी संख्या में संदेश भेजने वाले नोड्स देखने चाहिए।

अनुकरण को रोकें

> speed 0
Done

सिमुलेशन गति को 0 सेट करने से अनुकरण रुक जाता है।

सामान्य गति से सिमुलेशन को पुनर्स्थापित करें

> speed 1
Done

अनुकरणीय गति को 0 से बड़े मान पर सेट करने से अनुकरण फिर से शुरू होता है।

OTNS-Web माध्यम से गति समायोजित करें

गति नियंत्रण बटन

गति नियंत्रण बटन खोजें 9329157c1bd12672.png Action Bar । बटन मौजूदा अनुकरण गति दिखाते हैं और अनुकरण गति को समायोजित करने और अनुकरण को फिर से शुरू / फिर से शुरू करने के लिए इस्तेमाल किया जा सकता है।

अनुकरण को गति दें

आप क्लिक करके सिमुलेशन की गति बढ़ा सकते हैं 39b88331779277ad.png बटन MAX होने तक गति: f5f460b2586d299b.png

अनुकरण धीमा करें

आप क्लिक करके सिमुलेशन को धीमा कर सकते हैं 31cca8d5b52fa900.png बटन।

अनुकरण को रोकें

दबाएं 46cc2088c9aa7ab6.png जब यह चल रहा हो तो अनुकरण को रोकने के लिए बटन। बटन को बदल दिया जाएगा Ce25eda3496ffcd4.png

अनुकरण फिर से शुरू करें

दबाएं Ce25eda3496ffcd4.png बटन को फिर से शुरू करने के लिए जब यह रुका हुआ हो। बटन वापस बदल दिया जाएगा 46cc2088c9aa7ab6.png

अनुकरण गति 10X सेट करें

समय बचाने के लिए, का उपयोग करें

OTNS-CLI अनुकरण गति को समायोजित करने के लिए

10X ताकि हम नेटवर्क में टोपोलॉजी परिवर्तनों का अधिक तेजी से निरीक्षण कर सकें।

> speed 10
Done

अब, सिमुलेशन में 2 राउटर (षट्भुज आकार) और कई बच्चे होने चाहिए, और 10X की गति से चलता है।

2 राउटर के वर्तमान लीडर (लाल बॉर्डर) को चुनें, इसे चुनने के लिए सिंगल क्लिक करें:

8c6a2e191cdae0c7.png

रेडियो बंद करें

दबाएं 7ca085f470491dd4.png लीडर नोड के रेडियो को बंद करने के लिए एक्शन बार पर बटन:

a3bf58d9d125f95f.png

लीडर रेडियो से संदेश भेजने या प्राप्त करने में सक्षम नहीं होगा।

नए राऊटर बनने के लिए अन्य राऊटर के लिए लगभग 12s (अनुकरण समय में 120) की प्रतीक्षा करें:

e3d32f85c4a1b990.png

थ्रेड नेटवर्क एक नए लीडर के साथ एक नया विभाजन बनाकर लीडर विफलता से स्वतः ठीक हो जाता है। नए विभाजन में एक नया विभाजन रंग भी है।

रेडियो चालू करें

उस लीडर का चयन करें जिसका रेडियो बंद था। दबाएं 2d9cecb8612b42aa.png रेडियो कनेक्टिविटी बहाल करने के लिए Action Bar पर बटन:

7370a7841861aa3a.png

रेडियो कनेक्टिविटी बहाल होने के बाद नेता को नेटवर्क को रीटच करना चाहिए।

OTNS, उपयोगकर्ताओं को OTNS-CLI या OTNS-Web माध्यम से आसानी से नोड्स स्थानांतरित करने में सक्षम बनाता है।

OTNS-CLI माध्यम से नोड ले जाएँ

नोड 5 को एक नए स्थान पर ले जाएं:

> move 5 600 300
Done

चूंकि अब नोड 5 अन्य राउटर से बहुत दूर है, उन्हें एक दूसरे से कनेक्टिविटी खोनी चाहिए, और लगभग 12s (अनुकरण समय में 120) के बाद दोनों अपने स्वयं के विभाजन के नेता बन जाते हैं:

c06b4d0a4f183299.png

OTNS-Web के माध्यम से नोड ले जाएँ

नोड 5 को पीछे खींचकर मूल स्थान पर ले जाएँ। दो विभाजन एक विभाजन में वापस मिलेंगे:

9ba305c4c5a5f892.png

OTNS-CLI माध्यम से नोड हटाएं

नोड 8 हटाएं:

> del 8
Done

नोड 8 सिमुलेशन से गायब हो जाना चाहिए:

18156770d9f8bf83.png

OTNS-Web माध्यम से नोड हटाएं

नोड 5 का चयन करें और क्लिक करें 7ff6afd565f4eafc.png नोड 5 को हटाने के लिए Action Bar पर बटन:

d4079cceea0105f0.png

Node 1 को लीडर बनना चाहिए और Node 7 को अलग होना चाहिए क्योंकि यह किसी भी राउटर तक नहीं पहुंच सकता है।

स्पष्ट सिमुलेशन (सभी नोड्स हटाएं)

आप OTNS-Web माध्यम से सभी नोड्स को हटाकर सिमुलेशन को साफ कर सकते हैं।

क्लिक 89618191721e79a0.png बटन Action Bar. एक ही बार में सभी नोड गायब हो जाएंगे।

जारी रखने से पहले ...

अपने आप से सिमुलेशन में कुछ नोड्स जोड़ें ताकि आप इस ट्यूटोरियल में जारी रख सकें।

OTNS-CLI नोड के साथ आसान बातचीत के लिए नोड संदर्भ मोड प्रदान करता है ताकि डेवलपर्स को नोड की स्थिति का निदान करने में मदद मिल सके।

नोड संदर्भ मोड दर्ज करें

नोड 1 का नोड संदर्भ दर्ज करें:

> node 1
Done
node 1>

CLI प्रॉम्प्ट को node 1> बदल दिया गया, वर्तमान नोड संदर्भ को दर्शाता है। आप नोड पर निष्पादित किए जाने के लिए OpenThread CLI कमांड में टाइप कर सकते हैं जैसे कि आप सीधे नोड के साथ बातचीत कर रहे हैं।

नोड के संदर्भ में आदेश निष्पादित करें

node 1> state
leader
Done
node 1> channel
11
Done
node 1> panid
0xface
Done
node 1> networkname
OpenThread
Done
node 1> ipaddr
fdde:ad00:beef:0:0:ff:fe00:fc00
fdde:ad00:beef:0:0:ff:fe00:d800
fdde:ad00:beef:0:2175:8a67:1000:6352
fe80:0:0:0:2075:82c2:e9e9:781d
Done

दूसरे नोड संदर्भ पर स्विच करें

node 1> node 2
Done
node 2> 

नोड संदर्भ से बाहर निकलें

node 1> exit
Done
>

बधाई हो, आपने अपने पहले ओटीएनएस सिमुलेशन को सफलतापूर्वक निष्पादित किया है!

आपने सीखा है कि ओटीएनएस और उसकी निर्भरता कैसे स्थापित करें। आपने ओटीएनएस के लिए ओपनथ्रेड का निर्माण किया और ओटीएनएस सिमुलेशन को ओपनथ्रेड सिमुलेशन उदाहरणों के साथ शुरू किया। आपने OTNS-CLI और OTNS-Web दोनों के माध्यम से विभिन्न तरीकों से सिमुलेशन में हेरफेर करना सीखा है।

अब आप जानते हैं कि ओटीएनएस क्या है और ओपेनट्रेड नेटवर्क का अनुकरण करने के लिए आप ओटीएनएस का उपयोग कैसे कर सकते हैं।

आगे क्या होगा?

इनमें से कुछ कोडलेब्स देखें ...

संदर्भ डॉक्स