IPv6 पता

GitHub पर सोर्स देखें

आइए, देखते हैं कि Thread नेटवर्क में हर डिवाइस की पहचान कैसे करता है. साथ ही, यह भी देखते हैं कि डिवाइस एक-दूसरे से कम्यूनिकेट करने के लिए किस तरह के पतों का इस्तेमाल करते हैं.

स्कोप

OT स्कोप

यूनिकास्ट पते के लिए, Thread नेटवर्क में तीन स्कोप होते हैं:

  • लिंक-लोकल — सभी इंटरफ़ेस, एक रेडियो ट्रांसमिशन से पहुंच सकते हैं
  • मेश-लोकल — सभी इंटरफ़ेस, एक ही थ्रेड नेटवर्क में पहुंच सकते हैं
  • ग्लोबल — सभी इंटरफ़ेस, Thread नेटवर्क के बाहर से ऐक्सेस किए जा सकते हैं

पहले दो स्कोप, Thread नेटवर्क की ओर से तय किए गए प्रीफ़िक्स से मेल खाते हैं. लिंक-लोकल में fe80::/16 प्रीफ़िक्स होते हैं, जबकि मेश-लोकल में fd00::/8 प्रीफ़िक्स होते हैं.

Unicast

ऐसे कई IPv6 यूनिकास्ट पते होते हैं जो एक ही Thread डिवाइस की पहचान करते हैं. स्कोप और इस्तेमाल के उदाहरण के आधार पर, हर फ़ंक्शन अलग-अलग काम करता है.

हम हर टाइप के बारे में विस्तार से बताएं, उससे पहले आइए एक सामान्य टाइप के बारे में ज़्यादा जानें. इसे राउटिंग लोकेटर (आरएलओसी) कहा जाता है. आरएलओसी, नेटवर्क टोपोलॉजी में मौजूद किसी थ्रेड इंटरफ़ेस की पहचान करता है.

राउटिंग लोकेटर कैसे जनरेट होता है

सभी डिवाइसों को एक राउटर आईडी और एक चाइल्ड आईडी असाइन किया जाता है. हर पैरंट, अपने सभी चाइल्ड की एक टेबल बनाए रखता है. इस टेबल में मौजूद जानकारी के आधार पर, टोपोलॉजी में किसी डिवाइस की पहचान की जाती है. उदाहरण के लिए, नीचे दी गई टोपोलॉजी में हाइलाइट किए गए नोड देखें. इनमें, मेश एक्सटेंडर (पंचभुज) में मौजूद संख्या, राउटर आईडी है. साथ ही, एंड डिवाइस (सर्कल) में मौजूद संख्या, चाइल्ड आईडी है:

OT RLOC टोपोलॉजी

हर चाइल्ड राउटर का आईडी, उसके पैरंट (मेश एक्सटेंडर) से जुड़ा होता है. मेश एक्सटेंडर, चाइल्ड डिवाइस नहीं होता. इसलिए, मेश एक्सटेंडर के लिए चाइल्ड आईडी हमेशा 0 होता है. ये वैल्यू, थ्रेड नेटवर्क में मौजूद हर डिवाइस के लिए यूनीक होती हैं. इनका इस्तेमाल RLOC16 बनाने के लिए किया जाता है. RLOC16, RLOC के आखिरी 16 बिट को दिखाता है.

उदाहरण के लिए, सबसे ऊपर बाईं ओर मौजूद नोड (राउटर आईडी = 1 और चाइल्ड आईडी = 1) के लिए, RLOC16 का हिसाब इस तरह लगाया जाता है:

OT RLOC16

आरएलओसी16, इंटरफ़ेस आइडेंटिफ़ायर (आईआईडी) का हिस्सा होता है. यह आईपीवी6 पते के आखिरी 64 बिट से मेल खाता है. कुछ आईआईडी का इस्तेमाल, थ्रेड इंटरफ़ेस के कुछ टाइप की पहचान करने के लिए किया जा सकता है. उदाहरण के लिए, RLOC के लिए IID हमेशा इस फ़ॉर्म में होता है:

0000:00ff:fe00:RLOC16

आईआईडी और मेश-लोकल प्रीफ़िक्स को मिलाकर, आरएलओसी बनता है. उदाहरण के लिए, fde5:8dba:82e1:1::/64 के मेश-लोकल प्रीफ़िक्स का इस्तेमाल करके, उस नोड के लिए RLOC जहां RLOC16 = 0x401 है:

ओटी आरएलओसी

ऊपर दिए गए सैंपल टोपोलॉजी में हाइलाइट किए गए सभी नोड के लिए, इसी लॉजिक का इस्तेमाल करके आरएलओसी का पता लगाया जा सकता है:

OT Topology w/ Address

हालांकि, आरएलओसी टोपोलॉजी में नोड की जगह के हिसाब से तय होता है. इसलिए, टोपोलॉजी में बदलाव होने पर नोड का आरएलओसी बदल सकता है.

उदाहरण के लिए, हो सकता है कि नोड 0x400 को थ्रेड नेटवर्क से हटा दिया गया हो. नोड 0x401 और 0x402, अलग-अलग मेश एक्सटेंडर से नए लिंक बनाते हैं. इसलिए, हर नोड को नया RLOC16 और RLOC असाइन किया जाता है:

बदलाव के बाद ओटी टोपोलॉजी

यूनिकास्ट पते के टाइप

आरएलओसी, Thread डिवाइस के पास मौजूद कई IPv6 यूनीकास्ट पतों में से सिर्फ़ एक है. पतों की दूसरी कैटगरी को एंडपॉइंट आइडेंटिफ़ायर (ईआईडी) कहा जाता है. ये किसी Thread नेटवर्क पार्टीशन में मौजूद यूनीक Thread इंटरफ़ेस की पहचान करते हैं. ईआईडी, Thread नेटवर्क टोपोलॉजी से अलग होते हैं.

यहां यूनिकास्ट के सामान्य टाइप के बारे में बताया गया है.

ऐसा ईआईडी जो एक रेडियो ट्रांसमिशन से पहुंचने वाले थ्रेड इंटरफ़ेस की पहचान करता है.
उदाहरणfe80::54db:881c:3845:57f4
IID802.15.4 एक्सटेंडेड पते के आधार पर
स्कोपलिंक-लोकल
जानकारी
  • इसका इस्तेमाल आस-पास के डिवाइसों का पता लगाने, लिंक कॉन्फ़िगर करने, और राउटिंग की जानकारी का लेन-देन करने के लिए किया जाता है
  • यह राउट किया जा सकने वाला पता नहीं है
  • इसमें हमेशा fe80::/16 का प्रीफ़िक्स होता है

मेश-लोकल ईआईडी (एमएल-ईआईडी)

यह एक ऐसा ईआईडी होता है जो नेटवर्क टोपोलॉजी से अलग, थ्रेड इंटरफ़ेस की पहचान करता है. इस कुकी का इस्तेमाल, एक ही थ्रेड पार्टीशन में थ्रेड इंटरफ़ेस तक पहुंचने के लिए किया जाता है. इसे यूनीक लोकल पता (यूएलए) भी कहा जाता है.
उदाहरणfde5:8dba:82e1:1:416:993c:8399:35ab
IIDरैंडम तरीके से चुना गया, कमीशनिंग पूरी होने के बाद
स्कोपMesh-Local
जानकारी
  • टोपोलॉजी में बदलाव होने पर भी नहीं बदलता
  • ऐप्लिकेशन को इसका इस्तेमाल करना चाहिए
  • इसमें हमेशा fd00::/8 प्रीफ़िक्स होता है

रूटिंग लोकेटर (आरएलओसी)

यह नेटवर्क टोपोलॉजी में मौजूद थ्रेड इंटरफ़ेस की पहचान करता है.
उदाहरणfde5:8dba:82e1:1::ff:fe00:1001
IID0000:00ff:fe00:RLOC16
स्कोपMesh-Local
जानकारी
  • यह तब जनरेट होता है, जब कोई डिवाइस किसी नेटवर्क से कनेक्ट होता है
  • इसका इस्तेमाल, Thread नेटवर्क में IPv6 डेटाग्राम डिलीवर करने के लिए किया जाता है
  • नेटवर्क टोपोलॉजी में बदलाव होने पर, इसमें भी बदलाव होता है
  • आम तौर पर ऐप्लिकेशन इसका इस्तेमाल नहीं करते

Anycast Locator (ALOC)

यह कुकी, डेस्टिनेशन के RLOC की जानकारी न होने पर, RLOC लुकअप के ज़रिए थ्रेड इंटरफ़ेस की पहचान करती है.
उदाहरणfde5:8dba:82e1:1::ff:fe00:fc01
IID0000:00ff:fe00:fcXX
स्कोपMesh-Local
जानकारी
  • fcXX = ALOC डेस्टिनेशन, जो सही RLOC ढूंढता है
  • आम तौर पर ऐप्लिकेशन इसका इस्तेमाल नहीं करते

ग्लोबल यूनिकास्ट पता (GUA)

यह एक ऐसा ईआईडी होता है जो Thread नेटवर्क के अलावा, ग्लोबल स्कोप पर Thread इंटरफ़ेस की पहचान करता है.
उदाहरण2000::54db:881c:3845:57f4
IID
  • एसएलएएसी — डिवाइस खुद ही इसे रैंडम तरीके से असाइन करता है
  • डीएचसीपी — DHCPv6 सर्वर से असाइन किया गया
  • मैन्युअल — इसे ऐप्लिकेशन लेयर असाइन करती है
स्कोपग्लोबल
जानकारी
  • सार्वजनिक IPv6 पता
  • इसमें हमेशा 2000::/3 का प्रीफ़िक्स होता है

मल्टीकास्ट

मल्टीकास्ट का इस्तेमाल, एक साथ कई डिवाइसों पर जानकारी भेजने के लिए किया जाता है. थ्रेड नेटवर्क में, मल्टीकास्ट के लिए कुछ पते रिज़र्व किए जाते हैं. इनका इस्तेमाल अलग-अलग ग्रुप के डिवाइसों के साथ किया जाता है. यह दायरा तय करने पर निर्भर करता है.

IPv6 पता दायरा इन्हें डिलीवर किया गया
ff02::1 लिंक-लोकल सभी एफ़टीडी और एमईडी
ff02::2 लिंक-लोकल सभी एफ़टीडी
ff03::1 Mesh-Local सभी एफ़टीडी और एमईडी
ff03::2 Mesh-Local सभी एफ़टीडी

आपको दिख सकता है कि ऊपर दी गई मल्टीकास्ट टेबल में, स्लीपी एंड डिवाइस (एसईडी) को पाने वाले के तौर पर शामिल नहीं किया गया है. इसके बजाय, थ्रेड लिंक-लोकल और रीऐल्म-लोकल स्कोप यूनिकास्ट प्रीफ़िक्स पर आधारित IPv6 मल्टीकास्ट पते को तय करता है. इसका इस्तेमाल सभी थ्रेड नोड के लिए किया जाता है. इनमें SED भी शामिल हैं. ये मल्टीकास्ट पते, थ्रेड नेटवर्क के हिसाब से अलग-अलग होते हैं. ऐसा इसलिए, क्योंकि यह यूनिकास्ट मेश-लोकल प्रीफ़िक्स पर आधारित होता है. यूनिकास्ट-प्रीफ़िक्स पर आधारित IPv6 मल्टीकास्ट पतों के बारे में ज़्यादा जानकारी के लिए, RFC 3306 देखें.

थ्रेड डिवाइसों के लिए, सूची में शामिल स्कोप के अलावा अन्य स्कोप भी इस्तेमाल किए जा सकते हैं.

एनीकास्ट

किसी डेस्टिनेशन के RLOC की जानकारी न होने पर, ट्रैफ़िक को Thread इंटरफ़ेस पर रूट करने के लिए एनीकास्ट का इस्तेमाल किया जाता है. Anycast Locator (ALOC), Thread पार्टीशन में मौजूद कई इंटरफ़ेस की लोकेशन की पहचान करता है. ALOC के आखिरी 16 बिट को ALOC16 कहा जाता है. यह 0xfcXX फ़ॉर्मैट में होता है, जो ALOC के टाइप को दिखाता है.

उदाहरण के लिए, 0xfc01 और 0xfc0f के बीच का ALOC16, DHCPv6 एजेंट के लिए रिज़र्व किया गया है. अगर किसी खास DHCPv6 एजेंट RLOC के बारे में जानकारी नहीं है (ऐसा शायद इसलिए है, क्योंकि नेटवर्क टोपोलॉजी बदल गई है), तो RLOC पाने के लिए, DHCPv6 एजेंट ALOC को मैसेज भेजा जा सकता है.

Thread, ALOC16 की इन वैल्यू को तय करता है:

ALOC16 टाइप
0xfc00 लीडर
0xfc010xfc0f DHCPv6 एजेंट
0xfc100xfc2f सेवा
0xfc300xfc37 कमिश्नर
0xfc400xfc4e नेबर डिस्कवरी एजेंट
0xfc380xfc3f
0xfc4f0xfcff
बुकिंग की गई

रीकैप

आपने यह सीखा:

  • Thread नेटवर्क में तीन स्कोप होते हैं: लिंक-लोकल, मेश-लोकल, और ग्लोबल
  • किसी थ्रेड डिवाइस में कई यूनिकास्ट IPv6 पते होते हैं
    • आरएलओसी, Thread नेटवर्क में किसी डिवाइस की जगह की जानकारी दिखाता है
    • एमएल-ईआईडी, किसी पार्टीशन में मौजूद थ्रेड डिवाइस के लिए यूनीक होता है. इसका इस्तेमाल ऐप्लिकेशन को करना चाहिए
  • थ्रेड, नोड के ग्रुप को डेटा फ़ॉरवर्ड करने के लिए मल्टीकास्ट का इस्तेमाल करता है
  • जब डेस्टिनेशन का आरएलओसी पता नहीं होता है, तब थ्रेड, एनीकास्ट का इस्तेमाल करता है

Thread के IPv6 पते के बारे में ज़्यादा जानने के लिए, Thread स्पेसिफ़िकेशन के सेक्शन 5.2 और 5.3 देखें.

देखें कि आपको कितना समझ आया

Thread नेटवर्क में यूनिकास्ट ऐड्रेसिंग के लिए, किन तीन स्कोप का इस्तेमाल किया जाता है?
निजी
गलत.
इंटरफ़ेस-लोकल
गलत.
लिंक-लोकल
सही.
साइट-लोकल
गलत.
Mesh-Local
सही.
ग्लोबल
सही.
अगर किसी डिवाइस का चाइल्ड आईडी 0 है, तो इसका क्या मतलब है?
डिवाइस, बच्चे के लिए है.
गलत.
डिवाइस, एक्सटेंडर के तौर पर काम कर सकता है.
आपका जवाब सही जवाब के बहुत करीब है, लेकिन गलत है.
डिवाइस एक मेश एक्सटेंडर है.
सही. मेश एक्सटेंडर का चाइल्ड आईडी हमेशा 0 होता है.
Thread नेटवर्क पर मौजूद कैमरे को नया RLOC16 और RLOC मिलता है. इनमें से किस इवेंट की वजह से ऐसा हुआ होगा?
किसी व्यक्ति ने रिमोट तौर पर कैमरे से इमेज डाउनलोड की हैं.
गलत. इस इवेंट का Thread नेटवर्क पर कोई असर नहीं पड़ेगा.
कोई मेश एक्सटेंडर, नेटवर्क से डिसकनेक्ट हो गया है.
सही. जब कोई मेश एक्सटेंडर नेटवर्क से हट जाता है, तो नेटवर्क टोपोलॉजी बदल जाती है. इससे डिवाइस खुद को मेश एक्सटेंडर के तौर पर प्रमोट कर सकता है और नया आरएलओसी पा सकता है.
कैमरा स्लीप मोड में चला गया है. इससे नेटवर्क टोपोलॉजी बदल गई है.
गलत. स्लीप मोड में जाने पर, डिवाइस को नया नेटवर्क पता मिलना ज़रूरी नहीं है.
Thread नेटवर्क पर मौजूद कोई डिवाइस, ff03::2 मल्टीकास्ट पते की सदस्यता लेता है. इससे हमें डिवाइस के बारे में क्या पता चलता है?
यह एक मिनिमल एंड डिवाइस (एमईडी) है.
गलत.
यह एक फ़ुल एंड डिवाइस (एफ़ईडी) है.
गलत. (अहम जानकारी: ऐसा हो सकता है कि यह फ़ेडरल इलेक्शन हो या न हो.)
यह एक मिनिमल थ्रेड डिवाइस (एमटीडी) है.
गलत.
यह एक फ़ुल थ्रेड डिवाइस (एफ़टीडी) है.
सही. सिर्फ़ फ़ुल थ्रेड डिवाइस, ff03::2 मल्टीकास्ट पते की सदस्यता लेते हैं. वे ऐसा Mesh-Local स्कोप में करते हैं.
नोड के ग्रुप को डेटा फ़ॉरवर्ड करने के लिए, Thread किस तरह की एड्रेसिंग और राउटिंग का इस्तेमाल करता है?
यूनिकास्ट
गलत.
एनीकास्ट
गलत.
मल्टीकास्ट
सही.
ब्रॉडकास्ट
गलत.
जब किसी Thread डिवाइस को यह नहीं पता होता कि मैसेज पाने वाले डिवाइस का RLOC क्या है, तो वह किस तरह की एड्रेसिंग और राउटिंग का इस्तेमाल करता है?
यूनिकास्ट
गलत.
एनीकास्ट
सही. Anycast की मदद से, कोई डिवाइस ऐसे नोड तक पहुंच सकता है जिसका RLOC पता नहीं है. इसके लिए, डिवाइस के ALOC का इस्तेमाल किया जाता है.
मल्टीकास्ट
गलत.
ब्रॉडकास्ट
गलत.