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 |
|
|
|
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 |