Sélection du routeur

Afficher la source sur GitHub

Ensemble dominant connecté

Ensemble dominant connecté OT
Exemple d'ensemble dominant connecté

Les routeurs doivent former un ensemble dominant connecté (CDS), ce qui signifie:

  1. Il existe un chemin de routeur à routeur.
  2. N'importe quel routeur d'un réseau Thread peut atteindre n'importe quel autre routeur en restant entièrement dans l'ensemble des routeurs.
  3. Chaque appareil final d'un réseau Thread est directement connecté à un routeur.

Un algorithme distribué gère le 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 le CDS.

Thread ajoute des routeurs aux éléments suivants:

  • Augmenter la couverture si le réseau est inférieur au seuil de 16 du routeur
  • Augmenter la diversité des chemins
  • Maintenir un niveau minimal de redondance
  • Connecter plus d'enfants

Thread supprime les routeurs pour:

  • Réduire l'état de routage en dessous du nombre maximal de 32 routeurs
  • Autoriser de nouveaux routeurs dans d'autres parties du réseau si nécessaire

Passer à un routeur

Après s'être connecté à un réseau Thread, l'appareil Child peut choisir de devenir un routeur. Avant de lancer le processus de demande d'association MLE, l'enfant envoie un message de sollicitation d'adresse au leader, lui demandant un ID de routeur. Si le leader accepte, il répond avec un ID de routeur et l'enfant devient un routeur.

Le processus de requête de liaison MLE est ensuite utilisé pour établir des liaisons bidirectionnelles entre routeurs et routeurs avec les routeurs voisins.

  1. Le nouveau routeur envoie une demande d'association multicast aux routeurs voisins.
  2. Les routeurs répondent par des messages Link Accept and Request (Acceptation et demande de liaison).
  3. Le nouveau routeur répond à chaque routeur avec un Link Accept (Accepter la liaison) unicast pour établir la liaison routeur-routeur.

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 routeur pour la première fois, l'appareil envoie une requête de liaison multicast à ff02::2. Plus tard, après avoir découvert les autres routeurs via des annonces MLE, les appareils envoient des requêtes de liaison unicast.

Demande d'association à l'OT MLE
Contenus des messages de demande d'association
Version Version du protocole Thread
Défi Teste la rapidité de la réponse de liaison pour éviter les attaques par rejeu
Adresse de la source RLOC16 de l'expéditeur
Données sur les leaders Informations sur le leader du routeur, telles qu'elles sont stockées sur l'expéditeur (RLOC, ID de partition, poids de la partition)

Une demande d'association et d'acceptation est une combinaison des messages d'acceptation et de demande d'association. Thread utilise cette optimisation dans le processus de requête de liaison MLE pour réduire le nombre de messages de quatre à trois.

Acceptation et demande d'association OT MLE

Une acceptation de liaison est une réponse unicast à une demande de liaison d'un routeur voisin qui fournit des informations sur lui-même et accepte la liaison avec le routeur voisin.

Acceptation de l'association MLE
Associer Accepter le contenu du message
Version Version du protocole Thread
Response (Réponse) Teste la rapidité de la réponse de liaison pour éviter les attaques par rejeu
Compteur de liaison de trames Compteur de trames 802.15.4 sur l'expéditeur
Compteur de frames MLE Compteur de trames MLE sur l'expéditeur
Adresse de la source RLOC16 de l'expéditeur
Données sur les leaders Informations sur le leader 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 passe à un REED, ses liaisons routeur-routeur sont interrompues, et l'appareil lance le processus d'association MLE pour établir une liaison enfant-parent.

Pour en savoir plus sur le processus d'association MLE, consultez la section Rejoindre un réseau existant.

Dans certains cas, il peut être nécessaire d'établir un lien de réception à sens unique.

Après une réinitialisation du routeur, les routeurs voisins peuvent toujours disposer d'une liaison de réception valide avec le routeur réinitialisé. Dans ce cas, le routeur réinitialisé envoie un message de demande d'association pour rétablir la liaison entre les routeurs.

Un dispositif final peut également souhaiter établir un lien de réception avec des routeurs voisins non parents pour améliorer la fiabilité du multicast. Nous en apprendrons davantage à ce sujet lorsque nous aborderons le routage multicast.

Récapitulatif

Connaissances acquises :

  • Les routeurs d'un réseau Thread doivent former un ensemble dominant connecté (CDS, Connected Dominating Set).
  • Les appareils Thread sont mis à niveau vers des routeurs ou rétrogradés vers des appareils finaux pour maintenir le CDS.
  • Le processus de requête de liaison MLE permet d'établir des liaisons entre routeurs.

Vérifier vos connaissances

Quelles règles ne sont pas appliquées par un ensemble dominant connecté (CDS) ?
Il existe un chemin de routeur à routeur.
Pas tout à fait.
N'importe quel routeur d'un réseau Thread peut atteindre n'importe quel autre routeur en restant entièrement dans l'ensemble des routeurs.
Pas tout à fait.
Chaque appareil final d'un réseau Thread est directement connecté à un routeur.
Pas tout à fait.
Dans un réseau Thread, un seul routeur peut être un routeur de bordure.
Bonne réponse. Un réseau Thread peut comporter plusieurs routeurs de bordure.
Pourquoi un routeur peut-il être supprimé d'un réseau Thread ?
Pour réduire l'état de routage en dessous du nombre maximal de 32 routeurs.
Bonne réponse. Les réseaux Thread s'efforcent de maintenir un nombre optimal de routeurs. Un réseau Thread ne doit pas comporter plus de 32 routeurs.
Pour libérer des canaux.
Pas tout à fait. Le nombre de routeurs n'a aucun rapport avec l'utilisation ou la capacité des canaux.
Pour permettre l'élection de nouveaux routeurs dans d'autres parties du réseau si nécessaire.
Bonne réponse. Réduire le nombre de routeurs actifs dans une partie d'un réseau Thread augmente sa capacité à augmenter la capacité de routage ailleurs.
Que doit-il se passer pour qu'un REED qui tente de devenir un routeur puisse établir des liaisons directes avec les autres routeurs ?
Le REED doit envoyer un message de requête d'adresse au leader du réseau.
Bonne réponse.
Le leader doit attribuer un ID de routeur au REED.
Bonne réponse. Sans ID de routeur, le REED reste un appareil enfant.
Le REED doit envoyer une demande d'association MLE.
Faux. La requête de liaison MLE permet à l'appareil d'établir des liaisons avec d'autres routeurs une fois qu'il est devenu un routeur.
Parmi les affirmations suivantes, laquelle décrit précisément ce qui se passe lorsqu'un routeur passe à une version antérieure ?
L'appareil reste automatiquement sur le réseau, mais en tant qu'enfant (REED).
Faux. La rétrogradation d'un routeur nécessite plusieurs étapes.
L'appareil doit lancer le processus d'association MLE pour établir une nouvelle connexion au réseau.
Bonne réponse. Un appareil qui passe de routeur à REED est déconnecté et doit renégocier sa connexion au réseau.
Quel processus permet d'établir des liaisons entre routeurs ?
Processus de demande d'association MLE.
Bonne réponse.
Processus d'acceptation et de demande d'association.
Pas tout à fait. Il n'existe pas de processus d'acceptation et de demande d'association. Les messages d'acceptation et de demande d'association sont envoyés par les routeurs en réponse aux messages de demande d'association dans le cadre du processus de demande d'association MLE.
Processus d'association MLE.
Pas tout à fait. Le processus d'association MLE est le processus par lequel un appareil rejoint un réseau Thread existant.