Cosa sono Protocolli di comunicazione IoT?
I protocolli IoT sono standard o “lingue” utilizzati dalle macchine per comunicare tra loro, o con piattaforme. In base alle loro caratteristiche e funzionalità, questi protocolli sono principalmente suddivisi in 3 tipi: protocolli di trasmissione, protocolli di comunicazione, e protocolli specifici del settore.
Protocolli di trasmissione: utilizzato dai dispositivi per Rete IoT e collegamento all'interno della sottorete, incluso Wi-Fi, Bluetooth, Zigbee, Ethernet, NFC, 3G/ 4G/ 5G ecc.
Protocolli di comunicazione: utilizzato per la trasmissione dei dati tra i dispositivi, operare sopra il livello di rete e fornire ai servizi di livello dell'applicazione agli utenti. Alcuni dei protocolli di comunicazione: MQTT, Coap, Http/https, WebSocket, AMQP.
Protocolli specifici del settore: protocolli standard all'interno di un settore specifico per garantire la compatibilità tra i dispositivi, sistemi, piattaforme di diversi produttori e marchi, come jt/t 808 Protocollo di comunicazione del terminale del veicolo in Cina.
Comprensione di 7 Protocolli di comunicazione IoT:
Qui troverai alcuni dei protocolli di comunicazione utilizzati nel settore dell'IoT, Compreso:
1. Riposo/http
Cosa è riposo
RIPOSO (Trasferimento di stato rappresentativo)è uno stile architettonico piuttosto che standard per la progettazione di applicazioni in rete, In genere utilizza HTTP come protocollo di trasporto per implementare i suoi principi architettonici.
Caratteristiche:
- Apolide: Ogni richiesta contiene tutte le informazioni necessarie, e il server non mantiene lo stato del client.
- Identificazione delle risorse: Sul lato del server, Lo stato e la funzionalità dell'applicazione possono essere divisi in varie risorse, che sono esposti al cliente. Esempi di risorse includono oggetti dell'applicazione, Record di database, Algoritmi, eccetera. A ogni risorsa viene assegnato un indirizzo univoco utilizzando un URI (Identificatore delle risorse universali).
- Interfaccia uniforme: Usa i metodi HTTP standard per manipolare le risorse, come get, INVIARE, METTERE, ELIMINARE
Applicazione:
REST/HTTP mira principalmente a semplificare l'architettura di sistema di Internet, Raggiungere rapidamente l'accoppiamento sciolto tra le interazioni client e server, riducendo così la latenza di interazione. Perciò, è adatto per Applicazione IoT, Abilitare l'esposizione delle risorse dell'IoT attraverso il riposo, Consentire ai servizi di essere invocati da altre applicazioni.
2. Coap
Cos'è Coap
Coap (Protocollo di applicazione vincolato) offre comunicazioni facili ed efficienti per dispositivi vincolati, rendendolo ideale per il funzionamento a bassa potenza, bassa larghezza della banda, e ambienti ad alta latenza.
Caratteristiche:
- Compressione dell'intestazione: Coap presenta un'intestazione binaria compatta con una base di 4 byte, seguito da opzioni estese, in genere risultante in un'intestazione di richiesta di 10-20 byte.
- Metodi e URI: Supporti Get, METTERE, INVIARE, Elimina metodi, e URI per l'accesso alle risorse del server.
- Strato di trasporto: Costruito su UDP per ridurre al minimo le spese generali e supportare il multicast, con un semplice meccanismo di affidabilità stop-and-wait.
- Comunicazione asincrona: A differenza di Http, Coap supporta la comunicazione asincrona, Ideale per applicazioni M2M.
- Scoperta delle risorse: Include un formato integrato per la scoperta delle risorse, conforme a RFC 5785, Utilizzo di /.well-noto/core per le descrizioni delle risorse.
- Cache: Supporta la memorizzazione nella cache delle descrizioni delle risorse per migliorare le prestazioni.
Applicazione:
Coap è un'API RESTUL basata su HTTP semplificata. COAP è un protocollo di livello dell'applicazione in 6 Stack del protocollo LowPan, Adatto per reti IP di comunicazione limitata alle risorse, come sensori a bassa potenza e sistemi incorporati.
3. MQTT
Cos'è mqtt
Il protocollo MQTT utilizza un modello di pubblicazione/iscrizione, dove i terminali IoT si collegano in genere a un broker MQTT tramite TCP. Il broker gestisce i contenuti di comunicazione attraverso argomenti ed è responsabile del trasferimento di messaggi tra i dispositivi.
Caratteristiche:
- Pubish/Iscriviti Modello: I clienti possono pubblicare messaggi su un argomento e iscriversi per ricevere messaggi da argomenti specifici. Questo modello abilita la distribuzione flessibile dei messaggi.
- Bassa larghezza di banda: L'intestazione del messaggio è minima, in genere solo 2 byte, supportare un efficiente utilizzo della larghezza di banda e renderlo adatto a bassa larghezza di banda, alta latenza, e reti instabili.
- Affidabilità: MQTT offre tre livelli di QoS per la consegna dei messaggi: “Al massimo una volta,” “almeno una volta,” E “Esattamente una volta.”
Applicazione:
MQTT è generalmente adatto per la raccolta dei dati del dispositivo agli endpoint (per esempio., Dispositivo -> Server) e comunicazione centralizzata in un'architettura della rete stellare, con il broker che funge da hub. È ampiamente utilizzato negli scenari IoT ed è stato adottato anche in alcune applicazioni mobili, Come Facebook Messenger (storicamente).
4. DDS
Cos'è DDS
DDS (Servizio di distribuzione dei dati) è uno standard di middleware creato per sistemi in tempo reale. Soddisfa le rigorose esigenze delle applicazioni distribuite fornendo la bassa latenza, Throughput elevato, e prestazioni deterministiche.
Caratteristiche:
- Incentrato sui dati
- Brokerless Pubblicazione/Modello di messaggistica di iscrizione: Supportare punto a punto, point-to-multipoint, e comunicazione multipoint-a-multipoint.
- Offrire fino a 21 Qualità del servizio (QoS) Politiche
Applicazione:
Distribuito, Altamente affidabile, Comunicazione dati in tempo reale per i dispositivi. Attualmente, Il DDS è ampiamente utilizzato in campi come l'aviazione civile e il controllo industriale.
5. AMQP
Cos'è AMQP
AMQP è un protocollo a livello di applicazione a livello aperto progettato per garantire la trasmissione dei messaggi affidabili e i meccanismi di accodamento.
Caratteristiche:
- Protocollo a livello di filo: Trasmette i dati attraverso la rete come un flusso di byte.
- Elevata compatibilità dovuta allo standard aperto
- Flessibile & Sicuro: Supporta vari modelli di messaggistica, tra cui pubblicare/iscrivere e punto-punto. Incorpora anche multipli meccanismi di sicurezza, come crittografia e autenticazione.
Applicazione:
Inizialmente utilizzato per la messaggistica delle transazioni nei sistemi finanziari, AMQP è ora utilizzato principalmente nelle applicazioni IoT per la comunicazione e l'analisi dei dati tra dispositivi mobili e data center back -end.
6. XMPP
Cos'è XMPP
Come protocollo di comunicazione a livello aperto, XMPP (Protocollo di messaggistica e presenza estensibile) è progettato per la comunicazione in tempo reale, come la messaggistica istantanea e le informazioni sulla presenza.
Caratteristiche:
- Modello di comunicazione client/server: I client inviano richieste al server, che elabora le richieste e invia la risposta o la risorsa appropriate al client.
- Rete distribuita: Più nodi indipendenti formano la rete, Eliminare singoli punti di fallimento.
- Clienti semplici: I clienti gestiscono meno attività, Con la maggior parte del calcolo effettuato sul lato server.
- XML viene utilizzato per descrivere i dati, Garantire la compatibilità multipiattaforma, Sebbene JSON sia diventato più popolare nelle applicazioni moderne.
Applicazione:
XMPP viene utilizzato nella messaggistica istantanea, Gestione della rete, consegna dei contenuti, Strumenti di collaborazione, Condivisione di file, gioco, Monitoraggio del sistema remoto, e altro ancora.
7. JMS
Cos'è JMS
JMS (Servizio di messaggi Java) è un'API standard della piattaforma Java per i messaggi nelle applicazioni distribuite. Consente alle applicazioni di comunicare tramite code di messaggi, raggiungendo così asincrono, flessibile, e scambio di messaggi affidabili.
Caratteristiche:
- Comunicazione asincrona: Consente di inviare e ricevere messaggi in momenti diversi, Aumentare la flessibilità e la reattività del sistema.
- Durabilità del messaggio: Fornisce la persistenza del messaggio, Garantire che i messaggi non vengano persi in caso di guasti del sistema, e migliorare l'affidabilità
- Supporto delle transazioni: JMS fornisce supporto alle transazioni, Garantire l'atomicità di un gruppo di operazioni di messaggi, Significa che tutte le operazioni riescono completamente o falliscono del tutto, garantendo così la coerenza dei dati.
Applicazione:
JMS è ideale per applicazioni distribuite che richiedono messaggi asincroni, disaccoppiamento del sistema, e alta affidabilità, come l'integrazione delle applicazioni aziendali, Architettura basata su eventi, e l'elaborazione dei dati in tempo reale.
Confronti dei protocolli di comunicazione IoT
Caratteristica | DDS | MQTT | AMQP | XMPP | JMS | Riposo/http | Coap |
---|---|---|---|---|---|---|---|
Astrazione | Pub/sub | Pub/sub | Pub/sub | QUELLO | Pub/sub | Richiesta/risposta | Richiesta/risposta |
Architettura | Spazio di dati globale | Procura | P2P o proxy | QUELLO | Procura | Attraverso la garanzia TCP | P2P |
QoS | 22 tipi | 3 tipi | 3 tipi | QUELLO | 3 tipi | Confermare tramite TCP o messaggi confermati | SÌ |
Interoperabilità | SÌ | Parzialmente | SÌ | QUELLO | NO | SÌ | SÌ |
Prestazione | 100,000 msg/s/sub | 1,000 msg/s/sub | 1,000 msg/s/sub | QUELLO | 1,000 msg/s/sub | 100 req/s | 100 req/s |
Tempo reale | SÌ | NO | NO | NO | NO | NO | SÌ |
Strato di trasporto | Supporta UDP e TCP | TCP | TCP | Non specificato, di solito TCP | TCP | UDP | UDP |
Filtro di abbonamento | Messaggio basato sul contenuto e filtraggio basato su argomenti | Abbonamento a strati in base agli argomenti e al contenuto del messaggio | Filtro in coda e messaggi | QUELLO | Contenuto dei messaggi e filtraggio degli argomenti | Non supportato | Supporta argomento e multicast |
Codifica | Binario | Binario | Binario | Formato XML | Binario | Testo semplice | Testo semplice |
Scoperta dinamica | SÌ | NO | NO | QUELLO | NO | NO | NO |
Sicurezza | Fornisce FSS, TLS, e altre opzioni di sicurezza | Semplice nome utente/password, Crittografia dei dati SSL | Crittografia dei dati SASL e TLS | QUELLO | Fornisce FSS, TLS, Supporto API JAAS | Supporto generale per SSL e TLS | Supporto generale per SSL e TLS |
Conclusione
MQTT, DDS, AMQP, XMPP, JMS, RIPOSO, e Coap sono protocolli ampiamente usati, ognuno con implementazioni multiple, Tale richiesta di supporto per la comunicazione IoT di pubblicazione/iscrizione in tempo reale. Tuttavia, Quando si progettano architetture specifiche del sistema IoT, È essenziale considerare le esigenze di comunicazione effettive dello scenario, come limiti di larghezza di banda, Requisiti di latenza, e sicurezza, prima di selezionare il protocollo più appropriato.