เทรดและ IPv6

Matter ใช้ IPv6 สำหรับการสื่อสารในการทำงาน และใช้ประโยชน์จากทั้งการกำหนดที่อยู่ IPv6 Unicast และ Multicast สำหรับการเข้าถึงโหนดและกลุ่มตามลำดับ

พลังงานต่ำ

โหนด Matter บางโหนดเป็นแบบใช้สายและมีงบประมาณพลังงานที่ช่วยให้เปิดวิทยุได้อย่างต่อเนื่อง โหนดประเภทอื่นๆ เช่น เซ็นเซอร์ มีข้อกำหนดให้ทำงานได้เป็นเวลาหลายปีด้วยแบตเตอรี่ โดยใช้สัญญาณวิทยุในเครือข่ายพลังงานต่ำ เช่น Thread สถาปัตยกรรมพร็อกซีและThreadอุปกรณ์ปลายทางที่เข้าสู่โหมดสลีปช่วยให้โหนดที่ใช้พลังงานเต็มรูปแบบสามารถให้บริการฟังก์ชันการทำงานทั้งในระดับเครือข่ายและระดับแอปพลิเคชัน ซึ่งจะช่วยปกป้องโหนดระดับล่างจากการทำธุรกรรมที่ใช้พลังงานมาก

ลักษณะพื้นฐานของ Matter คือทำงานได้ทั้งบนสื่อเครือข่ายที่มีอัตราการส่งข้อมูลสูง เช่น Wi-Fi และอีเทอร์เน็ต รวมถึงบนสื่อที่มีเวลาในการตอบสนองต่ำและแบนด์วิดท์ต่ำ เช่น Thread หากแพ็กเก็ต Multicast ทั้งหมดจาก Wi-Fi เชื่อมต่อกับ Thread เราจะทำให้เครือข่ายทำงานหนักเกินไปและอาจทำให้เครือข่ายล่มได้ เป้าหมายของ Thread คือการเปิดใช้ IPv6 ในเครือข่ายที่ทำงานร่วมกันซึ่งใช้พลังงานต่ำและมีเวลาในการตอบสนองต่ำ ไม่ใช่การโอนข้อมูลที่มีแบนด์วิดท์สูง แม้ว่าโดยทั่วไปแล้วการใช้คำสั่ง ping ของ ICMPv6 ในเครือข่ายภายในของ Thread จะมี RTT ต่ำกว่า 2-3 สิบมิลลิวินาที แต่แบนด์วิดท์ทั้งหมดจะจำกัดอยู่ที่ 250 kbps ที่ IEEE 802.15.4 PHY เมื่อมีการส่งแพ็กเก็ตซ้ำและโอเวอร์เฮด แบนด์วิดท์สูงสุดโดยทั่วไปจะอยู่ที่ประมาณ 125 kbps กล่าวคือ มีขนาดน้อยกว่า Wi-Fi มาก

เฟรมบน IEEE 802.15.4 PHY มีขนาด 127 ไบต์ แต่หน่วยการส่งข้อมูลสูงสุด (MTU) ที่ใหญ่ที่สุด (และโดยทั่วไป) ของแพ็กเก็ต IPv6 ใน Thread คือ 1280 ไบต์ ดังนั้น แพ็กเก็ต IPv6 จึงมักต้องแยกออกเป็นเฟรม PHY หลายเฟรม กระบวนการนี้กำหนดโดย RFC4944

ดูข้อมูลเพิ่มเติมได้ที่การกำหนดที่อยู่ IPv6 ในThreadคู่มือเบื้องต้นบน openthread.io

Border Router

แล้วโหนดจะอยู่ร่วมกันในสื่อการรับส่งทั้ง 2 แบบขณะอยู่ใน Fabric เดียวกันได้อย่างไร แม้ว่าทั้ง 2 เครือข่ายจะใช้ข้อมูลเข้าสู่ระบบ Matter ระดับแอปพลิเคชันร่วมกัน แต่ก็ไม่ได้ใช้เทคโนโลยีลิงก์เดียวกัน ในกรณีนี้ เครือข่ายต้องมี Thread Border Router (TBR) เพื่อเปิดใช้การเชื่อมต่อ BR คือเราเตอร์ Stub IPv6

Stub Router ช่วยให้สามารถเชื่อมต่อระหว่างเครือข่าย Stub กับเครือข่ายปกติได้ เครือข่าย Stub คือเครือข่าย "Last-Mile" ที่ให้การเชื่อมต่อภายนอกแก่สมาชิก แต่ไม่ได้ทำหน้าที่เป็นเส้นทางเครือข่ายการส่งต่อระหว่างเครือข่ายอื่นๆ โดยปกติแล้ว เครือข่าย Stub ของ Matter จะใช้ Thread ดูข้อมูลเพิ่มเติมเกี่ยวกับเครือข่าย Stub ได้ที่ฉบับร่าง RFC

ดังนั้น BR จึงมีหน้าที่เป็นตัวเชื่อมระหว่าง Stub Network กับเครือข่ายโครงสร้างพื้นฐานที่อยู่ติดกัน ซึ่งก็คือเครือข่าย Wi-Fi หรืออีเทอร์เน็ตในพื้นที่ โดยจะส่งต่อเฉพาะแพ็กเก็ตที่เกี่ยวข้องกับเครือข่าย Thread เท่านั้น

กระบวนการนี้ทำได้โดยการกำหนดคำนำหน้า IPv6 ที่แตกต่างกันให้กับ Thread และเครือข่ายโครงสร้างพื้นฐานที่อยู่ติดกัน ดังนั้น BR จะส่งต่อเฉพาะ Unicast ไปยังหรือจากคำนำหน้า IPv6 Thread เท่านั้น

Border Router ยังมีหน้าที่ต่อไปนี้ด้วย

  • กำหนดค่าคำนำหน้าและเส้นทาง IPv6 โดยอัตโนมัติสำหรับทั้ง Thread และเครือข่ายโครงสร้างพื้นฐานที่อยู่ติดกัน เพื่อให้โฮสต์ที่อยู่ฝั่งใดฝั่งหนึ่งของ TBR สามารถสื่อสารกันได้
  • กำลังเผยแพร่แพ็กเก็ตการค้นพบ mDNS DNS-SD ในนามของโหนด Thread เพื่อให้สามารถค้นพบโหนดเหล่านั้นในเครือข่ายโครงสร้างพื้นฐานที่อยู่ติดกัน

ดูข้อมูลเพิ่มเติมได้ที่คู่มือ OpenThread Border Router (OTBR)

IPv6 Multicast

ข้อความกลุ่มก็มีความสำคัญเช่นกัน เนื่องจากช่วยให้ควบคุมโหนด Matter หลายโหนดผ่าน Multicast ได้พร้อมกัน ในการกำหนดเส้นทางการรับส่งข้อมูลนี้ไปยังเครือข่าย Thread ทั้ง Matter และ Thread จะใช้Unicastรูปแบบการกำหนดที่อยู่ IPv6 แบบอิงตามคำนำหน้าMulticastที่กำหนดโดย RFC 3306

วิธีนี้ช่วยให้สามารถเลือกโหนดปลายทางของแพ็กเก็ต Multicast ตามคำนำหน้า IPv6 Unicast ที่ใช้ร่วมกัน

ตัวอย่างเช่น ที่อยู่ Matter Multicast อาจมีลักษณะดังนี้

FF35:0040:FD<Fabric ID>00:<Group ID>

ตารางที่ 1 แสดงรายละเอียดวิธีสร้างที่อยู่นี้

ตารางที่ 1: Unicast ที่อยู่ IPv6 ตามคำนำหน้า
Bits คำอธิบาย
12 บิต 0xFF3
4 บิต 0x05

ขอบเขต: site-local

8 บิต 0x00

reserved

8 บิต 0x40

ระบุคำนำหน้าแบบยาว 64 บิต

8 บิต 0xFD

กำหนดคำนำหน้า ULA

56 บิต รหัส Fabric
8 บิต 0x00
16 บิต รหัสกลุ่ม

ดูข้อมูลเพิ่มเติมได้ในส่วน Multicast ของคู่มือเบื้องต้นเกี่ยวกับ Thread และใน RFC เอง

เมื่อสร้างที่อยู่ IPv6 Multicast ที่อยู่ดังกล่าวจะมี 56 บิตแรกของรหัส Fabric ด้วย ความหมายที่สำคัญคือขอบเขตของ Multicast อยู่ภายใน Fabric ขณะที่ที่อยู่ Unicast จะแชร์ระหว่าง Fabric โหนดที่มีหลายแฟบริกอาจมีที่อยู่ Multicast หลายรายการซึ่งกำหนดกลุ่มโหนดที่ทับซ้อนกันซึ่งกำหนดขอบเขตไว้ที่แต่ละแฟบริก

พอร์ต

Matter ใช้พอร์ต 5540 สำหรับมัลติแคสต์