פרוטוקול Thread ו-IPv6

Matter משתמש ב-IPv6 לתקשורת התפעולית שלו, וגם משתמש גם ב-IPv6 Unicast וגם ב-Multicast פנייה לצורך גישה לצמתים ולקבוצות שלו, בהתאמה.

צריכת אנרגיה נמוכה

חלק מהצמתים של Matter הם קוויים ויש להם תקציבי אנרגיה שמאפשרות להן להפעיל את הרדיו באופן רציף. סוגים אחרים של צמתים כמו לחיישנים יש דרישות לפעול במשך שנים על סוללה, לתפעל את מכשירי הרדיו שלהם ברשתות עם מתח נמוך כמו Thread. שרת ה-proxy של הארכיטקטורה, וגם Thread מכשירי קצה ישנים, מאפשר ל-Nodes שמופעלים באופן מלא לספק גם ברמת הרשת וגם ברמת האפליקציה פונקציונליות שמבודדת את צומתי הצאצאים שלהם מפני צריכת אנרגיה גבוהה עסקאות.

היבט בסיסי של Matter הוא שהוא פועל גם אמצעי הגעה לאתר של רשתות בתפוקה גבוהה, כמו Wi-Fi ואתרנט, אבל גם עם זמן אחזור קצר, רוחב פס נמוך, כמו Thread. אם כל האפשרויות Multicast מנות מרשת Wi-Fi שודרו אל Thread, העמסנו את הרשת, ויכול להיות להציף אותו. המטרה של Thread היא להפעיל IPv6 ברשתות רשתות רשתות (mesh) עם צריכת אנרגיה נמוכה וזמן אחזור קצר, ולא בהעברת נתונים ברוחב פס גבוה. זמן ה-RTT של ה-pings של Thread ברשת מקומית הוא בדרך כלל כמה עשרות אלפיות השנייה, אבל רוחב הפס הכולל שלו מוגבל ל-250kbps ב-PHY של IEEE 802.15.4. בשידורים חוזרים של חבילות ובתקורה, בדרך כלל רוחב הפס המקסימלי הוא כ-125kbps. במילים אחרות, סדר גודל קטן מ- Wi-Fi.

המסגרות ב-IEEE 802.15.4 PHY הן 127 בייטים, אבל הגדול ביותר (והטיפוסי) יחידת שידור מקסימלית (MTU) של חבילות IPv6 ב-Thread הוא 1280 בייטים. לכן, בדרך כלל צריך לפצל חבילות IPv6 למספר מסגרות PHY. התהליך הזה מוגדר על ידי RFC4944.

למידע נוסף, אפשר לעיין בכתובות IPv6. בפיימר של Thread בתאריך openthread.io.

נתבי גבול

אז איך Nodes יכולים להתקיים בו-זמנית בשני אמצעי התעבורה וגם באותו מארג? למרות ששתי הרשתות משתפות Matter ברמת האפליקציה בפרטי הכניסה שלהם, הם לא חולקים את אותה טכנולוגיית קישורים. במקרה הזה, צריך Thread Border Router (BR) כדי להפעיל קישוריות. ראשי ה-BR הם נתבי Stub IPv6.

נתבי Stub מאפשרים קישוריות בין רשתות stub לרשתות רגילות. Sumb Network (רשת לשונית) היא "הכנסה אחרונה" רשת שמספקת קישוריות חיצונית חברים בה, אבל הוא לא משמש כנתיב של רשת תחבורה ציבורית בין רשתות אחרות. בדרך כלל, Matter רשתות Stub הן מבוססת על Thread. למידע נוסף, אפשר לעיין בטיוטה של RFC. לקבלת מידע נוסף על רשתות stub.

לכן, ברמת BR, הקישור בין רשת ה-Stub לבין Adjacent Infrastructure Network (רשת התשתית הסמוכה) הוא רשת ה-Wi-Fi או רשת ה-Ethernet המקומית. הם מעבירים רק את החבילות שרלוונטיות לרשת Thread.

תהליך זה מתבצע על ידי הקצאת קידומות שונות של IPv6 ל- Thread ורשתות תשתית סמוכות. לכן, ה-BR מעביר רק הודעות unicast אל או מהקידומת Thread IPv6.

נתבי גבולות אחראים גם על:

  • הגדרה אוטומטית של קידומות ונתיבים של IPv6 עבור Thread ורשתות תשתית סמוכות, כדי מארחים משני הצדדים של נתב הגבול Thread לתקשר.
  • פרסום חבילות גילוי mDNS DNS-SD מטעם Thread צמתים, כך שניתן יהיה לגלות אותם בסמוך רשת תשתית.

מידע נוסף זמין במדריך Border Router באתר openthread.io.

IPv6 Multicast

גם הודעות קבוצתיות חשובות כי הן מאפשרות שליטה בו-זמנית על מספר צומתי Matter עד Multicast. כדי לנתב את התנועה הזו לרשת Thread, גם Matter וגם Thread מטמיעים את Unicast Prefix-based IPv6 Multicast Addressing Scheme (הסכימה לכתובת IPv6 שמבוססת על קידומת) שמוגדרת ב-RFC 3306.

השיטה הזו מאפשרת לבחור את צומתי היעד של חבילה אחת (Multicast) על סמך IPv6 המשותף שלה קידומת Unicast.

לדוגמה, כתובת Matter Multicast עשוי להיראות כך:

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

טבלה 1 מפרטת את המבנה של הכתובת הזו:

טבלה 1: Unicast כתובות IPv6 מבוססות קידומת
ביטים תיאור
12 ביט 0xFF3
4 סיביות 0x05

היקף: site-local

8 סיביות 0x00

שמור

8 סיביות 0x40

מציין קידומת באורך של 64 ביט

8 סיביות 0xFD

הקצאת קידומת של ULA

56 סיביות מזהה הבד
8-ביט 0x00
16-ביט מזהה קבוצה

מידע נוסף זמין Multicast בקטע של Primer Thread וב-RFC עצמו.

כאשר נוצרות כתובות IPv6 מסוג Multicast, הן כוללות גם את 56 הביטים העליונים של מזהה ה-Fabric. המשמעות החשובה היא שהיקף Multicast נמצא בתוך בד, ואילו Unicast כתובות משותפות בין Fabrics. צמתים עם בדים רבים עלולים יש מספר כתובות Multicast שמגדירות צומת חופף קבוצות בהיקף של כל בד.

היציאות

Matter משתמש ביציאה 5540 בשביל השידורים החיים שלו.