OTNS का इस्तेमाल करके, Thread नेटवर्क को सिम्युलेट करें

1. परिचय

Thread मेश नेटवर्क टोपोलॉजी का इंप्रेशन

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

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 विंडो

अगर आपको 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 के अलग-अलग एलिमेंट पर ध्यान दें:

OTNS-वेब एलिमेंट के बारे में जानकारी

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 में नोड दिखेंगे:

चार नोड वाला Thread नेटवर्क

OTNS-Web में, किसी भी नोड को चुनकर, उसके बारे में ज़्यादा जानकारी वाला पैनल देखा जा सकता है. उदाहरण के लिए, नीचे दिए गए इलस्ट्रेशन में नोड 1 चुना गया है. पैनल में "भूमिका" एंट्री से पुष्टि होती है कि वह लीडर है.

चार नोड वाला थ्रेड नेटवर्क, जिसमें पहला नोड चुना गया है

OTNS-Web के हिसाब से नोड जोड़ना

OTNS-Web की मदद से भी नोड जोड़े जा सकते हैं. Action Bar के New Router बटन पर क्लिक करें. आपको चुने गए नोड की दाईं ओर, एक नया नोड बनता हुआ दिखेगा. नया राऊटर, मौजूदा थ्रेड पार्टीशन में शामिल होना चाहिए:

एक राऊटर जोड़ा गया है, कुल पांच नोड

इस तरह के अन्य नोड बनाने के लिए, ऐक्शन बार में FED, MED, SSED, और BR बटन पर भी क्लिक करें. अब कुल नौ नोड होने चाहिए. अगर आपको कोई अलग फ़िज़िकल नेटवर्क टोपोलॉजी बनानी है, तो कुछ नोड को खींचकर दूसरी जगहों पर छोड़ें.

कई नए नोड जोड़े गए, कुल 9 नोड

अब आपने एक ऐसे सेगमेंट का थ्रेड नेटवर्क बना लिया है जिसमें कई नोड हैं. अगले सेक्शन में, हम सिम्युलेशन की स्पीड में बदलाव करेंगे, ताकि सिम्युलेशन तेज़ी से चल सके.

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 गुना तेज़ी से चलना चाहिए.

दोनों राऊटर का मौजूदा लीडर (लाल बॉर्डर) ढूंढें और उसे चुनने के लिए एक बार क्लिक करें:

लीडर नोड 1 को चुने हुए थ्रेड नेटवर्क की इमेज

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

लीडर नोड का रेडियो बंद करने के लिए, ऐक्शन बार में मौजूद रेडियो बंद करने का बटन बटन पर क्लिक करें. रेडियो बंद होने पर, लीडर न तो मैसेज भेज पाएगा और न ही उसे मैसेज मिल पाएंगे.

दूसरे राऊटर या बॉर्डर राऊटर के नए लीडर बनने के लिए, करीब 12 सेकंड (सिम्युलेशन में 120 सेकंड) इंतज़ार करें:

नया पैर्टिशन बन गया है, जिसमें नया लीडर नोड 9 है

लीडर के काम न करने पर, थ्रेड नेटवर्क अपने-आप ठीक हो जाता है. इसके लिए, वह नए लीडर के साथ नया पार्टीशन बनाता है. नए पार्टीशन का रंग भी अलग होता है.

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

उस लीडर को चुनें जिसका रेडियो बंद था. रेडियो कनेक्टिविटी को वापस लाने के लिए, Action Bar पर मौजूद रेडियो चालू करने के लिए बटन बटन पर क्लिक करें:

नोड 1 का रेडियो फिर से चालू होने के बाद, वह पार्टीशन में शामिल हो जाता है

रेडियो कनेक्टिविटी वापस आने के बाद, लीडर को नेटवर्क से फिर से कनेक्ट करना चाहिए.

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 गायब हो जाना चाहिए:

सिम्युलेशन से नोड 5 मिटा दिया गया है

OTNS-Web की मदद से नोड मिटाना

बॉर्डर राउटर नोड 9 चुनें और नोड 9 मिटाने के लिए, Action Bar पर मौजूद 'मिटाएं' बटन बटन पर क्लिक करें:

बॉर्डर राऊटर नोड 9 मिटा दिया गया

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_.log है. उदाहरण के लिए, लॉग फ़ाइल का एक हिस्सा यहां दिखाया गया है:

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 पैकेट की जांच करने का उदाहरण देखने के लिए, नीचे दिया गया स्क्रीनशॉट देखें.

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 का इस्तेमाल कैसे किया जा सकता है.

आगे क्या करना है?

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

रेफ़रंस दस्तावेज़