Przyjrzyjmy się, jak Thread identyfikuje urządzenia w sieci i co typów adresów używanych do komunikowania się ze sobą.
Zakresy
W sieci Thread na potrzeby adresowania zbiorczego dostępne są 3 zakresy:
- Link-Local – wszystkie interfejsy dostępne za pośrednictwem pojedynczej transmisji radiowej
- Mesh-Local – wszystkie interfejsy dostępne w tej samej sieci Thread
- Globalnie – wszystkie interfejsy dostępne spoza sieci Thread
Pierwsze 2 zakresy odpowiadają prefiksom wyznaczonym przez sieć Thread.
Połączenie lokalne ma prefiksy z prefiksami fe80::/16
, a sieć typu mesh – lokalnie – prefiksy
fd00::/8
Unicast
Istnieje wiele adresów e-mail IPv6, które identyfikują jedno urządzenie Thread. Każda z nich pełni inną funkcję w zależności od zakresu i przypadku użycia.
Zanim szczegółowo omówimy każdy z nich, poznajmy najczęściej spotykane RLOC (Routing Locator). RLOC identyfikuje interfejs Thread na podstawie lub lokalizację w topologii sieci.
Sposób generowania lokalizatora routingu
Wszystkie urządzenia mają przypisane identyfikatory routera i identyfikatory podrzędne. Każdy router ma tabeli ze wszystkimi elementami podrzędnymi, których kombinacja jednoznacznie identyfikuje w ramach topologii. Weźmy na przykład podświetlone węzły w zgodnie z topologią, gdzie numer w routerze (pentagon) to identyfikator routera, a numer w urządzeniu końcowym (kółko) to identyfikator dziecka:
Identyfikator routera każdego elementu podrzędnego odpowiada jego urządzeniu nadrzędnym (routerze). Ponieważ router jest nie element podrzędny, identyfikator podrzędny routera ma zawsze wartość 0. Razem te wartości są są unikalne dla każdego urządzenia w sieci Thread i służą do utworzenia kodu RLOC16, który reprezentuje ostatnie 16 bitów algorytmu RLOC.
Tak na przykład oblicza się wartość RLOC16 dla lewego górnego rogu węzła (Router) Identyfikator = 1 i identyfikator podrzędny = 1):
RLOC16 jest częścią identyfikatora interfejsu (IID), który odpowiada ostatnich 64 bitów adresu IPv6. Niektóre identyfikatory IID mogą być wykorzystywane do identyfikacji pewnych typów interfejsów Thread. Na przykład identyfikator IID dla RLOC ma zawsze taką postać:
0000:00ff:fe00:RLOC16
IID w połączeniu z prefiksem sieciowym sieci typu mesh daje wynik RLOC. Przykład:
używając prefiksu lokalnego sieci typu mesh fde5:8dba:82e1:1::/64
, RLOC dla węzła, w którym
RLOC16 = 0x401
to:
Ta sama logika może służyć do określania wartości RLOC dla wszystkich podświetlonych węzłów w topologii przykładowej powyżej:
Ponieważ jednak RLOC opiera się na lokalizacji węzła w topologii, wartość RLOC węzła może się zmieniać wraz ze zmianą topologii.
Być może na przykład węzeł 0x400
został usunięty z sieci Thread. Węzły
0x401
i 0x402
tworzą nowe połączenia z różnymi routerami,
każdemu z nich przypisywany jest nowy parametr RLOC16 i RLOC:
Typy adresów Unicast
RLOC to tylko jeden z wielu adresów IPv6, które może mieć urządzenie Thread. Inną kategorią adresów są identyfikatory punktów końcowych (EID, Endpoint Identifier), które do identyfikowania unikalnego interfejsu Thread w partycji sieciowej Thread. Identyfikatory EID są niezależnie od topologii sieci Thread.
Poniżej znajdziesz informacje o popularnych typach unicast.
Link lokalny adres (LLA) |
|
---|---|
Identyfikator EID identyfikujący interfejs Thread, do którego można uzyskać dostęp za pomocą pojedynczej transmisji radiowej. | |
Przykład | fe80::54db:881c:3845:57f4 |
IID | Na podstawie rozszerzonego adresu 802.15.4 |
Zakres | Link lokalny |
Szczegóły |
|
Lokalny EID sieci typu mesh (ML-EID) |
|
---|---|
Identyfikator EID identyfikujący interfejs Thread niezależny od topologii sieci. Służy do uzyskiwania dostępu do interfejsu Thread w tej samej partycji Thread. Nazywany także unikalnym adresem lokalnym (ULA). | |
Przykład | fde5:8dba:82e1:1:416:993c:8399:35ab |
IID | Losowo, wybrano po zakończeniu realizacji zamówienia |
Zakres | Sieć typu mesh – lokalna |
Szczegóły |
|
Lokalizator routingu (RLOC) |
|
---|---|
Identyfikuje interfejs Thread na podstawie jego lokalizacji w topologii sieci. | |
Przykład | fde5:8dba:82e1:1::ff:fe00:1001 |
IID | 0000:00ff:fe00:RLOC16 |
Zakres | Sieć typu mesh – lokalna |
Szczegóły |
|
Lokalizator anycast (ALOC) |
|
---|---|
Identyfikuje interfejs Thread za pomocą wyszukiwania RLOC, gdy wartość RLOC miejsca docelowego nie jest znana. | |
Przykład | fde5:8dba:82e1:1::ff:fe00:fc01 |
IID | 0000:00ff:fe00:fcXX |
Zakres | Sieć typu mesh – lokalna |
Szczegóły |
|
Globalny adres Unicast (GUA) |
|
---|---|
Identyfikator EID, który identyfikuje interfejs Thread w zakresie globalnym, poza siecią Thread. | |
Przykład | 2000::54db:881c:3845:57f4 |
IID |
|
Zakres | Cały świat |
Szczegóły |
|
Transmisja grupowa
Multicast służy do przekazywania informacji między wieloma urządzeniami jednocześnie. W Sieć Thread, określone adresy są zarezerwowane do użycia w trybie multicast z innymi 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 punkty wyjścia |
ff03::1 |
Sieć typu mesh – lokalna | Wszystkie FTD i MED |
ff03::2 |
Sieć typu mesh – lokalna | Wszystkie punkty wyjścia |
Możesz zauważyć, że śpiące urządzenia nie są uwzględnione w odbiorcy w powyższej tabeli multicast. Zamiast tego Thread określa, transmisja wieloetapowa IPv6 z prefiksem oparty na prefiksie połączenia lokalnego i zakresu lokalnego adres używany na potrzeby wszystkich węzłów Thread, w tym SED. Ta transmisja grupowa Adresy różnią się w zależności od sieci Thread, ponieważ jest ona oparta na transmisjach pojedynczych Prefiks sieci typu mesh-lokalny (patrz RFC 3306) .
W przypadku Thread są też obsługiwane dowolne zakresy wykraczające poza te już wymienione urządzenia.
Anycast
Protokół anycast jest używany do kierowania ruchu do interfejsu Thread, gdy wartość RLOC
miejsce docelowe jest nieznana. Lokalizator anycast (ALOC) określa lokalizację
wielu interfejsów w partycji Thread. Ostatnie 16 bitów ALOC,
o nazwie ALOC16, ma format 0xfcXX
, który
reprezentuje typ ALOC.
Na przykład zakres ALOC16 między 0xfc01
a 0xfc0f
jest zarezerwowany dla DHCPv6
Agenci. Jeśli konkretny RLOC agenta DHCPv6 jest nieznany (na przykład dlatego, że
topologia sieci uległa zmianie), do agenta DHCPv6 ALOC można wysłać wiadomość do
aby uzyskać RLOC.
Thread definiuje następujące wartości ALOC16:
ALOC16 | Typ |
---|---|
0xfc00 |
Lider |
0xfc01 – 0xfc0f |
Agent DHCPv6 |
0xfc10 – 0xfc2f |
Usługa |
0xfc30 – 0xfc37 |
Komisarz |
0xfc40 – 0xfc4e |
Agent wykrywania sąsiada |
0xfc38 – 0xfc3f 0xfc4f – 0xfcff |
Zarezerwowane |
Podsumowanie
Uzyskane informacje:
- Sieć Thread składa się z 3 zakresów: Link-Local, Mesh-Local i Global
- Urządzenie Thread ma wiele adresów IPv6 typu „unicast”
- Wartość RLOC reprezentuje lokalizację urządzenia w sieci Thread
- Identyfikator ML-EID jest unikalny dla urządzenia Thread w obrębie partycji i powinien być używany przez aplikacje.
- Thread używa multiemisji do przekazywania danych do grup węzłów i routerów
- Wątek używa anycast, gdy wartość RLOC miejsca docelowego jest nieznana
Aby dowiedzieć się więcej o adresowaniu IPv6 w Thread, zapoznaj się z sekcjami 5.2 i 5.3 dokumentu Thread Specification (Specyfikacja wątku).
Sprawdź swoją wiedzę
ff03::2
adres grupowania. Co nam to mówi o urządzeniu?ff03::2
. Robią to w sieci lokalnej typu mesh
zakresu.