Definition Was ist MQTT (Message Queuing Telemetry Transport)?
Message Queuing Telemetry Transport ist ein Protokollstandard für die Machine-to-Machine-Kommunikation. Er basiert auf einer Publish-Subscribe-Architektur mit einem Message-Broker, der als MQTT-Server agiert. Das Protokoll lässt sich einsetzen, um beispielsweise Telemetriedaten von Sensoren an Aktoren zu übertragen.
Anbieter zum Thema

Die Abkürzung für Message Queuing Telemetry Transport lautet MQTT. Zum Teil veraltete und nicht mehr gebräuchliche Bezeichnungen für Message Queuing Telemetry Transport sind WebSphere MQTT (WMQTT), SCADA oder MQ Integrator SCADA Device Protocol (MQIsdp).
Es handelt sich um einen Protokollstandard, der für die Kommunikation und den Austausch von Nachrichten zwischen Maschinen und das Internet der Dinge (IoT) vorgesehen ist. Es lassen sich beispielsweise die von Sensoren erfassten Telemetriedaten an Aktoren übertragen.
Das Protokoll basiert auf einer so genannten Publish-Subscribe-Architektur. Eine zentrale Rolle in dieser Architektur nimmt der Message-Broker ein. Er fungiert als MQTT-Server und entkoppelt die Kommunikationspartner voneinander. Der Broker kann Nachrichten zwischenspeichern und reduziert den technischen Aufwand in den Endgeräten. Message Queuing Telemetry Transport ist einfach aufgebaut und lässt sich auch in Netzwerken mit großen Latenzzeiten und niedriger Bandbreite zuverlässig betreiben. Die Kommunikationspartner sind nicht wie bei HTTP Ende-zu-Ende miteinander verbunden, sondern nutzen den Broker als Zwischenstation. Die Nachrichten selbst werden per TCP/IP versendet. Die IANA (Internet Assigned Numbers Authority) hat die Ports 1883 und 8883 für Message Queuing Telemetry Transport reserviert. MQTT unterstützt die Verschlüsselung von Nachrichten und die Authentifizierung der Clients.
Das ursprünglich von IBM und Cirrus Link Solutions entwickelte Protokoll wird seit 2013 von der OASIS (Organization for the Advancement of Structured Information Standards) betreut. Im Jahr 2018 erschien der Standard MQTT5 mit zahlreichen Verbesserungen und Erweiterungen im Vergleich zur Vorgängerversion 3.1.1.
Die MQTT-Architektur
Es handelt sich bei der MQTT-Architektur um eine Publish-Subscribe-Architektur, die auch als Ereignis-gesteuerte Client-Sever-Architektur bezeichnet wird. Im Gegensatz zu anderen Kommunikationsprotokollen wie dem Hypertext Transfer Protocol (HTTP) sind Quelle und Ziel der Nachrichten nicht Ende-zu-Ende miteinander verbunden, sondern kommunizieren über einen zentralen Message-Broker. Er steuert die Kommunikation und nimmt Nachrichten von der Datenquelle (Publisher) entgegen. Die Datensenken abonnieren Nachrichten bestimmter Publisher beim Broker, der diese dann an sie weiterleitet. Datenquelle und Datensenke sind durch den Broker voneinander entkoppelt und kommen mit weniger Endgeräteintelligenz aus. Der Broker speichert Nachrichten beispielsweise bei Verbindungsproblemen zwischen und stellt sie zu einem späteren Zeitpunkt zu.
Das Format der MQTT-Nachrichten
Das Format der Nachrichten ist sehr einfach. Die Nachrichten bestehen aus einem Header, einem Topic und der eigentlichen Nachricht. Mithilfe des Topics sind die Nachrichten hierarchisch klassifiziert. Ein Topic besitzt beispielsweise folgenden Aufbau:
/Erdgeschoss/Küche/Gefrierschrank/Gefrierfach1/Temperatur
Die eigentliche Information wie in diesem Fall die Temperatur des Gefrierfachs 1 ist im Nachrichtenteil enthalten. Für MQTT-Nachrichten existieren drei verschiedene QoS-Stufen (Quality of Service Stufen), die im Header festgelegt ist. Je nach QoS-Stufe werden Nachrichten höchstens einmal gesendet und können bei Verbindungsproblemen verloren gehen, mehrfach gesendet bis eine Bestätigung eintrifft oder über ein mehrstufiges Quittierungsverfahren dem Empfänger genau einmal zugestellt.
Im Nachrichtenheader ist ein Retain-Flag enthalten, das den Server zur Zwischenspeicherung von Nachrichten auffordert. Definierte Nachrichtentypen sind unter anderem SUBSCRIBE, SUBACK, UNSUBSCRIBE, UNSUBACK, CONNECT, CONNACK, PUBLISH oder PUBACK
Das Zusammenspiel von Message-Broker, Publisher und Subscriber
Der Broker verwaltet eine Vielzahl Subscriber und nimmt Nachrichten von Publishern entgegen. Publisher sind Clients wie Sensoren, die Messdaten per Broker an Subscriber weiterleiten. Bei Subscribern handelt es sich um Geräte wie Aktoren, die die Informationen bestimmter Publisher beim Broker abonnieren. Der Broker filtert die Nachrichten der Publisher, speichert sie und leitet sie an die entsprechenden Subscriber weiter. In der Regel müssen sich die Clients gegenüber öffentlichen, über das Internet erreichbaren Brokern authentifizieren. Eine zuverlässige Kommunikation erfordert hochverfügbare und skalierbare Broker. Message-Broker in großen Installationen verwalten nicht selten viele tausend Clients.
(ID:46156734)