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

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

צריכת חשמל נמוכה

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

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

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

מידע נוסף זמין במאמר בנושא הקצאת כתובות IPv6 ב-Thread Primer ב-openthread.io.

נתבי גבולות

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

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

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

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

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

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

מידע נוסף זמין במדריך בנושא נתב גבולות באתר openthread.io.

IPv6 Multicast

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

השיטה הזו מאפשרת לבחור את צמתי היעד של מנהל התקנים על סמך הקידומת המשותפת שלהם ב-IPv6.MulticastUnicast

לדוגמה, כתובת 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 ביטים מזהה בד
‫8 ביטים 0x00
‫16 ביט מזהה קבוצה

מידע נוסף מופיע בקטע Multicast ב-Thread Primer וב-RFC עצמו.

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

היציאות

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