Découvrons comment Thread identifie chaque appareil du réseau et examine les types d'adresses qu'il utilise pour communiquer entre eux.
Niveaux d'accès

Dans un réseau Thread, trois champs d'application sont disponibles pour l'adressage monocast:
- Lien local : toutes les interfaces accessibles via une seule transmission radio
- Mesh-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 premières habilitations correspondent à des préfixes désignés par un réseau Thread.
Le préfixe Link-Local est associé au préfixe fe80::/16
, tandis que le réseau maillé local est associé au préfixe fd00::/8
.
Unicast
Plusieurs adresses Unicode IPv6 identifient un seul appareil Thread. La fonction et le cas d'utilisation de chacun d'entre eux sont différents.
Avant d'expliquer chaque type, examinons plus en détail un outil courant, appelé "localisateur de routage". Le RLOC identifie une interface Thread, en fonction de son emplacement dans la topologie du réseau.
Comment un outil de localisation de routage est-il généré ?
Un ID de routeur et un ID enfant sont attribués à tous les appareils. Chaque routeur gère une table de tous ses enfants, dont la combinaison identifie un appareil de manière unique dans la topologie. Prenons l'exemple des nœuds mis en surbrillance dans la topologie suivante, où le nombre d'un routeur (pentagone) correspond à l'ID de routeur, et celui d'un appareil de fin (cercle) est l'ID enfant:

L'ID de routeur de chaque enfant correspond à son parent (routeur). Étant donné qu'un routeur n'est pas un enfant, l'ID enfant d'un routeur est toujours défini sur 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 le RLOC16 est calculé pour le nœud en haut à gauche (ID de routeur = 1 et ID enfant = 1):

Le RLOC16 fait partie de l'identifiant d'interface (IID), qui correspond aux 64 derniers bits de l'adresse IPv6. Certains IID peuvent être utilisés pour identifier certains types d'interfaces Thread. Par exemple, l'identifiant publicitaire pour les RLOC se présente toujours sous la forme suivante:
0000:00ff:fe00:RLOC16
L'IID, combiné à un préfixe de réseau maillé local, génère le RLOC. Par exemple, à l'aide du préfixe Local-Mesh de fde5:8dba:82e1:1::/64
, le RLOC pour un nœud où RLOC16 = 0x401
est:

Cette 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:

Toutefois, étant donné que le RLOC est basé sur l'emplacement du nœud dans la topologie, celui-ci peut changer à mesure que la topologie change.
Par exemple, le nœud 0x400
peut être supprimé du réseau Thread. Les nœuds 0x401
et 0x402
établissent des liens vers différents routeurs. Par conséquent, ils reçoivent chacun de nouvelles RLOC16 et RLOC:

Types d'adresses Unicast
Le RLOC est l'une des nombreuses adresses unicast IPv6 qu'un appareil Thread peut. Une autre catégorie d'adresses est appelée les identifiants de point de terminaison (EID), qui identifient une interface de thread unique au sein d'une partition réseau Thread. Les EID sont indépendants de la topologie du réseau Thread.
Les types monocasts courants sont détaillés ci-dessous.
Adresse locale de liaison |
|
---|---|
Un EID qui identifie une interface Thread accessible par une seule transmission radio. | |
Exemple | fe80::54db:881c:3845:57f4 |
Identifiant | Basé sur l'adresse 802.15.4. |
Scope (Portée) | Liaison locale |
Détail |
|
EID du réseau maillé local (ML-EID) |
|
---|---|
Un EID qui identifie une interface Thread, quelle que soit la topologie du réseau. Permet d'accéder à une interface Thread au sein d'une même partition Thread. Également appelée "Local Local Address" (ULA). | |
Exemple | fde5:8dba:82e1:1:416:993c:8399:35ab |
Identifiant | Aléatoire, sélectionné une fois la mise en service terminée |
Scope (Portée) | Réseau maillé local |
Détail |
|
Outil de localisation d'itinéraires (RLOC) |
|
---|---|
Identifie une interface Thread en fonction de son emplacement dans la topologie du réseau. | |
Exemple | fde5:8dba:82e1:1::ff:fe00:1001 |
Identifiant | 0000:00ff:fe00:RLOC16 |
Scope (Portée) | Réseau maillé local |
Détail |
|
Locator Anycast (ALOC) |
|
---|---|
Identifie une interface Thread via une recherche RLOC lorsque le RLOC d'une destination est inconnu. | |
Exemple | fde5:8dba:82e1:1::ff:fe00:fc01 |
Identifiant | 0000:00ff:fe00:fcXX |
Scope (Portée) | Réseau maillé local |
Détail |
|
Adresse globale unifiée (GUA) |
|
---|---|
Un EID qui identifie une interface Thread à l'échelle mondiale, au-delà d'un réseau Thread. | |
Exemple | 2000::54db:881c:3845:57f4 |
Identifiant |
|
Scope (Portée) | Un emplacement mondial |
Détail |
|
Multicast
Multicast permet de communiquer des informations à plusieurs appareils à la fois. Dans un réseau Thread, des adresses spécifiques sont réservées à l'utilisation multicast avec différents groupes d'appareils, en fonction du champ d'application.
Adresse IPv6 | Niveau d'accès | Adresse de livraison |
---|---|---|
ff02::1 |
Liaison locale | Tous les FTD et MED |
ff02::2 |
Liaison locale | Tous les FTD |
ff03::1 |
Réseau maillé local | Tous les FTD et MED |
ff03::2 |
Réseau maillé local | Tous les FTD |
Vous remarquerez peut-être que les appareils de fin de sommeil (SED) ne sont pas inclus dans le tableau des multidiffusions ci-dessus. À la place, Thread définit une adresse multidiffusion IPv6 basée sur le préfixe un lien local et du domaine local, utilisée pour tous les nœuds de thread Thread, y compris les SED. Ces adresses de multicast varient en fonction du réseau Thread, car elle est basée sur le préfixe unicast-Mesh-Local (consultez la RFC 3306 pour en savoir plus sur les adresses multicast basées sur unicast-prefix).
Les champs d'application arbitraires autres que ceux déjà répertoriés sont également compatibles avec les appareils Thread.
Anycast
Anycast permet d'acheminer le trafic vers une interface Thread lorsque le RLOC d'une destination n'est pas connu. L'alocator Anycast identifie l'emplacement de plusieurs interfaces dans une partition Thread. Les 16 derniers bits d'un ALOC, appelé ALOC16, sont au format 0xfcXX
, qui représente le type d'ALOC.
Par exemple, une valeur ALOC16 entre 0xfc01
et 0xfc0f
est réservée aux agents DHCPv6. Si l'agent RLOC DHCPv6 spécifique est inconnu (peut-être parce que la topologie du réseau a changé), un message peut être envoyé à un agent ALOC DHCPv6 pour obtenir l'ordre.
Thread définit les valeurs ALOC16 suivantes:
ALOC16 | Type |
---|---|
0xfc00 |
En tête |
0xfc01 – 0xfc0f |
Agent DHCPv6 |
0xfc10 – 0xfc2f |
Service |
0xfc30 – 0xfc37 |
Commissaire |
0xfc40 – 0xfc4e |
Agent Discovery Neighbor |
0xfc38 – 0xfc3f 0xfc4f – 0xfcff |
Réservées |
Récapitulatif
Voici ce que vous avez appris:
- 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
- Une RLOC représente l'emplacement d'un appareil dans le réseau Thread
- Un ML-EID est unique à un appareil Thread au sein d'une partition et doit être utilisé par les applications
- Thread utilise le mode multicast pour transférer des données vers des groupes de nœuds et de routeurs
- Le thread utilise Anycast lorsque le RLOC d'une destination est inconnu
Pour en savoir plus sur l'adressage IPv6 Thread, consultez les sections 5.2 et 5.3 de la spécification Thread.
Testez vos connaissances
ff03::2
. Informations sur l'appareilff03::2
. Pour ce faire, ils le font dans le champ d'application Local-Mesh.