IPv6 Addressing
① 介面 ( interfaces ) 這個詞用於識別網路中 Thread 裝置的端點。
② 單一 Thread 裝置會有單一個 Thread 介面 ( interfaces )。
範圍 Scopes
資料來源: openthread.io
- Link-Local
- 經由單一個無線電傳輸能到達所有的介面 ( interfaces )
- 前置詞是以
fe80::/16
為開頭
- Mesh-Local
- 在相同 Thread 網路內的所有的介面 ( interfaces ) 皆能到達
- 前置詞是以
fd00::/8
為開頭
- Global
- 從外部 Thread 網路能到達所有介面 ( interfaces )
- Link-Local
Routing Locator 如何被產生
- Routing Locator ( RLOC ) 會相依於所在的網路拓撲,目的是用來識別 Thread 介面 ( interface )
- 介面 ( interface ) 這個詞被用來識別網路內 Thread 裝置的端點
- 單一 Thread 裝置有單一的 Thread 介面 ( interface )
- 所有裝置被指派一個 Router ID 與一個 Child ID
- 每個 Router 維護一張包含所有他小孩的表格,其組合是唯一識別拓撲中的裝置
範例 ( 請參閱下方網路拓撲 )
- Router ( 五角型 ) 的號碼是 Router ID
- End Device ( 圓型 ) 的號碼是 Child ID
- 每個小孩的 Router ID 對應到他們的父節點 ( Router )
- 因為 Router 不是小孩,所以 Router 的 Child ID 總是為 0
- 在 Thread 網路中的每個裝置都有唯一的 Routing Locator ( RLOC ) 值
- Router ID 與 Child ID 用來產生 RLOC16,它呈現於 Routing Locator ( RLOC ) 最後的 16 位元中,如下圖所示:
- RLOC 16 是 Interface Identifier ( IID ) 的一部份,Interface Identifier ( IID ) 對應到 IPv6 位置的最後 64 個位元
- 有些 Interface Identifier (IID) 能被使用來識別一些 Thread 介面的一些類型,例如:Interface Identifier (IID) 總是為
0000:00ff:fe00:RLOC16
的格式
- 有些 Interface Identifier (IID) 能被使用來識別一些 Thread 介面的一些類型,例如:Interface Identifier (IID) 總是為
- Mesh-Local Prefix 加上 IID,其中 IID 包含 RLOC,如下圖所示:
使用下方拓撲來說明 RLOC16 是如何被計算
- 編號 1 的 Router ( 五角型 - 下圖紅色框 )
- RLOC16
- 如下【 RLOC16 計算 】所示
- Mesh-Local 前置詞 + IID
- Mesh-Local 前置詞
fde5:8dba:82e1:1::/64
為 Mesh-Local 的前置詞
- IID
- 0000:00ff:fe00 + 0400
- Mesh-Local 前置詞 + IID
- fde5:8dba:82e1:1::ff:fe00:400
- Mesh-Local 前置詞
- 編號 1 的 Router ( 五角型 - 下圖紅色框 )
- Routing Locator ( RLOC ) 會相依於所在的網路拓撲,目的是用來識別 Thread 介面 ( interface )
【 RLOC16 計算 】
Router ID = 1
Child ID = 0
111111
012345 6 789012345
-----------------------
000001 0 000000000
Router ID R Child ID
11 1111
0123 4567 8901 2345
-------------------
0000 0100 0000 0000
↓ ↓ ↓ ↓
0 4 0 0 ➙ 0x400
編號 1 的 End Device ( 圓型 - 下圖紅色框 )
- RLOC 16
- 如下【 RLOC16 計算 】所示
- Mesh-Local 前置詞 + IID
- Mesh-Local 前置詞
fde5:8dba:82e1:1::/64
為 Mesh-Local 的前置詞
- IID
- 0000:00ff:fe00 + 0401
- Mesh-Local 前置詞 + IID
- fde5:8dba:82e1:1::ff:fe00:401
- Mesh-Local 前置詞
- RLOC 16
【 RLOC16 計算 】
Router ID = 1
Child ID = 1
111111
012345 6 789012345
-----------------------
000001 0 000000001
Router ID R Child ID
11 1111
0123 4567 8901 2345
-------------------
0000 0100 0000 0001
↓ ↓ ↓ ↓
0 4 0 1 ➙ 0x401
- 編號 2 的 End Device ( 圓型 - 下圖紅色框 )
- RLOC 16
- 如下【 RLOC16 計算 】所示
- Mesh-Local 前置詞 + IID
- Mesh-Local 前置詞
fde5:8dba:82e1:1::/64
為 Mesh-Local 的前置詞
- IID
- 0000:00ff:fe00 + 0402
- Mesh-Local 前置詞 + IID
- fde5:8dba:82e1:1::ff:fe00:402
- Mesh-Local 前置詞
- RLOC 16
【 RLOC16 計算 】
Router ID = 1
Child ID = 2
111111
012345 6 789012345
-----------------------
000001 0 000000010
Router ID R Child ID
11 1111
0123 4567 8901 2345
-------------------
0000 0100 0000 0010
↓ ↓ ↓ ↓
0 4 0 2 ➙ 0x402
- 編號 2 的 Router ( 五角型 - 下圖紅色框 )
- RLOC 16
- 如下【 RLOC16 計算 】所示
- Mesh-Local 前置詞 + IID
- Mesh-Local 前置詞
fde5:8dba:82e1:1::/64
為 Mesh-Local 的前置詞
- IID
- 0000:00ff:fe00 + 0800
- Mesh-Local 前置詞 + IID
- fde5:8dba:82e1:1::ff:fe00:800
- Mesh-Local 前置詞
- RLOC 16
【 RLOC16 計算 】
RouterID = 2
ChildID = 0
111111
012345 6 789012345
-----------------------
000010 0 000000000
Router ID R Child ID
11 1111
0123 4567 8901 2345
-------------------
0000 1000 0000 0000
↓ ↓ ↓ ↓
0 8 0 0 ➙ 0x800
編號 1 的 End Device ( 圓型 - 下圖紅色框 )
- RLOC 16
- 如下【 RLOC16 計算 】所示
- Mesh-Local 前置詞 + IID
- Mesh-Local 前置詞
fde5:8dba:82e1:1::/64
為 Mesh-Local 的前置詞
- IID
- 0000:00ff:fe00 + 0801
- Mesh-Local 前置詞 + IID
- fde5:8dba:82e1:1::ff:fe00:801
- Mesh-Local 前置詞
- RLOC 16
【 RLOC16 計算 】
Router ID = 2
Child ID = 1
111111
012345 6 789012345
-----------------------
000010 0 000000001
Router ID R Child ID
11 1111
0123 4567 8901 2345
-------------------
0000 1000 0000 0001
↓ ↓ ↓ ↓
0 8 0 1 ➙ 0x801
編號 2 的 End Device ( 圓型 - 下圖紅色框 )
- RLOC 16
- 如下【 RLOC16 計算 】所示
- Mesh-Local 前置詞 + IID
- Mesh-Local 前置詞
fde5:8dba:82e1:1::/64
為 Mesh-Local 的前置詞
- IID
- 0000:00ff:fe00 + 0802
- Mesh-Local 前置詞 + IID
- fde5:8dba:82e1:1::ff:fe00:802
- Mesh-Local 前置詞
- RLOC 16
【 RLOC16 計算 】
RouterID = 2
ChildID = 2
111111
012345 6 789012345
-----------------------
000010 0 000000010
Router ID R Child ID
11 1111
0123 4567 8901 2345
-------------------
0000 1000 0000 0010
↓ ↓ ↓ ↓
0 8 0 2 ➙ 0x802
- 拓撲改變
- 範例
0x400
的節點從 Thread 網路中被移除,0x401
與0x402
節點與不同的 Router 建立新連線且0x401
與0x402
節點皆被指派新的 RLOC16
- 範例
移除前
移除後
使用下方拓撲來說明 RLOC16 是如何被計算
編號 3 的 Router ( 五角型 - 下圖紅色框 )
- RLOC 16
- 如下【 RLOC16 計算 】所示
- Mesh-Local 前置詞 + IID
- Mesh-Local 前置詞
- fde5:8dba:82e1:1::/64 為 Mesh-Local 的前置詞
- IID
- 0000:00ff:fe00 + 0c00
- Mesh-Local 前置詞 + IID
- fde5:8dba:82e1:1::ff:fe00:c00
- Mesh-Local 前置詞
- RLOC 16
【 RLOC16 計算 】
Router ID = 3
Child ID = 0
111111
012345 6 789012345
-----------------------
000011 0 000000000
Router ID R Child ID
11 1111
0123 4567 8901 2345
-------------------
0000 1100 0000 0000
↓ ↓ ↓ ↓
0 c 0 0 ➙ 0xc00
編號 3 的 End Device ( 圓型 - 下圖紅色框 )
- RLOC 16
- 如下【 RLOC16 計算 】所示
- Mesh-Local 前置詞 + IID
- Mesh-Local 前置詞
- fde5:8dba:82e1:1::/64 為 Mesh-Local 的前置詞
- IID
- 0000:00ff:fe00 + 0c03
- Mesh-Local 前置詞 + IID
- fde5:8dba:82e1:1::ff:fe00:c03
- Mesh-Local 前置詞
- RLOC 16
【 RLOC16 計算 】
Router ID = 3
Child ID = 3
111111
012345 6 789012345
-----------------------
000011 0 000000011
Router ID R Child ID
11 1111
0123 4567 8901 2345
-------------------
0000 1100 0000 0011
↓ ↓ ↓ ↓
0 c 0 3 ➙ 0xc03
編號 4 的 Router ( 五角型 - 下圖紅色框 )
- RLOC 16
- 如下【 RLOC16 計算 】所示
- Mesh-Local 前置詞 + IID
- Mesh-Local 前置詞
- fde5:8dba:82e1:1::/64 為 Mesh-Local 的前置詞
- IID
- 0000:00ff:fe00 + 1000
- Mesh-Local 前置詞 + IID
- fde5:8dba:82e1:1::ff:fe00:1000
- Mesh-Local 前置詞
- RLOC 16
【 RLOC16 計算 】
Router ID = 4
Child ID = 0
111111
012345 6 789012345
-----------------------
000100 0 000000000
Router ID R Child ID
11 1111
0123 4567 8901 2345
-------------------
0001 0000 0000 0000
↓ ↓ ↓ ↓
1 0 0 0 ➙ 0x1000
- 編號 2 的 End Device ( 圓型 - 下圖紅色框 )
- RLOC 16
- 如下【 RLOC16 計算 】所示
- Mesh-Local 前置詞 + IID
- Mesh-Local 前置詞
- fde5:8dba:82e1:1::/64 為 Mesh-Local 的前置詞
- IID
- 0000:00ff:fe00 + 1002
- Mesh-Local 前置詞 + IID
- fde5:8dba:82e1:1::ff:fe00:1002
- Mesh-Local 前置詞
- RLOC 16
【 RLOC16 計算 】
Router ID = 4
Child ID = 2
111111
012345 6 789012345
-----------------------
000100 0 000000010
Router ID R Child ID
11 1111
0123 4567 8901 2345
-------------------
0001 0000 0000 0010
↓ ↓ ↓ ↓
1 0 0 2 ➙ 0x1002