Visualizza l'origine su GitHub
Reti Thread
Le reti Thread sono identificate da tre identificatori univoci:
- ID PAN (Personal Area Network) di 2 byte
- ID XPAN (Extended Personal Area Network) 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 cerchi una rete esistente a cui connetterti, un dispositivo Thread esegue una scansione attiva delle reti 802.15.4 nel raggio di copertura radio:
- Il dispositivo trasmette una richiesta di beacon 802.15.4 su un canale specifico.
- In cambio, tutti i dispositivi con funzionalità di estensione (ECD) nel raggio di copertura trasmettono un beacon che contiene l'ID PAN, l'ID XPAN e il nome 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 di copertura, può connettersi a una rete esistente o crearne una nuova se non ne viene rilevata alcuna.
Stabilire un link mesh
Thread utilizza il protocollo MLE (Mesh Link Establishment) per configurare i link e diffondere informazioni sulla rete ai dispositivi Thread.
Nella configurazione dei link, MLE viene utilizzato per:
- Rilevare i link ai dispositivi vicini
- Determinare la qualità dei link ai dispositivi vicini
- Stabilire link ai dispositivi vicini
- Negoziare i parametri dei link (tipo di dispositivo, contatori di frame, timeout) con i peer
MLE diffonde i seguenti tipi di informazioni ai dispositivi che vogliono stabilire link:
- Dati del leader (RLOC del leader, ID partizione, peso della partizione)
- Dati di rete (prefissi on-mesh, configurazione automatica degli indirizzi, route più specifiche)
- Propagazione delle route
La propagazione delle route in Thread funziona in modo simile al protocollo RIP (Routing Information Protocol), un protocollo di routing distance-vector.
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 extender mesh e si elegge come leader. Questo dispositivo invia messaggi di annuncio MLE ad altri dispositivi 802.15.4 per informarli sul suo stato del link e risponde alle richieste di beacon di altri dispositivi Thread che eseguono una scansione attiva.
Connettiti a una rete esistente
Se il dispositivo sceglie di connettersi 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 il provisioning di Thread, quindi esegue la procedura di connessione MLE per connettersi come dispositivo secondario (dispositivo finale). Questa procedura viene utilizzata per i link secondario-principale.
- Il dispositivo secondario invia una richiesta principale multicast Parent Request a tutti i dispositivi con funzionalità di estensione vicini nella rete di destinazione.
- Tutti gli extender mesh vicini (e gli ECD in standby, se la maschera di scansione della richiesta principale include gli ECD in standby) inviano risposte principali con informazioni su se stessi.
- Il dispositivo secondario sceglie un dispositivo principale e gli invia una richiesta di ID secondario.
- Il dispositivo principale invia una risposta di ID secondario per confermare la creazione del link.
1. Richiesta principale
Una richiesta principale è una richiesta multicast del dispositivo di connessione utilizzata per rilevare i dispositivi con funzionalità di estensione vicini nella rete di destinazione.
| Contenuti del messaggio di richiesta principale | |
|---|---|
| Modalità | Descrive il dispositivo di connessione |
| La sfida | Verifica la tempestività della risposta principale per impedire attacchi di replay |
| Maschera di scansione | Limita la richiesta solo agli extender mesh o a tutti i dispositivi con funzionalità di estensione |
2. Risposta principale
Una risposta principale è una risposta unicast a una richiesta principale che fornisce informazioni su un dispositivo con funzionalità di estensione al dispositivo di connessione.
| Contenuti del messaggio di risposta principale | |
|---|---|
| Versione | Versione del protocollo Thread |
| Risposta | Copia della sfida della richiesta principale |
| Contatore di frame del link | Contatore di frame 802.15.4 sul dispositivo con funzionalità di estensione |
| Contatore di frame MLE | Contatore di frame MLE sul dispositivo con funzionalità di estensione |
| Indirizzo di origine | RLOC16 del dispositivo con funzionalità di estensione |
| Margine del link | Qualità del segnale di ricezione del dispositivo con funzionalità di estensione |
| Connettività | Descrive il livello di connettività del dispositivo con funzionalità di estensione |
| Dati del leader | Informazioni sul leader del dispositivo con funzionalità di estensione |
| La sfida | Verifica la tempestività della richiesta di ID secondario per impedire attacchi di replay |
3. Richiesta di ID secondario
Una richiesta di ID secondario è una richiesta unicast del dispositivo di connessione (secondario) inviata al dispositivo con funzionalità di estensione (principale) allo scopo di stabilire un link secondario-principale. Se la richiesta viene inviata a un dispositivo con funzionalità di estensione in standby, questo esegue l'upgrade a un extender mesh prima di accettare la richiesta.
| Contenuti del messaggio di richiesta di ID secondario | |
|---|---|
| Versione | Versione del protocollo Thread |
| Risposta | Copia della sfida della risposta principale |
| Contatore di frame del link | Contatore di frame 802.15.4 sul dispositivo secondario |
| Contatore di frame MLE | Contatore di frame MLE sul dispositivo secondario |
| Modalità | Descrive il dispositivo secondario |
| Timeout | Durata di inattività prima che il dispositivo principale rimuova il dispositivo secondario |
| Registrazione dell'indirizzo (solo MED e SED) | Registra gli indirizzi IPv6 |
4. Risposta di ID secondario
Una risposta di ID secondario è una risposta unicast del dispositivo principale inviata al dispositivo secondario per confermare che è stato stabilito un link secondario-principale.
| Contenuti del messaggio di risposta di ID secondario | |
|---|---|
| Indirizzo di origine | RLOC16 del dispositivo principale |
| Address16 | RLOC16 del dispositivo secondario |
| Dati del leader | Informazioni sul leader del dispositivo principale (RLOC, ID partizione, peso della partizione ) |
| Dati di rete | Informazioni sulla rete Thread (prefissi on-mesh, configurazione automatica degli indirizzi route più specifiche) |
| Route (solo ECD in standby) | Propagazione delle route |
| Timeout | Durata di inattività prima che il dispositivo principale rimuova il dispositivo secondario |
| Registrazione dell'indirizzo (solo MED e SED) | Conferma gli indirizzi registrati |
Riepilogo
Ecco cosa hai imparato:
- Un dispositivo Thread esegue una scansione attiva delle reti esistenti
- Thread utilizza MLE (Mesh Link Establishment) per configurare i link e diffondere informazioni sui dispositivi di rete
- I messaggi di annuncio MLE informano gli altri dispositivi Thread sullo stato della rete e dei link di un dispositivo
- La procedura di connessione MLE stabilisce i link secondario-principale