How Can We Help?

Print

Guida per principianti al protocollo MQTT

 

Che cos’è MQTT?

MQTT è un protocollo di trasferimento dati Machine-to-Machine (M2M) che consente ai sistemi SCADA di accedere ai dati IIoT. È considerato uno dei principali protocolli di messaggistica per l’Industrial Internet of Things (IIoT).

MQTT è un protocollo di messaggistica, cioè è stato progettato per trasferire messaggi e utilizza un modello publish and subscribe.

Come funziona MQTT?

MQTT è un protocollo publish/subscribe che consente ai dispositivi edge-of-network di pubblicare a un broker. I client si collegano a questo broker, che media la comunicazione tra i due dispositivi. … Quando un altro client pubblica un messaggio su un argomento sottoscritto, il broker inoltra il messaggio a tutti i client che si sono iscritti.

Termine Spiegazione
Diagramma
Cliente Un programma o un dispositivo che utilizza MQTT. Cliente:

  • apre la connessione di rete al server
  • pubblica messaggi applicativi che altri client
  • si iscrive per richiedere messaggi applicativi
  • si disiscrive per rimuovere una richiesta di messaggi di applicazione
  • chiude la connessione di rete al server
Server (Broker) Un programma o un dispositivo che funge da intermediario tra i client che pubblicano i messaggi di applicazione e i client che hanno effettuato le sottoscrizioni. Server:

  • accetta le connessioni di rete dai client
  • accetta i messaggi applicativi pubblicati dai client
  • elabora le richieste di sottoscrizione e annullamento da parte dei clienti
  • inoltra i messaggi applicativi che corrispondono alle sottoscrizioni dei clienti
  • chiude la connessione di rete dal client
Connessione Connette il client al server. Fornisce i mezzi per inviare un flusso di byte ordinato, senza perdite, in entrambe le direzioni.
Sessione Un’interazione di stato tra un client e un server.
Alcune sessioni durano solo quanto la connessione di rete, mentre altre possono estendersi su più connessioni di rete consecutive tra un client e un server.
Sottoscrizione La sottoscrizione comprende un filtro per argomenti e una QoS massima. Una sottoscrizione è associata a una singola sessione. Una sessione può contenere più di una sottoscrizione. Ogni Sottoscrizione all’interno di una Sessione ha un Filtro argomento diverso.
Filtro argomento Espressione contenuta in una Sottoscrizione per indicare l’interesse per uno o più argomenti. Un filtro argomento può includere caratteri jolly.
Nome dell’argomento L’etichetta allegata a un Messaggio applicativo che viene confrontata con le Sottoscrizioni note al Server.
Messaggio applicativo I dati trasportati dal protocollo MQTT attraverso la rete per l’applicazione.
Quando un Messaggio di applicazione viene trasportato da MQTT, contiene:

  • dati del payload,
  • una qualità del servizio (QoS),
  • un insieme di proprietà,
  • un nome di argomento.
Messaggio di volontà Un messaggio applicativo che viene pubblicato dal server dopo l’interruzione della connessione di rete.
QoS 0 Consegna al massimo una volta
Il messaggio viene consegnato in base alle capacità della rete sottostante. Il server non invia alcuna risposta e il client non esegue alcun tentativo. Il messaggio arriva al Server una sola volta o non arriva affatto.
QoS 1 Almeno una volta
Un pacchetto PUBLISH QoS 1 inviato dal Client viene riconosciuto da un pacchetto PUBACK inviato dal Server. Il messaggio arriva al Server una o più volte.
QoS 2 Consegna esattamente una volta
Il pacchetto PUBLISH del server conferma la ricezione con un processo di conferma in due fasi. Da utilizzare quando non sono accettabili né la perdita né la duplicazione dei messaggi. L’overhead associato a QoS 2 è maggiore.