Comunicazione rapida e ininterrotta con CoAP
Come già accennato nell’articolo “Dialogo tra oggetti. Un protocollo di comunicazione per ogni esigenza”, CoAP è uno dei protocolli più utilizzati per l’implementazione dell’Internet of Things e viene considerato come la versione leggera di HTTP, anche se in realtà esistono alcune differenze, prima su tutte l’utilizzo di UDP (e non TCP) per la comunicazione.
Introduzione al protocollo di comunicazione CoAP
CoAP è un protocollo di trasferimento web che si basa sullo stile architettonico REST e consente di manipolare le risorse di comunicazione di oggetti e sensori utilizzando un modello di interazione client-server.
È stato progettato per lavorare in ambienti limitati, con scarsa larghezza di banda ed energia, e dove è necessaria una comunicazione rapida e ininterrotta. È questo il motivo per cui viene utilizzato UDP per la comunicazione: consentire una comunicazione più veloce migliorando gli scambi di dati M2M (Machine to Machine), D2D (Device to Device) e D2G (Device to Gateway).
Gli ambiti applicativi più utilizzati sono la salute, la gestione energetica e l’edilizia ma in generale si adatta bene a qualsiasi ambito in cui è richiesto il monitoraggio continuo di determinate condizioni.
Architettura del protocollo CoAP
Come detto in precedenza CoAP si basa su un modello client-server simile a HTTP dove il client invia una richiesta alle risorse REST per controllare un dispositivo o recuperare informazioni da un sensore. La differenza sta nell’elaborazione, infatti, CoAP elabora gli scambi in modo asincrono tramite datagrammi UDP.
L’architettura del protocollo è divisa su 2 livelli:
- livello richiesta / risposta che utilizza metodi e codici di risposta per le interazioni richiesta / risposta;
- livello messaggio che fornisce affidabilità e sequenze di scambio end-to-end basate su UDP.
Il livello richiesta-risposta è rappresentato da 4 metodi di richiesta differenti: GET, POST, PUT e DELETE.
Quando il server riceve la richiesta elabora ed invia una risposta contraddistinta da un Codice Risposta; questo codice è formato da 8 bit: 3 bit che specificano la classe della risposta (es. 4.04 Not Found) e 5 bit che specificano un dettaglio aggiuntivo.
Il livello messaggio fornisce affidabilità, soprattutto per i messaggi confermabili (CON), assicurando un controllo end-to-end e la ritrasmissione in caso di smarrimento; il messaggio, infatti, viene ritrasmesso fino a che non si riceve la conferma dell’avvenuta ricezione del messaggio (ACK) o di un eventuale problema nell’elaborazione della richiesta (RST).
Il messaggio CoAP è formato complessivamente da 8 byte suddivisi in:
- Header;
- Token;
- Opzioni;
- Payload.
Gestione della sicurezza con CoAP
Per quanto riguarda il tema sicurezza, i dispositivi che utilizzano CoAP devono essere in grado, come la maggior parte dei dispositivi IoT, di proteggere il flusso di informazioni di natura sensibile. Le minacce sono diverse e riguardano l’integrità (download di codice dannoso), la disponibilità (attacchi DoS) e la riservatezza (intercettazioni).
Per proteggere i dispositivi e le informazioni scambiate il protocollo CoAP utilizza un protocollo di sicurezza chiamato DTLS (Datagram Transport Layer Security), progettato per la comunicazione sicura end-to-end tra due dispositivi.
Dove viene impiegato il protocollo CoAP?
Per concludere, ecco qualche esempio di applicazione pratica del protocollo di comunicazione CoAP, particolarmente adatto per i dispositivi IoT a batteria o con approvvigionamento energetico.
Teleassistenza e sorveglianza sanitaria
Per realizzare con successo un sistema di monitoraggio sanitario è necessario costruire una rete di sensori wireless.
Questi sensori sono basati su CoAP e permettono al personale sanitario di effettuare le analisi di routine da remoto ma anche facilitare la cura del paziente durante un’emergenza.
Inoltre, questi sensori permettono ai pazienti di lasciare l’ospedale e continuare il loro periodo di degenza a casa, grazie al controllo in tempo reale dei loro parametri vitali da parte dei medici.
Gestione energetica intelligente
Un sistema di gestione dell’energia all’interno di un’abitazione è molto importante e ti permette di risparmiare denaro prezioso.
Questo sistema, denominato HEMS, è formato da una serie di sensori e attuatori che utilizzano il protocollo CoAP per comunicare i dati raccolti (tensione e potenza) al sistema di controllo e gestione dell’energia che a sua volta manderà dei comandi per spegnere o accendere determinati apparecchi elettrici.
Noi di Trackle utilizziamo lo standard CoAP per le nostre soluzioni IoT, abbinato al protocollo DTLS per garantire una comunicazione sicura tra i dispositivi connessi e il cloud.