Przyjrzyjmy się, jak Thread identyfikuje poszczególne urządzenia w sieci i jakie typy adresów używają do komunikowania się ze sobą.
Zakresy

W sieci typu Thread są trzy zakresy adresowania unicast:
- Link-Local – wszystkie interfejsy, do których można uzyskać dostęp za pomocą jednej transmisji radiowej.
- Mesh-Local – wszystkie interfejsy dostępne w ramach tej samej sieci Thread
- Cały świat – wszystkie interfejsy, do których można uzyskać dostęp poza siecią Thread
Pierwsze 2 zakresy odpowiadają prefiksom wyznaczonym przez sieć Thread.
Link-Local ma prefiksy fe80::/16
, a sieci Mesh-Local mają prefiksy fd00::/8
.
Unicast
Istnieje wiele adresów unicast IPv6, które identyfikują jedno urządzenie Thread. Każda z nich ma inną funkcję w zależności od zakresu i przypadku użycia.
Zanim opiszemy każdy z nich, dowiedz się więcej o typowym zlokalizowaniu routingu (RLOC). RLOC rozpoznaje interfejs Thread na podstawie swojej lokalizacji w topologii sieci.
Jak generowany jest lokalizator tras
Do wszystkich urządzeń przypisywany jest identyfikator routera oraz identyfikator podrzędny. Każdy router przechowuje tabelę wszystkich swoich elementów podrzędnych, które w unikalny sposób identyfikują urządzenie w topologii. Weźmy na przykład wyróżnione węzły w tej topologii, gdzie liczba routera (pentagon) to identyfikator routera, a liczba w urządzeniu końcowym (kręgu) to identyfikator podrzędny:

Identyfikator routera każdego dziecka odpowiada jego elementowi nadrzędnemu (routerowi). Ponieważ router nie jest elementem podrzędnym, jego identyfikator podrzędny zawsze ma wartość 0. Wszystkie te wartości są unikalne dla każdego urządzenia w sieci i służą do utworzenia RLOC16, która odpowiada 16 ostatnim bitom tej listy.
Na przykład RLOC16 jest obliczany dla węzła lewego po lewej stronie (identyfikator routera = 1 i identyfikator podrzędny = 1):

RLOC16 jest częścią identyfikatora interfejsu (IID), który odpowiada 64 ostatnim bitom adresu IPv6. Niektóre identyfikatory Identyfikują niektóre typy interfejsów Thread. Na przykład identyfikator IRL dla RLOC ma zawsze ten format:
0000:00ff:fe00:RLOC16
Identyfikator IID w połączeniu z lokalnym prefiksem typu mesh powoduje wygenerowanie RLOC. Na przykład przy użyciu lokalnego prefiksu sieci typu mesh fde5:8dba:82e1:1::/64
wartość RLOC dla węzła, w którym RLOC16 = 0x401
jest:

Ta sama logika może posłużyć do określenia RLOC dla wszystkich wyróżnionych węzłów z przykładowej topologii:

Ponieważ RLOC jest oparty na lokalizacji węzła w topologii, może się on zmieniać w zależności od topologii.
Na przykład węzeł 0x400
może zostać usunięty z sieci Thread. Węzły 0x401
i 0x402
ustanawiają nowe połączenia z różnymi routerami, w związku z czym otrzymują nowe RLOC16 i RLOC:

Typy adresów Unicast
RLOC to tylko jeden z wielu adresów unicast IPv6, jakie może mieć urządzenie Thread. Inna kategoria adresów to tzw. identyfikatory punktów końcowych (EID), które identyfikują unikalny interfejs Thread w partycji sieci Thread. Identyfikatory EID są niezależne od topologii sieci Thread.
Typowe typy Unicast znajdziesz poniżej.
Adres lokalny linku (LLA) |
|
---|---|
Identyfikator EID identyfikujący interfejs Thread, do którego można dotrzeć przez jedną transmisję radiową. | |
Przykład | fe80::54db:881c:3845:57f4 |
Identyfikator | Na podstawie 802.15.4 Rozszerzonego adresu |
Zakres | Link-local |
Szczegóły |
|
Identyfikator EID lokalnej sieci typu mesh (ML-EID) |
|
---|---|
Identyfikator EID identyfikujący interfejs wątku, niezależnie od topologii sieci. Służy do uzyskiwania dostępu do interfejsu wątku w tej samej partycji. Jest to również unikalny adres lokalny (ULA). | |
Przykład | fde5:8dba:82e1:1:416:993c:8399:35ab |
Identyfikator | Losowa, wybrana po ukończeniu prowizji |
Zakres | Sieć lokalna typu mesh |
Szczegóły |
|
Lokalizator routingu |
|
---|---|
Identyfikuje interfejs wątku na podstawie jego lokalizacji w topologii sieci. | |
Przykład | fde5:8dba:82e1:1::ff:fe00:1001 |
Identyfikator | 0000:00ff:fe00:RLOC16 |
Zakres | Sieć lokalna typu mesh |
Szczegóły |
|
Lokalizator dowolnego typu (ALOC) |
|
---|---|
Identyfikuje interfejs wątku za pomocą wyszukiwania RLOC, gdy RLOC miejsca docelowego nie jest znany. | |
Przykład | fde5:8dba:82e1:1::ff:fe00:fc01 |
Identyfikator | 0000:00ff:fe00:fcXX |
Zakres | Sieć lokalna typu mesh |
Szczegóły |
|
Globalny adres Unicast |
|
---|---|
Identyfikator EID, który identyfikuje interfejs Wątek w zakresie globalnym poza siecią Thread. | |
Przykład | 2000::54db:881c:3845:57f4 |
Identyfikator |
|
Zakres | Globalny |
Szczegóły |
|
Multicast
Multicast służy do przekazywania informacji wielu urządzeniom jednocześnie. W sieci typu sieć określone adresy są zarezerwowane do użycia w trybie multicast dla różnych grup urządzeń, w zależności od zakresu.
Adres IPv6 | Zakres | Dostawa do |
---|---|---|
ff02::1 |
Link-local | Wszystkie usługi FTD i MED |
ff02::2 |
Link-local | Wszystkie usługi FTD |
ff03::1 |
Sieć lokalna typu mesh | Wszystkie usługi FTD i MED |
ff03::2 |
Sieć lokalna typu mesh | Wszystkie usługi FTD |
Możesz zauważyć, że w tabeli multicast nie ma odbiorców, które korzystają z urządzeń końcowych Slepy. Zamiast tego definiuje on adres IPv6 lokalnego i lokalnego zakresu lokalnego multilinku IPv6 używany we wszystkich węzłach wątków, w tym w SED. Te adresy multicastów różnią się w zależności od sieci Thread, ponieważ jest ona oparta na prefiksie Mesh-Local (więcej informacji o adresach IPv6 opartych na unicast-prefix) znajdziesz w RFC 3306.
Zakresy dowolne inne niż wymienione są również obsługiwane na urządzeniach z wątkami.
Anycast
W każdym przypadku do kierowania ruchu do interfejsu Threading jest używany protokół RLOC, który nie jest znany. Lokalizator dowolnych lokalizacji (ALOC) określa lokalizację wielu interfejsów w partycji wątku. Ostatnie 16 bitów ALOC, zwanych ALOC16, jest w formacie 0xfcXX
, który reprezentuje typ ALOC.
Na przykład kod ALOC16 między 0xfc01
a 0xfc0f
jest zarezerwowany dla agentów DHCPv6. Jeśli określony RLHC vHCPv6 jest nieznany (być może z powodu zmiany topologii sieci), do ALHC agenta DHCPv6 można wysłać wiadomość, aby uzyskać RLOC.
Wątek określa te wartości ALOC16:
ALOC16 | Typ |
---|---|
0xfc00 |
Lider |
0xfc01 – 0xfc0f |
Agent DHCPv6 |
0xfc10 – 0xfc2f |
Usługa |
0xfc30 – 0xfc37 |
Komisarz |
0xfc40 – 0xfc4e |
Sąsiad |
0xfc38 –0xfc3f 0xfc4f –0xfcff |
Zarezerwowano |
Podsumowanie
Czego się nauczyliśmy:
- Sieć typu Thread składa się z 3 zakresów: Link-Local, Mesh-Local i Global
- Urządzenie Thread ma wiele adresów IPv6 unicast
- RLOC wskazuje lokalizację urządzenia w sieci typu Thread
- Identyfikator ML-EID jest unikalny dla urządzenia Thread na partycji i powinien być używany przez aplikacje
- Wątek wykorzystuje multiemisję do przekazywania danych do grup węzłów i routerów
- Wątek korzysta z funkcji premium, gdy RLOC miejsca docelowego jest nieznany
Więcej informacji o adresowaniu IPv6 IPv6 znajdziesz w sekcjach 5.2 i 5.3 specyfikacji Thread.
Sprawdź swoją wiedzę
ff03::2
. Co wynika z tego urządzenia?ff03::2
. Robią to w zakresie sieci typu mesh-local.