1. परिचय
थ्रेड और ओटीएनएस क्या है
Thread, आईपी पर आधारित कम-पावर वाला वायरलेस मेश नेटवर्किंग प्रोटोकॉल है. इससे डिवाइस-टू-डिवाइस और डिवाइस-टू-क्लाउड कम्यूनिकेशन को सुरक्षित तरीके से किया जा सकता है. थ्रेड नेटवर्क, टोपोलॉजी में होने वाले बदलावों के हिसाब से ढल सकते हैं, ताकि किसी एक बिंदु पर फ़ॉल्ट न हो.
Google ने OpenThread रिलीज़ किया है. यह Thread का ओपन सोर्स वर्शन है. OpenThread का कोड साइज़ और मेमोरी फ़ुटप्रिंट कम होने के बावजूद, यह Thread Specification में बताई गई सभी सुविधाओं के साथ काम करता है.
OpenThread नेटवर्क सिम्युलेटर (OTNS) का इस्तेमाल, Thread नेटवर्क को सिम्युलेट करने के लिए किया जा सकता है. इसके लिए, posix प्लैटफ़ॉर्म पर सिम्युलेट किए गए OpenThread नोड चलाए जाते हैं. सिम्युलेट किए गए Thread नेटवर्क को विज़ुअलाइज़ करने और उन्हें ऑपरेट करने के लिए, OTNS एक आसानी से इस्तेमाल किया जा सकने वाला वेब इंटरफ़ेस (OTNS-Web) उपलब्ध कराता है. Python की मदद से, स्क्रिप्ट वाले सिम्युलेशन भी किए जा सकते हैं.
आपको क्या सीखने को मिलेगा
- OTNS और इसकी डिपेंडेंसी इंस्टॉल करना
- OTNS-CLI की बुनियादी बातें जानें
- OTNS-Web में OpenThread नोड जोड़ने/मूव करने/मिटाने का तरीका
- नेटवर्क सिम्युलेशन को कंट्रोल करने के लिए, OTNS-Web की अन्य काम की सुविधाओं का इस्तेमाल करना
- OpenThread के 'एक ही जगह पर फ़ॉल्ट नहीं' सुविधा की पुष्टि करना
- Wireshark में, OpenThread नोड के बीच डेटा ट्रैफ़िक देखना
इस कोडलैब में, इंटरैक्टिव तरीके से इस्तेमाल करने के लिए OTNS-CLI और OTNS-Web पर फ़ोकस किया गया है. OTNS की अन्य सुविधाएं, जैसे कि Python स्क्रिप्टिंग शामिल नहीं हैं.
आपको किन चीज़ों की ज़रूरत होगी
- Linux x86_64 या Homebrew के साथ Mac OS. Windows WSL2 में Ubuntu 22/24 भी काम करेगा. हालांकि, इसके लिए सेटिंग में मैन्युअल रूप से कुछ बदलाव करने पड़ सकते हैं.
- Git.
- वेब ब्राउज़र. OTNS-Web, सिम्युलेशन दिखाने के लिए वेब ब्राउज़र का इस्तेमाल करता है.
- थ्रेड प्राइमर. इस कोडलैब में बताई गई बातों को समझने के लिए, आपको थ्रेड के बुनियादी कॉन्सेप्ट के बारे में जानकारी होनी चाहिए.
शब्दावली
"राउटर" शब्द का इस्तेमाल, थ्रेड मेश एक्सटेंडर के लिए तकनीकी शब्द के तौर पर किया जाता है. इसे शुरुआत में थ्रेड राउटर कहा जाता था. "नोड" का मतलब, OTNS सिम्युलेशन में सिम्युलेट किए गए किसी भी OpenThread डिवाइस से है.
2. इंस्टॉल करना
ओटीएनएस कोड पाना
$ git clone https://github.com/openthread/ot-ns.git ./otns $ cd otns
इस कोडलैब में, इसके बाद दिए गए सभी कंसोल कमांड otns
डायरेक्ट्री से चलाए जाते हैं.
बूटस्ट्रैप और इंस्टॉल करना
bootstrap
स्क्रिप्ट, डिपेंडेंसी इंस्टॉल करेगी. इसमें Python3 और Go/Golang भी शामिल हैं. साथ ही, यह OTNS इंस्टॉल करेगी. यह अलग-अलग तरह के ओटी नोड भी बनाता है, जिनका इस्तेमाल सीधे सिम्युलेशन में किया जा सकता है. साथ ही, यह कुछ बुनियादी टेस्ट भी करता है. नोड बनाने में कुछ मिनट लग सकते हैं.
$ ./script/bootstrap .... .... OTNS installed - use 'otns' to start it. $
आपसे sudo
के लिए पासवर्ड डालने के लिए कहा जा सकता है.
अगर otns
ठीक से इंस्टॉल नहीं है
स्क्रिप्ट से इस तरह की गड़बड़ी की रिपोर्ट मिल सकती है:
.... OTNS installed - please add ~/go/bin to your PATH variable first, to use it. $
इस मामले में, आपको अपने $PATH.
में $(go env GOPATH)/bin
जोड़ना होगा
अन्य गड़बड़ियों के मामले में, GitHub पर समस्या दर्ज की जा सकती है.
3. पहली बार ओटीएनएस चलाना
रन otns
:
$ otns >_ ← OTNS-CLI prompt
शुरू होने के बाद, OTNS एक सीएलआई कंसोल (OTNS-CLI
) में चला जाएगा और नेटवर्क विज़ुअलाइज़ेशन और मैनेजमेंट के लिए एक वेब ब्राउज़र लॉन्च करेगा (OTNS-Web
):
अगर आपको OTNS-Web के लिए सिर्फ़ एक खाली पेज दिखता है, तो हो सकता है कि आपके ब्राउज़र में WebGL चालू न हो. WebGL चालू करने का तरीका जानने के लिए, कृपया https://superuser.com/a/836833 पर जाएं.
नीचे दिए गए सेक्शन में, आपको OTNS-CLI
और OTNS-Web
की मदद से, ओटीएनएस सिम्युलेशन को मैनेज करने का तरीका पता चलेगा.
4. OTNS-CLI और OTNS-Web के बारे में जानकारी
OTNS-CLI
OTNS-CLI
, ओटीएनएस सिम्युलेशन को मैनेज करने के लिए कमांड-लाइन इंटरफ़ेस (सीएलआई) है.
$ otns >_ ← OTNS-CLI prompt
OTNS-CLI
की मदद से निर्देश टाइप किए जा सकते हैं. निर्देशों की पूरी सूची के लिए, OTNS सीएलआई रेफ़रंस देखें. चिंता न करें, इस Codelab में इनमें से सिर्फ़ कुछ निर्देशों का इस्तेमाल किया जाएगा.
सीएलआई कमांड की खास जानकारी पाने के लिए, help
कमांड टाइप करें. यह सूची, सीएलआई रेफ़रंस से मेल खाती है.
> help add Add a node to the simulation and get the node ID. .... .... Done >
किसी खास निर्देश के बारे में ज़्यादा मदद पाने के लिए, निर्देश के नाम का इस्तेमाल करें. उदाहरण के लिए:
> help add add Add a node to the simulation and get the node ID. Definition: .... .... >
OTNS-Web
OTNS-Web
, OTNS का नेटवर्क विज़ुअलाइज़ेशन और मैनेजमेंट टूल है. यह सिम्युलेट किए गए Thread नेटवर्क के नोड, मैसेज, और लिंक को विज़ुअल तौर पर दिखाता है. OTNS-Web
के अलग-अलग एलिमेंट पर ध्यान दें:
5. नोड जोड़ना
OTNS-CLI की मदद से नोड जोड़ना
सिम्युलेशन में थ्रेड राउटर जोड़ें:
> add router 1 Done
आपको OTNS-Web
में बनाया गया एक नोड दिखेगा. नोड, राउटर के तौर पर शुरू होता है और कुछ ही सेकंड में लीडर बन जाता है:
इंटरैक्टिव तरीके से सिम्युलेशन शुरू करने के लिए, हर नए OpenThread नोड को डिफ़ॉल्ट रूप से नेटवर्क पैरामीटर के स्टैंडर्ड सेट के साथ कमीशन किया जाता है.
OTNS-CLI
के ज़रिए ज़्यादा नोड जोड़ना
अब हम अलग-अलग तरह के कुछ नोड जोड़ेंगे.
> add fed 2 Done > add med 3 Done > add sed 4 Done
नोड के एक पार्टीशन में मर्ज होने के लिए कुछ सेकंड इंतज़ार करें. आपको OTNS-Web
में नोड दिखेंगे:
OTNS-Web
में, किसी भी नोड को चुनकर, उसके बारे में ज़्यादा जानकारी वाला पैनल देखा जा सकता है. उदाहरण के लिए, नीचे दिए गए इलस्ट्रेशन में नोड 1 चुना गया है. पैनल में "भूमिका" एंट्री से पुष्टि होती है कि वह लीडर है.
OTNS-Web
के हिसाब से नोड जोड़ना
OTNS-Web
की मदद से भी नोड जोड़े जा सकते हैं. Action Bar
के New Router
बटन पर क्लिक करें. आपको चुने गए नोड की दाईं ओर, एक नया नोड बनता हुआ दिखेगा. नया राऊटर, मौजूदा थ्रेड पार्टीशन में शामिल होना चाहिए:
इस तरह के अन्य नोड बनाने के लिए, ऐक्शन बार में FED, MED, SSED, और BR बटन पर भी क्लिक करें. अब कुल नौ नोड होने चाहिए. अगर आपको कोई अलग फ़िज़िकल नेटवर्क टोपोलॉजी बनानी है, तो कुछ नोड को खींचकर दूसरी जगहों पर छोड़ें.
अब आपने एक ऐसे सेगमेंट का थ्रेड नेटवर्क बना लिया है जिसमें कई नोड हैं. अगले सेक्शन में, हम सिम्युलेशन की स्पीड में बदलाव करेंगे, ताकि सिम्युलेशन तेज़ी से चल सके.
6. स्पीड अडजस्ट करना
फ़िलहाल, सिम्युलेशन 1X
की स्पीड पर चल रहा है. इसका मतलब है कि सिम्युलेशन में अब तक जितना समय बीत चुका है वह पहले नोड बनाने के बाद से बीत चुके असल समय के बराबर है.
OTNS-CLI
का इस्तेमाल करके स्पीड अडजस्ट करना
OTNS-CLI
की मदद से, सिम्युलेशन की स्पीड को अडजस्ट किया जा सकता है.
सिम्युलेटिंग स्पीड को 100X
पर सेट करें
> speed 100 Done
आपको नोड से पहले के मुकाबले ज़्यादा बार मैसेज भेजते हुए दिखेंगे.
सिम्युलेटिंग स्पीड को MAX
पर सेट करें
> speed max Done
अब OTNS, जितनी जल्दी हो सके उतनी जल्दी सिम्युलेट करने की कोशिश कर रहा है. इसलिए, आपको नोड से बहुत ज़्यादा मैसेज भेजे जाते दिखेंगे.
सिमुलेशन रोकें
> speed 0 Done
सिम्युलेशन की स्पीड को 0
पर सेट करने से, सिम्युलेशन रोक दिया जाता है.
सिम्युलेशन को सामान्य रफ़्तार पर वापस लाना
> speed 1 Done
सिम्युलेशन की स्पीड को 0
से ज़्यादा पर सेट करने से, सिम्युलेशन फिर से शुरू हो जाता है.
OTNS-Web
का इस्तेमाल करके स्पीड अडजस्ट करना
स्पीड कंट्रोल करने वाले बटन
Action Bar
पर, स्पीड कंट्रोल बटन ढूंढें. इन बटन से, सिम्युलेशन की मौजूदा स्पीड देखी जा सकती है. साथ ही, इनका इस्तेमाल करके सिम्युलेशन की स्पीड में बदलाव किया जा सकता है. इसके अलावा, सिम्युलेशन को रोका और फिर से शुरू किया जा सकता है.
सिम्युलेशन की स्पीड बढ़ाना
बटन पर क्लिक करके, सिम्युलेशन की स्पीड को तेज़ किया जा सकता है. ऐसा तब तक करें, जब तक स्पीड
MAX
: पर न पहुंच जाए.
सिम्युलेशन को धीमा करना
बटन पर क्लिक करके, सिम्युलेशन को धीमा किया जा सकता है.
सिमुलेशन रोकें
सिम्युलेशन चलने के दौरान उसे रोकने के लिए, बटन पर क्लिक करें. बटन का रंग बदलकर
हो जाएगा.
सिम्युलेशन फिर से शुरू करना
सिम्युलेशन रोकने के बाद, उसे फिर से शुरू करने के लिए बटन पर क्लिक करें. ऐसा करने पर, बटन का रंग फिर से
हो जाएगा.
सिम्युलेटिंग स्पीड को 10X
पर सेट करें
समय बचाने के लिए,
OTNS-CLI
सिम्युलेशन की स्पीड को में बदलने के लिए
10X
इससे हम नेटवर्क में टॉपोलॉजी में हुए बदलावों को ज़्यादा तेज़ी से देख सकते हैं.
> speed 10 Done
7. रेडियो चालू/बंद करना
अब, सिम्युलेशन में कम से कम दो राउटर (हेक्सागॉन आकार), शायद एक बॉर्डर राउटर (स्क्वेयर आकार) और कई चाइल्ड यूनिट होनी चाहिए. साथ ही, यह 10 गुना तेज़ी से चलना चाहिए.
दोनों राऊटर का मौजूदा लीडर (लाल बॉर्डर) ढूंढें और उसे चुनने के लिए एक बार क्लिक करें:
रेडियो बंद करें
लीडर नोड का रेडियो बंद करने के लिए, ऐक्शन बार में मौजूद बटन पर क्लिक करें. रेडियो बंद होने पर, लीडर न तो मैसेज भेज पाएगा और न ही उसे मैसेज मिल पाएंगे.
दूसरे राऊटर या बॉर्डर राऊटर के नए लीडर बनने के लिए, करीब 12 सेकंड (सिम्युलेशन में 120 सेकंड) इंतज़ार करें:
लीडर के काम न करने पर, थ्रेड नेटवर्क अपने-आप ठीक हो जाता है. इसके लिए, वह नए लीडर के साथ नया पार्टीशन बनाता है. नए पार्टीशन का रंग भी अलग होता है.
रेडियो चालू करें
उस लीडर को चुनें जिसका रेडियो बंद था. रेडियो कनेक्टिविटी को वापस लाने के लिए, Action Bar
पर मौजूद बटन पर क्लिक करें:
रेडियो कनेक्टिविटी वापस आने के बाद, लीडर को नेटवर्क से फिर से कनेक्ट करना चाहिए.
8. नोड को एक जगह से दूसरी जगह ले जाना
OTNS की मदद से, उपयोगकर्ता OTNS-CLI
या OTNS-Web
का इस्तेमाल करके, आसानी से नोड को एक से दूसरी जगह ले जा सकते हैं.
OTNS-CLI
के ज़रिए नोड को दूसरी जगह ले जाएं
बॉर्डर राउटर नोड 9 को नई जगह पर ले जाएं:
> move 9 50 50 Done
OTNS-Web की मदद से नोड को दूसरी जगह ले जाना
पांचवें नोड को खींचकर, सबसे नीचे दाईं ओर ले जाएं. अब नोड 5, दूसरे राउटर की रेडियो कवरेज से बाहर है. इसलिए, यह नए पार्टीशन आईडी के साथ अपना पार्टीशन बनाता है. नोड पर क्लिक करके, नोड की जानकारी वाले पैनल पर सेक्शन आईडी देखे जा सकते हैं.
ध्यान दें कि नोड 5 और नोड 9 के बीच अब भी एक हरे रंग की लाइन खींची गई है. ऐसा अक्सर बच्चे की पुरानी जानकारी की वजह से होता है, जो अब भी किसी पूर्व माता-पिता की चाइल्ड टेबल में सेव होती है. इसके अलावा, यह जानकारी नोड 9 और नोड 5 के बीच के पुराने राउटर-टू-राउटर लिंक की हो सकती है. (या हो सकता है कि इस मामले में, रेंडर करने से जुड़ी कोई गड़बड़ी हो.) तय समयसीमा खत्म होने के बाद, पुरानी जानकारी को नोड से हटा दिया जाता है.
9. नोड मिटाना
OTNS-CLI
की मदद से नोड मिटाना
पांचवां नोड मिटाएं:
> del 5 Done
सिम्युलेशन से नोड 5 गायब हो जाना चाहिए:
OTNS-Web
की मदद से नोड मिटाना
बॉर्डर राउटर नोड 9 चुनें और नोड 9 मिटाने के लिए, Action Bar
पर मौजूद बटन पर क्लिक करें:
Node 1
, नए पार्टीशन का लीडर बन जाएगा और बाकी सभी नोड, नोड 1 से चाइल्ड के तौर पर जुड़ जाएंगे.
10. OTNS-CLI नोड का कॉन्टेक्स्ट
OTNS-CLI
, नोड के साथ आसानी से इंटरैक्ट करने के लिए नोड कॉन्टेक्स्ट मोड उपलब्ध कराता है. इससे डेवलपर को नोड की स्थिति का पता लगाने में मदद मिलती है. इस मोड से नोड ऐक्शन भी शुरू किए जा सकते हैं.
नोड कॉन्टेक्स्ट मोड में जाना
पहले नोड का नोड कॉन्टेक्स्ट डालें:
> node 1 Done node 1>
सीएलआई प्रॉम्प्ट बदलकर node 1>
हो गया , जो मौजूदा नोड कॉन्टेक्स्ट को दिखाता है. नोड पर लागू करने के लिए, OpenThread सीएलआई कमांड टाइप किए जा सकते हैं. ऐसा करने पर, ऐसा लगेगा कि आप सीधे नोड से इंटरैक्ट कर रहे हैं.
नोड कॉन्टेक्स्ट में कमांड चलाना
node 1> state leader Done node 1> channel 11 Done node 1> panid 0xface Done node 1> networkname otns Done node 1> ipaddr fdde:ad00:beef:0:0:ff:fe00:fc00 fdde:ad00:beef:0:0:ff:fe00:b400 fd00:f00d:cafe:0:2505:8719:3685:ebfb fdde:ad00:beef:0:4fd9:b9ba:44e0:96cb fe80:0:0:0:e86a:e07:ec97:777 Done
किसी दूसरे नोड कॉन्टेक्स्ट पर स्विच करना
node 1> node 2 Done node 2>
नोड कॉन्टेक्स्ट से बाहर निकलना
node 1> exit Done >
नोड कॉन्टेक्स्ट से बाहर निकलने का दूसरा तरीका, node 0
कमांड है.
11. नोड लॉग और पैकेट कैप्चर देखना
OpenThread नोड के लॉग
डिफ़ॉल्ट रूप से, OTNS, सिम्युलेट किए गए सभी OpenThread नोड के लिए ज़्यादा जानकारी वाली लॉग फ़ाइलें जनरेट करता है. इन्हें ./tmp
डायरेक्ट्री में देखा जा सकता है. फ़ाइल का नाम 0_
है. उदाहरण के लिए, लॉग फ़ाइल का एक हिस्सा यहां दिखाया गया है:
7616488 00:00:06.326 [I] MeshForwarder-: Received IPv6 UDP msg, len:90, chksum:5915, ecn:no, from:ca72650db7b856af, sec:no, prio:net, rss:-58.0
7616488 00:00:06.326 [I] MeshForwarder-: src:[fe80:0:0:0:c872:650d:b7b8:56af]:19788
7616488 00:00:06.326 [I] MeshForwarder-: dst:[ff02:0:0:0:0:0:0:1]:19788
7616488 00:00:06.326 [D] Mle-----------: Receive MLE message
7616488 00:00:06.326 [D] Mac-----------: Idle mode: Radio receiving on channel 11
7657544 00:00:06.367 [D] Mac-----------: ==============================[RX len=063]==============================
7657544 00:00:06.367 [D] Mac-----------: | 41 D8 7F CE FA FF FF 46 | 74 5A 33 9E 76 51 4E 7F | A......FtZ3.vQN. |
7657544 00:00:06.367 [D] Mac-----------: | 3B 02 F0 4D 4C 4D 4C 81 | E6 00 15 03 00 00 00 00 | ;..MLML......... |
7657544 00:00:06.367 [D] Mac-----------: | 00 00 00 01 46 86 7D FE | 06 CC DB 94 86 9C 88 0B | ....F.}......... |
7657544 00:00:06.367 [D] Mac-----------: | 1C 1E 26 9B 8D 21 2E 65 | 53 5A 43 4E A2 59 D6 | ..&..!.eSZCN.Y. |
7657544 00:00:06.367 [D] Mac-----------: ------------------------------------------------------------------------
7657544 00:00:06.367 [I] MeshForwarder-: Received IPv6 UDP msg, len:84, chksum:81e6, ecn:no, from:4e51769e335a7446, sec:no, prio:net, rss:-48.0
7657544 00:00:06.367 [I] MeshForwarder-: src:[fe80:0:0:0:4c51:769e:335a:7446]:19788
7657544 00:00:06.367 [I] MeshForwarder-: dst:[ff02:0:0:0:0:0:0:2]:19788
7657544 00:00:06.367 [D] Mac-----------: Idle mode: Radio receiving on channel 11
7833912 00:00:06.543 [I] Mle-----------: AttachState ParentReq -> Idle
7833912 00:00:06.543 [N] RouterTable---: Allocate router id 12
7833912 00:00:06.543 [N] Mle-----------: RLOC16 fffe -> 3000
7833912 set node RLOC16: fffe -> 3000
7833912 00:00:06.543 [D] SubMac--------: RadioShortAddress: 0x3000
7833912 00:00:06.543 [N] Mle-----------: Role detached -> leader
7833912 00:00:06.543 [N] Mle-----------: Partition ID 0x24c35f10
7833912 00:00:06.543 [I] RouterTable---: Route table
7833912 00:00:06.543 [I] RouterTable---: 12 0x3000 - me - leader
बाईं ओर, सिम्युलेशन का कुल समय माइक्रोसेकंड में दिखता है. hh:mm:ss
टाइमस्टैंप, OpenThread नोड के लॉग का टाइमस्टैंप दिखाता है. यह टाइमस्टैंप, सिम्युलेशन के असल समय से अलग हो सकता है.
Wireshark पैकेट कैप्चर
डिफ़ॉल्ट रूप से, ट्रांसमिट किए गए सभी IEEE 802.15.4 फ़्रेम, PCAP फ़ाइल current.pcap
में कैप्चर किए जाते हैं. सिम्युलेशन के दौरान या उसके बाद, Wireshark इस फ़ाइल को पढ़ सकता है. Thread के लिंक-लेयर एन्क्रिप्शन की वजह से, OTNS के लिए डिक्रिप्ट करने की कुंजी को सही तरीके से सेट करने के लिए, Wireshark में एक बार कॉन्फ़िगरेशन की कार्रवाई की ज़रूरत होती है. डिफ़ॉल्ट रूप से, किसी जानी-पहचानी नेटवर्क कुंजी का इस्तेमाल किया जाता है, ताकि Wireshark से फ़्रेम को आसानी से डिक्रिप्ट किया जा सके.
Wireshark में OpenThread पैकेट की जांच करने का उदाहरण देखने के लिए, नीचे दिया गया स्क्रीनशॉट देखें.
डिक्रिप्ट करने की कुंजी को कॉन्फ़िगर करने के लिए, मेन्यू में बदलाव करें -> प्राथमिकताएं चुनें. इसके बाद, प्राथमिकताएं विंडो में, प्रोटोकॉल -> IEEE 802.15.4 चुनें. "डिक्रिप्ट करने की कुंजियां" के बगल में मौजूद, बदलाव करें... बटन पर क्लिक करें. नई एंट्री बनाने के लिए, + पर क्लिक करें और कुंजी 00112233445566778899aabbccddeeff
(32 वर्ण) डालें. इसके बाद, "कुंजी हैश" फ़ील्ड में "थ्रेड हैश" चुनें. "डिक्रिप्ट करने की कुंजी का इंडेक्स" को 0
पर छोड़ा जा सकता है. इसके बाद, ठीक है पर क्लिक करें. इसके बाद, ठीक है पर फिर से क्लिक करें. अब लोड होने पर, OTNS PCAP फ़ाइल सही तरीके से डिक्रिप्ट हो जानी चाहिए.
"समय" कॉलम में दिखाए गए टाइमस्टैंप (सेकंड में), OpenThread नोड लॉग में दिखाए गए सिम्युलेशन के समय की वैल्यू से मेल खाते हैं. इससे, लॉग मैसेज को भेजे गए या पाए गए रेडियो फ़्रेम से जोड़ना आसान हो जाता है. हालांकि, आम तौर पर ये वैल्यू एक माइक्रोसेकंड तक सटीक नहीं होती हैं: OpenThread स्टैक से रेडियो फ़्रेम भेजने का अनुरोध करने के बाद, सिम्युलेट किए गए IEEE 802.15.4 रेडियो हार्डवेयर में कुछ और देरी हो सकती है.
12. बधाई हो
बधाई हो, आपने अपना पहला ओटीएनएस सिम्युलेशन पूरा कर लिया है!
आपने OTNS और उसकी डिपेंडेंसी इंस्टॉल करने का तरीका जाना है. आपने OpenThread सिम्युलेशन वाले नोड के साथ, OTNS सिम्युलेशन शुरू किया है. आपने OTNS-CLI
और OTNS-Web
, दोनों का इस्तेमाल करके सिम्युलेशन में अलग-अलग तरीकों से बदलाव करने का तरीका जाना है.
अब आपको पता है कि OTNS क्या है और OpenThread नेटवर्क को सिम्युलेट करने के लिए, OTNS का इस्तेमाल कैसे किया जा सकता है.
आगे क्या करना है?
इनमें से कुछ कोडलैब देखें...
- OpenThread की मदद से Thread नेटवर्क को सिम्युलेट करना
- Docker में OpenThread का इस्तेमाल करके, Thread नेटवर्क को सिम्युलेट करना
- nRF52840 बोर्ड और OpenThread की मदद से Thread नेटवर्क बनाना