Hãy cùng xem cách Thread xác định từng thiết bị trong mạng và những gì địa chỉ mà chúng sử dụng để liên lạc với nhau.
Phạm vi
Có 3 phạm vi trong mạng Thread phục vụ địa chỉ unicast:
- Link-Local — tất cả giao diện có thể tiếp cận được qua một lần truyền tín hiệu vô tuyến
- Mesh-Local – tất cả giao diện có thể truy cập được trong cùng một mạng Thread
- Toàn cầu – mọi giao diện có thể truy cập được từ bên ngoài mạng Thread
2 phạm vi đầu tiên tương ứng với các tiền tố do mạng Thread chỉ định.
Link-Local có tiền tố là fe80::/16
, trong khi Mesh-Local có tiền tố là
fd00::/8
Unicast
Có nhiều địa chỉ unicast IPv6 xác định một thiết bị Thread. Mỗi cấp độ có một chức năng khác nhau dựa trên phạm vi và trường hợp sử dụng.
Trước khi tìm hiểu chi tiết về từng loại, hãy tìm hiểu thêm về một loại phổ biến, được gọi là Bộ định vị định tuyến (rlOC). rlOC xác định giao diện Thread dựa trên giao diện Thread trong cấu trúc liên kết mạng.
Cách tạo Công cụ định tuyến
Tất cả thiết bị đều được gán một ID bộ định tuyến và một ID con. Mỗi Bộ định tuyến duy trì bảng của tất cả các con, tổ hợp của tất cả các giá trị này xác định duy nhất một thiết bị trong cấu trúc liên kết. Ví dụ: hãy xem xét các nút được đánh dấu trong cấu trúc liên kết sau, trong đó số trong Bộ định tuyến (hình ngũ giác) là Mã bộ định tuyến, và số trong Thiết bị cuối (vòng tròn) là Mã nhận dạng con:
Mỗi Mã bộ định tuyến của nhà xuất bản con tương ứng với Mã bộ định tuyến mẹ (Bộ định tuyến) của chúng. Vì Bộ định tuyến không phải là Phần tử con, thì Mã nhận dạng con của Bộ định tuyến luôn bằng 0. Các giá trị này kết hợp với nhau duy nhất cho từng thiết bị trong mạng Thread và được dùng để tạo rlOC16, đại diện cho 16 bit cuối của rlOC.
Ví dụ: dưới đây là cách tính rlOC16 cho nút phía trên bên trái (Bộ định tuyến) Mã nhận dạng = 1 và Mã nhận dạng con = 1):
rlOC16 là một phần của Mã nhận dạng giao diện (IID), tương ứng với 64 bit cuối cùng của địa chỉ IPv6. Một số IID có thể được dùng để xác định một số loại về giao diện Thread. Ví dụ: IID cho rlOC luôn có dạng sau:
0000:00ff:fe00:RLOC16
IID (kết hợp với Tiền tố Mesh-Local) sẽ dẫn đến rlOC. Ví dụ:
sử dụng Tiền tố Mesh-Local của fde5:8dba:82e1:1::/64
, rlOC cho nút mà trong đó
rlOC16 = 0x401
là:
Bạn có thể sử dụng cùng logic này để xác định rlOC cho tất cả các nút được đánh dấu trong cấu trúc liên kết mẫu ở trên:
Tuy nhiên, do rlOC dựa trên vị trí của nút trong cấu trúc liên kết, rlOC của một nút có thể thay đổi khi cấu trúc liên kết thay đổi.
Ví dụ: có thể nút 0x400
sẽ bị xoá khỏi mạng Thread. Nút
0x401
và 0x402
thiết lập các đường liên kết mới đến các Bộ định tuyến khác nhau và do đó
chúng đều được chỉ định một rlOC16 và rlOC mới:
Loại địa chỉ Unicast
rlOC chỉ là một trong nhiều địa chỉ unicast IPv6 mà một thiết bị Thread có thể có. Một danh mục địa chỉ khác được gọi là Giá trị nhận dạng điểm cuối (EID), xác định một giao diện Thread duy nhất trong phân vùng mạng Thread. EID là độc lập với cấu trúc liên kết mạng Thread.
Các loại unicast phổ biến được nêu chi tiết ở bên dưới.
Địa chỉ đường liên kết tại địa phương (LLA) |
|
---|---|
EID xác định giao diện Thread có thể tiếp cận được bằng một đường truyền vô tuyến đơn lẻ. | |
Ví dụ | fe80::54db:881c:3845:57f4 |
IID | Dựa trên địa chỉ mở rộng 802.15.4 |
Phạm vi | Đường liên kết cục bộ |
Chi tiết |
|
EID lưới-cục bộ (ML-EID) |
|
---|---|
EID xác định giao diện Thread, không phụ thuộc vào cấu trúc liên kết mạng. Dùng để truy cập giao diện Thread trong cùng một phân vùng Thread. Còn được gọi là Địa chỉ địa phương duy nhất (ULA). | |
Ví dụ | fde5:8dba:82e1:1:416:993c:8399:35ab |
IID | Ngẫu nhiên, được chọn sau khi quá trình vận hành hoàn tất |
Phạm vi | Mạng cục bộ |
Chi tiết |
|
Bộ định vị định tuyến (rlOC) |
|
---|---|
Xác định giao diện Thread, dựa vào vị trí của giao diện đó trong cấu trúc liên kết mạng. | |
Ví dụ | fde5:8dba:82e1:1::ff:fe00:1001 |
IID | 0000:00ff:fe00:RLOC16 |
Phạm vi | Mạng cục bộ |
Chi tiết |
|
Bộ định vị Anycast (ALOC) |
|
---|---|
Xác định giao diện Thread thông qua tra cứu rlOC, khi không xác định rlOC của một đích. | |
Ví dụ | fde5:8dba:82e1:1::ff:fe00:fc01 |
IID | 0000:00ff:fe00:fcXX |
Phạm vi | Mạng cục bộ |
Chi tiết |
|
Địa chỉ Global Unicast (GUA) |
|
---|---|
EID xác định giao diện Thread trên phạm vi toàn cầu, bên ngoài mạng Thread. | |
Ví dụ | 2000::54db:881c:3845:57f4 |
IID |
|
Phạm vi | Toàn cầu |
Chi tiết |
|
Phát đa hướng
Phát đa hướng được dùng để truyền thông tin đến nhiều thiết bị cùng một lúc. Trong một Mạng Thread, các địa chỉ cụ thể được dành riêng để sử dụng cho đa hướng với các nhóm thiết bị, tuỳ thuộc vào phạm vi.
Địa chỉ IPv6 | Phạm vi | Đã gửi tới |
---|---|---|
ff02::1 |
Đường liên kết cục bộ | Tất cả FTD và MED |
ff02::2 |
Đường liên kết cục bộ | Tất cả FTD |
ff03::1 |
Mạng cục bộ | Tất cả FTD và MED |
ff03::2 |
Mạng cục bộ | Tất cả FTD |
Bạn có thể nhận thấy rằng Thiết bị cuối buồn ngủ (SED) không được đưa vào dưới dạng người nhận trong bảng truyền đa hướng ở trên. Thay vào đó, Thread xác định phạm vi liên kết cục bộ và phạm vi cục bộ đơn hướng dựa trên tiền tố IPv6 đa hướng địa chỉ dùng cho Tất cả các Nút luồng, bao gồm cả SED. Các định dạng này địa chỉ khác nhau tuỳ theo mạng Thread, vì mạng này được xây dựng trên unicast Tiền tố Mesh-Local (xem RFC 3306 để biết thêm chi tiết về địa chỉ đa hướng IPv6 dựa trên tiền tố unicast).
Các phạm vi tuỳ ý ngoài các phạm vi đã liệt kê cũng được hỗ trợ cho Thread thiết bị.
Anycast
Anycast dùng để định tuyến lưu lượng truy cập đến giao diện Thread khi rlOC của một giao diện
đích đến chưa xác định. Bộ định vị Anycast (ALOC) xác định vị trí của
nhiều giao diện trong một phân vùng Thread. 16 bit cuối cùng của ALOC,
có tên là ALOC16, có định dạng 0xfcXX
,
biểu thị cho loại ALOC.
Ví dụ: ALOC16 từ 0xfc01
đến 0xfc0f
được dành riêng cho DHCPv6
Nhân viên hỗ trợ. Nếu Tác nhân DHCPv6 cụ thể không xác định (có lẽ vì
cấu trúc liên kết mạng đã thay đổi), hệ thống có thể gửi thông báo tới ALOC Nhân viên hỗ trợ DHCPv6 để
lấy rlOC.
Luồng xác định các giá trị ALOC16 sau đây:
ALOC16 | Loại |
---|---|
0xfc00 |
Người đứng đầu |
0xfc01 – 0xfc0f |
Tác nhân DHCPv6 |
0xfc10 – 0xfc2f |
Dịch vụ |
0xfc30 – 0xfc37 |
Ủy viên |
0xfc40 – 0xfc4e |
Nhân viên hỗ trợ khám phá lân cận |
0xfc38 — 0xfc3f 0xfc4f — 0xfcff |
Đã đặt trước |
Tóm tắt
Kiến thức bạn học được:
- Mạng Thread bao gồm 3 phạm vi: Link-Local, Mesh-Local và Global
- Một thiết bị Thread có nhiều địa chỉ IPv6 unicast
- rlOC biểu thị vị trí của một thiết bị trong mạng Thread
- ML-EID là mã duy nhất dành cho thiết bị Thread trong một phân vùng và nên được các ứng dụng dùng
- Luồng sử dụng chế độ phát đa hướng để chuyển tiếp dữ liệu tới các nhóm nút và bộ định tuyến
- Luồng sử dụng bất kỳ hướng nào khi không xác định được rlOC của một đích đến
Để tìm hiểu thêm về địa chỉ IPv6 của Thread, xem phần 5.2 và 5.3 của Thông số kỹ thuật của luồng.
Kiểm tra kiến thức
ff03::2
địa chỉ multicast này. Thông tin này cho chúng tôi biết điều gì về thiết bị?ff03::2
. Họ làm như vậy trong Mesh-Local
phạm vi.