Evolution der IoT-Kommunikation: MQTT 5

Im Januar 2018 haben die Macher das IoT-Protokoll MQTT in Version 5 herausgegeben, das im Vergleich zu MQTT 3.x vor allem mehr Komfort und bessere Bedienbarkeit bietet.

In Pocket speichern vorlesen Druckansicht 1 Kommentar lesen
Evolution der IoT-Kommunikation: MQTT 5
Lesezeit: 16 Min.
Von
  • Dominik Obermaier
Inhaltsverzeichnis

Das populäre Kommunikationsprotokoll MQTT ist aus der Kommunikation für das Internet der Dinge nicht mehr wegzudenken. Seit seiner öffentlichen Verfügbarkeit im Jahr 2010 hat es sich zum Standardprotokoll für skalierbare, leichtgewichtige und bandbreitenschonende Push-Kommunikation zwischen mobilen Endgeräten, Connected Cars, Backend-Systemen und IoT-Geräten (Internt of Things) generell entwickelt.

Die von den meisten Nutzern derzeit verwendete Version von MQTT ist 3.1.1. Seit Januar 2018 ist der Nachfolger MQTT 5 verfügbar, der seit Ende 2015 in Arbeit war. Neben vielen kleinen Verbesserungen im Protokoll haben die Macher MQTT 5 viele neue Funktionen spendiert, die die Arbeit mit dem Protokoll vor allem leichter und komfortabel gestalten sollen. Damit ist es Zeit für einen Blick auf die Neuerungen im Protokoll und eine Antwort auf die Frage, ob es sich bereits lohnt, auf die neue Version in Projekten zu setzen.

Obwohl MQTT hauptsächlich ab 2012 seinen Siegeszug in IoT-Projekten antrat – zu dieser Zeit war der Open-Source-Broker Mosquitto bereits verfügbar und der erste kommerzielle MQTT Broker HiveMQ wurde veröffentlicht – ist es interessant zu verstehen, dass das Protokoll deutlich älter ist. Die erste Version von MQTT entstand 1999 – damals noch unter anderem Namen, aber viele der populären Funktionen waren schon enthalten. Kurz vor dem Release von MQTT 5 wurde das Protokoll somit volljährig, da es 2017 stolze 18 Jahre auf dem Buckel hatte.

Es mag verwundern, dass der Nachfolger von MQTT 3.1.1 die Versionsnummer 5 statt 4 trägt. Den Grund dafür offenbart ein Blick auf ein technisches Detail: Die Version im CONNECT-Paket von MQTT 3.1.1 trägt die Nummer 4. Da das Protokoll nur ganze Zahlen im Header erlaubt, musste an der Stelle die 5 folgen. Daher war es nur konsequent, den Namen und die technische Versionierung gleichzuziehen, um künftige Verwirrung zu vermeiden.

Die neue Protokollversion bietet zahlreiche neue Funktionen. Um die Motivation dafür zu verstehen, hilft ein Blick auf die Anwendungsfälle für MQTT. Die meisten neuen Features entstanden aus Anforderungen und Herausforderungen, die die Gestalter in großen Projekten mit MQTT beobachtet haben. Das Protokoll eignet sich unter anderem besonders für folgende Anwendungsfälle:

  • Push-basierte Kommunikation,
  • Vernetzung von Backend-Systemen und IoT-Geräten,
  • Kommunikation über unzuverlässige Kanäle wie Mobilfunknetzwerke,
  • Entkoppelte Kommunikation aller Teilnehmer über Publish/Subscribe,
  • Vernetzung mehrerer Millionen Geräte und
  • bandbreitenschonende Übertragung von Daten.

Die MQTT-Kommunikation läuft über einen Zentralen Broker (Abb.1).

Abbildung 1 zeigt schematisch die Entkopplung der Teilnehmerkommunikation über einen zentralen Verteiler, den MQTT Broker. Die Teilnehmer kennen sich nicht direkt, sondern versenden Nachrichten an ein sogenanntes Topic. Dieses können andere Teilnehmer abonnieren, sodass der Broker die Nachricht an mehrere Teilnehmer versenden kann. Dabei sind die Topics – anders als bei klassischen Messaging-Protokollen – hochdynamisch. Da sich der Broker um das Anlegen kümmert, ist kein manuelles Erstellen notwendig. MQTT-Systeme mit Hunderttausenden oder gar Millionen von Topics sind keine Seltenheit. Für eine tiefergehende Einführung in MQTT eignet sich die "MQTT Essentials"-Serie vom HiveMQ-Blog und der Einführungsartikel zu MQTT bei heise Developer.