網路探索與架構

前往 GitHub 查看原始碼

執行緒網路

執行緒網路由三個專屬 ID 來識別:

  • 2 位元組個人區域網路 ID (PAN ID)
  • 8 位元組擴充個人區域網路 ID (XPAN ID)
  • 使用者可理解的網路名稱

舉例來說,Thread 網路可能會有下列 ID:

ID
PAN ID 0xBEEF
XPAN ID 0xBEEF1111CAFE2222
網路名稱 yourThreadCafe
OT 主動掃描

在建立新的 Thread 網路或搜尋現有網路以加入時,Thread 裝置會在無線電範圍內,針對 802.15.4 網路執行主動掃描:

  1. 設備在特定通道上進行 802.15.4 信息請求。
  2. 另一方面,任何路由器或路由器符合資格的最終裝置 (REED) 都會播送包含其執行緒 PAN ID、XPAN ID 和網路名稱的信標。
  3. 裝置會針對每個頻道重複執行前兩個步驟。

當 Thread 裝置探索完某個範圍內的所有網路後,即可將其附加到現有網路。如果沒有可用網路,則可建立新的網路。

Thread 使用網狀連結建立 (MLE) 通訊協定來設定連結,並將網路相關資訊提供給 Thread 裝置。

連結設定中的 MLE 會用於:

  • 探索鄰近裝置的連結
  • 判斷鄰近裝置的連結品質
  • 建立鄰近裝置的連結
  • 與對等點協商連結參數 (裝置類型、頁框計數器、逾時)

MLE 將下列類型的資訊傳播給想要建立連結的裝置:

  • 領先者資料 (待開發客戶 RLOC、分區 ID、分區權重)
  • 網路資料 (網路網格的前置字串、位址自動設定、較為明確的路徑)
  • 路徑傳播

執行緒中的路徑傳播作業與轉送資訊通訊協定 (RIP) 類似,後者是距離向量向量轉送通訊協定。

建立新的網路

如果裝置選擇建立新的網路,就會選取最繁忙的頻道,以及其他網路未使用的 PAN ID,然後成為路由器並由其自己選取。本裝置會將 MLE 廣告訊息傳送給其他 802.15.4 裝置,通知其連結狀態,並回應其他執行中掃描作業的 Thread 裝置回應 Beacon 要求。

加入現有網路

如果裝置選擇加入現有的網路,就會將其頻道、PAN ID、XPAN ID 和網路名稱設為與 Thread 佣金目標的目標網路相符,然後再執行 MLE 附加程序,以做為子項進行附加 (結束裝置)。這個流程會用於下層連結。

  1. 子項傳送一個多點的父項要求至目標網路中的所有相鄰路由器和 REED。
  2. 所有相鄰的路由器和 REED (如果父項要求掃描遮罩包含 REED) 都會傳送父項回應與它們的相關資訊。
  3. 子項選擇一個父項裝置,並傳送子項 ID 要求給該裝置。
  4. 父項會傳送子項 ID 回應來確認連結建立。

1. 家長請求

父項要求是來自連結裝置的多播要求,可用來探索目標網路中鄰近的路由器和路由器適用的最終裝置 (REED)。

OT MLE 附加家長要求
家長請求訊息內容
模式 說明連接的裝置
挑戰 測試家長回覆時間表,避免重播攻擊
掃描遮罩 將要求限制為僅限路由器,或是同時限制路由器和 REED

2. 家長回覆

父項回應是對父項要求提供的單向回應,可向連結的裝置提供路由器或 REED 的相關資訊。

OT MLE 附加家長回覆
上層回應訊息內容
版本 Thread 通訊協定版本
回應 家長要求驗證
連結頁框計數器 802.15.4 路由器/REED 上的幀計數器
MLE 影格計數器 路由器/REED 上的 MLE 影格計數器
來源地址 路由器/REED 的 RLOC16
連結 Margin 接收路由器/REED 的訊號品質
連線能力 說明路由器/REED 的連線能力
主管資料 路由器/REED 負責人的相關資訊
挑戰 測試子 ID 要求的時間表,避免重播攻擊

3. 子 ID 要求

子 ID 要求是附加的裝置 (Child) 的單向請求,這些要求會傳送至路由器或 REED (父項),以建立子項父項連結。如果要求傳送至 REED,系統會自行升級到路由器,再接受要求。

OT MLE 附加子 ID 要求
子 ID 要求訊息內容
版本 Thread 通訊協定版本
回應 家長回覆挑戰賽複本
連結頁框計數器 802.15.4 子系框架幀
MLE 影格計數器MLE 影格數上的子項計數
模式 描述小孩
逾時 上層項目移除下層項目之前的閒置時間長度
地址註冊 (僅限 MED 和 SED) 註冊 IPv6 位址

4. 孩童 ID 回應

子 ID 回應是父項傳送的單向回應,系統會發送給子項,確認子項已建立連結。

OT MLE 附加子 ID 回應
孩童 ID 回應訊息內容
來源地址 家長的 RLOC16
地址 16 孩童 RLOC16
主管資料 家長領導人的相關資訊 (RLOC、分區 ID、分區權重)
網路資料 執行緒網路相關資訊 (網狀前置字串、位址自動設定、較為明確的路徑)
路徑 (僅限 REED) 路徑傳播
逾時 上層項目移除下層項目之前的閒置時間長度
地址註冊 (僅限 MED 和 SED) 確認已註冊的地址

複習內容

涵蓋內容:

  • Thread 裝置已針對現有網路執行主動掃描
  • Thread 使用網格連結建立作業來設定連結,並傳播網路裝置的相關資訊
  • MLE 廣告訊息能讓其他 Thread 裝置瞭解裝置的網路和連結狀態
  • MLE 附加程序會建立子項與上層連結

測驗您的理解程度

哪些 ID 不會用於識別 Thread 網路?
2 位元組的個人區域網路 ID (PAN ID)。
不正確。執行緒網路部分是以 PAN ID 來識別。
8 位元組的擴充個人區域網路 ID (XPAN ID)。
不正確。執行緒網路部分是以 XPAN ID 來識別。
使用者可理解的網路名稱。
不正確。執行緒網路部分由使用者可理解的網路名稱識別。
32 個字元的 SSID。
答對了,與 802.11 WiFi 網路不同,Thread 網路識別碼不會使用 SSID。
上層請求的用途為何?
探索目標網路中鄰近的路由器和路由器符合資格的裝置 (REED)。
答對了,父項要求是由要附加至網路的裝置發出。
宣布路由器即將成為父項。
不正確。路由器不會啟動與其他網路裝置的父項/子項關係。而網路裝置則會選取路由器,使其成為其子項。
要求將符合路由器資格的最終裝置升級為路由器。
答錯了。
家長請求會使用哪種類型的地址?
單播
答錯了。
Anycast
答錯了。
多播
正確。
廣播訊息
答錯了。
當裝置最初連接至 Thread 網路時,裝置分類是什麼?
兒童 (結束裝置)
答對了,加入 Thread 網路的裝置一律會以該網路的「結束裝置」的形式啟動。
FTD (全執行緒裝置)
答錯了。
REED (路由器適用的最終裝置)
答錯了。