<ph type="x-smartling-placeholder"></ph> Quelle auf GitHub ansehen
Sehen wir uns an, wie Thread jedes Gerät im Netzwerk identifiziert Arten von Adressen, über die sie miteinander kommunizieren.
Ebenen
In einem Thread-Netzwerk gibt es drei Bereiche für die Unicast-Adressierung:
- Link-Local: alle über eine einzelne Funkübertragung erreichbaren Schnittstellen
- Mesh-Local: alle Schnittstellen, die innerhalb desselben Thread-Netzwerks erreichbar sind
- Global – alle Schnittstellen, die von außerhalb eines Thread-Netzwerks erreichbar sind
Die ersten beiden Bereiche entsprechen Präfixen, die von einem Thread-Netzwerk festgelegt werden.
Link-Local hat die Präfixe fe80::/16
, Mesh-Local hat die Präfixe
fd00::/8
.
Unicast
Es gibt mehrere IPv6-Unicast-Adressen, die ein einzelnes Thread-Gerät identifizieren. Jede Funktion hat je nach Umfang und Anwendungsfall eine andere Funktion.
Bevor wir die einzelnen Typen im Detail beschreiben, sehen wir uns zuerst einen gängigen Typ an, den wir Routingsuche (RLOC). Das RLOC identifiziert eine Thread-Schnittstelle anhand Standort in der Netzwerktopologie.
So wird eine Routensuche generiert
Allen Geräten werden eine Router-ID und eine untergeordnete ID zugewiesen. Jeder Router verwaltet ein Tabelle mit allen ihren untergeordneten Elementen angezeigt. Durch die Kombination dieser Daten wird ein Gerät innerhalb der Topologie. Sehen wir uns zum Beispiel die hervorgehobenen Knoten in der wobei die Zahl in einem Router (Pentagon) die Router-ID ist, und die Zahl in einem Endgerät (Kreis) ist die Kinder-ID:
Die Router-ID jedes untergeordneten Publishers entspricht seinem übergeordneten Partner (Router). Da ein Router kein untergeordnetes Element ist, ist die Child-ID für einen Router immer 0. Zusammen ergeben diese Werte für jedes Gerät im Thread-Netzwerk eindeutig und werden zur Erstellung des RLOC16, das die letzten 16 Bits des RLOC darstellt.
So wird z. B. der RLOC16 für den Knoten oben links (Router ID = 1 und untergeordnete ID = 1):
Die RLOC16 ist Teil der Schnittstellenkennung (IID), die der die letzten 64 Bit der IPv6-Adresse. Mit einigen IIDs können bestimmte Typen identifiziert werden von Thread-Schnittstellen. Die IID für RLOCs liegt beispielsweise immer im folgenden Format vor:
0000:00ff:fe00:RLOC16
Die IID ergibt in Kombination mit einem Mesh-Local-Präfix das RLOC. Beispiel:
mit dem Mesh-Local-Präfix fde5:8dba:82e1:1::/64
, dem RLOC für einen Knoten,
RLOC16 = 0x401
ist:
Dieselbe Logik kann verwendet werden, um die RLOC für alle in der obigen Beispieltopologie hervorgehobenen Knoten zu ermitteln:
Da das RLOC jedoch auf dem Standort des Knotens in der Topologie basiert, kann sich das RLOC eines Knotens ändern, wenn sich die Topologie ändert.
Beispielsweise wird möglicherweise Knoten 0x400
aus dem Thread-Netzwerk entfernt. Knoten
0x401
und 0x402
stellen neue Verbindungen zu verschiedenen Routern her.
werden ihnen jeweils ein neues RLOC16 und ein neues RLOC zugewiesen:
Unicast-Adresstypen
Das RLOC ist nur eine von vielen IPv6-Unicast-Adressen, die ein Thread-Gerät haben kann. Eine weitere Kategorie von Adressen heißt Endpoint Identifiers (EIDs). eine eindeutige Thread-Schnittstelle innerhalb einer Thread-Netzwerkpartition identifizieren. EIDs sind unabhängig von der Thread-Netzwerktopologie.
Die gängigen Unicast-Typen werden im Folgenden beschrieben.
Link-Local-Adresse (LLA) |
|
---|---|
Eine EID, die eine Thread-Schnittstelle identifiziert, die über eine einzelne Funkübertragung erreichbar ist. | |
Beispiel | fe80::54db:881c:3845:57f4 |
IID | Basierend auf 802.15.4 erweiterter Adresse |
Ebene | Link-Local |
Details |
|
Lokale EID des Mesh-Netzwerks (ML-EID) |
|
---|---|
Eine EID, die eine Thread-Schnittstelle unabhängig von der Netzwerktopologie identifiziert. Wird verwendet, um eine Thread-Schnittstelle innerhalb derselben Thread-Partition zu erreichen. Auch als eindeutige lokale Adresse (ULA) bezeichnet. | |
Beispiel | fde5:8dba:82e1:1:416:993c:8399:35ab |
IID | Zufällig, wird nach Abschluss der Inbetriebnahme ausgewählt |
Ebene | Mesh-Netzwerk (lokal) |
Details |
|
Routingfinder (RLOC) |
|
---|---|
Identifiziert eine Thread-Schnittstelle anhand ihrer Position in der Netzwerktopologie. | |
Beispiel | fde5:8dba:82e1:1::ff:fe00:1001 |
IID | 0000:00ff:fe00:RLOC16 |
Ebene | Mesh-Netzwerk (lokal) |
Details |
|
Anycast-Finder (ALOC) |
|
---|---|
Identifiziert eine Thread-Schnittstelle per RLOC-Suche, wenn das RLOC eines Ziels nicht bekannt ist. | |
Beispiel | fde5:8dba:82e1:1::ff:fe00:fc01 |
IID | 0000:00ff:fe00:fcXX |
Ebene | Mesh-Netzwerk (lokal) |
Details |
|
Globale Unicast-Adresse (GUA) |
|
---|---|
Eine EID, die eine Thread-Schnittstelle auf globalem Bereich jenseits eines Thread-Netzwerks identifiziert. | |
Beispiel | 2000::54db:881c:3845:57f4 |
IID |
|
Ebene | Global |
Details |
|
Multicast
Multicast wird verwendet, um Informationen an mehrere Geräte gleichzeitig zu übertragen. In einer Thread-Netzwerk, bestimmte Adressen sind für die Multicast-Nutzung mit unterschiedlichen Gruppen von Geräten, je nach Umfang.
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) nicht als Empfänger in der Multicast-Tabelle oben. Vielmehr definiert Thread Link-Local- und Realm-Local-Bereich – Unicast-Präfixbasiertes IPv6-Multicast Adresse, die für alle Thread-Knoten, einschließlich SEDs, verwendet wird. Diese Multicasts Adressen variieren je nach Thread-Netzwerk, da es auf Unicast basiert Mesh-Local-Präfix (siehe RFC 3306) finden Sie weitere Informationen zu IPv6-Multicast-Adressen mit Unicast-Präfix.
Beliebige Bereiche, die über die bereits aufgeführten hinausgehen, werden auch für Thread unterstützt Geräte.
Anycast
Anycast wird verwendet, um Traffic an eine Thread-Schnittstelle weiterzuleiten, wenn das RLOC eines
Das Ziel ist unbekannt. Ein Anycast Locator (ALOC) ermittelt den Standort
innerhalb einer Thread-Partition
mehrere Schnittstellen. Die letzten 16 Bit eines ALOC,
ALOC16, hat das Format 0xfcXX
,
für den ALOC-Typ steht.
Beispielsweise ist ein ALOC16 zwischen 0xfc01
und 0xfc0f
für DHCPv6 reserviert.
Kundenservicemitarbeiter: Wenn die spezifische DHCPv6-Agent-RLOC unbekannt ist, weil der
Netzwerktopologie geändert hat, kann eine Nachricht an einen DHCPv6-Agent-ALOC gesendet werden,
das RLOC erhalten.
Thread definiert die folgenden ALOC16-Werte:
ALOC16 | Typ |
---|---|
0xfc00 |
Beste Variante |
0xfc01 – 0xfc0f |
DHCPv6-Agent |
0xfc10 – 0xfc2f |
Dienst |
0xfc30 – 0xfc37 |
Commissioner |
0xfc40 – 0xfc4e |
Neighbor Discovery-Agent |
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
<ph type="x-smartling-placeholder">
- </ph>
- Ein RLOC steht für den Standort eines Geräts im Thread-Netzwerk.
- Eine ML-EID ist für ein Thread-Gerät in einer Partition eindeutig und sollte von Anwendungen verwendet werden
- Thread nutzt Multicast, um Daten an Knoten- und Routergruppen weiterzuleiten
- Thread verwendet Anycast, wenn das 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
Multicast-Adresse. Was verrät uns dies über das Gerät?ff03::2
. Sie tun dies in der
Umfang.