Afficher le code source sur GitHub
Ensemble dominant connecté
Les routeurs doivent former un ensemble dominant, qui signifie:
- Il existe un chemin d'accès de routeur uniquement entre deux routeurs.
- Chaque routeur d'un réseau Thread peut atteindre n'importe quel autre routeur en restant entièrement dans l'ensemble de routeurs.
- Chaque appareil final d'un réseau Thread est directement connecté à un routeur.
Un algorithme distribué gère la CDS, ce qui garantit un niveau minimal de redondance. Chaque appareil se connecte initialement au réseau en tant qu'appareil final (enfant). À mesure que l'état du réseau Thread change, l'algorithme ajoute ou supprime des routeurs pour maintenir la CDS.
Thread ajoute des routeurs à:
- Augmenter la couverture si le réseau est inférieur au seuil de routeur (16)
- Diversifier les chemins
- Maintenir un niveau minimal de redondance
- Étendre la connectivité et aider plus d'enfants
Thread supprime les routeurs pour:
- Réduisez l'état de routage sous la limite de 32 routeurs
- Autoriser de nouveaux routeurs dans d'autres parties du réseau si nécessaire
Passer à un routeur
Une fois associé à un réseau Thread, l'appareil enfant peut choisir de devenir routeur. Avant de lancer le processus de demande d'association de MLE, l'enfant envoie un message de demande d'adresse au responsable, lui demandant un ID de routeur. Si le responsable accepte, il renvoie un ID de routeur et l'enfant passe à un routeur.
Le processus de requête de lien MLE est ensuite utilisé pour établir des liens routeur-routeur bidirectionnels avec les routeurs voisins.
- Le nouveau routeur envoie une requête d'association multicast aux routeurs voisins.
- Les routeurs répondent avec des messages Accepter et demander l'association.
- Le nouveau routeur répond à chaque routeur avec une instruction Link Accept unicast pour établir le lien routeur-routeur.
1. Demande d'association
Une requête d'association est une requête envoyée par le routeur à tous les autres routeurs du réseau Thread. Lorsqu'il devient un routeur, l'appareil envoie une requête d'association multicast à ff02::2
. Plus tard, après avoir découvert les autres routeurs via des annonces de MLE, les appareils envoient des requêtes d'association monocast.
Contenu du message de la demande d'association | |
---|---|
Version | Version du protocole Thread |
Défi | Teste le caractère opportun de la réponse du lien pour éviter les attaques par relecture |
Adresse source | RLOC 16 de l'expéditeur |
Leader Data | Informations sur la variante optimale du routeur, telles qu'elles sont stockées sur l'expéditeur (RLOC, ID de partition, poids de la partition) |
2. Accepter et demander l'association
Une demande d'association et une demande d'association combinent les messages d'acceptation et de demande d'association. Thread utilise cette optimisation dans le processus de demande d'association MLE pour réduire le nombre de messages de quatre à trois.
3. Accepter l'association
Une acceptation de lien est une réponse unicast à une requête de lien d'un routeur voisin qui fournit des informations sur elle-même et accepte le lien vers le routeur voisin.
Lien : accepter le contenu du message | |
---|---|
Version | Version du protocole Thread |
Response (Réponse) | Teste le caractère opportun de la réponse du lien pour éviter les attaques par relecture |
Compteur de cadres de liaison | Compteur d'images 802.15.4 sur l'expéditeur |
Compteur de cadres MLE | Compteur d'images MLE sur l'expéditeur |
Adresse source | RLOC 16 de l'expéditeur |
Leader Data | Informations sur la variante optimale du routeur, telles qu'elles sont stockées sur l'expéditeur (RLOC, ID de partition, poids de la partition) |
Passer à un REED
Lorsqu'un routeur repasse à un REED, ses liens routeur-routeur sont déconnectés et l'appareil lance le processus d'association MLE pour établir une liaison enfant-parent.
Pour en savoir plus sur le processus MLE Attaching, consultez la page Rejoindre un réseau existant.
Recevoir les liens à sens unique
Dans certains cas, il peut être nécessaire d'établir un lien de réception à sens unique.
Après une réinitialisation, les routeurs voisins peuvent toujours disposer d'un lien de réception valide avec le routeur réinitialisé. Dans ce cas, le routeur de réinitialisation envoie un message de requête d'association pour rétablir le lien du routeur.
Un appareil final peut également souhaiter établir un lien de réception avec les routeurs non parents voisins afin d'améliorer la fiabilité de la multidiffusion. Nous reviendrons plus en détail sur le routage multicast.
Résumé
Connaissances acquises :
- Les routeurs d'un réseau Thread doivent former un ensemble CD (Dominating Dominating)
- Les appareils Thread sont mis à niveau en routeurs ou rétrogradés en appareils finaux pour la maintenance du CDS
- Le processus de requête de lien MLE permet d'établir des liens routeur-routeur