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 personnel étendu (XPAN ID) de 8 octets
  • Nom de réseau lisible par l'humain

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 OT

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 à portée radio :

  1. L'appareil diffuse une demande de balise 802.15.4 sur un canal spécifique.
  2. En retour, tous les appareils compatibles avec les rallonges (ECD) à portée diffusent une balise contenant leur ID PAN, leur ID XPAN et leur nom de réseau Thread.
  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 se connecter à un réseau existant ou en créer un s'il n'en détecte aucun.

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 des liens, MLE est utilisé pour :

  • détecter les liens vers les appareils voisins ;
  • déterminer la qualité des liens vers les appareils voisins ;
  • établir des liens vers les appareils voisins ;
  • négocier les paramètres de lien (type d'appareil, compteurs de frames, délai avant expiration) avec les pairs.

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 maillage, configuration automatique 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 choisit de créer un réseau, il sélectionne le canal le moins occupé et un ID PAN non utilisé par d'autres réseaux, puis devient une rallonge maillée et se désigne comme leader. Cet appareil envoie des messages d'annonce MLE à d'autres appareils 802.15.4 pour les informer de l'état de son lien, et répond aux demandes 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 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 de connexion MLE pour se connecter 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 appareils compatibles avec les rallonges voisins du réseau cible.
  2. Toutes les rallonges maillées voisines (et les ECD en veille, si le masque d'analyse de la requête parent inclut les ECD en veille) envoient des réponses parent contenant des informations sur elles-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 d'ID enfant pour confirmer l'établissement du lien.

1. Requête parent

Une requête parent est une requête multicast de l'appareil de connexion qui permet de détecter les appareils compatibles avec les rallonges voisins du réseau cible.

OT MLE Attach Parent Request
Contenu du message de requête parent
Mode Décrit l'appareil de connexion
Défi Teste la rapidité de la réponse parent pour éviter les attaques par rejeu
Masque d'analyse Limite la requête aux rallonges maillées uniquement ou à tous les appareils compatibles avec les rallonges

2. Réponse parent

Une réponse parent est une réponse unicast à une requête parent qui fournit des informations sur un appareil compatible avec les rallonges à l'appareil de connexion.

OT MLE Attach Parent Response
Contenu du message de réponse parent
Version Version du protocole Thread
Réponse Copie du défi de la requête parent
Compteur de frames de lien Compteur de frames 802.15.4 sur l'appareil compatible avec les rallonges
Compteur de frames MLE Compteur de frames MLE sur l'appareil compatible avec les rallonges
Adresse source RLOC16 de l'appareil compatible avec les rallonges
Marge de lien Qualité du signal de réception de l'appareil compatible avec les rallonges
Connectivité Décrit le niveau de connectivité de l'appareil compatible avec les rallonges
Données du leader Informations sur le leader de l'appareil compatible avec les rallonges
Défi Teste la rapidité de la requête d'ID enfant pour éviter les attaques par rejeu

3. Requête d'ID enfant

Une requête d'ID enfant est une requête unicast de l'appareil de connexion (enfant) qui est envoyée à l'appareil compatible avec les rallonges (parent) afin d'établir un lien enfant-parent. Si la requête est envoyée à un appareil compatible avec les rallonges en veille, il se met à niveau vers une rallonge maillée avant d'accepter la requête.

OT MLE Attach Child ID Request
Contenu du message de requête d'ID enfant
Version Version du protocole Thread
Réponse Copie du défi de la réponse parent
Compteur de frames de lien Compteur de frames 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 d'adresse (MED et SED uniquement) Enregistrer les adresses IPv6

4. Réponse d'ID enfant

Une réponse d'ID enfant est une réponse unicast du parent qui est envoyée à l'enfant pour confirmer qu'un lien enfant-parent a été établi.

OT MLE Attach Child ID Response
Contenu du message de réponse d'ID enfant
Adresse source RLOC16 du parent
Address16 RLOC16 de l'enfant
Données du leader 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 maillage, configuration automatique des adresses routes plus spécifiques)
Route (ECD en veille uniquement) Propagation des routes
Délai avant expiration Durée d'inactivité avant que le parent ne supprime l'enfant
Enregistrement d'adresse (MED et SED uniquement) Confirmer les adresses enregistrées

Récapitulatif

Connaissances acquises :

  • Un appareil Thread effectue une analyse active des réseaux existants.
  • Thread utilise l'établissement de liens maillés pour configurer les liens et diffuser des informations sur les appareils réseau.
  • Les messages d'annonce MLE informent les autres appareils Thread de l'état du réseau et du lien d'un appareil.
  • Le processus de connexion MLE établit des liens enfant-parent.

Vérifiez vos connaissances

Quel identifiant n'est pas utilisé pour identifier un réseau Thread ?
Un ID de réseau personnel (PAN ID) de 2 octets.
Mauvaise réponse. Un réseau Thread est identifié, en partie, par un ID PAN.
Un ID de réseau personnel étendu (XPAN ID) de 8 octets.
Mauvaise réponse. Un réseau Thread est identifié, en partie, par un ID XPAN.
Un nom de réseau lisible par l'humain.
Mauvaise réponse. Un réseau Thread est identifié, en partie, par un nom de réseau lisible par l'humain.
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 requête parent ?
Détecter les appareils compatibles avec les rallonges voisins du réseau cible.
Bonne réponse. Une requête parent est émise par un appareil qui cherche à se connecter à un réseau.
Annoncer qu'un appareil compatible avec les rallonges devient un parent.
Mauvaise réponse. Une rallonge maillée n'initie pas de relation parent-enfant avec un autre appareil réseau. Au lieu de cela, un appareil réseau sélectionne un appareil compatible avec les rallonges pour qu'il devienne son parent.
Demander qu'un appareil compatible avec les rallonges soit promu en rallonge maillée.
Mauvaise réponse.
Quel type d'adresse est utilisé par une requête parent ?
unicast
Mauvaise réponse.
anycast
Mauvaise réponse.
multicast
Bonne réponse.
annonce
Mauvaise réponse.
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 en tant qu'appareil final sur ce réseau.
FTD (Full Thread Device)
Mauvaise réponse.
Rallonge maillée
Mauvaise réponse.