Thread, il protocollo per la casa connessa

depositphotos_42162953-Smart-Home-Device---Home-Control

Sempre più connesse, le odierne abitazioni utilizzano un'ampia gamma di standard di comunicazione wireless per collegare una pluralità di dispositivi, dai computer agli apparati mobili, dai lettori multimediali alle stampanti. Finora Wi-Fi è stato il protocollo più utilizzato per i collegamenti nell'ambito di una rete domestica, in particolare per il trasferimento di contenuti multimediali digitali. Ora i proprietari di casa richiedono un ulteriore miglioramento in termini di comfort, qualità della vita ed efficienza energetica che può essere ottenuto collegando a Internet altre tipologie di dispositivi, come ad esempio controllori del sistema di riscaldamento, sensori luminosi commutatori e rivelatori di sicurezza presenti all'interno di un'abitazione. Il concetto d IoT ha fatto così il suo ingresso nella casa connessa. Come accade per molti altri dispositivi IoT, anche per i sensori e gli attuatori connessi in rete utilizzati nelle applicazioni domestiche l'aspetto energetico riveste un'importanza critica. Essi devono funzionare per molti anni utilizzando una batteria con capacità limitata e devono rispettare severi vincoli in termini di potenza di elaborazione, risorse di memoria e dimensioni fisiche. La scelta dello standard di comunicazione wireless è importante per stabilire la possibilità di conseguire gli obiettivi prefissati relativamente a prestazioni e connettività.


I candidati alla connettività
Le odierne tecnologie di comunicazione wireless impongono un certo numero di compromessi quando sono utilizzate per collegare tra di loro e a Internet i vari oggetti presenti in una casa. Sebbene Wi-Fi sia in grado di garantire un throughput molto elevato, utile per trasportare file audio, video e dati attraverso un'abitazione, il consumo di potenza risulta troppo elevato per poter essere adottato da dispositivi alimentati da batterie di limitata capacità. D'altro canto, il supporto nativo per l’Internet Protocol consente di realizzare una connessione a Internet in modo semplice e lineare. Bluetooth Smart, per contro, richiede una potenza molto bassa ma è stato concepito per comunicazioni punto-punto e trasferimento di una certa mole di dati tra smartphone e accessori. Il più recente aggiornamento delle Bluetooth Core Specification (4.2) fornisce la base per la futura connettività Ip nativa aggiungendo il supporto per Ipv6 e 6LoWpan. Le tecnologie di mesh networking (collegamenti in una rete a maglia) a basso consumo che utilizzano la piattaforma radio compatibile con lo standard Ieee 802.15.4 sono state ideate per applicazioni di automazione e controllo che richiedono un'ampiezza di banda ridotta. Protocollo che ha goduto della più ampia diffusione per oltre un decennio, ZigBee Pro risulta particolarmente utile per collegare centinaia di sensori e attuatori all'interno dell'abitazione. Le reti ZigBee Pro possono comunicare a una velocità massima di 250 kbps e i consumi sono così contenuti da consentire a una batteria di garantire il funzionamento per svariati anni. Questo protocollo, peraltro, non prevede il supporto Ip nativo. Ora è disponibile una nuova opzione per il mesh networking basato su Ip: si tratta del protocollo Thread, espressamente sviluppato per soddisfare le specifiche esigenze delle applicazione legate alla casa connessa e superare le limitazioni degli attuali standard di networking wireless. Le specifiche di questo protocollo sono state pubblicate nel mese di aprile dello scorso anno da Thread Group, un consorzio che comprende alcuni tra i più importanti produttori operanti nei settori dei semiconduttori, consumer e della connected-home in generale. Thread utilizza la piattaforma radio conforme a Ieee 802.15.4 come ZigBee Pro ma, a differenza di quest'ultimo, fornisce l'indirizzabilità Ip nativa. Il basso consumo di potenza che distingue il protocollo Thread e il supporto per configurazioni di mesh networking di tipo self-healing (in grado cioè di reindirizzare il traffico se parte della rete non è raggiungibile) affidabili sono caratteristiche rispetto alle quali né Wi-Fi né Bluetooth Smart possono competere.

Supporto Ip nativo per una maggior efficienza
L'indirizzabilità Ip nativa è una caratteristica che assume una particolare rilevanza nelle applicazioni che riguardano la "casa connessa". Il protocollo Ip è il meccanismo chiave per l'inoltro dei datagrammi attraverso le reti Ip e dispone di funzionalità di routing che consentono l'internetworking (funzionamento combinato di reti distinte). Le tecnologie di networking che non supportano Ip in modo nativo devono in primo luogo essere adattate per questo protocollo a livello di gateway. Questo processo richiede la mappatura degli indirizzi della rete locale e il re-packaging del payload a livello di rete in un datagramma Ip. Per contro, le reti locali che supportano Ip in modo nativo come Thread e Wi-Fi possono inoltrare e instradare i dati utili dell'applicazione senza alcun intervento. Per i pacchetti cifrati nella rete locale è assicurata la sicurezza end-to-end (ovvero da un capo della trasmissione all'altro).

Mesh networking con un semplice tocco
Grazie alla combinazione tra bassi consumi e supporto nativo deI protocollo Ip, Thread è in grado di garantire la connettività tra "oggetti" e Internet in modo semplice e lineare. Thread sfrutta le caratteristiche supportate dalle reti 6LowPan per consentire una trasmissione efficiente dei datagrammi Ipv6 su connessioni Ieee 802.15.4. Tali caratteristiche comprendono la possibilità di adattare le dimensioni dei pacchetti, la compressione dell'intestazione e l'inoltro al Livello 2 che consente l'uso del routing Ip per l'inoltro dei pacchetti. Il protocollo Thread semplifica la configurazione e il provisioning (cioè l'assegnazione di risorse e privilegi) in quanto supporta due soli differenti tipi di nodi: Router Eligible ed End Device. I nodi Router Eligible, come dice il nome stesso, diventano router se questi sono necessari per supportare la maglia (delle connessioni). Il primo nodo Router Eligible utilizzato per formare la rete sarà autonomamente designato come router, oltre che come leader. Un leader espleta compiti aggiuntivi di gestione della rete e prende decisioni per conto della rete. Altri nodi Router Eligible presenti nella rete possono assumere il ruolo di Leader, ma in un determinato istante ci potrà essere un solo Leader per ogni rete. I nodi che si aggiungono sotto forma di End Device non supportano funzionalità di routing. Un nodo di questo tipo, invece, invia messaggi a un router designato come proprio genitore che a sua volta esegue le operazioni di instradamento per conto del figlio. Gli End Device instradano la comunicazione per mezzo dei genitori e possono essere programmati per rimanere in uno stato di sleep al fine di ridurre i consumi di potenza. Gli End Device che non sono in grado di comunicare con i loro genitori dopo parecchi tentativi condurranno ricerche in modo autonomo e si connetteranno a un altro genitore.

Messaggistica leggera
Tutti i dispositivi in una rete Thread hanno un indirizzo Ipv6 ed è consentito l'accesso diretto da parte di dispositivi locali presenti su una rete Han o fuori rete mediante router Ip che supportano il protocollo Thread denominati Border Router. Per la messaggistica, Thread utilizza il protocollo Udp (User datagram protocol) al posto del protocollo Tcp (Transmission control protocol). Il protocollo Udp non supporta alcune caratteristiche di Tcp come ad esempio la verifica degli errori, la messa in sequenza dei pacchetti e la ritrasmissione. Questo approccio semplificato garantisce una trasmissione più veloce ed efficiente, rendendo il protocollo Udp più adatto per dispositivi alimentati a batteria e con severe limitazioni in termini di risorse. Per superare alcune limitazioni di Udp, Thread fa ricorso al protocollo CoAP (Constrained application protocol). Questa combinazione di protocolli leggeri permette di effettuare una conversioni molto semplice in Http e di interrogare dispositivi IoT direttamente dal browser. Al pari di Wi-Fi, Thread garantisce un trasporto sicuro e affidabile delle informazioni e non specifica un livello applicativo. Esso fornisce invece servizi di messaggistica unicast e multicast base che consentono il supporto di un'ampia gamma di livelli applicativi Ip. Per semplificare l'uso di questi servizi e accelerare lo sviluppo del codice Silicon Labs ha sviluppato il tool AppBuilder il quale astrae i dettagli a livello di stack e mette a disposizione una Gui per la configurazione dei dispositivi e dei parametri di networking.

Bassi consumi, scalabilità e sicurezza
Per garantire un funzionamento a basso consumo Thread prevede l'impiego di nodi terminali "dormienti" che trascorrono la maggior parte del tempo in uno stato a bassa dissipazione. I messaggi destinati a un nodo di questo tipo sono memorizzati temporaneamente dal nodo genitore quando il nodo è addormentato e trasmesso solamente una volta che il nodo si è "svegliato" ed è stato interrogato dal proprio nodo genitore. Thread è in grado di supportare reti formate da oltre 250 nodi, mentre il numero massimo di router attivi è pari a 32. Ciò consente una distribuzione efficiente delle informazioni di routing attraverso la rete e permette a tutti i router di aver la visibilità sulla totalità dei percorsi all'interno della rete stessa. Nel momento in cui vengono aggiunti nodi alla rete, questa si adatta scambiando messaggi Mle (Mesh Link Establishment) e anche la topologia può variare. Gli End Device che sono Router Eligible possono presentare una petizione al Leader della rete per trasformarsi in router se ciò risulta necessario per migliorare le prestazioni complessive della rete.
Essendo una rete di tipo mesh, Thread e di tipo "self-healing" e non presenta punti di vulnerabilità. Nel caso di malfunzionamento di un router, la rete reinstraderà in modo dinamico il traffico attorno al nodo che presenta problemi. In presenza di un malfunzionamento di un leader, un altro router presente sulla rete sarà autonomamente eletto come nuovo leader. Inoltre è prevista la possibilità di utilizzare più router periferici per garantire una ridondanza a sicurezza intrinseca per le comunicazioni fuori rete. Qualsiasi standard di connettività impiegato per applicazioni IoT deve garantire un elevato livello di sicurezza. Thread utilizza la cifratura AES-128 per proteggere tutte le transazioni che avvengono sulla rete a livello Mac. Inoltre è possibile utilizzare a livello applicativo protocolli di sicurezza Ip basati su standard come ad esempio Dtls per garantire un'ulteriore protezione per i dati utili dell'applicazione. Grazie a una combinazione di algoritmi Ecc e J-Pake è possibile aggiungere nuovi dispositivi alla rete in modo sicuro. Per aggiungere un dispositivo alla rete è richiesto un componente per il commissioning (ovvero la gestione e la verifica). Può trattarsi di un dispositivo fuori rete come uno smartphone o un computer oppure un dispositivo Thread sulla rete. I dispositivi fuori rete devono essere prima autenticati utilizzando una procedura di handshake (ovvero di scambio di segnali di collegamento) Dtls sicura. Una volta autorizzato, l'Active Commissioner sarà reso noto attraverso la rete Thread. Nel momento in cui è aggiunto un nuovo dispositivo, l'utente fornisce istruzioni al Commissioner e immette una parola d'ordine unica associata al dispositivo che deve entrare a far parte della rete utilizzata per stabilire una sessione Dtls sicura per l'autenticazione e l'autorizzazione. Il nuovo dispositivo può accedere alla rete Thread e il dispositivo per il commissioning diventa inattivo.
In definitiva, i consumatori che hanno sperimentato i benefici dell'home networking per l'accesso a Internet e la condivisione dei contenuti tra vari dispositivi sono ora pronti a sfruttare i vantaggi derivati dalla casa connessa che prevede l'uso di molteplici sensori e attuatori connessi a Internet. Questi dispositivi per applicazioni IoT, che devono sottostare a vincoli severi in termini di consumo di potenza e dimensioni, richiedono un nuovo protocollo di comunicazione wireless che abbini indirizzabilità Ip nativa, supporto per mesh networking e bassi consumi. Il protocollo Thread si propone come la soluzione più adatta a soddisfare queste specifiche esigenze.

Pubblica i tuoi commenti