MQTT

mqttMQTT je zkratka pro MQ Telemetry Transport. Jedná se o mimořádně jednoduchý a nenáročný protokol postavený nad TCP/IP a navržený pro jednoduchá zařízení, úzkou šířku pásma, vysokou latenci nebo nespolehlivé sítě. Byl vyvinut v roce 1999 doktorem Andy Stanford-Clarkem z IBM a Arlenem Nipperem z firmy Arcom (nyní Eurotech). Od roku 2013 je pod správou sdružení OASIS (The Organization for the Advancement of Structured Information Standards).

Základní principy tohoto protokolu jsou minimalizace zatížení sítě a omezení požadavků na zdroje zařízení. Zároveň se snaží zajistit spolehlivost a určitý stupeň zajištění doručení zprávy. Tyto vlastnosti předurčují MQTT vhodným k nasazení v M2M zařízeních a internetu věcí, kde jsou úzká šířka pásma a dlouhá výdrž baterie prioritou.

Základem MQTT komunikace je systém typu zveřejnit/odebírat (publish/subscribe). Zprávy mohou produkovat například snímače, které je publikují do jednoho centra (MQTT Broker). Každá zpráva je publikována s názvem tématu (topic), které broker rozešle všem klientům, jež si je objednali k odběru (subscribe). Klientem může být webová služba, aplikace nebo konkrétní zařízení (např. mikro-
kontrolér, displej…), které zprávu dále zpracuje.

mqtt-topology

(zdroj obrázku)

MQTT také podporuje zabezpečení zprávy. Od verze 3.1 můžete do paketu přidat uživatelské jméno a heslo.  Šifrování komunikace může být dále řešeno pomocí SSL, nezávisle na MQTT protokolu (SSL ovšem významně zatěžuje vlastní síť). Dodatečné zabezpečení lze také zajistit na aplikační vrstvě pomocí šifrování dat, které ovšem součástí protokolu není (s cílem udržet jej jednoduchým a „lehkým“).

K předávání zpráv slouží standardní komunikační TCP/IP porty: 1883 pro MQTT s IANA a také port 8883 pro použití MQTT přes SSL. Protokol je standardizován ISO/IEC PRF 20922.

zdroj a více informací