現在來看看 Thread 如何識別網路中的每部裝置 電子郵件地址類型
範圍
 
Thread 網路中有三個用於單點傳播定址的範圍:
- Link-Local:所有可透過單一無線電傳輸訊號存取的介面
- Mesh-Local - 可在相同 Thread 網路中連上的所有介面
- 全域:可從 Thread 網路外連上的所有介面
前兩個範圍會對應至 Thread 網路指定的前置字串。
Link-Local 的前置字串為 fe80::/16, Mesh-Local 的前置字串為
fd00::/8。
Unicast
用於識別單一 Thread 裝置時,會有多個 IPv6 單點傳播位址。 每個類別根據範圍和用途各有不同的函式。
在詳細介紹每種類型之前,讓我們先來進一步瞭解常見原因,也就是 轉送定位器 (RLOC)。RLOC 會根據 Thread 介面 託管在網路拓撲中的位置
轉送定位器如何產生
系統會為所有裝置指派路由器 ID 和子 ID。每個路由器都會 這類資料表,其能明確識別 也能在拓撲中管理裝置比如說 下列拓撲,其中路由器的號碼 (pentagon) 為路由器 ID 而結束裝置 (圓形) 中的數字就是子 ID:
 
每個子項的路由器 ID 都會對應至其父項 (路由器)。因為路由器是 非子項,則路由器的子 ID 一律為 0。這些值加總後 各個裝置在 Thread 網路中是不重複的,可用來建立 RLOC16 代表 RLOC 的最後 16 位元
以下是針對左上方節點 (Router) 計算 RLOC16 的方式 ID = 1,子 ID = 1):
 
RLOC16 是介面識別碼 (IID) 的一部分,對應 也就是 IPv6 位址的最後 64 位元某些 IID 可用來識別某些類型 Thread 介面例如,RLOC 的 IID 一律採用以下格式:
0000:00ff:fe00:RLOC16
IID 加上 Mesh-Local 前置字元,就會產生 RLOC。例如:
使用 fde5:8dba:82e1:1::/64 的 Mesh-Local 前置字串,也就是節點的 RLOC,
RLOC16 = 0x401 是:
 
這種邏輯可用於決定上述範例拓撲中所有醒目顯示節點的 RLOC:
 
不過,由於 RLOC 是以拓撲中節點的位置為準, 節點的 RLOC 會隨拓撲變更而變更。
舉例來說,假設節點 0x400 已從 Thread 網路中移除。節點
0x401 和 0x402 會為不同的路由器建立新連結,
並且會分別指派一個新的 RLOC16 和 RLOC:
 
Unicast 位址類型
RLOC 只是 Thread 裝置可用的 IPv6 單點傳播位址之一。 另一個類別的地址稱為端點識別碼 (EID), 在 Thread 網路分區中識別一個不重複的 Thread 介面。EID 為 不受 Thread 網路拓撲影響
以下詳細說明常見的單點傳播類型。
| 連結本機位址 (LLA) | |
|---|---|
| 這個 EID 可識別可透過單一無線電傳輸存取的 Thread 介面。 | |
| 範例 | fe80::54db:881c:3845:57f4 | 
| IID | 根據 802.15.4 擴充地址 | 
| 範圍 | 店面連結 | 
| 詳細資料 | 
 | 
| 網格本機 EID (ML-EID) | |
|---|---|
| 可識別 Thread 介面的 EID,不受網路拓撲影響。用於連線至相同 Thread 分區內的 Thread 介面。又稱為專屬當地地址 (ULA)。 | |
| 範例 | fde5:8dba:82e1:1:416:993c:8399:35ab | 
| IID | 佣金作業完成後隨機選擇 | 
| 範圍 | 網格本機 | 
| 詳細資料 | 
 | 
| 轉送搜尋器 (RLOC) | |
|---|---|
| 依據 Thread 介面在網路拓撲中的位置來識別。 | |
| 範例 | fde5:8dba:82e1:1::ff:fe00:1001 | 
| IID | 0000:00ff:fe00:RLOC16 | 
| 範圍 | 網格本機 | 
| 詳細資料 | 
 | 
| Anycast 定位器 (ALOC) | |
|---|---|
| 當目的地的 RLOC 不明時,可透過 RLOC 查詢識別 Thread 介面。 | |
| 範例 | fde5:8dba:82e1:1::ff:fe00:fc01 | 
| IID | 0000:00ff:fe00:fcXX | 
| 範圍 | 網格本機 | 
| 詳細資料 | 
 | 
| 全域單點傳播位址 (GUA) | |
|---|---|
| 一個 EID,用於識別全域範圍 (除了 Thread 網路外) 的 Thread 介面。 | |
| 範例 | 2000::54db:881c:3845:57f4 | 
| IID | 
 | 
| 範圍 | 全球 | 
| 詳細資料 | 
 | 
多點傳播
多點傳播功能可以一次將資訊傳送給多部裝置。在 Thread 網路,特定位址僅供不同的多點傳播使用 裝置群組 (視範圍而定)。
| IPv6 位址 | 範圍 | 運送地址: | 
|---|---|---|
| ff02::1 | 店面連結 | 所有 FTD 和 MED | 
| ff02::2 | 店面連結 | 所有 FTD | 
| ff03::1 | 網格本機 | 所有 FTD 和 MED | 
| ff03::2 | 網格本機 | 所有 FTD | 
您可能會注意到,睡眠終端裝置 (SED) 並未包含在 列於上方多點傳播表中但 Thread 則是 連結本機和領域本機範圍單點傳播 (以前置碼為基準) IPv6 多點傳送 位址,用於所有 Thread 節點,包括 SED。這些多點傳播 位址是依據 Thread 網路建構而成 Mesh-Local 前置字元 (請參閱 RFC 3306) 進一步瞭解以單點傳播前置字元為基準的 IPv6 多點傳播位址。
Thread 也支援超出上述範圍的任意範圍 裝置。
Anycast
當 RLOC 的 RLOC 執行該元件時,Anycast 會將流量轉送至 Thread 介面
目的地未知。Anycast 定位器 (ALOC) 可識別
執行緒分區中有多個介面。ALOC 的後 16 位元
採用 0xfcXX 格式,也就是 ALOC16
代表 ALOC 的類型
舉例來說,0xfc01 和 0xfc0f 之間的 ALOC16 會保留給 DHCPv6
服務專員。如果特定 DHCPv6 代理程式 RLOC 不明 (可能因為
網路拓撲變更),可以傳送訊息給 DHCPv6 代理程式 ALOC,
取得 RLOC。
Thread 定義下列 ALOC16 值:
| ALOC16 | 類型 | 
|---|---|
| 0xfc00 | 領先 | 
| 0xfc01-0xfc0f | DHCPv6 代理程式 | 
| 0xfc10-0xfc2f | 服務 | 
| 0xfc30-0xfc37 | 主席 | 
| 0xfc40-0xfc4e | 鄰近探索代理 | 
| 0xfc38-0xfc3f0xfc4f-0xfcff | 預留 | 
重點回顧
涵蓋內容:
- Thread 網路包含三個範圍:Link-Local、 Mesh-Local 和 Global
- Thread 裝置有多個單點傳播 IPv6 位址
- RLOC 代表裝置在 Thread 網路中的位置
- ML-EID 是分區中 Thread 裝置的專屬 ID,應由應用程式使用
 
- Thread 會使用多點傳播技術,將資料轉送至多個節點和路由器群組
- 當目的地的 RLOC 不明時,Thread 會使用 Anycast
如要進一步瞭解 Thread 的 IPv6 定址功能,請參閱 執行緒規格:
隨堂測驗
ff03::2
      多點傳播位址這項數據代表裝置有何意義?ff03::2 多點傳播位址。並在網格本機環境下進行上述操作
      範圍。