Vier TCP-basierte Kommunikationsprotokolle als Schlüssel für das IIoT – Teil 1: MQTT
Inhalt dieses Beitrags
Vier TCP-basierte Kommunikationsprotokolle als Schlüssel für das IIoT – Teil 1: MQTT
Die Zukunft der Automatisierung ist geprägt von Begriffen wie Industrie 4.0, IIoT, smarte Fabriken oder smarte Geräte. Im Zentrum dieser neuen technologischen Ära steht die Konnektivität: Starre, hierarchische Automatisierungspyramiden mit trennenden Zwischenebenen werden zunehmend durch größere Netzwerkstrukturen verdrängt, in denen einzelne Knotenpunkte miteinander verbunden sind und Daten untereinander austauschen.
Für eine solche smarte Vernetzung müssen die Geräte IIoT-fähig sein, also standardisiert, skalierbar, IT- und OT-fähig sowie interoperabel – und sie müssen sicher kommunizieren können. Um diese smarte Kommunikation zu realisieren, stehen unterschiedliche Kommunikationsprotokolle für zur Verfügung, wie MQTT, OPC UA, AMQP oder REST API. Erfahren Sie in unserer mehrteiligen Reihe an Blogartikeln, welche Eigenschaften das jeweilige IIoT-Kommunikationsprotokoll kennzeichnen und für welche Anwendungsfälle es sich besonders eignet. Den Auftakt zur Artikelserie bildet MQTT.
Was ist MQTT und wie funktioniert es?
MQTT (Message Queuing Telemetry Transport) ist ein kompaktes, binäres, offenes und einfach zu implementierendes Publish/ Subscribe-Messaging-Protokoll. Es ist ein zertifizierter OASIS und ISO-Standard (ISO/IEC 20922:2016), der vom OASIS Technical Committee verwaltet wird. MQTT tauchte erstmals 1999 als technische Lösung für das Problem der bandbreiten- und batterieenergieeffizienten Überwachung von Ölleitungen auf. 14 Jahre später, im Jahr 2013, reichte IBM MQTT beim OASIS-Spezifikationsgremium ein, woraufhin es 2014 als OASIS-Standard veröffentlicht wurde. Seitdem erobert es den Industriemarkt, insbesondere in Bereichen, in denen Einschränkungen wie schlanker Code, minimaler Overhead und begrenzter Netzwerkverkehr ein hoher Stellenwert zukommt. Im Folgenden werden die grundlegenden Funktionen von MQTT dargelegt (Abbildung 1). Die MQTT-Clients (sowohl Publisher als auch Subscriber) stellen eine Verbindung zum MQTT-Broker her. Einige MQTT-Clients abonnieren ein bestimmtes Topic, in diesem Fall den Temperaturwert. Sobald der veröffentlichende MQTT-Client Daten an den Broker übermittelt, merkt sich der Broker, dass er diese Nachricht an alle abonnierten MQTT-Clients sendet. Der erhebliche Vorteil dieser Art von Topologie liegt in der Entkopplung von Publishern und Subscribern. Anstatt dass zahlreiche Verbindungen zwischen diesen hergestellt werden, ist der Broker dafür verantwortlich, die Daten vom einen Ende zum anderen zu transportieren.
In der MQTT-Spezifikation gibt es mehrere erwähnenswerte Merkmale:
Topic:
Ein grundlegendes Element im MQTT-Protokoll. Jede über das Netzwerk gesendete Nachricht besteht (neben den Header-Informationen) aus einem Topic und einer Payload. Das Topic ist die Information, mit der der Broker Nachrichten filtern kann und die von Subscribern abonniert wird. Topics können mehrere Ebenen umfassen, z. B. besteht „home/ sensor1/identification“ aus drei Topic-Ebenen und „home/ sensor1/data/temperature“ aus vier Topic-Ebenen. Jede Topic-Ebene ist durch einen Schrägstrich getrennt und die Topic-Struktur unterscheidet zwischen Groß- und Kleinschreibung. Topics können auch Platzhalter auf einer oder mehreren Ebenen enthalten. Die Verwendung eines Platzhalters auf einer einzelnen Ebene wird durch Verwendung des Pluszeichens implementiert und könnte wie folgt aussehen: „home/+/data/temperature“. Dazu werden alle Temperaturwerte von allen Sensoren im Haus erfasst und auf abonnierten MQTT-Clients veröffentlicht. Der zweite Platzhaltertyp ist der Platzhalter mit mehreren Ebenen, der das Hashtag-Symbol verwendet. Ein Beispiel wäre „home/ sensor1/#“, mit dem alle von sensor1 veröffentlichten Daten an die abonnierten MQTT-Clients übertragen werden.
Quality of Service:
Mit dieser Funktion lässt sich die Zustellungssicherheit für jede Nachricht festlegen. Das Konzept dahinter besteht darin, verschiedene Sicherheitsstufen dafür zu definieren, dass die Nachricht auf der Subscriber-Seite ankommt. Diese Stufen sind: QoS 0 (höchstens einmal), QoS 1 (mindestens einmal) und QoS 2 (genau einmal). QoS 2 ist die höchste Qualitätsstufe und erfordert die meisten Kommunikationsbestätigungen und Implementierungsmaßnahmen.
Session Awareness:
In MQTT gibt es mehrere Mechanismen, um sicherzustellen, dass die Verbindung zwischen Broker und Publisher/Subscriber intakt ist. Der grundlegendste Mechanismus ist die Keep-Alive-Nachricht. Der Client sendet von Zeit zu Zeit eine Keep-Alive-Nachricht, um dem Broker zu bestätigen, dass die Verbindung noch besteht. Dadurch kann der Broker erkennen, ob der Client offline gegangen ist. Darüber hinaus stellt der Client dem Broker während des ersten Verbindungsverfahrens eine „Last Will“- und „Testament“- Erklärung (LWT) bereit. Diese Nachricht wird, nachdem der Client offline gegangen ist, vom Broker an die übrigen Clients im Netzwerk gesendet, damit diese über die Abwesenheit des Clients informiert werden.
Persistent Session:
Wenn eine Persistent Session zwischen dem Broker und einem Subscriber hergestellt wird, speichert der Broker die Nachrichten, bis der Subscriber bereit ist, sie zu empfangen. Diese Funktion ist besonders bei instabilen Netzwerken nützlich.
Interoperabilität von MQTT
MQTT ist das kompakteste aller Protokolle und definiert keine Standardisierungsebenen. Die Payload (Nachricht) wird ein bestimmtes Topic gesendet und die falsche Schreibweise eines Topics oder das Senden von Daten in einem anderen Format als gewünscht wird nicht als Fehler betrachtet. Seit MQTT 5 können Metadaten in den Headern gesendet werden. Dennoch werden einzelne Geräte nicht daran gehindert, ein völlig anderes Namensschema und unterschiedliche Metadateninformationen zu haben. Dadurch ist MQTT für die Interaktion zwischen Maschinen (machine-to-machine) unzureichend, wenn nicht zuvor alle Topics und Nachrichten von Menschenhand festgelegt werden. Für eine Interaktion zwischen Mensch und Maschine sollte der Mensch zunächst in einem Handbuch nachschlagen, welche Topics verfügbar sind und wie ihre Daten strukturiert sind, bevor er mit der Maschine interagiert. Die Maschine kann nicht selbst festlegen, welche Topics abonniert werden können.
Echtzeitverhalten von MQTT
Aufgrund des geringen Overheads erreicht MQTT kurze Transportzeiten. Falls es keine Verzögerung zwischen dem Publisher und dem Broker gibt und der Subscriber mit dem Broker verbunden ist und aktiv mithört, können theoretisch die versprochenen „beinahe in Echtzeit“ und „verzögerungsfrei“ erreicht werden.
Sicherheit von MQTT
MQTT bietet die Möglichkeit, sich während der Verbindungsinitialisierungsphase mit einem Benutzernamen und Kennwort zu authentifizieren. Seit MQTT 5 kann auch nur das Kennwortfeld für eine Token-Übertragung verwendet werden und es werden weitere Sicherheitsmechanismen wie die Challenge-Response-Authentifizierung vorausgesetzt.
Implementierung von MQTT
MQTT ist unter allen Protokollen das kompakteste. Der Implementierungsaufwand ist am geringsten und zur Laufzeit werden deutlich weniger Systemressourcen wie Speicherplatz, Rechenleistung oder Übertragungskapazität beansprucht als bei allen anderen Protokollen. Lediglich durch zusätzliche Sicherheitsmaßnahmen kann sich der Aufwand erhöhen.
MQTT Anwendungen
MQTT ist beispielsweise perfekt, wenn eine einfache, kompakte Lösung ausreichend ist. Dies ist der Fall, wenn Daten von mehreren Sensoren erfasst oder die gleichen Informationen gleichzeitig an viele Sensoren desselben Typs gesendet werden bzw. wenn eine geringe Leistungsaufnahme und ein sehr geringer Speicherbedarf erforderlich sind. MQTT wird in verschiedenen Szenarien wie vernetzten Automobilen, militärischen Anwendungsfällen, Netzwerken von Industriegeräten, der Steuerung von Drohnen usw. implementiert.
Whitepaper: TCP-basierte Kommunikationsprotokolle
Möchten Sie mehr über die verschiedenen TCP-basierten Kommunikationsprotokolle erfahren, die als Schlüsseltechnologien für das IIoT gelten? Laden Sie sich gleich unser kostenfreies Whitepaper herunter.
Abonnieren Sie unseren Newsletter und erhalten Sie regelmäßig Neuigkeiten und Wissenswertes aus der Welt der Automatisierung.