網路探索與架構

前往 GitHub 查看原始碼

執行緒網路

執行緒網路有三種專屬 ID 可供識別:

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

舉例來說,Thread 網路可能會有下列識別碼:

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

建立新的 Thread 網路或搜尋現有網路時,Thread 裝置會執行 802.15.4 網路在有效範圍內的掃描作業:

  1. 器件在特定通道上發送 802.15.4 信標信息要求。
  2. 因此,範圍內任何路由器或路由器符合資格的裝置 (REED) 都會播送包含其 Thread 網路 PAN ID、XPAN ID 和網路名稱的信標。
  3. 裝置會針對每個管道重複前兩個步驟。

Thread 裝置找到該範圍內的所有網路後,可以將其附加至現有網路;如果沒有發現任何網路,則可建立新的網路。

Thread 使用網狀連結建立 (MLE) 通訊協定來設定網路連結,並將網路的資訊傳播給 Thread 裝置。

在連結設定中,MLE 的用途如下:

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

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

  • 領導者資料 (主管 RLOC、分區 ID、分區權重)
  • 網路資料 (網狀前置字串、位址自動配置、更明確的路徑)
  • 路徑傳播

執行緒中的路徑傳播類似類似路由資訊通訊協定 (RIP) 的類似路徑路由協定 (RIP)。

建立新網路

如果裝置選擇建立新網路,則會選擇最忙碌的管道以及未使用其他網路的 PAN ID,接著將路由器設為路由器,並自行選取主要節點。本裝置會將 MLE 廣告訊息傳送給其他 802.15.4 裝置,以通知其連結狀態,並回應其他執行中執行緒的 Thread 裝置傳送信標要求。

加入現有網路

如果裝置選擇加入現有網路,就會設定其管道、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 通訊協定版本
回應 家長要求挑戰副本
連結頁框計數器 路由器/REED 上的 802.15.4 幀計數器
MLE 框架計數器 路由器/REED 上的 MLE 框架計數器
來源地址 路由器/REED 的 RLOC16
連結 Margin 接收路由器/REED 的訊號品質
連線功能 描述路由器/REED 的連線能力
待開發客戶資料 路由器/REED 領導者的相關資訊
挑戰 測試子 ID 要求的時間軸,避免重播攻擊

3. 子 ID 請求

子 ID 要求是從連結的裝置 (子項) 傳送的單向要求,這些要求會傳送到路由器或 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 附加程序會建立下層家長連結

隨堂測驗

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