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

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

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

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

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

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

מידע נוסף זמין במאמר IPv6 Addressing במדריך Thread באתר openthread.io.

נתבי גבולות

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

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

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

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

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

  • הגדרת קידומות ונתיבים של 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

היקף: אתר מקומי

‫8 ביט 0x00

שמור

‫8 ביט 0x40

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

‫8 ביט 0xFD

מגדיר קידומת ULA

‫56 ביטים מזהה Fabric
‫8 ביט 0x00
‫16 ביט מזהה קבוצה

מידע נוסף זמין בקטע Multicast במדריך Thread וב-RFC עצמו.

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

היציאות

‫Matter משתמש ביציאה 5540 לשידורי Multicast.