Visualizza il codice sorgente su GitHub
Reti Thread
Le reti Thread sono identificate da tre identificatori univoci:
- ID PAN (Personal Area Network) di 2 byte
- ID rete di area personale estesa (XPAN ID) di 8 byte
- Un nome di rete leggibile
Ad esempio, una rete Thread potrebbe avere i seguenti identificatori:
Identificatore | Valore |
---|---|
ID PAN | 0xBEEF |
ID XPAN | 0xBEEF1111CAFE2222 |
Nome rete | yourThreadCafe |

Quando crei una nuova rete Thread o ne cerchi una esistente a cui partecipare, un dispositivo Thread esegue una ricerca attiva delle reti 802.15.4 nel raggio d'azione del segnale radio:
- Il dispositivo trasmette una richiesta di beacon 802.15.4 su un canale specifico.
- In cambio, tutti i router o i dispositivi di endpoint idonei per i router (REED) in portata trasmettono un beacon contenente l'ID PAN, l'ID XPAN e il nome della rete della rete Thread.
- Il dispositivo ripete i due passaggi precedenti per ogni canale.
Una volta che un dispositivo Thread ha rilevato tutte le reti nel raggio d'azione, può collegarsi a una rete esistente o crearne una nuova se non vengono rilevate reti.
Stabilimento del collegamento mesh
Thread utilizza il protocollo MLE (Mesh Link Establishment) per configurare i link e diffondere informazioni sulla rete ai dispositivi Thread.
Nella configurazione del link, l'MLE viene utilizzato per:
- Scoprire i collegamenti ai dispositivi vicini
- Determinare la qualità dei collegamenti ai dispositivi vicini
- Stabilire collegamenti con i dispositivi vicini
- Negozia i parametri di collegamento (tipo di dispositivo, contatori frame, timeout) con i peer
MLE diffonde i seguenti tipi di informazioni ai dispositivi che vogliono stabilire collegamenti:
- Dati del leader (RLOC leader, ID partizione, Peso partizione)
- Dati di rete (prefifissi on-mesh, configurazione automatica dell'indirizzo, route più specifici)
- Propagazione delle route
La propagazione dei percorsi in Thread funziona in modo simile al Routing Information Protocol (RIP), un protocollo di routing basato sul vettore di distanza.
Crea una nuova rete
Se il dispositivo sceglie di creare una nuova rete, seleziona il canale meno occupato e un ID PAN non in uso da altre reti, quindi diventa un router e si autoproclama leader. Questo dispositivo invia messaggi di annunci MLE ad altri dispositivi 802.15.4 per informarli del suo stato di collegamento e risponde alle richieste di beacon di altri dispositivi Thread che eseguono una ricerca attiva.
Partecipare a una rete esistente
Se il dispositivo sceglie di partecipare a una rete esistente, configura il canale, l'ID PAN, l'ID XPAN e il nome della rete in modo che corrispondano a quelli della rete di destinazione tramite la messa in servizio Thread, quindi esegue la procedura di attacco MLE per collegarsi come dispositivo secondario (dispositivo di fine). Questo processo viene utilizzato per i collegamenti Child-Parent.
- Il nodo secondario invia una richiesta al nodo principale multicast a tutti i router e i REED vicini nella rete di destinazione.
- Tutti i router e i REED vicini (se la maschera di scansione della richiesta principale include i REED) inviano risposte principali con informazioni su di sé.
- Il bambino sceglie un dispositivo principale e invia una richiesta di ID bambino.
- L'account principale invia una Risposta ID secondario per confermare l'istituzione del collegamento.
1. Richiesta di un genitore
Una richiesta principale è una richiesta multicast dal dispositivo di accoppiamento che viene utilizzata per rilevare i router vicini e i dispositivi di endpoint idonei per i router (REED) nella rete di destinazione.

Contenuti del messaggio di richiesta del genitore | |
---|---|
Modalità | Descrive il dispositivo da collegare |
Sfida | Verifica la tempestività della risposta principale per prevenire attacchi di replay |
Scan Mask | Limita la richiesta solo ai router o sia ai router sia ai REED |
2. Risposta del genitore
Una risposta principale è una risposta unicast a una richiesta principale che fornisce informazioni su un router o un REED al dispositivo di accoppiamento.

Contenuti del messaggio di risposta del genitore | |
---|---|
Versione | Versione del protocollo Thread |
Risposta | Copia della verifica della richiesta del genitore |
Contatore Link Frame | Contatore frame 802.15.4 sul router/REED |
Contatore frame MLE | Contatore frame MLE sul router/REED |
Indirizzo della fonte | RLOC16 del router/REED |
Margine link | Ricevere la qualità del segnale del router/REED |
Connettività | Descrive il livello di connettività del router/REED |
Leader Data | Informazioni sul leader del router/REED |
Sfida | Verifica la tempestività della richiesta di documento di identità del bambino per impedire attacchi di replay |
3. Richiesta di documento di identità del bambino
Una richiesta di ID secondario è una richiesta unicast dal dispositivo di accoppiamento (secondario) che viene inviata al router o al REED (principale) allo scopo di stabilire un collegamento secondario-principale. Se la richiesta viene inviata a un REED, questo esegue l'upgrade a un router prima di accettarla.

Contenuti del messaggio di richiesta dell'ID bambino | |
---|---|
Versione | Versione del protocollo Thread |
Risposta | Copia della verifica della risposta del genitore |
Contatore Link Frame | Contatore frame 802.15.4 sul dispositivo secondario |
Contatore frame MLE | Contatore frame MLE sul bambino |
Modalità | Descrive l'elemento secondario |
Timeout | Durata dell'inattività prima che l'account principale rimuovi quello secondario |
Registrazione dell'indirizzo (solo MED e SED) | Registra gli indirizzi IPv6 |
4. Risposta ID secondario
Una risposta ID secondario è una risposta unicast del cliente principale inviata al cliente secondario per confermare che è stato stabilito un collegamento tra cliente principale e cliente secondario.

Contenuti del messaggio di risposta all'ID secondario | |
---|---|
Indirizzo della fonte | RLOC16 del genitore |
Address16 | RLOC16 del bambino |
Leader Data | Informazioni sul leader del gruppo principale (RLOC, ID partizione, peso partizione) |
Dati di rete | Informazioni sulla rete Thread (prefissi on-mesh, autoconfigurazione dell'indirizzo, route più specifici) |
Percorso (solo REED) | Propagazione delle route |
Timeout | Durata dell'inattività prima che l'account principale rimuovi quello secondario |
Registrazione dell'indirizzo (solo MED e SED) | Conferma gli indirizzi registrati |
Riepilogo
Che cosa hai imparato:
- Un dispositivo Thread esegue una ricerca attiva delle reti esistenti
- Thread utilizza la creazione di link mesh per configurare i link e diffondere informazioni sui dispositivi di rete
- I messaggi di annunci MLE informano gli altri dispositivi Thread sullo stato della rete e del collegamento di un dispositivo
- La procedura di associazione MLE stabilisce i link tra account secondari e account principali