cherezoff - stock.adobe.com

IoT: Die gängigen Application-Layer-Protokolle im Detail

Die IoT-Protokolle auf Anwendungsebene verknüpfen die zugrunde liegenden Netzwerkverbindungen und sind mitverantwortlich dafür, dass IoT-Deployments adäquat funktionieren.

In der Theorie funktioniert das IoT (Internet der Dinge) einfach: Man nutzt die enorme Konnektivität des Internets, um Daten von den kleinsten Geräten – wie Schaltern und Sensoren – in die Cloud, zu On-Premises-Serverfarmen oder großen Datenplattformen zu senden und so die Welt genauer zu modellieren. Dieses Modell bildet die Grundlage für ganz neue Klassen von Anwendungen und Analysen sowie bisher ungeahnte Effizienzsteigerungen und Optimierungen.

Das globale Wachstum von IoT-basierten Anwendungen lässt die Cloud alt aussehen, was technologische Innovationen und gesellschaftliche Bedeutung angeht. Das IoT hat der Welt automatisierte industrielle Abläufe, persönliches Gesundheits-Monitoring, Verkehrssteuerung und Smart Homes beschert. Die Liste ist sehr lang und wächst immer weiter.

Doch trotz der verfügbaren Konnektivität und der technologischen Revolution, die das IoT mit sich bringt, stellt es besondere Anforderungen an die Kommunikation, die in konventionellen Netzwerkszenarien selten vorkommen.

Was die IoT-Kommunikation zur Herausforderung macht

Die IoT-Protokolle der Anwendungsschicht müssen einige große Herausforderungen bei der Netzwerkkommunikation bewältigen. Die Daten im Internet of Things sind komplexer als beim konventionellen Networking. In einem einfachen Szenario meldet ein Sensor eine Temperatur an ein lokales Netzwerk, das die Daten dann über das Internet an eine Cloud weiterleitet.

Komplexe Szenarien können äußerst knifflig werden. Denken Sie etwa an einen Dialog zwischen mehreren Maschinen im Fertigungsbereich, die sich selektiv abschalten, wenn Umgebungssensoren einen Brand melden, während ein KI-System in der Cloud das Abschalten überwacht und das Ereignis an mehrere externe Systeme meldet. Das einfache Szenario umfasst einen einzigen Datentyp und eine einzige Meldung in nur eine Richtung. Das komplexe Szenario umfasst viele Datentypen in vielen Meldungen zwischen vielen Geräten, die die Daten effizient austauschen müssen. Die Hardware selbst kann dabei sehr unterschiedlich sein.

Der herkömmliche Protokollstandard, HTTP, eignet sich nicht unbedingt für kleine Geräte. Einige IoT-Geräte sind HTTP-fähig und profitieren von den Funktionen des HTTP-Transports. Aber viele, wenn nicht die meisten, sind es nicht und können es nicht. HTTP ist für eine sehr umfangreiche Kommunikation ausgelegt. Der Großteil der IoT-Kommunikation hingegen ist angesichts der geringen Größe sowie der spärlichen Hardware und Firmware der meisten Geräte notwendigerweise minimal.

Ein HTTP-Header kann Hunderte von Bytes enthalten. Das ist bei den üblichen Kommunikationsvorgängen im Internet nichts Besonderes, für die meisten IoT-Geräte ist dies jedoch eine enorme Menge. Somit benötigt man Protokolle, die schlanker und in der Lage sind, HTTP zu nutzen, ohne dass es sich um HTTP handelt.

Wie die Anwendungsschicht funktioniert

Einige IoT-Geräte verfügen über eine integrierte Netzwerkfähigkeit. Doch die meisten verbinden sich über ein Gateway mit dem Internet.

IoT nutzt das OSI-Modell (Open Systems Interconnection), das sieben interaktive Schichten (auch Ebenen oder Layer genannt) für die einzelnen Kommunikationsabläufe vorsieht. Die IoT-Anwendungsschicht stellt einen der sieben Layer dar, von denen drei für IoT-Anwendungsprotokolle von besonderer Bedeutung sind.

Abbildung 1: Die Anwendungsschicht aka Application Layer im OSI-Modell.
Abbildung 1: Die Anwendungsschicht aka Application Layer im OSI-Modell.

Die Bitübertragungsschicht (Physical Layer) ist die eigentliche Infrastruktur, die die Daten überträgt, zum Beispiel per Ethernet, WLAN oder Bluetooth.

Die Transportschicht (Transport Layer) ist das Protokoll, das die Übertragung der Daten unterstützt, wie das Transmission Control Protocol (TCP), HTTP oder das User Datagram Protocol (UDP).

Die Anwendungsschicht (Application Layer) stellt die Schnittstelle dar zwischen dem IoT-Gerät und dem Netzwerk, mit dem es kommunizieren soll. Sie kümmert sich um die Datenformatierung und -präsentation. Zudem dient sie als Brücke zwischen dem, was das IoT-Gerät macht, und der Netzwerkübergabe der von ihm erzeugten Daten.

Die wichtigsten IoT-Protokolle der Anwendungsschicht

Techniker können unter vielen IoT-Protokollen der Anwendungsschicht auswählen, die ein breites Spektrum an Funktionen abdecken. Das passende Protokoll für eine bestimmte IoT-Anwendung hängt von einer Reihe von Faktoren ab, je nach der Art des Gerätes und der Funktion, die es ausführen soll:

  • Datenlatenz. Wie schnell muss die Datenübertragung sein? Wie viel Zeit darf vergehen, bis ein Datenpaket von einem Punkt zum anderen gelangt?
  • Zuverlässigkeit. Welche Auswirkungen ergeben sich durch einen Datenverlust in der IoT-Anwendung? Wie redundant muss die Gerätekommunikation sein?
  • Bandbreite. Wie groß ist das Datenvolumen, das untergebracht werden muss?
  • Übertragung. Welches ist das beste Transportprotokoll für die IoT-Anwendung? TCP, UDP und HTTP bieten jeweils Funktionen, die von Protokollen der Anwendungsschicht, mit denen sie kompatibel sind, genutzt werden können.

Techniker müssen diese Fragen beantworten, bevor sie bestimmte Protokolle in Betracht ziehen, um festzulegen, welche Funktionen am wichtigsten sein werden.

Im Folgenden finden Sie eine Beschreibung der fünf wichtigsten IoT-Protokolle und ihrer Funktionen.

Constrained Application Protocol (CoAP). Unternehmen verwenden CoAP mit schlanker und daher eingeschränkter Hardware, die nur eine niedrige Übertragungsrate bietet. Das Protokoll ist HTTP-freundlich und nutzt zwei grundlegende Nachrichtentypen: Request und Response. Nachrichten können bestätigbar oder nicht bestätigbar sein. Die Datenpakete sind klein, daher gibt es nur wenige Nachrichtenverluste. Der Nachteil besteht darin, dass es dem Protokoll an Sicherheit mangelt. Dieses Manko können Techniker normalerweise mithilfe von Datagram Transport Layer Security (DTLS) ausgleichen, aber DTLS ist im IoT nur von begrenztem Nutzen.

Die Anwendungsschicht kümmert sich um die Datenformatierung und -präsentation. Zudem dient sie als Brücke zwischen dem, was das IoT-Gerät macht, und der Netzwerkübergabe der von ihm erzeugten Daten.

Message Queue Telemetry Transport (MQTT). MQTT ist ein Publish/Subscribe-Protokoll, das für eine schlanke M2M-Konnektivität (Machine-to-Machine) über TCP effektiv ist und den Datenverlust minimiert. Publish/Subscribe für IoT bedeutet, dass Clients keine Updates anfordern müssen, was den Netzwerk-Traffic und die Verarbeitungslast verringert. Das Protokoll unterstützt außerdem die Erzwingung verschiedener Qualitätsstufen, von der Single-Handshake-Übertragung bis hin zur Quittierungspflicht.

Extensible Message and Presence Protocol (XMPP). XMPP basiert auf XML, der Auszeichnungssprache zur Darstellung von strukturierten Daten als Textdatei, die auch von Menschen gut gelesen werden kann und deshalb populär ist. Als HTML-Erweiterung ist XMPP nützlich für die Echtzeitkommunikation, einschließlich Präsenz, Content Syndication und Instant Messaging. Das Protokoll ist hochskalierbar und bietet Geräten Datenknoten, die sich auf Anfrage mit anderen Knoten verbinden können, um komplexes lokales Networking und Datenaustausch zu ermöglichen.

Advanced Message Queuing Protocol (AMQP). Bei AMQP handelt es sich um ein asynchrones Protokoll. Wie MQTT verfolgt es einen Publish/Subscribe-Ansatz. Techniker verwenden das Protokoll hauptsächlich über TCP, aber es eignet sich auch für andere Übertragungsmethoden. Das Protokoll ist qualitätsflexibel und bietet eine optionale One-or-more-Zustellgarantie. AMQP implementiert Sicherheit über Transport Layer Security (TLS) und Secure Sockets Layer (SSL).

Representational State Transfer (REST). REST ist das am weitesten verbreitete Protokoll und bietet für das IoT synchrone Request-Response-Kommunikation über HTTP. HTTP sorgt für den Funktionsreichtum und ermöglicht zudem Authentifizierung und Caching. Beides ist in komplexen Umgebungen nützlich, lässt sich aber im IoT schwer implementieren. Das Protokoll ist sowohl XML- als auch JSON-kompatibel, was für M2M sowie die Kommunikation mit Tablets und Smartphones hilfreich ist und sich als wahrer Segen für das IoT erweist.

Erfahren Sie mehr über Netzwerksicherheit