Détection et formation de réseau

Afficher la source sur GitHub

Réseaux Thread

Les réseaux Thread sont identifiés par trois identifiants uniques:

  • ID de réseau personnel (PAN ID) de 2 octets
  • ID de réseau étendu de zone personnelle (XPAN ID) de 8 octets
  • 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
Analyse active de l'OT

Lorsqu'il crée un réseau Thread ou recherche un réseau existant auquel se joindre, un appareil Thread effectue une analyse active des réseaux 802.15.4 à portée radio:

  1. L'appareil diffuse une requête de balise 802.15.4 sur un canal spécifique.
  2. En retour, tous les routeurs ou appareils finaux éligibles au routeur (REED, Router Eligible End Devices) à portée diffusent un signal qui contient leur ID de PAN de réseau Thread, leur ID XPAN et leur nom de réseau.
  3. L'appareil répète les deux étapes précédentes pour chaque canal.

Une fois qu'un appareil Thread a détecté tous les réseaux à portée, il peut s'associer à un réseau existant ou en créer un si aucun réseau n'est détecté.

Thread utilise le protocole MLE (Mesh Link Establishment) pour configurer les liens et diffuser des informations sur le réseau aux appareils Thread.

Dans la configuration de liaison, MLE permet de:

  • Découvrir les associations à des appareils voisins
  • Déterminer la qualité des liens avec les appareils voisins
  • Établir des associations avec des appareils voisins
  • Négocier les paramètres de liaison (type d'appareil, compteurs de trames, délai avant expiration) avec les pairs

Le MLE diffuse les types d'informations suivants aux appareils souhaitant établir des liens:

  • Données du leader (RLOC du leader, ID de partition, poids de la partition)
  • Données réseau (préfixes sur le réseau maillé, autoconfiguration des adresses, routes plus spécifiques)
  • Propagation des routes

La propagation des routes dans Thread fonctionne de manière similaire au protocole RIP (Routing Information Protocol), un protocole de routage à vecteur de distance.

Créer un réseau

Si l'appareil décide de créer un réseau, il sélectionne le canal le moins chargé et un ID de PAN non utilisé par d'autres réseaux, puis devient un routeur et s'autoproclame leader. Cet appareil envoie des messages d'annonce MLE à d'autres appareils 802.15.4 pour les informer de son état de liaison et répond aux requêtes de balise d'autres appareils Thread effectuant une analyse active.

Rejoindre un réseau existant

Si l'appareil choisit de rejoindre un réseau existant, il configure son canal, son ID de PAN, son ID XPAN et son nom de réseau pour qu'ils correspondent à ceux du réseau cible via la mise en service Thread, puis passe par le processus d'association MLE pour s'associer en tant qu'enfant (appareil final). Ce processus est utilisé pour les liens enfant-parent.

  1. L'enfant envoie une requête parent multicast à tous les routeurs et REED voisins du réseau cible.
  2. Tous les routeurs et REED voisins (si le masque de balayage de requête parent inclut des REED) envoient des réponses parent contenant des informations sur eux-mêmes.
  3. L'enfant choisit un appareil parent et lui envoie une requête d'ID enfant.
  4. Le parent envoie une réponse avec l'ID enfant pour confirmer l'établissement du lien.

1. Requête parentale

Une requête parent est une requête multicast de l'appareil qui s'associe, qui permet de détecter les routeurs voisins et les appareils finaux éligibles au routeur (REED) dans le réseau cible.

Demande d'association de parent MLE OT
Contenu des messages de demande parentale
Mode Décrit l'appareil associé
Défi Teste la rapidité de la réponse parent pour éviter les attaques par rejeu
Masque de numérisation Limite la requête aux routeurs uniquement ou aux routeurs et aux REED

2. Réponse du parent

Une réponse parent est une réponse unicast à une requête parent qui fournit des informations sur un routeur ou un REED à l'appareil qui s'y connecte.

Réponse de l'attachement parent MLE OT
Contenu des messages de réponse des parents
Version Version du protocole Thread
Response (Réponse) Copie de la demande de défi parental
Compteur de liaison de trames Compteur de trames 802.15.4 sur le routeur/REED
Compteur de frames MLE Compteur de trames MLE sur le routeur/REED
Adresse de la source RLOC16 du routeur/REED
Marge de lien Qualité du signal reçu par le routeur/REED
Connectivité Décrit le niveau de connectivité du routeur/REED
Données sur les leaders Informations sur le leader du routeur/du routeur de secours
Défi Teste la rapidité de la demande d'ID enfant pour éviter les attaques par rejeu

3. Demande d'ID enfant

Une requête d'ID enfant est une requête unicast de l'appareil en cours d'association (enfant) 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, il passe à un routeur avant d'accepter la requête.

Demande d'association d'un ID enfant pour l'OT MLE
Contenu des messages de demande d'ID enfant
Version Version du protocole Thread
Response (Réponse) Copie du défi de réponse parentale
Compteur de liaison de trames Compteur de trames 802.15.4 sur l'enfant
Compteur de frames MLECompteur de frames MLE sur l'enfant
Mode Décrit l'enfant
Délai avant expiration Durée d'inactivité avant que le parent ne supprime l'enfant
Enregistrement de l'adresse (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 enfant-parent a été établi.

Réponse de l'OT MLE Attach Child ID
Contenu des messages de réponse concernant les ID enfants
Adresse de la source RLOC16 du parent
Address16 RLOC16 de l'enfant
Données sur les leaders Informations sur le leader 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é, autoconfiguration des adresses, routes plus spécifiques)
Itinéraire (REED uniquement) Propagation des routes
Délai avant expiration Durée d'inactivité avant que le parent ne supprime l'enfant
Enregistrement de l'adresse (MED et SED uniquement) Confirmer les adresses enregistrées

Récapitulatif

Connaissances acquises :

  • Un appareil Thread effectue une recherche active des réseaux existants
  • Thread utilise l'établissement de liaisons réseau pour configurer les liaisons et diffuser des informations sur les appareils réseau.
  • Les messages d'annonce MLE informent les autres appareils Thread sur le réseau et l'état de liaison d'un appareil.
  • Le processus d'association MLE établit des liens enfant-parent.

Vérifier vos connaissances

Quel identifiant n'est pas utilisé pour identifier un réseau Thread ?
ID de réseau personnel (PAN ID) de 2 octets.
Pas tout à fait. Un réseau Thread est identifié, en partie, par un ID de PAN.
ID XPAN (Extended Personal Area Network) de 8 octets.
Pas tout à fait. Un réseau Thread est identifié, en partie, par un ID XPAN.
Nom de réseau lisible par l'homme.
Pas tout à fait. Un réseau Thread est identifié, en partie, par un nom de réseau lisible par l'homme.
Un SSID de 32 caractères
Bonne réponse. Contrairement à un réseau Wi-Fi 802.11, les identifiants de réseau Thread n'utilisent pas de SSID.
À quoi sert une demande parentale ?
Pour découvrir les routeurs voisins et les appareils finaux éligibles au routeur (REED) dans le réseau cible.
Bonne réponse. Une demande parent est émise par un appareil qui tente de se connecter à un réseau.
Pour annoncer qu'un routeur devient parent.
Pas tout à fait. Un routeur n'établit pas de relation parent-enfant avec un autre appareil réseau. Au lieu de cela, un appareil réseau sélectionne un routeur pour qu'il devienne son enfant.
Pour demander qu'un appareil final éligible en tant que routeur soit promu en tant que routeur.
Pas tout à fait.
Quel type d'adresse utilise une demande parentale ?
unicast
Pas tout à fait.
anycast
Pas tout à fait.
multicast
Bonne réponse.
annonce
Pas tout à fait.
Lorsqu'un appareil se connecte initialement à un réseau Thread, quelle est sa classification ?
Enfant (appareil final)
Bonne réponse. Un appareil qui rejoint un réseau Thread commence toujours par être un appareil final sur ce réseau.
FTD (Full Thread Device)
Pas tout à fait.
Appareil final éligible au routeur (REED)
Pas tout à fait.