OpenThread - Router Selection
Contents
- Connected Dominating Set
- 升級成路由 ( Router )
- 降級成 REED
- 單向接收連結 ( One-way receive links )
Connected Dominating Set
路由 ( Router ) 必需是一個 Connected Dominating Set ( CDS ) 型式,其特性如下:
資料來源: openthread.io
- 任兩個路由間只有一個路由路徑
- 在 Thread 網路中的任何一個路由都可以到達任何其他路由 ( Router )
- 在 Thread 網路中的每個 End Device 都直接連接到路由 ( Router )
- 分散式演算法維護 CDS,以確保最低程度的冗餘 ( redundancy )
- 每個裝置最初都是以 End Device ( Child ) 角色連接到網路
- 隨著 Thread 網路狀態的改變,透過演算法新增或移除 Router 來維護 CDS
Thread 新增 Router 特性:
- 如果網路路由閾值 ( threshold ) 低於 16,則增加 Router 以提高覆蓋範圍
- 增加路徑多樣性
- 保持最低冗餘水平
- 延伸連接與支持更多 Children
Thread 刪除 Router 特性:
- 減少路由狀態以符合 32 個路由的最大上限
- 當需要時,在網路的其他部分允許新增路由 ( Router )
升級成路由 ( Router )
- 附加到 Thread 網路之後,Child 裝置能選擇成為路由 ( Router )
- 在啟動 MLE 連結請求程序之前,Child 傳送位址徵求訊息 ( Address Solicit message ) 給 Leader 以詢問 Router ID
如果 Leader 接受,Leader 回覆 Router ID 與 Child 自己升級成 Router
MLE 連結請求程序被使用來建立與相鄰 Router 間雙向 Router-Router 連結
- 新的 Router 傳送廣播 Link Request 給相鄰的 Router
Link Request
- Link Request 是一個來自 Router 到 Thread 網路中所有其他 Router 的請求
- 當第一次成為路由時,裝置發送廣播 Link Request 到
ff02::2
- 透過 MLE Advertisement 發覺其他路由之後,裝置傳送單播 Link Request
資料來源: openthread.io
- 訊息內容
Router 回覆 Link Accept 與所要求的訊息
Link Accept 與 Request
- Link Accept 與 Request 是 Link Accept 與 Link Request 訊息的組合
- Thread 在 MLE Link Request 程序使用最佳化來將訊息數量從 4 降低到 3
資料來源: openthread.io
新的 Router 透過單播 ( unicast ) Link Accept 回覆給每個 Router 以建立 Router-Router 連結
Link Accept
- Link Accept 是一個來自相鄰路由所發送的 Link Request 的單播 ( unicast ) 回應,相鄰路由提供有關自己與接受相鄰路由連結的資訊
資料來源: openthread.io
- 訊息內容
降級成 REED
- 當 Router 降級成 REED 時,它的 Router-Router 連結被切斷且裝置啟動 MLE Attach 程序以建立 Child-Parent 連結
單向接收連結 ( One-way receive links )
- 在 Router 重設之後,相鄰的 Router 可能仍然與重設的 Router 間有一個有效的接收連結,在此情況下,重設的 Router 傳送一個 Link Request 訊息給再建立 Router-Router 連結
- End Device 可能希望與相鄰的非父 Router 建立接收連結以提高廣播可靠性