มาดูกันว่า Thread ระบุอุปกรณ์แต่ละเครื่องในเครือข่ายอย่างไร และใช้ที่อยู่ประเภทใดในการสื่อสารกัน
ขอบเขต
เครือข่ายเทรดมีขอบเขต 3 อย่างสำหรับการกำหนดที่อยู่แบบ Unicast ดังนี้
- Link-Local - อินเทอร์เฟซทั้งหมดที่เข้าถึงได้ด้วยการส่งสัญญาณวิทยุครั้งเดียว
- Mesh-Local - อินเทอร์เฟซทั้งหมดที่เข้าถึงได้ภายในเครือข่าย Thread เดียวกัน
- ส่วนกลาง - อินเทอร์เฟซทั้งหมดที่เข้าถึงได้จากภายนอกเครือข่าย Thread
ขอบเขต 2 รายการแรกสอดคล้องกับคำนำหน้าที่กำหนดโดยเครือข่าย Thread
Link-Local มีคำนำหน้าเป็น fe80::/16 ส่วน Mesh-Local มีคำนำหน้าเป็น
fd00::/8
Unicast
มีที่อยู่ IPv6 แบบ Unicast หลายรายการที่ระบุอุปกรณ์ Thread เครื่องเดียว โดยแต่ละฟังก์ชันจะแตกต่างกันไปตามขอบเขตและกรณีการใช้งาน
ก่อนจะลงรายละเอียดแต่ละประเภท มาดูข้อมูลเพิ่มเติมเกี่ยวกับประเภทที่ใช้กันทั่วไปที่เรียกว่า Routing Locator (RLOC) กันก่อน RLOC จะระบุอินเทอร์เฟซ Thread ตาม ตำแหน่งในโทโพโลยีเครือข่าย
วิธีสร้างเครื่องมือระบุตำแหน่งการกำหนดเส้นทาง
อุปกรณ์ทั้งหมดจะได้รับรหัสเราเตอร์และรหัสอุปกรณ์ย่อย โดย Parent แต่ละรายการ จะดูแลตารางของ Children ทั้งหมด ซึ่งการรวมกันของตารางเหล่านี้ จะระบุอุปกรณ์ภายในโทโพโลยีได้อย่างไม่ซ้ำกัน ตัวอย่างเช่น พิจารณาโหนดที่ไฮไลต์ในโทโพโลยีต่อไปนี้ ซึ่ง หมายเลขใน Mesh Extender (รูปห้าเหลี่ยม) คือรหัสเราเตอร์ และหมายเลข ในอุปกรณ์ปลายทาง (วงกลม) คือรหัสอุปกรณ์ย่อย
รหัสเราเตอร์ของอุปกรณ์ย่อยแต่ละเครื่องจะสอดคล้องกับอุปกรณ์หลัก (Mesh Extender) เนื่องจาก Mesh Extender ไม่ใช่ไคลเอ็นต์ รหัสไคลเอ็นต์สำหรับ Mesh Extender จึงเป็น 0 เสมอ ค่าเหล่านี้รวมกันจะมีความเฉพาะสำหรับอุปกรณ์แต่ละเครื่องในเครือข่าย Thread และใช้เพื่อสร้าง RLOC16 ซึ่งแสดงถึง 16 บิตสุดท้ายของ RLOC
ตัวอย่างเช่น วิธีคำนวณ RLOC16 สำหรับโหนดด้านซ้ายบน (Router ID = 1 และ Child ID = 1) มีดังนี้
RLOC16 เป็นส่วนหนึ่งของตัวระบุอินเทอร์เฟซ (IID) ซึ่งสอดคล้องกับ 64 บิตสุดท้ายของที่อยู่ IPv6 IID บางรายการสามารถใช้เพื่อระบุอินเทอร์เฟซ Thread บางประเภทได้ ตัวอย่างเช่น IID สำหรับ RLOC จะอยู่ในรูปแบบนี้เสมอ
0000:00ff:fe00:RLOC16
IID เมื่อรวมกับคำนำหน้าใน Mesh จะทำให้เกิด RLOC ตัวอย่างเช่น
เมื่อใช้คำนำหน้า Mesh-Local เป็น fde5:8dba:82e1:1::/64 RLOC สำหรับโหนดที่
RLOC16 = 0x401 จะเป็น
คุณสามารถใช้ตรรกะเดียวกันนี้เพื่อกำหนด RLOC สำหรับโหนดที่ไฮไลต์ทั้งหมดในโทโพโลยีตัวอย่างด้านบนได้
อย่างไรก็ตาม เนื่องจาก RLOC อิงตามตำแหน่งของโหนดในโทโพโลยี RLOC ของโหนดจึงอาจเปลี่ยนแปลงได้เมื่อโทโพโลยีเปลี่ยนแปลง
เช่น อาจมีการนำโหนด 0x400 ออกจากเครือข่าย Thread
โหนด 0x401 และ 0x402 จะสร้างลิงก์ใหม่ไปยัง Mesh Extender อื่นๆ
และระบบจะกำหนด RLOC16
และ RLOC ใหม่ให้แต่ละโหนด
ประเภทที่อยู่ Unicast
RLOC เป็นเพียงที่อยู่ IPv6 แบบ Unicast รายการหนึ่งในหลายๆ รายการที่อุปกรณ์ Thread มีได้ ที่อยู่อีกหมวดหมู่หนึ่งเรียกว่าตัวระบุอุปกรณ์ปลายทาง (EID) ซึ่ง ระบุอินเทอร์เฟซ Thread ที่ไม่ซ้ำกันภายในพาร์ติชันเครือข่าย Thread EID จะ ไม่ขึ้นอยู่กับโทโพโลยีเครือข่ายเทรด
ประเภท Unicast ที่พบบ่อยมีรายละเอียดดังนี้
ที่อยู่ลิงก์ภายใน (LLA) |
|
|---|---|
| EID ที่ระบุอินเทอร์เฟซ Thread ที่เข้าถึงได้ด้วยการส่งสัญญาณวิทยุเพียงครั้งเดียว | |
| ตัวอย่าง | fe80::54db:881c:3845:57f4 |
| IID | อิงตามที่อยู่แบบยาว 802.15.4 |
| ขอบเขต | ลิงก์เฉพาะ |
| รายละเอียด |
|
EID ใน Mesh-Local (ML-EID) |
|
|---|---|
| EID ที่ระบุอินเทอร์เฟซ Thread โดยไม่ขึ้นอยู่กับโทโพโลยีเครือข่าย ใช้เพื่อเข้าถึงอินเทอร์เฟซ Thread ภายในพาร์ติชัน Thread เดียวกัน หรือที่เรียกว่าที่อยู่เฉพาะในเครือข่ายส่วนตัว (ULA) | |
| ตัวอย่าง | fde5:8dba:82e1:1:416:993c:8399:35ab |
| IID | สุ่ม เลือกหลังจากที่การว่าจ้างเสร็จสมบูรณ์ |
| ขอบเขต | Mesh-Local |
| รายละเอียด |
|
ตัวระบุตำแหน่งการกำหนดเส้นทาง (RLOC) |
|
|---|---|
| ระบุอินเทอร์เฟซ Thread ตามตำแหน่งในโทโพโลยีเครือข่าย | |
| ตัวอย่าง | fde5:8dba:82e1:1::ff:fe00:1001 |
| IID | 0000:00ff:fe00:RLOC16 |
| ขอบเขต | Mesh-Local |
| รายละเอียด |
|
ตัวระบุตำแหน่ง Anycast (ALOC) |
|
|---|---|
| ระบุอินเทอร์เฟซ Thread ผ่านการค้นหา RLOC เมื่อไม่ทราบ RLOC ของปลายทาง | |
| ตัวอย่าง | fde5:8dba:82e1:1::ff:fe00:fc01 |
| IID | 0000:00ff:fe00:fcXX |
| ขอบเขต | Mesh-Local |
| รายละเอียด |
|
ที่อยู่ Global Unicast (GUA) |
|
|---|---|
| EID ที่ระบุอินเทอร์เฟซ Thread ในขอบเขตทั่วโลก นอกเหนือจากเครือข่าย Thread | |
| ตัวอย่าง | 2000::54db:881c:3845:57f4 |
| IID |
|
| ขอบเขต | ทั่วโลก |
| รายละเอียด |
|
มัลติแคสต์
มัลติแคสต์ใช้เพื่อสื่อสารข้อมูลไปยังอุปกรณ์หลายเครื่องพร้อมกัน ในเครือข่าย Thread ระบบจะสงวนที่อยู่เฉพาะสำหรับการใช้งานมัลติแคสต์กับกลุ่มอุปกรณ์ต่างๆ โดยขึ้นอยู่กับขอบเขต
| ที่อยู่ IPv6 | ขอบเขต | ส่งถึง |
|---|---|---|
ff02::1 |
ลิงก์เฉพาะ | FTD และ MED ทั้งหมด |
ff02::2 |
ลิงก์เฉพาะ | FTD ทั้งหมด |
ff03::1 |
Mesh-Local | FTD และ MED ทั้งหมด |
ff03::2 |
Mesh-Local | FTD ทั้งหมด |
คุณอาจสังเกตเห็นว่าอุปกรณ์ปลายทางที่อยู่ในโหมดสลีป (SED) ไม่ได้รวมอยู่ในตารางการส่งแบบหลายผู้รับด้านบน แต่ Thread จะกำหนดคำนำหน้าแบบ Unicast ที่อิงตาม IPv6 Multicast ที่อยู่ที่มีขอบเขตแบบลิงก์เฉพาะและขอบเขตเฉพาะของ Realm ซึ่งใช้สำหรับโหนด Thread ทั้งหมด รวมถึง SED ที่อยู่มัลติแคสต์เหล่านี้จะแตกต่างกันไปตามเครือข่าย Thread เนื่องจากสร้างขึ้นบนส่วนนำหน้า Mesh-Local แบบ Unicast (ดูรายละเอียดเพิ่มเติมเกี่ยวกับที่อยู่มัลติแคสต์ IPv6 ที่อิงตามส่วนนำหน้าแบบ Unicast ได้ที่ RFC 3306 )
นอกจากนี้ อุปกรณ์ Thread ยังรองรับขอบเขตที่กำหนดเองนอกเหนือจากที่ระบุไว้แล้วด้วย
Anycast
Anycast ใช้เพื่อกำหนดเส้นทางการรับส่งข้อมูลไปยังอินเทอร์เฟซ Thread เมื่อไม่ทราบ RLOC ของปลายทาง Anycast Locator (ALOC) ระบุตำแหน่งของ
อินเทอร์เฟซหลายรายการภายในพาร์ติชัน Thread 16 บิตสุดท้ายของ ALOC
เรียกว่า ALOC16 อยู่ในรูปแบบ 0xfcXX ซึ่ง
แสดงถึงประเภทของ ALOC
เช่น ALOC16 ระหว่าง 0xfc01 กับ 0xfc0f จะสงวนไว้สำหรับตัวแทน DHCPv6
หากไม่ทราบ RLOC ของเอเจนต์ DHCPv6 ที่เฉพาะเจาะจง (อาจเป็นเพราะโทโพโลยีเครือข่ายมีการเปลี่ยนแปลง) คุณจะส่งข้อความไปยัง ALOC ของเอเจนต์ DHCPv6 เพื่อรับ RLOC ได้
Thread กำหนดค่า ALOC16 ต่อไปนี้
| ALOC16 | ประเภท |
|---|---|
0xfc00 |
ผู้นำ |
0xfc01 - 0xfc0f |
DHCPv6 Agent |
0xfc10 - 0xfc2f |
บริการ |
0xfc30 - 0xfc37 |
ประธานสมาคม |
0xfc40 - 0xfc4e |
Neighbor Discovery Agent |
0xfc38 – 0xfc3f0xfc4f – 0xfcff |
จองแล้ว |
สรุป
สิ่งที่คุณได้เรียนรู้
- เครือข่าย Thread ประกอบด้วย 3 ขอบเขต ได้แก่ Link-Local, Mesh-Local และ Global
- อุปกรณ์ Thread มีที่อยู่ IPv6 แบบ Unicast หลายรายการ
- RLOC แสดงตำแหน่งของอุปกรณ์ในเครือข่าย Thread
- ML-EID จะไม่ซ้ำกันสำหรับอุปกรณ์ Thread ภายในพาร์ติชัน และแอปพลิเคชันควรใช้ ML-EID
- Thread ใช้การส่งแบบหลายผู้รับเพื่อส่งต่อข้อมูลไปยังกลุ่มโหนด
- Thread จะใช้ Anycast เมื่อไม่ทราบ RLOC ของปลายทาง
ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดที่อยู่ IPv6 ของ Thread ได้ที่ส่วน 5.2 และ 5.3 ของข้อกำหนดของ Thread
ทดสอบความเข้าใจ
ff03::2
มัลติแคสต์ ข้อมูลนี้บอกอะไรเราเกี่ยวกับอุปกรณ์ff03::2 โดยจะดำเนินการในขอบเขต Mesh-Local