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

W sieci Threaders są 3 zakresy adresów unicast:
- Link-Local – wszystkie interfejsy, do których można dotrzeć drogą radiową
- Mesh-Local – wszystkie interfejsy dostępne w ramach tej samej sieci Thread
- Globalnie – wszystkie interfejsy dostępne poza siecią Thread
Pierwsze 2 zakresy odpowiadają prefiksom wyznaczonym przez sieć Thread.
Link-Local ma prefiksy fe80::/16
, a sieć typu mesh-local – prefiksy fd00::/8
.
Unicast
Do 1 urządzenia z wątkiem jest przypisanych wiele adresów jednostronicowych IPv6. Każda z nich ma inną funkcję w zależności od zakresu i przypadku użycia.
Zanim omówimy każdy z tych typów, dowiedz się więcej o typie popularnego – Lokalizatora tras (RLOC). RLOC identyfikuje interfejs wątku na podstawie jego lokalizacji w topologii sieci.
Jak jest generowany lokalizator routingu
Wszystkie urządzenia mają przypisany identyfikator routera i identyfikatora podrzędnego. Każdy router przechowuje tabelę ze wszystkimi elementami podrzędnymi, które w sposób unikalny identyfikują urządzenie w topologii. Weźmy na przykład wyróżnione węzły w poniższej topologii: liczba w routerze (pentagon) to identyfikator routera, a liczba w urządzeniu końcowym (okręgu) to identyfikator podrzędny:

Każdy identyfikator routera podrzędnego odpowiada elementowi nadrzędnemu (routerowi). Router nie jest elementem podrzędnym, więc identyfikator podrzędny routera ma zawsze wartość 0. Razem wartości są unikalne dla każdego urządzenia w sieci Thread i są używane do tworzenia RLOC16, która reprezentuje 16 ostatnich bitów RLOC.
Oto na przykład sposób obliczania RLOC16 dla lewego górnego rogu (Identyfikator trasy = 1 i Identyfikator podrzędny = 1):

RLOC16 jest częścią identyfikatora interfejsu (IID), która odpowiada ostatnim 64-bitowym adresom IPv6. Niektóre identyfikatory IID mogą służyć do identyfikowania niektórych typów interfejsów wątków. Na przykład identyfikator IRL RLOC ma zawsze taki format:
0000:00ff:fe00:RLOC16
Identyfikator IID w połączeniu z lokalnym prefiksem sieci typu mesh tworzy RLOC. Na przykład przy użyciu lokalnego prefiksu sieci typu mesh: fde5:8dba:82e1:1::/64
RLOC dla węzła, w którym RLOC16 = 0x401
to:

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

Ponieważ RLOC zależy od lokalizacji węzła w topologii, lista RLOC może się 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
tworzą nowe połączenia z różnymi routerami, w wyniku czego otrzymują nowe: RLOC16 i RLOC:

Typy adresów Unicast
RLOC to tylko jeden z wielu adresów jednostronicowych protokołu IPv6, które może mieć urządzenie z wątkami. Kolejna kategoria adresów jest nazywana identyfikatorami punktów końcowych (EID), które identyfikują unikalny interfejs Thread w ramach partycji sieciowej wątku. Identyfikatory EID są niezależne od topologii sieci Thread.
Popularne typy uniksów znajdziesz poniżej.
Link-Local Address (LLA), |
|
---|---|
Identyfikator EID identyfikujący interfejs Thread, który jest dostępny dla pojedynczej transmisji radiowej. | |
Przykład | fe80::54db:881c:3845:57f4 |
Identyfikator | Na podstawie 802.15.4 rozszerzonego adresu |
Zakres | Link lokalny |
Szczegóły |
|
Identyfikator sieci lokalnej typu mesh (ML-EID) |
|
---|---|
Identyfikator EID identyfikujący interfejs Thread, niezależnie od topologii sieci. Pozwala uzyskać dostęp do interfejsu wątku w tej samej partycji wątku. Nazywany także unikalnym adresem lokalnym. | |
Przykład | fde5:8dba:82e1:1:416:993c:8399:35ab |
Identyfikator | Losowa, wybrana po zakończeniu prowizji |
Zakres | Sieć lokalna typu mesh |
Szczegóły |
|
Lokalizator routingu (RLOC) |
|
---|---|
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 nie jest to możliwe. | |
Przykład | fde5:8dba:82e1:1::ff:fe00:fc01 |
Identyfikator | 0000:00ff:fe00:fcXX |
Zakres | Sieć lokalna typu mesh |
Szczegóły |
|
Globalny adres jednostronicowy (GUA) |
|
---|---|
Identyfikator EID identyfikujący interfejs wątku w zakresie globalnym poza siecią Thread. | |
Przykład | 2000::54db:881c:3845:57f4 |
Identyfikator |
|
Zakres | Globalny |
Szczegóły |
|
Multicast
Multicast służy do przesyłania informacji do wielu urządzeń jednocześnie. W sieci wątków określone adresy są zarezerwowane do użytku w trybie multicast w przypadku różnych grup urządzeń (w zależności od zakresu).
Adres IPv6 | Zakres | Dostarczono do: |
---|---|---|
ff02::1 |
Link lokalny | Wszystkie FTD i MED |
ff02::2 |
Link lokalny | Wszystkie FTD |
ff03::1 |
Sieć lokalna typu mesh | Wszystkie FTD i MED |
ff03::2 |
Sieć lokalna typu mesh | Wszystkie FTD |
Zauważ, że w tabeli multiemisji powyżej nie ma adresatów urządzenia SED. Zamiast tego Thread określa adres HTTPcast multilokalny-lokalny i lokalny Realm oparty na prefiksie IPv6 dla wszystkich węzłów w wątku, w tym SED. Te adresy multicast różnią się w zależności od sieci Thread, ponieważ jest oparty na architekturze unicast Mesh-Local (zobacz RFC 3306, więcej informacji o adresach IPv6 opartych na prefiksach unicast).
Na urządzeniach z wątkami są obsługiwane dowolne zakresy wykraczające poza te wymienione powyżej.
Anycast
Anycast służy do kierowania ruchu do interfejsu Thread, gdy nieznany jest RLOC miejsca docelowego. Lokalizator dowolnych odbiorców (ALOC) wskazuje 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 ALOC16 między 0xfc01
a 0xfc0f
jest zarezerwowany dla agentów DHCPv6. Jeśli konkretny agent DHCPv6 RLOC jest nieznany (może to wynikać z tego, że topologia sieci uległa zmianie), wiadomość może zostać wysłana do agenta ALHCPv6, aby uzyskać RLOC.
Wątek definiuje te wartości ALOC16:
ALOC16 | Typ |
---|---|
0xfc00 |
Lider |
0xfc01 – 0xfc0f |
Agent DHCPv6 |
0xfc10 – 0xfc2f |
Usługa |
0xfc30 – 0xfc37 |
Komisarz |
0xfc40 – 0xfc4e |
Agent Discovery sąsiadów |
0xfc38 –0xfc3f 0xfc4f –0xfcff |
Zarezerwowane |
W skrócie
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 Universalcast
- RLOC reprezentuje lokalizację urządzenia w wątku.
- ML-EID jest unikalny dla urządzenia z wątkiem na partycji i powinien być używany przez aplikacje
- Wątek wykorzystuje multicast do przesyłania danych do grup węzłów i routerów
- Thread używa funkcji anycast, gdy RLOC miejsca docelowego jest nieznany
Więcej informacji o adresowaniu IPv6 w wątkach znajdziesz w sekcjach 5.2 i 5.3 specyfikacji wątku.
Sprawdź swoją wiedzę
ff03::2
multiemisji. Co mówi o tym urządzeniu?ff03::2
. Robią to w zakresie sieci typu mesh-local.