Thread 網路
Thread 網路會透過三種專屬 ID 識別:
- 2 位元組的個人區域網路 ID (PAN ID)
- 8 位元組的擴充個人區域網路 ID (XPAN ID)
- 使用者容易理解的網路名稱
舉例來說,Thread 網路可能會有下列 ID:
| ID | 值 |
|---|---|
| PAN ID | 0xBEEF |
| XPAN ID | 0xBEEF1111CAFE2222 |
| 網路名稱 | yourThreadCafe |
建立新的 Thread 網路或搜尋要加入的現有網路時,Thread 裝置會在無線電範圍內主動掃描 802.15.4 網路:
- 裝置會在特定頻道上廣播 802.15.4 Beacon Request。
- 範圍內的任何擴充器相容裝置 (ECD) 會廣播信標,其中包含 Thread 網路 PAN ID、XPAN ID 和網路名稱。
- 裝置會針對每個頻道重複前兩個步驟。
Thread 裝置偵測到範圍內的所有網路後,可以附加至現有網路,如果沒有偵測到任何網路,則可以建立新網路。
建立網狀連結
Thread 會使用網狀網路連結建立 (MLE) 通訊協定設定連結,並將網路相關資訊散布至 Thread 裝置。
在連結設定中,MLE 用於:
- 探索鄰近裝置的連結
- 判斷與鄰近裝置的連結品質
- 建立與鄰近裝置的連結
- 與對等互連裝置協商連結參數 (裝置類型、影格計數器、逾時)
MLE 會將下列類型的資訊散布給想要建立連結的裝置:
- 領導者資料 (領導者 RLOC、分割區 ID、分割區權重)
- 網路資料 (網路上前置字元、位址自動設定、更具體的路徑)
- 路徑傳播
Thread 中的路徑傳播方式與距離向量路由協定 (RIP) 類似。
建立新的網路
如果裝置選擇建立新網路,會選取最不忙碌的頻道和未被其他網路使用的 PAN ID,然後成為網狀延伸器,並選取自己為領導者。這部裝置會將 MLE 廣告訊息傳送給其他 802.15.4 裝置,告知裝置的連結狀態,並回應執行主動掃描的其他 Thread 裝置傳送的 Beacon 要求。
加入現有網路
如果裝置選擇加入現有網路,會透過 Thread 委任程序設定通道、PAN ID、XPAN ID 和網路名稱,與目標網路相符,然後經過 MLE 附加程序,以子項 (終端裝置) 附加。這個程序適用於子項與父項的連結。
- 子項會將多點播送「家長要求」傳送至目標網路中所有可擴充的鄰近裝置。
- 所有鄰近的 Mesh 擴充器 (以及待機 ECD,如果父項要求掃描遮罩包含待機 ECD) 都會傳送父項回應,其中包含自身的資訊。
- 孩子選擇家長裝置,並傳送 Child ID Request 給該裝置。
- 家長傳送子 ID 回應,確認連結建立。
1. 上層要求
上層要求是來自附加裝置的多點播送要求,用於在目標網路中探索鄰近的擴充器相容裝置。
| 家長要求訊息內容 | |
|---|---|
| 眾數 | 說明附加裝置 |
| 挑戰 | 測試父項回應的即時性,防範重送攻擊 |
| 掃描遮蓋 | 將要求限制為僅限 Mesh 擴充器,或所有支援擴充器的裝置 |
2. 家長回覆
父項回應是父項要求的單點播送回應,可向附加裝置提供支援擴充器的裝置相關資訊。
| 家長回覆訊息內容 | |
|---|---|
| 版本 | Thread 通訊協定版本 |
| 回應 | 家長要求驗證碼副本 |
| 連結影格計數器 | 支援擴充功能的裝置上的 802.15.4 訊框計數器 |
| MLE 影格計數器 | 支援擴充器的裝置上的 MLE 影格計數器 |
| 來源 位址 | 支援擴充功能的裝置 RLOC16 |
| 連結 邊界 | 接收可做為訊號中繼器的裝置訊號品質 |
| 連線能力 | 說明可擴充裝置的連線等級 |
| 領導者 資料 | 可做為擴充器裝置領導者的裝置相關資訊 |
| 挑戰 | 測試子項 ID 要求是否及時,以防範重送攻擊 |
3. 子項 ID 要求
子項 ID 要求是來自附加裝置 (子項) 的單點傳播要求,會傳送至具備擴充功能的裝置 (父項),目的是建立子項與父項的連結。如果要求傳送至待機的支援擴充裝置,該裝置會先升級為網狀擴充裝置,再接受要求。
| 子項 ID 要求訊息內容 | |
|---|---|
| 版本 | Thread 通訊協定版本 |
| 回應 | 家長回覆挑戰副本 |
| 連結影格計數器 | 子項的 802.15.4 影格計數器 |
| MLE 影格計數器 | 子項的 MLE 影格計數器 |
| 眾數 | 描述子項 |
| 逾時 | 家長移除孩子前的閒置時間長度 |
| 地址 註冊 (僅限 MED 和 SED) | 註冊 IPv6 位址 |
4. 子項 ID 回應
子項 ID 回應是上層傳送給子項的單點傳播回應,用於確認已建立子項與上層的連結。
| 子項 ID 回覆訊息內容 | |
|---|---|
| 來源地址 | 上層 RLOC16 |
| Address16 | 子項 RLOC16 |
| 領導者資料 | 父項領導者資訊 (RLOC、分割區 ID、分割區權重) |
| 網路資料 | Thread 網路的相關資訊 (網路上前置字串、位址自動設定、更具體的路徑) |
| 路線 (僅限待機 ECD) | 路徑傳播 |
| 逾時 | 家長移除孩子前的閒置時間長度 |
| 地址登記 (僅限 MED 和 SED) | 確認登記地址 |
重點回顧
學到的內容:
- Thread 裝置會主動掃描現有網路
- Thread 會使用網狀網路連結建立功能設定連結,並散布網路裝置的相關資訊
- MLE 廣告訊息會將裝置的網路和連結狀態告知其他 Thread 裝置
- MLE Attach 程序會建立子項與父項的連結