Afficher le code source sur GitHub
Réseaux Thread
Les réseaux Thread sont identifiés par trois identifiants uniques:
- ID de réseau personnel (2 octets) (PAN ID)
- ID réseau étendu de 8 octets (ID XPAN)
- Un nom de réseau lisible
Par exemple, un réseau Thread peut avoir les identifiants suivants:
Identifiant | Valeur |
---|---|
ID PAN | 0xBEEF |
ID XPAN | 0xBEEF1111CAFE2222 |
Nom du réseau | yourThreadCafe |
Lors de la création d'un réseau Thread ou de la recherche d'un réseau existant à rejoindre, un appareil Thread effectue une analyse active des réseaux 802.15.4 dans une plage radio:
- L'appareil diffuse une demande de balise 802.15.4 sur un canal spécifique.
- En retour, tous les routeurs ou appareils finaux éligibles du routeur (REED) situés dans la plage peuvent diffuser une balise contenant leur ID PAN, ID XPAN et nom de réseau du réseau Thread.
- L'appareil répète les deux étapes précédentes pour chaque chaîne.
Une fois qu'un appareil Thread a découvert tous les réseaux à portée, il peut être associé à un réseau existant ou en créer un si aucun réseau n'est détecté.
Établissement d'un lien maillé
Thread utilise le protocole MLE (Messaging Link Establishment) pour configurer les liens et diffuser des informations sur le réseau aux appareils Thread.
Dans la configuration des associations, MLE permet de:
- Découvrir des liens vers des appareils à proximité
- Déterminer la qualité des liens vers les appareils à proximité
- Établir des liens vers les appareils à proximité
- Négocier des paramètres d'association (type d'appareil, compteurs d'images, délai avant expiration) avec les pairs
Le MLE diffuse les types d'informations suivants aux appareils souhaitant établir des liens:
- Données des leaders (RLOC responsable, ID de partition, pondération de la partition)
- Données réseau (préfixes sur le réseau maillé, configuration automatique des adresses, routes plus spécifiques)
- Propagation du routage
La propagation des routes dans Thread fonctionne de la même manière que le protocole RIP (Routage Information Protocol), un protocole de routage vectoriel.
Créer un réseau
Si l'appareil décide de créer un réseau, il sélectionne le canal le moins occupé et un ID de PAN non utilisé par d'autres réseaux, puis devient un routeur et élu responsable. Cet appareil envoie des messages d'annonce MLE à d'autres appareils 802.15.4 pour les informer de son état d'association et répond aux demandes de balises par d'autres appareils Thread qui effectuent une analyse active.
Rejoindre un réseau existant
Si l'appareil décide de rejoindre un réseau existant, il configure son canal, son ID PAN, son ID XPAN et son nom de réseau pour qu'ils correspondent à ceux du réseau cible via la mise en service des threads, puis passe par le processus MLE Attaching pour être associé en tant qu'enfant (appareil final). Cette procédure est utilisée pour les liens parents-enfants.
- L'enfant envoie une requête parente multicast à tous les routeurs et REED voisins du réseau cible.
- Tous les routeurs et REED voisins (si le masque de requête parent contient des REED) envoient des réponses parentes contenant des informations les concernant.
- L'enfant choisit un appareil parent et lui envoie une demande d'ID enfant.
- Le parent envoie une réponse d'ID enfant pour confirmer l'établissement de l'association.
1. Demande parentale
Une requête parente est une requête de multidiffusion envoyée par l'appareil qui l'associe. Elle permet d'identifier les routeurs et les appareils de fin de projet éligibles au routeur (REED) voisins dans le réseau cible.
Contenu du message de la demande parentale | |
---|---|
Mode | Décrit l'appareil connecté |
Défi | Teste la ponctualité de la réponse parentale pour éviter les attaques répétées |
Scanner le masque | Limite la requête aux routeurs uniquement ou aux routeurs et aux REED |
2. Réponse parentale
Une réponse parente est une réponse unicast à une requête parente qui fournit des informations sur un routeur ou un REED à l'appareil associé.
Contenu du message de réponse parentale | |
---|---|
Version | Version du protocole Thread |
Response (Réponse) | Copie du défi de la demande parentale |
Compteur de cadres de liaison | Compteur de trames 802.15.4 sur le routeur/l'analyseur ED |
Compteur de cadres MLE | Compteur de trames MLE sur le routeur/l'anus |
Adresse source | RLOC16 du routeur/REED |
Marge de liaison | Recevoir la qualité du signal du routeur/de l'appareil REED |
Connectivité | Décrit le niveau de connectivité du routeur ou du REED |
Leader Data | Informations sur le responsable/routeur du REED |
Défi | Teste la disponibilité en temps opportun de la requête d'ID enfant pour éviter les attaques par relecture |
3. Demande d'ID enfant
Une requête d'identification enfant est une requête unicast de l'appareil joint (enfant) qui est envoyée au routeur ou au REED (parent) dans le but d'établir un lien enfant-parent. Si la requête est envoyée à un REED, elle se met à niveau vers un routeur avant d'accepter la requête.
Contenu du message de la demande d'ID enfant | |
---|---|
Version | Version du protocole Thread |
Response (Réponse) | Copie du défi de réponse des parents |
Compteur de cadres de liaison | 802.15.4 Compteur d'images sur l'enfant |
Compteur de cadres MLE | Compteur de cadres MLE sur l'enfant |
Mode | Décrit l'enfant |
Délai avant expiration | Durée d'inactivité avant la suppression de l'enfant par le parent |
Enregistrement d'adresses (MED et SED uniquement) | Enregistrer des adresses IPv6 |
4. Réponse de l'ID enfant
Une réponse d'ID enfant est une réponse unicast du Parent envoyée à l'enfant pour confirmer qu'un lien Child-Parent a été établi.
Contenu du message de la réponse de l'ID de l'enfant | |
---|---|
Adresse source | Parent RLOC16 |
Adresse 16 | Enfant RLOC16 |
Leader Data | Informations sur la variante optimale du parent (RLOC, ID de partition, poids de la partition) |
Données réseau | Informations sur le réseau Thread (préfixes sur le réseau maillé, configuration automatique des adresses, routes plus spécifiques) |
Route (REED uniquement) | Propagation du routage |
Délai avant expiration | Durée d'inactivité avant la suppression de l'enfant par le parent |
Enregistrement d'adresses (MED et SED uniquement) | Confirmer les adresses enregistrées |
Résumé
Connaissances acquises :
- Un appareil Thread effectue une analyse active des réseaux existants
- Thread utilise Mesh Establishment pour configurer des liens et diffuser des informations sur les appareils réseau
- Les messages publicitaires MLE informent les autres appareils Thread sur le réseau et l'état du lien.
- Le processus MLE Attaching établit des liens enfants-parents