Panoramica dei protocolli di rete e dei protocolli di messaggistica per IoT

Ciao, amici di Habr! Il primo corso online di sviluppatore IoT in Russia inizierà in OTUS già a ottobre. Proprio ora è aperta l'iscrizione al corso, per cui continuiamo a condividere con voi materiali utili.

Panoramica dei protocolli di rete e dei protocolli di messaggistica per IoT

L'Internet delle Cose (IoT, Internet of Things) sarà costruito sulla base dell'attuale infrastruttura di rete, delle tecnologie e dei protocolli attualmente utilizzati nelle case/uffici e su Internet, e offrirà molto altro.

L'obiettivo di questa guida è fornire una panoramica dei protocolli di rete e applicativi per l'IoT.

Nota. È necessario avere conoscenze di base sulle tecnologie di rete.

reti IoT

L'IoT funzionerà nelle attuali reti TCP/IP.

TCP/IP utilizza un modello a quattro livelli con protocolli specifici a ciascun livello. Vedi. understanding the TCP/IP 4 layer model (comprendendo il modello a quattro livelli TCP/IP).

Nella diagramma sottostante è mostrato un confronto tra i protocolli attualmente utilizzati e quelli che molto probabilmente saranno utilizzati per l'IoT.

Panoramica dei protocolli di rete e dei protocolli di messaggistica per IoT

Note al diagramma:

  1. La dimensione del carattere riflette il grado di popolarità del protocollo. Ad esempio, a sinistra, IPv4 è più grande, poiché è molto più popolare nell'Internet moderno. Tuttavia, a destra è più piccolo, poiché si prevede che IPv6 sarà più popolare nell'IoT.

  2. Non sono mostrati tutti i protocolli.

  3. Ci sono stati maggiori cambiamenti nei livelli di collegamento (livelli 1 e 2) e applicazione (livello 4).

  4. I livelli di rete e trasporto probabilmente rimarranno invariati.

Protocolli di livello di collegamento

A livello di collegamento (Data Link) è necessario connettere i dispositivi tra loro. Possono trovarsi sia vicini, ad esempio, nelle reti locali (local networks), sia a grandi distanze l'uno dall'altro: nelle reti metropolitane (metropolitan area networks) e nelle reti globali (wide area networks).

Attualmente, a questo livello, nelle reti domestiche e di ufficio (LAN) vengono utilizzati Ethernet e Wi-Fi, mentre nelle reti mobili (WAN) si utilizzano 3G / 4G. Tuttavia, molti dispositivi IoT sono a bassa potenza, come i sensori, e si alimentano solo a batteria. In questi casi, Ethernet non è adatto, ma è possibile utilizzare il Wi-Fi e il Bluetooth a bassa potenza.

Sebbene per collegare questi dispositivi continueranno a essere utilizzate le tecnologie wireless esistenti (Wi-Fi, Bluetooth, 3G / 4G), è importante anche prestare attenzione alle nuove tecnologie appositamente sviluppate per le applicazioni IoT, la cui popolarità, con ogni probabilità, continuerà a crescere.

Tra queste:

  • BLE – Bluetooth Low Energy

  • LoRaWAN – Long Range WAN

  • SigFox

  • LTE-M

Sono descritte più nel dettaglio nell'articolo An overview of IOT wireless technologies (una panoramica delle tecnologie wireless IoT).

Livello di rete

A livello di rete (Networking) a lungo termine dominerà il protocollo IPv6. È poco probabile che venga utilizzato l'IPv4, ma potrebbe avere un certo ruolo nelle fasi iniziali. La maggior parte dei dispositivi IoT per la casa, ad esempio, le lampadine intelligenti, attualmente utilizza l'IPv4.

Livello di trasporto 

A livello di trasporto (Transport) su Internet e sul web domina il TCP. Viene utilizzato sia in HTTP che in molti altri protocolli Internet popolari (SMTP, POP3, IMAP4, ecc.).

MQTT, che penso diventerà uno dei protocolli principali a livello applicativo per la messaggistica, attualmente utilizza il TCP.

Tuttavia, in futuro, a causa di costi operativi inferiori, mi aspetto che UDP diventi più popolare per l'IoT. Probabilmente, avrà una diffusione più ampia MQTT-SN, che opera su UDP. Vedi l'articolo di confronto TCP vs UDP .

Livello applicativo e protocolli di messaggistica

Caratteristiche importanti per i protocolli IoT:

  • Velocità — quantità di dati trasmessi al secondo.

  • Ritardo — tempo necessario per inviare un messaggio.

  • Consumo energetico.

  • Sicurezza.

  • Disponibilità di strumenti software.

Attualmente, a questo livello sono attivamente utilizzati due protocolli principali: HTTP e MQTT.

HTTP è probabilmente il protocollo più noto a questo livello, alla base del web (WWW). Continuerà ad avere un'importanza significativa per l'IoT, poiché è utilizzato per le API REST — il principale meccanismo di interazione tra applicazioni web e servizi. Tuttavia, a causa dei costi elevati, è improbabile che HTTP diventi il protocollo principale per l'IoT, anche se verrà comunque ampiamente utilizzato su Internet.

MQTT (Message Queuing Telemetry Transport) è diventato il protocollo principale per la messaggistica nell'IoT, grazie alla sua leggerezza e facilità d'uso. Vedi l'articolo Introduzione a MQTT per principianti (Introduzione a MQTT per principianti).

Confronto tra HTTP e MQTT per IoT

MQTT sta rapidamente diventando lo standard de facto per le applicazioni IoT. Questo è dovuto alla sua leggerezza e rapidità rispetto a HTTP e al fatto che è un protocollo 'one-to-many', piuttosto che 'one-to-one' (HTTP).

Molte moderne applicazioni web sarebbero felici di utilizzare MQTT invece di HTTP, se fosse stato disponibile al momento della loro sviluppo.

Un buon esempio è l'invio di informazioni a molti clienti, come gli arrivi e le partenze di treni / autobus / aerei. In questo scenario, un protocollo 'one-to-one' come HTTP presenta un'elevata latenza e carica maggiormente i server web. Scalare questi server web può essere complicato. Con MQTT, i client si connettono a un broker, che può essere facilmente aggiunto per bilanciare il carico. Consulta questo tutorial con video. Ripubblica i dati HTML tramite MQTT (Esempio Arrivi Voli) e l'articolo MQTT vs HTTP per IOT.

Altri protocolli di messaggistica

HTTP non è stato progettato per le applicazioni IoT, ma, come già accennato, continuerà a essere ampiamente utilizzato per un certo periodo grazie alla sua ampia adozione in API.

Quasi tutte le piattaforme IoT supportano sia HTTP sia MQTT.

Tuttavia, ci sono anche altri protocolli da considerare.

Protocollo

  • MQTT — (Message Queuing Telemetry Transport). Utilizza TCP/IP. Per il modello 'publish-subscribe' è richiesto un broker messaggi.

  • AMQP — (Advanced Message Queuing Protocol). Utilizza TCP/IP. Modelli 'publish-subscribe' e 'point-to-point'.

  • COAP — (Constrained Application Protocol). Utilizza UDP. Sviluppato specificamente per IoT, utilizza il modello richiesta-risposta come in HTTP. RFC 7252.

  • DDS — (Data Distribution Service) 

In questo articolo si esaminano i protocolli principali e le loro applicazioni. La conclusione di questo articolo è che l'IoT utilizzerà un insieme di protocolli, a seconda del loro utilizzo previsto.

Tuttavia, se ci si guarda indietro, nei primi anni di esistenza di Internet, il protocollo HTTP, divenuto poi dominante, era solo uno dei tanti protocolli.

Nonostante HTTP non fosse stato originariamente progettato per il trasferimento di file e di email, oggi viene utilizzato per entrambi.

Mi aspetto che anche nell'IoT accada lo stesso con i protocolli di messaggistica: la maggior parte dei servizi utilizzerà un protocollo preponderante.

Di seguito sono riportati i grafici di Google Trends che mostrano come è cambiata la popolarità di MQTT, COAP e AMQP negli ultimi anni.

Panoramica di Google Trends 

Panoramica dei protocolli di rete e dei protocolli di messaggistica per IoT

Supporto dei protocolli per piattaforme

  • Microsoft Azure — MQTT, AMQP, HTTP e HTTPS

  • AWS — MQTT, HTTPS, MQTT su websockets

  • IBM Bluemix – MQTT, HTTPS, MQTT

  • Thingworx — MQTT, HTTPS, MQTT, AMQP

Riepilogo

Ci sono stati maggiori cambiamenti nei livelli di collegamento (livelli 1 e 2) e applicazione (livello 4).

I livelli di rete e trasporto probabilmente rimarranno invariati.

A livello applicativo, i componenti IoT utilizzeranno protocolli di messaggistica. Anche se siamo ancora nelle fasi iniziali di sviluppo dell'IoT, è probabile che si affermino uno o due protocolli di messaggistica.

Negli ultimi anni MQTT è diventato il più popolare, ed è su di esso che mi sto attualmente concentrando su questo sito.

HTTP continuerà a essere utilizzato, poiché è già ben integrato nelle piattaforme IoT esistenti.

Questo è tutto. Ti invitiamo a registrarti per una lezione dimostrativa gratuita su «Chatbot per comandi rapidi ai dispositivi».

Leggi di più:

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster