<ph type="x-smartling-placeholder"></ph> Consulter le code source sur GitHub
Voyons comment Thread identifie chaque appareil du réseau et quels types d'adresses qu'ils utilisent pour communiquer entre eux.
Niveaux d'accès
Il existe trois champs d'application dans un réseau Thread pour l'adressage unicast:
- Liaison locale : toutes les interfaces accessibles par une seule transmission radio
- Maillage local : toutes les interfaces accessibles au sein du même réseau Thread
- Global : toutes les interfaces accessibles depuis l'extérieur d'un réseau Thread
Les deux premiers champs d'application correspondent à des préfixes désignés par un réseau Thread.
Les liens locaux ont le préfixe fe80::/16
, tandis que les réseaux maillés locaux ont le préfixe
fd00::/8
Unicast
Plusieurs adresses unicast IPv6 identifient un seul appareil Thread. Chacun a une fonction différente en fonction du champ d'application et du cas d'utilisation.
Avant de détailler chaque type, penchons-nous sur un type commun, appelé de localisation de routage (RLOC, Routing Locator). Le RLOC identifie une interface Thread en fonction de son dans la topologie du réseau.
Comment un outil de localisation de routage est-il généré ?
Tous les appareils se voient attribuer un ID de routeur et un ID enfant. Chaque routeur possède une tableau de tous leurs enfants, dont la combinaison identifie de façon unique appareil dans la topologie. Prenons l'exemple des nœuds mis en surbrillance dans topologie suivante, où le numéro dans un routeur (en pentagone) est l'ID du routeur, et le nombre figurant dans l'appareil final (cercle) correspond à l'ID de l'enfant:
L'ID de routeur de chaque enfant correspond à son parent (routeur). Parce qu’un routeur est pas un enfant, l'ID enfant d'un routeur est toujours 0. Ensemble, ces valeurs sont uniques pour chaque appareil du réseau Thread, et sont utilisées pour créer le RLOC16, qui représente les 16 derniers bits du RLOC.
Par exemple, voici comment la valeur RLOC16 est calculée pour le nœud supérieur gauche (routeur ID = 1 et ID enfant = 1):
Le RLOC16 fait partie de l'identifiant d'interface (IID), qui correspond au les 64 derniers bits de l’adresse IPv6. Certains IID peuvent être utilisés pour identifier certains types des interfaces Thread. Par exemple, l'IID des RLOC se présente toujours sous la forme suivante:
0000:00ff:fe00:RLOC16
L'IID, associé à un préfixe maillé local, génère le RLOC. Par exemple :
en utilisant le préfixe maillé local fde5:8dba:82e1:1::/64
, le RLOC d'un nœud où
RLOC16 = 0x401
correspond à:
Cette même logique peut être utilisée pour déterminer le RLOC pour tous les nœuds mis en surbrillance dans l'exemple de topologie ci-dessus:
Cependant, comme le RLOC est basé sur l'emplacement du nœud dans la topologie, le RLOC d'un nœud peut changer en même temps que la topologie.
Par exemple, le nœud 0x400
est peut-être supprimé du réseau Thread. Nœuds
0x401
et 0x402
établissent de nouvelles liaisons avec différents routeurs. Par conséquent,
se voient attribuer de nouvelles RLOC16 et RLOC:
Types d'adresses Unicast
Le RLOC n'est qu'une des nombreuses adresses unicast IPv6 qu'un appareil Thread peut avoir. Une autre catégorie d'adresses est appelée identifiants de point de terminaison (EID), qui identifier une interface Thread unique dans une partition réseau Thread. Les EID sont indépendamment de la topologie du réseau Thread.
Les types de monodiffusion courants sont détaillés ci-dessous.
Adresse de liaison locale |
|
---|---|
Un EID qui identifie une interface Thread accessible par une seule transmission radio. | |
Exemple | fe80::54db:881c:3845:57f4 |
IID | Basé sur la norme 802.15.4 Extended Address (Adresse étendue) |
Portée | Lien local |
Détails |
|
EID local du réseau maillé (ML-EID) |
|
---|---|
Un EID qui identifie une interface Thread, indépendamment de la topologie du réseau. Utilisé pour accéder à une interface Thread au sein de la même partition de thread. On parle également d'adresse locale unique (ULA). | |
Exemple | fde5:8dba:82e1:1:416:993c:8399:35ab |
IID | Aléatoire, choisi une fois la mise en service terminée |
Portée | Maillage local |
Détails |
|
Outil de localisation de routage (RLOC) |
|
---|---|
Identifie une interface Thread en fonction de son emplacement dans la topologie du réseau. | |
Exemple | fde5:8dba:82e1:1::ff:fe00:1001 |
IID | 0000:00ff:fe00:RLOC16 |
Portée | Maillage local |
Détails |
|
Locator Anycast (ALOC) |
|
---|---|
Identifie une interface Thread via une recherche RLOC, lorsque le RLOC d'une destination n'est pas connu. | |
Exemple | fde5:8dba:82e1:1::ff:fe00:fc01 |
IID | 0000:00ff:fe00:fcXX |
Portée | Maillage local |
Détails |
|
Adresse unicast globale (GUA) |
|
---|---|
Un EID qui identifie une interface Thread sur un champ d'application global, au-delà d'un réseau Thread. | |
Exemple | 2000::54db:881c:3845:57f4 |
IID |
|
Portée | Monde |
Détails |
|
Multicast
La multidiffusion est utilisée pour communiquer des informations à plusieurs appareils à la fois. Dans un réseau Thread, des adresses spécifiques sont réservées à l'utilisation de la multidiffusion avec différentes des groupes d'appareils en fonction du champ d'application.
Adresse IPv6 | Champ d'application | Adresse de livraison |
---|---|---|
ff02::1 |
Lien local | Tous les FTD et MED |
ff02::2 |
Lien local | Tous les FTD |
ff03::1 |
Maillage local | Tous les FTD et MED |
ff03::2 |
Maillage local | Tous les FTD |
Vous remarquerez peut-être que les appareils endormeux (SED) ne sont pas inclus en tant que destinataire dans le tableau de multidiffusion ci-dessus. À la place, Thread définit multidiffusion IPv6 unicast basée sur un préfixe de champ d'application de domaine local et de liaison locale utilisée pour tous les nœuds Thread, y compris les SED. Ces signaux de multidiffusion varient selon le réseau Thread, car celui-ci est basé sur la monodiffusion Préfixe du maillage local (voir le document RFC 3306) pour en savoir plus sur les adresses de multidiffusion IPv6 basées sur un préfixe unicast).
Des champs d'application arbitraires autres que ceux déjà listés sont également compatibles avec Thread appareils.
Anycast
Anycast est utilisé pour acheminer le trafic vers une interface Thread lorsque le RLOC d'une
destination inconnue. Un outil de localisation Anycast (ALOC) identifie l'emplacement
plusieurs interfaces dans une partition Thread. Les 16 derniers bits d’un ALOC,
appelée ALOC16, est au format 0xfcXX
, qui
représente le type d’ALOC.
Par exemple, un code ALOC16 compris entre 0xfc01
et 0xfc0f
est réservé au protocole DHCPv6.
Les agents Si le RLOC de l'agent DHCPv6 spécifique est inconnu (peut-être parce que le
la topologie du réseau a changé), un message peut être envoyé à un ALOC d'agent DHCPv6 pour
pour obtenir le RLOC.
Thread définit les valeurs ALOC16 suivantes:
ALOC16 | Type |
---|---|
0xfc00 |
Variante optimale |
0xfc01 – 0xfc0f |
Agent DHCPv6 |
0xfc10 – 0xfc2f |
Service |
0xfc30 – 0xfc37 |
Commissaire |
0xfc40 – 0xfc4e |
Agent de découverte voisin |
0xfc38 – 0xfc3f 0xfc4f – 0xfcff |
Réservé |
Récapitulatif
Connaissances acquises :
- Un réseau Thread se compose de trois champs d'application: Link-Local, Mesh-Local et Global.
- Un appareil Thread possède plusieurs adresses IPv6 unicast
<ph type="x-smartling-placeholder">
- </ph>
- Un RLOC représente l'emplacement d'un appareil dans le réseau Thread.
- Un ML-EID est propre à un appareil Thread au sein d'une partition et doit être utilisé par les applications
- Thread utilise la multidiffusion pour transférer des données à des groupes de nœuds et de routeurs
- Thread utilise Anycast lorsque le RLOC d'une destination est inconnu
Pour en savoir plus sur l'adressage IPv6 de Thread, consultez les sections 5.2 et 5.3 de la Spécification du thread.
Testez vos connaissances
ff03::2
adresse multicast. Qu'est-ce que cela nous apprend sur l'appareil ?ff03::2
. Ils le font dans le réseau maillé local
le champ d'application.