Sehen wir uns nun an, wie Thread die einzelnen Geräte im Netzwerk identifiziert und welche Adressen sie zur Kommunikation miteinander verwenden.
Sucher

In einem Thread-Netzwerk gibt es drei Bereiche für die Unicast-Adressierung:
- Link-Local: alle Schnittstellen, die über eine einzelne Funkübertragung erreichbar sind
- Mesh-Local – alle Schnittstellen, die im selben Thread-Netzwerk erreichbar sind
- Global – alle Schnittstellen, die außerhalb eines Thread-Netzwerks erreichbar sind
Die ersten beiden Bereiche entsprechen den Präfixen eines Thread-Netzwerks.
Link-Local hat die Präfixe fe80::/16
, während Mesh-Local Präfixe von fd00::/8
hat.
Unicast
Mehrere IPv6-Unicast-Adressen identifizieren ein einzelnes Thread-Gerät. Jede Funktion hat je nach Umfang und Anwendungsfall eine andere Funktion.
Bevor wir auf die einzelnen Typen eingehen, sehen wir uns einen allgemeinen Typ an, den sogenannten Routing Locator (RLOC). Der RLOC identifiziert eine Thread-Schnittstelle anhand seiner Position in der Netzwerktopologie.
So wird eine Routingsuche generiert
Allen Geräten werden eine Router-ID und eine untergeordnete ID zugewiesen. Jeder Router verwaltet eine Tabelle aller untergeordneten Elemente, von der jedes Gerät ein Gerät innerhalb der Topologie eindeutig identifiziert. Sehen Sie sich zum Beispiel die hervorgehobenen Knoten in der folgenden Topologie an, wobei die Zahl in einem Router (Fünfeck) die Router-ID und die Zahl in einem Endgerät (Kreis) die untergeordnete ID ist:

Die Router-ID jedes untergeordneten Elements entspricht seinem übergeordneten Element (Router). Da es sich bei einem Router nicht um ein untergeordnetes Element handelt, ist die untergeordnete ID für einen Router immer 0. Zusammen sind diese Werte für jedes Gerät im Thread-Netzwerk eindeutig und werden verwendet, um den RLOC16 zu erstellen, der die letzten 16 Bits des RLOC darstellt.
So wird beispielsweise der RLOC16 für den Knoten oben links berechnet (Router-ID = 1 und untergeordnete ID = 1):

Der RLOC16 ist Teil des Interface Identifier (IID), der den letzten 64 Bit der IPv6-Adresse entspricht. Einige IIDs können verwendet werden, um einige Arten von Thread-Schnittstellen zu identifizieren. Die IID für RLOCs hat beispielsweise immer das folgende Format:
0000:00ff:fe00:RLOC16
Die IID ergibt in Kombination mit einem Mesh-Local-Präfix den RLOC. Beispielsweise verwendet ein Mesh-Local-Präfix fde5:8dba:82e1:1::/64
den RLOC für einen Knoten, bei dem RLOC16 = 0x401
so ist:

Mit derselben Logik können Sie den RLOC für alle markierten Knoten in der obigen Beispieltopologie bestimmen:

Da der RLOC jedoch auf dem Standort des Knotens in der Topologie basiert, kann sich der RLOC eines Knotens ändern, wenn sich die Topologie ändert.
Vielleicht wird der Knoten "0x400
" beispielsweise aus dem Thread-Netzwerk entfernt. Die Knoten 0x401
und 0x402
stellen neue Verknüpfungen mit verschiedenen Routern her. Daher erhalten sie jeweils ein neues RLOC16 und RLOC:

Unicast-Adresstypen
Der RLOC ist nur eine von vielen IPv6-Unicast-Adressen, die ein Thread-Gerät haben kann. Eine weitere Kategorie von Adressen ist die Endpunkt-ID (Endpoint Identifier, EID). Sie identifiziert eine eindeutige Thread-Schnittstelle innerhalb einer Thread-Netzwerkpartition. EIDs sind unabhängig von der Thread-Netzwerktopologie.
Die häufigsten Unicast-Typen werden unten beschrieben.
Link-Local Address (LLA) |
|
---|---|
Eine EID, die eine Thread-Schnittstelle identifiziert, die über eine einzelne Funkübertragung erreichbar ist. | |
Beispiel | fe80::54db:881c:3845:57f4 |
ID | Basierend auf der erweiterten Adresse 802.15.4 |
Umfang | Link-Local |
Details |
|
Mesh-Local-EID (ML-EID) |
|
---|---|
Eine EID, die unabhängig von der Netzwerktopologie eine Thread-Schnittstelle identifiziert. Wird verwendet, um eine Thread-Schnittstelle innerhalb derselben Thread-Partition zu erreichen. Auch als Unique Local Address (ULA) bezeichnet. | |
Beispiel | fde5:8dba:82e1:1:416:993c:8399:35ab |
ID | Zufällig, nach Abschluss der Inbetriebnahme ausgewählt |
Umfang | Mesh-Netzwerk-Lokal |
Details |
|
Routing Locator (RLOC) |
|
---|---|
Identifiziert eine Thread-Schnittstelle anhand ihres Standorts in der Netzwerktopologie | |
Beispiel | fde5:8dba:82e1:1::ff:fe00:1001 |
ID | 0000:00ff:fe00:RLOC16 |
Umfang | Mesh-Netzwerk-Lokal |
Details |
|
Anycast-Locator (ALOC) |
|
---|---|
Identifiziert eine Thread-Schnittstelle über einen RLOC-Lookup, wenn der RLOC eines Ziels nicht bekannt ist. | |
Beispiel | fde5:8dba:82e1:1::ff:fe00:fc01 |
ID | 0000:00ff:fe00:fcXX |
Umfang | Mesh-Netzwerk-Lokal |
Details |
|
Globale Unicast-Adresse (GUA) |
|
---|---|
Eine EID, die eine Thread-Schnittstelle auf globaler Ebene identifiziert, die über ein Thread-Netzwerk hinausgeht. | |
Beispiel | 2000::54db:881c:3845:57f4 |
ID |
|
Umfang | Global |
Details |
|
Multicast
Multicast wird verwendet, um Informationen an mehrere Geräte gleichzeitig zu übertragen. In einem Thread-Netzwerk sind bestimmte Adressen, je nach Umfang, für die Multicast-Nutzung bei verschiedenen Gerätegruppen reserviert.
IPv6-Adresse | Umfang | Zugestellt: |
---|---|---|
ff02::1 |
Link-Local | Alle FTDs und MEDs |
ff02::2 |
Link-Local | Alle FTDs |
ff03::1 |
Mesh-Netzwerk-Lokal | Alle FTDs und MEDs |
ff03::2 |
Mesh-Netzwerk-Lokal | Alle FTDs |
Möglicherweise stellen Sie fest, dass Sleepy End Devices (SEDs) in der obigen Multicast-Tabelle nicht als Empfänger enthalten sind. Stattdessen definiert Thread die Link-Local- und Realm-Local-Bereichs-Unicode-Präfix-basierte IPv6-Multicast-Adresse, die für alle Thread-Knoten verwendet wird, einschließlich SEDs. Diese Multicast-Adressen variieren je nach Thread-Netzwerk, da es auf dem Unicast-Mesh-Local-Präfix basiert (siehe RFC 3306 für weitere Informationen zum Unicast-Präfix-basierten IPv6-Multicast). Adressen).
Beliebige, bereits aufgeführte Bereiche werden auch für Thread-Geräte unterstützt.
Anycast
Anycast wird verwendet, um Traffic an eine Thread-Schnittstelle weiterzuleiten, wenn der RLOC eines Ziels nicht bekannt ist. Ein Anycast-Locator (ALOC) identifiziert den Speicherort mehrerer Schnittstellen in einer Thread-Partition. Die letzten 16 Bits eines ALOC, der sogenannten ALOC16, haben das Format 0xfcXX
, was den Typ des ALOCs repräsentiert.
Ein ALOC16 zwischen 0xfc01
und 0xfc0f
ist beispielsweise für DHCPv6-Agents reserviert. Wenn das spezifische RLOC des DHCPv6-Agents nicht bekannt ist, z. B. weil sich die Netzwerktopologie geändert hat, kann eine Nachricht an den DHCPv6-Agent-ALOC gesendet werden, um den RLOC zu erhalten.
Thread definiert die folgenden ALOC16-Werte:
ALOC16 | Typ |
---|---|
0xfc00 |
Beste Variante |
0xfc01 – 0xfc0f |
DHCPv6-Agent |
0xfc10 – 0xfc2f |
Dienst |
0xfc30 – 0xfc37 |
Commissioner |
0xfc40 – 0xfc4e |
Discovery-Agent für Nachbarn |
0xfc38 – 0xfc3f 0xfc4f – 0xfcff |
Reserviert |
Zusammenfassung
Das haben Sie gelernt:
- Ein Thread-Netzwerk besteht aus drei Bereichen: Link-Local, Mesh-Local und Global.
- Ein Thread-Gerät hat mehrere Unicast-IPv6-Adressen
- Ein RLOC stellt den Standort eines Geräts im Thread-Netzwerk dar
- Eine ML-EID ist für ein Thread-Gerät innerhalb einer Partition eindeutig und sollte von Anwendungen verwendet werden
- Thread verwendet Multicast, um Daten an Knotengruppen und Router weiterzuleiten
- Thread verwendet Anycast, wenn der RLOC eines Ziels unbekannt ist
Weitere Informationen zur IPv6-Adressierung von Thread finden Sie in den Abschnitten 5.2 und 5.3 der Thread-Spezifikation.
Wissen testen
ff03::2
. Was sagen wir über das Gerät?ff03::2
. Dies erfolgt im Mesh-Local-Bereich.