L’Internet of Things (IoT) collega miliardi di nodi con capacità, consumi e vincoli estremamente diversi. La scelta del protocollo di comunicazione determina affidabilità, sicurezza, latenza, costi operativi e perfino la vita utile dei dispositivi. Questo articolo offre una mappa ragionata dei principali protocolli a livello applicativo, di trasporto e di connettività, indicando quando usarli, come confrontarli e quali insidie evitare.
Modelli di comunicazione nell’IoT
- Richiesta/Risposta: un client interroga un server e attende un esito. Semplice da comprendere, efficace per interrogazioni sporadiche. Tipico: HTTP/2–HTTP/3, CoAP.
- Publish/Subscribe: i produttori pubblicano messaggi su “topic”; i consumatori si iscrivono ai topic d’interesse. Scalabile e decoupled. Tipico: MQTT, AMQP, DDS.
- Event-driven/Streaming: telemetria o eventi continui con bassa latenza e back-pressure. Tipico: MQTT, DDS, WebSocket, AMQP.
- Store & Forward: buffer locale e consegna differita in presenza di link intermittenti. Spesso implementato a livello gateway o broker.
Protocolli applicativi e di messaggistica
MQTT (Message Queuing Telemetry Transport)
Standard de facto per telemetria leggera su reti IP. Usa il modello publish/subscribe con broker centrale, topic gerarchici e livelli di QoS (al massimo una volta, almeno una volta, esattamente una volta). È efficiente su link instabili grazie a keep-alive, sessioni persistenti, retained messages e “Last Will”. È ideale per sensori alimentati a batteria che inviano dati periodici e per scenari cloud-centrici.
MQTT-SN
Variante per reti non IP (es. 802.15.4, BLE) con topic mappati a identificativi numerici e discovery del gateway. Riduce overhead in ambienti a bassissima potenza.
CoAP (Constrained Application Protocol)
Protocollo RESTful pensato per dispositivi vincolati. Mantiene la semantica di risorse e metodi in stile HTTP, ma opera tipicamente su UDP con conferme leggere, osservazione di risorse (notifiche push), block-wise transfer e discovery integrato. Con DTLS o OSCORE fornisce sicurezza end-to-end pur restando minimale.
HTTP/2 e HTTP/3
Preferibili quando serve piena compatibilità web, infrastrutture esistenti (proxy, API gateway) e integrazione con browser o servizi enterprise. HTTP/2 offre multiplexing; HTTP/3, basato su QUIC, migliora prestazioni su reti con perdita/latency variabile. Costi energetici e overhead superiori rispetto a CoAP/MQTT su nodi estremamente vincolati.
AMQP (Advanced Message Queuing Protocol)
Protocollo aperto orientato a code, conferme e routing flessibile. È più “pesante” di MQTT ma adatto a integrazioni enterprise, orchestrazioni complesse e garantisce pattern di affidabilità ben definiti end-to-end.
DDS (Data Distribution Service)
Middleware real-time publish/subscribe con QoS molto granulari (latenza, deadline, liveliness, affidabilità, durability). Usato in robotica, avionica e veicoli autonomi. Più complesso da configurare, ma eccellente per determinismo e mission-critical.
LwM2M (Lightweight M2M)
Protocollo di gestione e dati dell’OGC/OMA su CoAP: definisce oggetti/risorse standard per provisioning, telemetria, firmware update e osservazione. Ideale per parchi dispositivi ampi che richiedono gestione del ciclo di vita.
Protocolli di trasporto e sessione
- TCP: consegna affidabile, ordinata. Adatto a sessioni persistenti (MQTT, HTTP/2). Penalizzato su link rumorosi e per pacchetti sporadici.
- UDP: nessuna affidabilità intrinseca, ma minima latenza e overhead. CoAP, alcuni profili DDS e QUIC lo sfruttano aggiungendo meccanismi applicativi.
- QUIC: trasporto affidabile su UDP con cifratura integrata e ripresa delle connessioni. Base di HTTP/3; interessante per IoT con mobilità e NAT.
Connettività fisica e MAC
- Wi-Fi (incluso 802.11ah/HaLow): throughput elevato; HaLow estende portata e riduce consumi.
- Bluetooth Low Energy (BLE): molto diffuso per periferiche a batteria e beacon; supporta mesh per reti locali.
- Thread: IPv6 su 802.15.4 con routing mesh affidabile; base per ecosistemi domestici moderni.
- Zigbee/Z-Wave: stack consolidati per building automation, con profili interoperabili.
- LPWAN: LoRaWAN (non licenziato, lungo raggio, bassissimo bitrate), Sigfox (ultra-narrowband), NB-IoT e LTE-M (reti cellulari 3GPP, copertura profonda indoor, latenza/voce per LTE-M).
- 5G (incluso RedCap): banda, slicing e latenze ridotte per casi industriali; RedCap mira a dispositivi di media complessità con costi/consumi contenuti.
Sicurezza nei protocolli IoT
- TLS 1.3 / DTLS 1.3: cifratura, integrità, autenticazione; DTLS per CoAP/UDP.
- OSCORE: sicurezza end-to-end a livello CoAP, indipendente dai proxy.
- ACE-OAuth: controllo accessi a risorse CoAP/HTTP su dispositivi vincolati.
- Gestione identità: X.509, certificati a curva ellittica, attestation hardware (TPM/SE), rotazione credenziali e provisioning just-in-time.
- Firmware update sicuri: manifest standard (SUIT), firmare e verificare gli aggiornamenti, rollback e partizioni A/B.
Formati dati e semantica
- CBOR: binario, compatto; spesso con CoAP e OSCORE.
- JSON: ubiquo, leggibile; ottimo per gateway e cloud.
- SenML: rappresentazione standardizzata di misure e metadati (unità, timestamp), in JSON o CBOR.
- Protobuf/FlatBuffers: schema evolvibile e serializzazione veloce per flussi ad alte prestazioni.
Protocol stack tipici (dalla periferia al cloud)
- Sensori a batteria: 802.15.4/Thread → IPv6/6LoWPAN → CoAP/OSCORE → LwM2M per gestione remota.
- Gateway domestico: Ethernet/Wi-Fi → MQTT su TLS verso broker; CoAP o Zigbee/Thread a valle.
- Industriale/Real-time: Ethernet TSN → DDS con QoS deterministiche → integrazione con OPC UA o data lake.
- Asset distribuiti su ampia area: LoRaWAN o NB-IoT → MQTT/HTTP → piattaforma cloud con regole e storage time-series.
Criteri pratici di selezione
- Vincoli energetici: CoAP su UDP con CBOR e Observe minimizza i wake-up; MQTT con sessioni persistenti è ottimo ma il costo del keep-alive va calibrato.
- Topologia: reti mesh (Thread/Zigbee) favoriscono CoAP/LwM2M; architetture hub-and-spoke e cloud preferiscono MQTT.
- Affidabilità e ordering: esigere QoS “esattamente una volta” spinge verso MQTT o AMQP; per hard real-time valutare DDS.
- Interoperabilità IT/web: se l’ecosistema è già HTTP-centrico, HTTP/2–3 semplifica integrazione e governance.
- Gestione flotta: LwM2M copre bootstrap, inventario, telemetria e FOTA con modelli standard.
- Copertura geografica: LPWAN limita payload e frequenza; progettare messaggi compatti (CBOR/SenML) e meccanismi di retry lato applicativo.
- Costi e lock-in: prediligere standard aperti, broker e stack portabili, e definire contratti di dati (schemi) versionati.
Pattern architetturali ricorrenti
- Gateway Edge: traduce protocolli di campo (Modbus, Zigbee, BLE) in MQTT/HTTP verso il cloud; applica filtraggio, aggregazione, caching e sicurezza.
- Digital Twin: topic e risorse modellati sul gemello digitale; back-pressure e QoS mappati su criticità del dato.
- Command & Control sicuro: canali separati per comandi e telemetria, ACL per topic/risorse e device shadow per idempotenza.
- Store-and-Forward: buffer locale con politiche di scarto per garantire resilienza durante blackout di rete.
Osservabilità e qualità del servizio
- Metriche: tassi di publish, latenza end-to-end, tasso di scarto, percentuale di ricollegamenti, batteria residua, integrità FOTA.
- Tracing: correla messaggi tra edge, broker e servizi; usa identificatori di flusso e timestamp coerenti.
- QoS “per classe di dato”: telemetria critica su QoS alto, diagnostica su QoS basso e rate limit; priorità in coda lato broker.
Interoperabilità e standard emergenti
- Matter: semplifica interoperabilità domestica su Thread/Wi-Fi con modello di dati comune.
- OPC UA PubSub: ponte tra OT e IT con profili su UDP/TSN e integrazione con DDS/MQTT.
- oneM2M: architettura di servizio comune per scambio dati e gestione tra domini eterogenei.
Checklist di adozione
- Definire i casi d’uso (telemetria, comandi, firmware, discovery) e mappare i requisiti di QoS.
- Valutare vincoli di energia, memoria, CPU, portata e disponibilità rete.
- Stabilire il modello dati (JSON/CBOR, SenML) e versionarlo.
- Progettare sicurezza end-to-end: identità, cifratura, rotazione chiavi, FOTA sicuri.
- Pianificare operabilità: provisioning, osservabilità, SLO, capacity dei broker/servizi.
- Testare con reti degradate (loss, jitter, roaming) e scenari di riavvio/aggiornamento.
Conclusioni
Non esiste un protocollo “migliore” in assoluto: la scelta parte dai requisiti del caso d’uso e si concretizza in stack compositi. Per dispositivi estremamente vincolati e reti mesh, CoAP (magari con LwM2M e OSCORE) è spesso ideale; per telemetria cloud e integrazioni rapide, MQTT rimane la via più pratica; per ambienti industriali deterministici, DDS e OPC UA PubSub offrono controllo fine sul QoS. Investire in sicurezza, modelli di dati stabili e osservabilità è determinante per sostenere l’evoluzione dell’IoT nel tempo.