Kommunikationsprotokolle für IoT

Die zuverlässige, sichere und skalierbare Echtzeit-Kommunikation zwischen Sensoren, Maschinen, Servern und Organisationen ist eine wichtige Grundvoraussetzung für Interoperabilität im Internet der Dinge. Da klassische Kommunikationsprotokolle wie HTTP oder XMPP mit ihren großen Paket-Headern für viele IoT-Anwendungen zu schwergewichtig sind und unnötig viel Bandbreite im Netzwerk verbrauchen, müssen leichtere Protokollalternativen in die Systeme integriert werden.

Die Auswahl des geeigneten Protokolls ist dabei vom Anwendungsfall abhängig:

  • Wer soll mit wem kommunizieren?
  • Wie ressourcenbeschränkt sind die Geräte?
  • Wie groß sind die ausgetauschten Nachrichten?
  • Wie hoch ist die Sendefrequenz?
  • Ist das Netzwerk zuverlässig?
  • Was ist die Bedeutung von „Echtzeit“?
  • Wie werden die Daten weiterverarbeitet

Unterschiede zwischen den Protokollen bestehen nicht nur im gebotenen Funktionsumfang und den zugrundeliegenden Architekturen, sondern auch in der gebotenen Flexibilität und den Anpassungsmöglichkeiten. Je nach Funktionsumfang unterscheidet sich bei gegebenen Anforderungen auch der Konfigurations- und Implementierungsaufwand. Das bedeutet nicht, dass nur jeweils ein Protokoll für die Kommunikation in die Systeme eingesetzt werden muss. Vielmehr ist es in komplexeren Kommunikationsnetzwerken mit variierenden Kommunikationsanforderungen und heterogenen Teilnehmern gängige Praxis, verschiedene Protokolle in die Systeme zu integrieren, um deren jeweilige Stärken für bestimmte Aufgaben nutzen zu können.

mayato berät Sie gerne bei der Auswahl der richtigen Protokolle für Ihre Anwendung und allen Architekturfragen zu Ihrer IoT-Plattform. Eine Auswahl der erfolgreichsten und gebräuchlichsten Protokolle für die IoT-Kommunikation haben wir in der folgenden Tabelle gegenübergestellt:

MQTT (Message Queuing Telemetry Transport) CoAP (Constrained Application Protocol) AMQP (Advanced Message Queuing Protocol) DDS (Data Distribution Service) OPC/UA (Open Platforms Communication / Unified Architecture)
Ziel / Nutzen Simples und leichtgewichtiges Protokoll zur Minimierung von Netzwerkbandbreite und Ressourcenanforderungen Spezialisiertes P2P-Protokoll für ressourcenbeschränkte Geräte / Knoten: „works on microcontrollers with as low as 10 KiB of RAM and 100 KiB of code space” Effizientes, sicheres, zuverlässiges und offenes P2P-Protokoll zum Streamen von Daten und Business-Transaktionen in Echtzeit Datenzentrierte Bus-Technologie für P2P-Komunikation in Echtzeit, Skalierbarkeit und hohen Datendurchsatz Offenes M2M-Kommunikations-Protokoll und Modellierungs-technologie für Automation mit semantischer Interoperabilität in IIoT / Industrie 4.0
Architektur Pub/Sub mit zentralem Broker REST Pub / Sub mit zentralem Broker Pub / Sub mit globalem Datenraum SOA Client/Server, Pub/Sub
Netzwerk TCP UDP TCP TCP / UDP TCP / UDP
QoS
  1. at most once
  2. at least once
  3. exactly once
  1. confirmable
  2. non-confirmable
  1. best effort
  2. at least once
  3. exactly once
Umfangreiche QoS für Datenverfügbarkeit, Ressourcenauslastung, Traffic-Priorisierung, etc. Abhängig von genutztem Kommunikationsprotokoll (HTTPS, AMQP, DDS, …)
Sicherheit SSL / TLS DTLS (Datagram TLS) SSL / TLS TLS / DTLS / DDS Security UA-SecureConversation
Standard ISO / OASIS IETF OASIS OMG IEC-Norm
Features Themenbasiert Datenagnostisch Asynchron Keep-Alive-Messages Letzter Wille & Testament Message-Retention Ressourcenbasiert Integrierte Discovery Datenagnostisch Asynchron HTTP-Proxy Caching Themenbasiert Datenagnostisch Schichtenarchitektur Erweiterbarkeit Sichere Infrastruktur Message Routing Themenbasiert Datenzentriert Dezentralisiert Dynamic Discovery Service Datenverfügbarkeit Datenpriorisierung DDSI Streaming Discovery / Dynamic DNS Adressraum Informationsmodelle Kontextreiche Daten Plattformunabhängig Firewall-freundlich