थ्रेड एंड ओटीएनएस क्या है
थ्रेड एक आईपी-आधारित कम-शक्ति वायरलेस मेष नेटवर्किंग प्रोटोकॉल है जो सुरक्षित डिवाइस-टू-डिवाइस और डिवाइस-टू-क्लाउड संचार को सक्षम करता है। थ्रेड नेटवर्क विफलता के एकल बिंदु से बचने के लिए टोपोलॉजी परिवर्तनों के लिए अनुकूल हो सकते हैं।
Google द्वारा जारी OpenThread थ्रेड का एक ओपन-सोर्स कार्यान्वयन है। अपने छोटे कोड आकार और मेमोरी फ़ुटप्रिंट के बावजूद, OpenThread थ्रेड 1.1.1 विनिर्देश में परिभाषित सभी विशेषताओं का समर्थन करता है।
OpenThread Network Simulator (OTNS) का उपयोग पॉज़िक्स प्लेटफार्मों पर सिम्युलेटेड OpenThread नोड्स चलाकर थ्रेड नेटवर्क का अनुकरण करने के लिए किया जा सकता है। ओटीएनएस सिम्युलेटेड थ्रेड नेटवर्क की कल्पना और संचालन के लिए एक आसान उपयोग वाला वेब इंटरफेस (ओटीएनएस-वेब) प्रदान करता है।
आप क्या सीखेंगे
- ओटीएनएस और उसकी निर्भरता स्थापित करें
- OTNS के लिए OpenThread बनाएँ
- OTNS-Web में नोड्स कैसे जोड़ें / स्थानांतरित करें / हटाएं
- नेटवर्क सिमुलेशन संचालित करने के लिए ओटीएनएस-वेब की अन्य उपयोगी सुविधाओं का उपयोग करें
- OpenThread की नो-सिंगल-पॉइंट-ऑफ-विफलता को सत्यापित करें
यह कोडलैब ओटीएनएस-सीएलआई और ओटीएनएस-वेब पर केंद्रित है। ओटीएनएस की अन्य विशेषताएं, जैसे कि पायथन स्क्रिप्टिंग, कवर नहीं की जाती हैं।
आपको किस चीज़ की ज़रूरत पड़ेगी
- लिनक्स x86_64 या मैक ओएस।
- गित ।
- 1.11+ जाओ ।
- वेब ब्राउज़र। OTNS- वेब सिमुलेशन प्रदर्शित करने के लिए एक वेब ब्राउज़र का उपयोग करता है।
- थ्रेड प्राइमर । इस कोडेलैब में क्या पढ़ाया जाता है, यह समझने के लिए आपको थ्रेड की मूल अवधारणाओं को जानना होगा।
गो स्थापित करें
OTNS को बनाने के लिए 1.11+ की आवश्यकता है।
- Https://golang.org/dl/ से गो स्थापित करें
-
$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
ठीक से स्थापित है
- भागो
which otns
अगर जाँच करने के लिएotns
निष्पादन में खोजा है$PATH.
- यदि
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
:
जब सफलतापूर्वक शुरू किया जाता है, तो ओटीएनएस एक CLI कंसोल ( OTNS-CLI
) दर्ज करेगा और नेटवर्क विज़ुअलाइज़ेशन और प्रबंधन ( OTNS-Web
) के लिए एक वेब ब्राउज़र लॉन्च OTNS-Web
:
यदि आप ओटीएनएस-वेब के लिए केवल एक खाली पृष्ठ देख सकते हैं, तो संभावना है कि आपके ब्राउज़र में वेबजीएल सक्षम नहीं है। WebGL को सक्षम करने के तरीके पर कृपया https://superuser.com/a/836833 देखें ।
निम्नलिखित अनुभागों में, आप OTNS-CLI
और OTNS-Web
माध्यम से ओटीएनएस सिमुलेशन का प्रबंधन करने जा रहे हैं।
ओटीएनएस-सीएलआई
OTNS-CLI
OTNS सिमुलेशन के प्रबंधन के लिए एक कमांड लाइन इंटरफेस (CLI) प्रदान करता है।
आप OTNS-CLI
माध्यम से कमांड टाइप कर सकते हैं। आदेशों की पूरी सूची के लिए ओटीएनएस सीएलआई संदर्भ देखें। चिंता न करें, आप केवल इस कोडलैब में इनमें से कुछ कमांड का उपयोग करने जा रहे हैं।
OTNS- वेब
OTNS-Web
OTNS का नेटवर्क विज़ुअलाइज़ेशन और मैनेजमेंट टूल है। यह नकली थ्रेड नेटवर्क के नोड्स, संदेश और लिंक का एक दृश्य प्रतिनिधित्व प्रदान करता है। OTNS-Web
के विभिन्न तत्वों पर ध्यान दें:
OTNS-CLI के माध्यम से नोड जोड़ें
स्थिति में एक रूटर जोड़ें (300, 100)
> add router x 300 y 100 1 Done
आपको OTNS-Web
में निर्मित नोड देखना चाहिए। नोड राउटर के रूप में शुरू होता है और कुछ ही सेकंड में लीडर बन जाता है:
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
में नोड्स देखना चाहिए:
OTNS-Web
द्वारा नोड्स जोड़ें
आप OTNS-Web
माध्यम से नोड्स भी जोड़ सकते हैं। Action Bar
के New Router
बटन पर क्लिक करें। आपको New Router
बटन के ठीक ऊपर एक नोड बनाया जाना चाहिए। OTNS-CLI
के माध्यम से आपके द्वारा बनाए गए लीडर के पास नोड खींचें। सभी नोड्स को अंततः एक विभाजन में विलय करना चाहिए:
अन्य प्रकार के नोड बनाने के लिए एक्शन बार पर FED, MED और SED बटन भी क्लिक करें। उन्हें उस थ्रेड नेटवर्क पर संलग्न करने के लिए मौजूदा नोड्स के पास स्थिति में खींचें:
अब आपने एक विभाजन का एक थ्रेड नेटवर्क बनाया है जिसमें कई नोड हैं। अगले भाग में, हम अनुकरण की गति को तेज करने के लिए अनुकरण गति को समायोजित करने जा रहे हैं।
वर्तमान में, सिमुलेशन 1X
गति से चलना चाहिए, जिसका अर्थ है कि अब तक का अनुकरण किया गया समय वास्तविक समय के समान है क्योंकि हमने पहला नोड बनाया था।
OTNS-CLI
माध्यम से गति समायोजित करें
आप OTNS-CLI
माध्यम से सिमुलेशन गति को समायोजित कर सकते हैं।
100X
अनुकरण गति सेट करें
0e091950आपको नोड्स को पहले की तुलना में अधिक बार संदेश भेजते देखना चाहिए।
MAX
गति को MAX
सेट करें
> speed max Done
अब, ओटीएनएस कोशिश कर रहा है कि यह जितनी तेजी से हो सके उतनी तेजी से अनुकरण करे, इसलिए आपको बड़ी संख्या में संदेश भेजने वाले नोड्स देखने चाहिए।
अनुकरण को रोकें
> speed 0 Done
सिमुलेशन गति को 0
सेट करने से अनुकरण रुक जाता है।
सामान्य गति से सिमुलेशन को पुनर्स्थापित करें
> speed 1 Done
अनुकरणीय गति को 0
से बड़े मान पर सेट करने से अनुकरण फिर से शुरू होता है।
OTNS-Web
माध्यम से गति समायोजित करें
गति नियंत्रण बटन
गति नियंत्रण बटन खोजें
Action Bar
। बटन मौजूदा अनुकरण गति दिखाते हैं और अनुकरण गति को समायोजित करने और अनुकरण को फिर से शुरू / फिर से शुरू करने के लिए इस्तेमाल किया जा सकता है।
अनुकरण को गति दें
आप क्लिक करके सिमुलेशन की गति बढ़ा सकते हैं बटन
MAX
होने तक गति: ।
अनुकरण धीमा करें
आप क्लिक करके सिमुलेशन को धीमा कर सकते हैं बटन।
अनुकरण को रोकें
दबाएं जब यह चल रहा हो तो अनुकरण को रोकने के लिए बटन। बटन को बदल दिया जाएगा
।
अनुकरण फिर से शुरू करें
दबाएं बटन को फिर से शुरू करने के लिए जब यह रुका हुआ हो। बटन वापस बदल दिया जाएगा
।
अनुकरण गति 10X
सेट करें
समय बचाने के लिए, का उपयोग करें
OTNS-CLI
अनुकरण गति को समायोजित करने के लिए
10X
ताकि हम नेटवर्क में टोपोलॉजी परिवर्तनों का अधिक तेजी से निरीक्षण कर सकें।
> speed 10 Done
अब, सिमुलेशन में 2 राउटर (षट्भुज आकार) और कई बच्चे होने चाहिए, और 10X की गति से चलता है।
2 राउटर के वर्तमान लीडर (लाल बॉर्डर) को चुनें, इसे चुनने के लिए सिंगल क्लिक करें:
रेडियो बंद करें
दबाएं लीडर नोड के रेडियो को बंद करने के लिए एक्शन बार पर बटन:
लीडर रेडियो से संदेश भेजने या प्राप्त करने में सक्षम नहीं होगा।
नए राऊटर बनने के लिए अन्य राऊटर के लिए लगभग 12s (अनुकरण समय में 120) की प्रतीक्षा करें:
थ्रेड नेटवर्क एक नए लीडर के साथ एक नया विभाजन बनाकर लीडर विफलता से स्वतः ठीक हो जाता है। नए विभाजन में एक नया विभाजन रंग भी है।
रेडियो चालू करें
उस लीडर का चयन करें जिसका रेडियो बंद था। दबाएं रेडियो कनेक्टिविटी बहाल करने के लिए
Action Bar
पर बटन:
रेडियो कनेक्टिविटी बहाल होने के बाद नेता को नेटवर्क को रीटच करना चाहिए।
OTNS, उपयोगकर्ताओं को OTNS-CLI
या OTNS-Web
माध्यम से आसानी से नोड्स स्थानांतरित करने में सक्षम बनाता है।
OTNS-CLI
माध्यम से नोड ले जाएँ
नोड 5 को एक नए स्थान पर ले जाएं:
> move 5 600 300 Done
चूंकि अब नोड 5 अन्य राउटर से बहुत दूर है, उन्हें एक दूसरे से कनेक्टिविटी खोनी चाहिए, और लगभग 12s (अनुकरण समय में 120) के बाद दोनों अपने स्वयं के विभाजन के नेता बन जाते हैं:
OTNS-Web के माध्यम से नोड ले जाएँ
नोड 5 को पीछे खींचकर मूल स्थान पर ले जाएँ। दो विभाजन एक विभाजन में वापस मिलेंगे:
OTNS-CLI
माध्यम से नोड हटाएं
नोड 8 हटाएं:
> del 8 Done
नोड 8 सिमुलेशन से गायब हो जाना चाहिए:
OTNS-Web
माध्यम से नोड हटाएं
नोड 5 का चयन करें और क्लिक करें नोड 5 को हटाने के लिए
Action Bar
पर बटन:
Node 1
को लीडर बनना चाहिए और Node 7
को अलग होना चाहिए क्योंकि यह किसी भी राउटर तक नहीं पहुंच सकता है।
स्पष्ट सिमुलेशन (सभी नोड्स हटाएं)
आप OTNS-Web
माध्यम से सभी नोड्स को हटाकर सिमुलेशन को साफ कर सकते हैं।
क्लिक बटन
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
दोनों के माध्यम से विभिन्न तरीकों से सिमुलेशन में हेरफेर करना सीखा है।
अब आप जानते हैं कि ओटीएनएस क्या है और ओपेनट्रेड नेटवर्क का अनुकरण करने के लिए आप ओटीएनएस का उपयोग कैसे कर सकते हैं।
आगे क्या होगा?
इनमें से कुछ कोडलेब्स देखें ...
- ओपन थ्रेड के साथ एक थ्रेड नेटवर्क का अनुकरण
- Docker में OpenThread का उपयोग करके एक थ्रेड नेटवर्क का अनुकरण करना
- NRF52840 बोर्डों और OpenThread के साथ थ्रेड नेटवर्क बनाएँ