Ciao, habrarians! inizia a OTUS già a ottobre. Al momento è aperta l'iscrizione al corso, per questo continuiamo a condividere con voi materiali utili.

L'Internet delle Cose (IoT, Internet of Things) sarà costruito sulla base dell'attuale infrastruttura di rete, delle tecnologie e dei protocolli attualmente in uso nelle case/uffici e su Internet, offrendo molte altre cose.
L'obiettivo di questa guida è fornire una panoramica sui protocolli di rete e applicativi per l'IoT.
Nota. È necessario avere conoscenze .
reti IoT
L'IoT funzionerà nelle reti TCP/IP esistenti.
TCP/IP utilizza un modello a quattro livelli con protocolli specifici per ogni livello. Vedi. (comprendere il modello a quattro livelli TCP/IP).
Nella diagramma sottostante è mostrato un confronto tra i protocolli attualmente utilizzati e quelli che probabilmente saranno utilizzati per l'IoT.

Note al diagramma:
La dimensione del carattere riflette il grado di popolarità del protocollo. Ad esempio, a sinistra IPv4 è più grande poiché è molto più popolare nell'attuale Internet. Tuttavia, a destra è più piccolo, poiché si prevede che IPv6 sarà più popolare nell'IoT.
Non sono mostrati tutti i protocolli.
Ci sono i maggiori cambiamenti nei livelli di collegamento (livelli 1 e 2) e applicativi (livello 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 nelle vicinanze, ad esempio, in reti locali (local networks), sia a grande distanza: in reti urbane (metropolitan area networks) e reti globali (wide area networks).
Attualmente a questo livello in reti domestiche e di ufficio (LAN) vengono utilizzati Ethernet e Wi-Fi, mentre nelle reti mobili (WAN) si utilizza il 3G / 4G. Tuttavia, molti dispositivi IoT sono a basso consumo, ad esempio, sensori, e funzionano solo a batteria. In questi casi, Ethernet non è adatto, ma è possibile utilizzare Wi-Fi a basso consumo e Bluetooth a basso consumo.
Sebbene per connettere questi dispositivi si continueranno a utilizzare le tecnologie wireless esistenti (Wi-Fi, Bluetooth, 3G / 4G), vale la pena prestare attenzione anche a nuove tecnologie progettate specificamente per le applicazioni IoT, la cui popolarità probabilmente aumenterà.
Tra queste ci sono:
BLE – Bluetooth Low Energy
LoRaWAN – Long Range WAN
SigFox
LTE-M
Sono descritti in modo più dettagliato nell'articolo (overview delle tecnologie wireless IoT).
Livello di rete
A livello di rete (Networking) nel lungo periodo dominerà il protocollo . È poco probabile che l'IPv4 venga utilizzato, ma potrebbe avere un ruolo nelle fasi iniziali. La maggior parte dei dispositivi IoT per la casa, ad esempio, le lampadine intelligenti, attualmente utilizzano l'IPv4.
Livello di trasporto
A livello di trasporto (Transport), TCP domina su Internet e nel web. È utilizzato sia in HTTP che in molti altri protocolli popolari di Internet (SMTP, POP3, IMAP4, ecc.).
MQTT, che mi aspetto diventi uno dei protocolli principali a livello applicativo per la messaggistica, attualmente utilizza TCP.
Tuttavia, in futuro, a causa di spese generali più basse, prevedo che UDP sarà più popolare per IoT. Probabilmente avrà una diffusione più ampia , che funziona sopra UDP. Vedi l'articolo su .
Livello applicativo e protocolli di messaggistica
Caratteristiche importanti per i protocolli IoT:
Velocità — la quantità di dati trasmessi al secondo.
Latenza — il tempo necessario per trasmettere 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 di questo livello, alla base del web (WWW). Continuerà a rivestire un'importanza fondamentale per IoT, poiché viene utilizzato per le API REST, il principale meccanismo di interazione tra applicazioni e servizi web. Tuttavia, a causa delle elevate spese generali, è poco probabile che HTTP diventi il protocollo principale per IoT, anche se continuerà a essere ampiamente utilizzato su Internet.
MQTT (Message Queuing Telemetry Transport) è diventato il principale protocollo di messaggistica per IoT, grazie alla sua leggerezza e semplicità d'uso. Vedi l'articolo (Introduction to MQTT for beginners).
Confronto tra HTTP e MQTT per IoT
MQTT sta rapidamente diventando lo standard de facto per le applicazioni IoT. Ciò è dovuto alla sua leggerezza e velocità rispetto a HTTP e al fatto che è un protocollo 'uno a molti', piuttosto che 'uno a uno' (HTTP).
Molte applicazioni web moderne 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, ad esempio, riguardo all'arrivo e alla partenza di treni / autobus / aerei. In questo scenario, il protocollo "uno a uno", come HTTP, ha un elevato overhead e crea un notevole carico sui server web. Scalare questi server web può essere difficile. Con MQTT, i client si collegano a un broker, che può essere facilmente aggiunto per bilanciare il carico. Vedi questo tutorial con video. e l'articolo .
Altri protocolli di messaggistica
HTTP non è stato progettato per applicazioni IoT, ma, come già accennato, sarà ampiamente utilizzato per un po' di tempo grazie al suo ampio uso in .
Quasi tutte le piattaforme IoT supportano sia HTTP che MQTT.
Tuttavia, ci sono anche altri protocolli da considerare.
Protocolli
— (Message Queuing Telemetry Transport). Utilizza TCP/IP. Per il modello "publisher-subscriber" è necessario un broker di messaggi.
— (Advanced Message Queuing Protocol). Utilizza TCP/IP. Modelli "publisher-subscriber" e "point-to-point".
— (Constrained Application Protocol). Utilizza UDP. Progettato specificamente per IoT, utilizza il modello richiesta-risposta come in HTTP. .
— (Data Distribution Service)
In questo vengono considerati 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 guardiamo indietro, nei primi anni di esistenza di Internet, il protocollo HTTP, che in seguito è diventato dominante, era solo uno dei tanti protocolli.
Anche se HTTP non è stato progettato inizialmente per la trasmissione di file e email, oggi viene utilizzato per entrambi.
Mi aspetto che nel mondo IoT accada lo stesso con i protocolli di messaggistica: la maggior parte dei servizi utilizzerà un protocollo predominante.
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

Supporto dei protocolli per piattaforme
— MQTT, AMQP, HTTP e HTTPS
— MQTT, HTTPS, MQTT su websockets
IBM Bluemix – MQTT, HTTPS, MQTT
— MQTT, HTTPS, MQTT, AMQP
Riepilogo
Ci sono i maggiori cambiamenti nei livelli di collegamento (livelli 1 e 2) e applicativi (livello 4).
I livelli di rete e trasporto probabilmente rimarranno invariati.
A livello pratico, i componenti IoT utilizzeranno protocolli di messaggistica. Anche se siamo ancora nelle fasi iniziali dello sviluppo dell'IoT, è probabile che si delinei uno o forse due protocolli di messaggistica.
Negli ultimi anni, MQTT è diventato il più popolare, ed è su questo che mi sto attualmente concentrando su questo sito.
L'HTTP continuerà a essere utilizzato, poiché è già ben integrato nelle piattaforme IoT esistenti.
Questo è tutto. Ti invitiamo a registrarti per una lezione dimostrativa gratuita sul tema .
Leggi anche:
Fonte: habr.com
