Suchen

Expertenbeitrag

 Thomas Joos

Thomas Joos

Freiberuflicher Autor und Journalist

Internet of Things

HTTP, XMPP, CoAPP und MQTT: IoT-Protokolle für die Kommunikation

| Autor/ Redakteur: Thomas Joos / Lisa Marie Waschbusch

Zwar ist auch zwischen IoT-Geräten eine Echtzeitübertragung der Daten wünschenswert, allerdings selten dauerhaft effektiv. Mit IoT-Protokollen können Daten auch zeitverzögert übertragen werden. Dadurch kann der Datenverkehr besser gesteuert werden. Wir geben einen Überblick.

Firmen zum Thema

Das IoT benötigt enorme Datenmengen, die zwischen Geräten und zu den verwalteten Servern geschickt werden müssen.
Das IoT benötigt enorme Datenmengen, die zwischen Geräten und zu den verwalteten Servern geschickt werden müssen.
(Bild: Pixabay / CC0)

Das Internet der Dinge benötigt enorme Datenmengen, die zwischen Geräten und zu den verwalteten Servern geschickt werden müssen. Spezielle Protokolle können den Datenverkehr verzögert durchführen, was eine geplante und strukturierte Übertragung ermöglicht, die in vielen Fällen effektiver ist, als eine Übertragung in Echtzeit.

IoT-Protokolle sind vor allem für eingeschränkte Netzwerke gedacht, bei denen eine begrenzte Datenmenge in gewissen Zeitabständen übertragen werden muss. Echte Netzwerkprotokolle, wie zum Beispiel HTTP oder FTP, sind in den meisten Fällen nicht für den IoT-Bereich geeignet, da sie zu schwergewichtig sind. Allerdings wird HTTP dennoch in diesem Bereich eingesetzt.

Übertragungswege und Bandbreite berücksichtigen

Vor allem zwischen IoT-Geräten spielen Bandbreite, Latenz, stabile Verbindungen ohne Verbindungsabbrüche und eine gewisse Hochverfügbarkeit eine Rolle. Abhängig von den eingesetzten Geräten ist eine Echtzeitüberwachung auch nicht immer sinnvoll und gewünscht. Mit Protokollen wird die Datenübertragung flexibel gesteuert.

Datenprotokolle für IoT basieren meistens auf dem Layer 7 (Anwendungsschicht) des ISO/OSI-Modell. Häufig werden die Daten als IP-Pakete übertragen, also auf Basis von IP-Netzwerken. Hier wird oft NFC, Bluetooth, WLAN oder das Mobilfunknetz verwendet. Welcher Standard eingesetzt wird, hängt von der Beschaffenheit des Gerätes ab und dem Übertragungsweg, der zur Verfügung steht.

HTTP als IoT-Protokoll nutzen

Vor allem bei sehr günstigen Geräten und im Consumerbereich wird zur Datenübertragung auf HTTP als Protokoll gesetzt. HTTP ist sicherlich das bekannteste aller IoT-Protokolle, wurde aber nicht für IoT entwickelt, sondern generell für das Ausliefern von Webseiten. Das größte Problem von HTTP ist der große Overhead. Die Datenmenge, die HTTP benötigt, ist sehr viel größer als bei den Alternativen MQTT, CoAP und XMPP. Dazu kommt, dass HTTP vor allem unidirektional Daten überträgt. Push-Übertragungen sind erst mit HTTP/2 möglich.

HTTP hat den Vorteil in vielen SDKs integriert zu sein und lässt sich schnell implementieren, wenn es um die Übertragung von Daten geht. Außerdem kennen sich viele Entwickler bereits mit HTTP aus und das Protokoll ist leicht erlernbar. Spielt die Datenmenge keine Rolle, kann HTTP tatsächlich geeignet sein. Sobald aber die Bandbreite und das verbrauchte Volumen relevant sind, sollten Entwickler besser auf MQTT, CoAP oder XMPP setzen. HTTP wird vor allem dann eingesetzt, wenn große Daten an Clients geschickt werden, beim Einsatz von REST-APIs und wenn die Internet-/Netzwerkanbindung schnell genug ist.

MQTT - Message Queuing Telemetry Transport

MQTT gehört ebenfalls zu den bekanntesten IoT-Protokollen. Es ist effektiv, verbraucht deutlich weniger Ressourcen als HTTP und XMPP und wurde speziell für die Kommunikation zwischen Maschinen (M2M) entwickelt. Häufig wird es als Open Source über Open Message Queue (Open MQ) genutzt.

Bei MQTT handelt es sich um ein offenes Nachrichtenprotokoll im IoT-Bereich. Der Austausch erfolgt über kleine Nachrichten, die zwischen den Geräten versendet werden. Da das Protokoll als Open Source zur Verfügung steht, wird es besonders häufig eingesetzt. MQTT arbeitet mit einem zentralen Server, der die Daten der einzelnen IoT-Geräte empfängt. Clients stehen in zahlreichen Programmiersprachen zur Verfügung. Vor allem die zuverlässige Übertragung von Daten in unzuverlässigen Netzwerken, wie zum Beispiel im Mobilfunk, stellt einen Vorteil des Protokolls dar.

MQTT ist sehr skalierbar und auch für große IoT-Umgebungen mit mehreren tausend Geräten einsetzbar. Die Features des Protokolls wurden für die Kommunikation in IoT-Netzwerken optimiert. Im Einsatz ist MQTT vor allem dann, wenn die Geräte über nicht genügend Ressourcen verfügen, um zum Beispiel mit HTTP zu kommunizieren.

CoAP -Constrained Application Protocol

Die Stärke des UDP (User Datagram Protocol)-basierten Protokolls CoAP besteht vor allem darin, dass die Datenpakete sehr klein sind, die über das Protokoll versendet werden. Wenn ein IoT-Gerät über nicht genügend Leistung und Kapazität verfügt, kann CoAP besser geeignet sein als MQTT. Das Protokoll ist sehr ressourcenschonend und benötigt keine stabile Netzwerkverbindung. Da CoaAP mit UDP arbeitet, verursacht es weniger Overhead und ist daher sehr sparsam im Verbrauch von Netzwerkbandbreite.

Hier liegen auch die Vorteile im Vergleich zum Einsatz von HTTP. Die Syntax von HTTP und CoAP sind sehr ähnlich und einige Befehle sind identisch. Aus diesem Grund gibt es auch HTTP/CoAP-Übersetzungsproxies, was den parallelen Einsatz von CoAP und HTTP ermöglicht. CoAP bietet, im Gegensatz zu HTTP die Möglichkeit bidirektionale Kommunikation über Push-Anforderungen zu erstellen. Die Vorteile des Protokolls liegen in der schnellen Umstiegsmöglichkeit von HTTP und der guten Effektivität.

XMPP - Extensible Messaging and Presence Protocol

Das XMPP-Protokoll wurde vor allem durch das Echtzeitkommunikations-System „Jabber“ bekannt. Das Protokoll bietet vor allem dann Vorteile, wenn zwischen Clients Daten auf Basis von Textnachrichten (Chats) ausgetauscht werden sollen. Die Basis von XMPP ist XML. Leider hat auch dieses Protokoll, genauso wie HTTP einen sehr großen Overhead. Das Protokoll wird aber nur noch selten eingesetzt. Auch Facebook hat das Protokoll seines Facebook-Chats von XMPP auf MQTT geändert. Die Vorteile von XMPP liegen vor allem in der Unterstützung zahlreicher Programmiersprachen und des großen Umfangs. Allerdings überwiegen die Nachteile, wie zum Beispiel der große Overhead und die Schwerpunkt-Setzung auf Instant Messaging und Chats.

Generell muss festgehalten werden, dass es keinen Königsweg gibt, um zu ermitteln, welches IoT-Protokoll am besten geeignet ist. Es hängt vom Einsatzgebiet, der Leistung der Geräte, der Geschwindigkeit und Bandbreite des Netzwerks, der eingesetzten Programmiersprache und vom Einsatzgebiet ab, welches Protokoll am besten geeignet ist. MQTT wird immer häufiger eingesetzt, das gilt auch für CoAP. XMPP wird dagegen zusehends weniger eingesetzt, findet aber dennoch seine Daseinsberechtigung. Unternehmen und Entwickler, die sich mit IoT beschäftigen, kommen also kaum herum alle relevanten Protokolle zumindest zu testen.

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de (ID: 45821883)

Über den Autor

 Thomas Joos

Thomas Joos

Freiberuflicher Autor und Journalist