天天看點

網絡發現與形成

Thread 網絡

Thread 網絡由三個唯一的辨別符辨別:

  • 2 位元組的 PAN ID(Personal Area Network ID,個域網辨別符)
  • 8 位元組的 XPAN ID(Extended Personal Area Network ID,擴充個域網辨別符)
  • 友善人類閱讀的 Network Name(網絡名稱)

例如,一個 Thread 網絡可能具有以下辨別符:

辨別符
PAN ID

0xBEEF

XPAN ID

0xBEEF1111CAFE2222

Network Name

yourThreadCafe

網絡發現與形成

在建立新的 Thread 網絡或搜尋現有的網絡時,Thread 裝置會主動掃描射頻範圍内的 802.15.4 網絡:

  1. 裝置在特定 Channel 上廣播 802.15.4 信标請求(Beacon Request)。
  2. 範圍内的所有 Router 或 REED 都會廣播包含其 Thread 網絡 PAN ID、XPAN ID 和 Network Name 的信标(Beacon),以作為回應。
  3. 裝置為每個 Channel 重複前兩個步驟。

Thread 裝置發現範圍内的所有網絡後,可以選擇連接配接到現有的網絡,也可以在未發現任何網絡的情況下建立新的網絡。

Mesh Link Establishment

Thread 使用 MLE(Mesh Link Establishment)協定來配置鍊路并将網絡的相關資訊傳播到 Thread 裝置。

在鍊路配置中,MLE 用于:

  • 發現相鄰裝置的鍊路
  • 确認到相鄰裝置的鍊路品質
  • 建立到相鄰裝置的鍊路
  • 與對端協商鍊路參數(裝置類型、幀計數器、逾時)

MLE 将以下類型的資訊傳播給希望建立鍊路的裝置:

  • Leader data(Leader RLOC, Partition ID(分區辨別符), Partition weight(分區權重))
  • Network data(on-mesh prefixes, address autoconfiguration(位址自動配置), more-specific routes(具體路由))
  • Route propagation(路由傳播)

Thread 中路由傳播的工作原理類似于 RIP(Routing Information Protocol,路由資訊協定),RIP 是一種距離矢量路由協定。

Note: 僅當 Thread 裝置通過 Thread Commissioning 獲得 Thread 網絡憑據後,才會繼續進行 MLE 過程。Commissioning 和安全性将在本教程的後續部分中深入介紹。目前,假定裝置已認證 Commissioning。

建立新網絡

如果裝置選擇建立新網絡,它将選擇最不繁忙的 Channel 和其他網絡未使用的 PAN ID,然後成為 Router 并選舉自己為 Leader。該裝置将 MLE Advertisement 消息發送到其他 802.15.4 裝置,以通知其鍊路狀态,并響應其他執行主動掃描的 Thread 裝置所發出的信标請求。

加入現有網絡

如果裝置選擇加入到現有的網絡,則會通過 Thread Commissioning 将其 Channel、PAN ID、XPAN ID 和 Network Name 配置為與目标網絡相同,然後進行 MLE Attach 過程以作為子節點(End Device)進行加入。此過程用于“父子鍊路(Child-Parent link)”。

Key Point: 每個裝置(無論是否具有充當 Router 的能力),最初都作為子裝置(End Device)連接配接到 Thread 網絡。

  1. 子節點向目标網絡中的所有相鄰的 Router 和 REED 發送多點傳播 Parent Request。
  2. 所有相鄰的 Router 和 REED(如果 Parent Request Scan Mask(父節點請求掃描掩碼)包括了 REED)都應發送 Parent Response 以将其自身的資訊告訴給子節點。
  3. 子節點選擇一個父節點,并向其發送 Child ID Request。
  4. 父節點發送 Child ID Response 以确認鍊路建立。

1. Parent Request

Parent Request 是來自待連接配接裝置的多點傳播請求,用于發現目标網絡中的相鄰的 Router 和 REED。

網絡發現與形成
Parent Request Message Contents
Mode 描述待連接配接裝置
Challenge 測試 Parent Response 的時效性,以防止重播攻擊
Scan Mask 将請求限制為僅 Router 或 Router 和 REED

2. Parent Response

Parent Response 是對 Parent Request 的單點傳播響應,它向待連接配接裝置提供有關 Router 或 REED 的資訊。

網絡發現與形成
Parent Response Message Contents
Version Thread 協定版本
Response Parent Request Challenge 的副本
Link Frame Counter Router/REED 上的 802.15.4 幀計數器
MLE Frame Counter Router/REED 上的 MLE 幀計數器
Source Address Router/REED 的 RLOC16
Link Margin Router/REED 的接收信号品質
Connectivity 描述 Router/REED 的連通性
Leader Data 有關 Router/REED 的 Leader 的資訊
Challenge 測試 Child ID Request 的時效性,以防止重播攻擊

3. Child ID Request

Child ID Request 是來自待連接配接裝置(子)的單點傳播請求,該單點傳播請求被發送到 Router(父)或 REED(父),目的是建立父子鍊路。如果将請求發送到 REED,則 REED 會在接受請求之前将自身更新為 Router。

網絡發現與形成
Child ID Request Message Contents
Version Thread 協定版本
Response Parent Response Challenge 的副本
Link Frame Counter Child 上的 802.15.4 幀計數器
MLE Frame Counter Child 上的 MLE 幀計數器
Mode 描述子節點
Timeout 父節點移除子節點之前的閑置時間
Address Registration (MEDs and SEDs only) 注冊 IPv6 位址

4. Child ID Response

Child ID Response 是父節點對 Child ID Request 的單點傳播響應,該響應發送給對應的子節點以确認父子鍊路的建立。

網絡發現與形成
Child ID Response Message Contents
Source Address 父節點的 RLOC16
Address16 子節點的 RLOC16
Leader Data 父節點的 Leader 的相關資訊(RLOC, Partition ID, Partition weight)
Network Data Thread 網絡的相關資訊(on-mesh prefixes, address autoconfiguration, more-specific routes)
Route (REED only) 路由傳播
Timeout 父節點移除子節點之前的閑置時間
|
           

| Timeout | 父節點移除子節點之前的閑置時間 |

| Address Registration (MEDs and SEDs only) | 确認已注冊位址 |

繼續閱讀