7 wichtige IoT-Kommunikationsprotokolle, die jeder Entwickler kennen muss

Minew 26. Dezember 2024
Inhaltsübersicht

    Was sind IoT-Kommunikationsprotokolle?

    IoT-Protokolle sind Standards oder “Sprachen”, die von Maschinen zur Kommunikation untereinander oder mit Plattformen verwendet werden. Basierend auf ihren Eigenschaften und ihrer Funktionalität werden diese Protokolle hauptsächlich in drei Typen unterteilt: Übertragungsprotokolle, Kommunikationsprotokolle und branchenspezifische Protokolle.

    Übertragungsprotokolle: wird von Geräten verwendet für IoT-Netzwerk und Verbindungen innerhalb des Subnetzes, einschließlich Wi-Fi, Bluetooth, Zigbee, Ethernet, NFC, 3G/ 4G/ 5G usw.

    Kommunikationsprotokolle: Sie dienen der Datenübertragung zwischen Geräten, arbeiten oberhalb der Netzwerkschicht und stellen Nutzern Dienste auf Anwendungsebene bereit. Einige der Kommunikationsprotokolle sind: MQTT, CoAP, HTTP/HTTPS, WebSocket und AMQP.

    Branchenspezifische Protokolle: Standardprotokolle innerhalb einer bestimmten Branche, um die Kompatibilität zwischen Geräten, Systemen und Plattformen verschiedener Hersteller und Marken zu gewährleisten, wie beispielsweise das JT/T 808 Fahrzeugterminal-Kommunikationsprotokoll in China.

    7 essentielle IoT-Kommunikationsprotokolle

    Verständnis der 7 IoT-Kommunikationsprotokolle:

    Hier finden Sie einige der in der IoT-Branche verwendeten Kommunikationsprotokolle, darunter:

    1. REST/HTTP

    Was ist REST?

    REST (Representational State Transfer) ist ein Architekturstil und kein Standard für die Entwicklung vernetzter Anwendungen; typischerweise verwendet es HTTP als Transportprotokoll, um seine Architekturprinzipien umzusetzen.

    Merkmale:

    • Zustandslosigkeit: Jede Anfrage enthält alle notwendigen Informationen, und der Server verwaltet keinen Zustand des Clients.
    • Ressourcenidentifizierung: Serverseitig lassen sich Anwendungszustand und -funktionalität in verschiedene Ressourcen unterteilen, die dem Client zur Verfügung gestellt werden. Beispiele für Ressourcen sind Anwendungsobjekte, Datenbankeinträge, Algorithmen usw. Jeder Ressource wird mithilfe eines URI (Universal Resource Identifier) eine eindeutige Adresse zugewiesen.
    • Einheitliche Schnittstelle: Verwenden Sie Standard-HTTP-Methoden wie GET, POST, PUT und DELETE, um Ressourcen zu bearbeiten.

    Anwendung:

    REST/HTTP zielt primär darauf ab, die Systemarchitektur des Internets zu vereinfachen und eine schnelle, lose Kopplung zwischen Client- und Serverinteraktionen zu erreichen, wodurch die Interaktionslatenz reduziert wird. Daher eignet es sich für IoT-Anwendung, Dadurch wird die Bereitstellung von IoT-Ressourcen über REST ermöglicht, sodass Dienste von anderen Anwendungen aufgerufen werden können.

    2.  CoAP

    Was ist CoAP?

    CoAP (Constrained Application Protocol) bietet eine einfache und effiziente Kommunikation für ressourcenbeschränkte Geräte und eignet sich daher ideal für den Betrieb in Umgebungen mit geringem Stromverbrauch, niedriger Bandbreite und hoher Latenz.

    Merkmale:

    • Header-Komprimierung: CoAP verwendet einen kompakten Binärheader mit einer Basis von 4 Bytes, gefolgt von erweiterten Optionen, was typischerweise zu einem Anforderungsheader von 10-20 Bytes führt.
    • Methoden und URIs: Unterstützt die Methoden GET, PUT, POST und DELETE sowie URIs für den Zugriff auf Serverressourcen.
    • Transportschicht: Basierend auf UDP, um den Overhead zu minimieren und Multicast zu unterstützen, mit einem einfachen Stop-and-Wait-Zuverlässigkeitsmechanismus.
    • Asynchrone Kommunikation: Im Gegensatz zu HTTP unterstützt CoAP die asynchrone Kommunikation und ist daher ideal für M2M-Anwendungen.
    • Ressourcenerkennung: Beinhaltet ein integriertes Format zur Ressourcenerkennung, das mit RFC 5785 kompatibel ist und /.well-known/core für Ressourcenbeschreibungen verwendet.
    • Zwischenspeicherung: Unterstützt die Zwischenspeicherung von Ressourcenbeschreibungen zur Leistungssteigerung.

    Anwendung:

    CoAP ist eine vereinfachte, HTTP-basierte RESTful-API. CoAP ist ein Anwendungsschichtprotokoll im LoWPAN-Protokollstapel 6 und eignet sich für ressourcenbeschränkte IP-Kommunikationsnetzwerke, wie z. B. für Sensoren mit geringem Stromverbrauch und eingebettete Systeme.

    3.  MQTT

    Was ist MQTT?

    Das MQTT-Protokoll verwendet ein Publish/Subscribe-Muster, bei dem IoT-Endgeräte typischerweise über TCP eine Verbindung zu einem MQTT-Broker herstellen. Der Broker verwaltet die Kommunikationsinhalte mithilfe von Themen und ist für die Weiterleitung von Nachrichten zwischen den Geräten zuständig.

    Merkmale:

    • Publish/Subscribe-Modell: Clients können Nachrichten zu einem Thema veröffentlichen und Nachrichten zu bestimmten Themen abonnieren. Dieses Modell ermöglicht eine flexible Nachrichtenverteilung.
    • Niedrige Bandbreite: Der Nachrichtenkopf ist minimal, typischerweise nur 2 Bytes lang, was eine effiziente Bandbreitennutzung ermöglicht und ihn für Netzwerke mit niedriger Bandbreite, hoher Latenz und instabilen Netzwerken geeignet macht.
    • Zuverlässigkeit: MQTT bietet drei QoS-Stufen für die Nachrichtenübermittlung: “höchstens einmal”, “mindestens einmal” und “genau einmal”.”

    Anwendung:

    MQTT eignet sich generell für die Datenerfassung von Geräten an Endpunkte (z. B. Gerät → Server) und die zentrale Kommunikation in einer Sternnetzwerkarchitektur, wobei der Broker als Hub fungiert. Es findet breite Anwendung im IoT-Bereich und wurde (früher) auch in einigen mobilen Anwendungen wie Facebook Messenger eingesetzt.

    4.  DDS

    Was ist DDS?

    DDS (Data Distribution Service) ist ein Middleware-Standard, der für Echtzeitsysteme. Es erfüllt die strengen Anforderungen verteilter Anwendungen durch geringe Latenz, hohen Durchsatz und deterministische Leistung.

    Merkmale:

    • Datenzentriert
    • Brokerloses Publish/Subscribe-Messaging-Modell: Unterstützung von Punkt-zu-Punkt-, Punkt-zu-Mehrpunkt- und Mehrpunkt-zu-Mehrpunkt-Kommunikation.
    • Bieten Sie bis zu 21 Richtlinien zur Servicequalität (QoS) an.

    Anwendung:

    Verteilte, hochzuverlässige Echtzeit-Datenkommunikation für Geräte. DDS findet derzeit breite Anwendung in Bereichen wie der zivilen Luftfahrt und der industriellen Steuerungstechnik.

    5.  AMQP

    Was ist AMQP?

    AMQP ist ein offener Standard für Anwendungsschichtprotokolle, der für zuverlässige Nachrichtenübertragung und Warteschlangenmechanismen entwickelt wurde.

    Merkmale:

    • Wire-level Protocol: Überträgt Daten über das Netzwerk als Byte-Stream.
    • Hohe Kompatibilität dank des offenen Standards
    • Flexibel und sicher: Unterstützt verschiedene Messaging-Muster, darunter Publish/Subscribe und Punkt-zu-Punkt. Es beinhaltet außerdem mehrere Sicherheitsmechanismen wie Verschlüsselung und Authentifizierung.

    Anwendung:

    AMQP wurde ursprünglich für Transaktionsnachrichten in Finanzsystemen verwendet, wird heute aber hauptsächlich in IoT-Anwendungen für die Kommunikation und Datenanalyse zwischen mobilen Geräten und Backend-Rechenzentren eingesetzt.

    6.  XMPP

    Was ist XMPP?

    Als offenes Standard-Kommunikationsprotokoll ist XMPP (Extensible Messaging and Presence Protocol) für die Echtzeitkommunikation, wie z. B. Instant Messaging und Präsenzinformationen, konzipiert.

    Merkmale:

    • Client/Server-Kommunikationsmodell: Clients senden Anfragen an den Server, der die Anfragen verarbeitet und die entsprechende Antwort oder Ressource an den Client zurücksendet.
    • Verteiltes Netzwerk: Das Netzwerk besteht aus mehreren unabhängigen Knoten, wodurch Single Points of Failure vermieden werden.
    • Einfache Clients: Clients übernehmen weniger Aufgaben, die meisten Berechnungen werden serverseitig durchgeführt.
    • XML wird zur Beschreibung von Daten verwendet, um plattformübergreifende Kompatibilität zu gewährleisten, obwohl JSON in modernen Anwendungen populärer geworden ist.

    Anwendung:

    XMPP wird in Instant Messaging, Netzwerkmanagement, Content Delivery, Kollaborationstools, Dateiaustausch, Spielen, Fernüberwachung von Systemen und vielem mehr eingesetzt.

    7.  JMS

    Was ist JMS?

    JMS (Java Message Service) ist eine Standard-API der Java-Plattform für die Nachrichtenübermittlung in verteilten Anwendungen. Sie ermöglicht Anwendungen die Kommunikation über Message Queues und somit einen asynchronen, flexiblen und zuverlässigen Nachrichtenaustausch.

    Merkmale:

    • Asynchrone Kommunikation: Ermöglicht das Senden und Empfangen von Nachrichten zu unterschiedlichen Zeiten und erhöht so die Flexibilität und Reaktionsfähigkeit des Systems.
    • Nachrichtenbeständigkeit: Gewährleistet die dauerhafte Speicherung von Nachrichten und stellt so sicher, dass diese bei Systemausfällen nicht verloren gehen, wodurch die Zuverlässigkeit erhöht wird.
    • Transaktionsunterstützung: JMS bietet Transaktionsunterstützung und gewährleistet so die Atomarität einer Gruppe von Nachrichtenoperationen. Das bedeutet, dass alle Operationen entweder vollständig erfolgreich sind oder vollständig fehlschlagen, wodurch die Datenkonsistenz garantiert wird.

    Anwendung:

    JMS eignet sich ideal für verteilte Anwendungen, die asynchrone Nachrichtenübermittlung, Systementkopplung und hohe Zuverlässigkeit erfordern, wie z. B. Enterprise Application Integration, ereignisgesteuerte Architekturen und Echtzeit-Datenverarbeitung.

    Vergleiche von IoT-Kommunikationsprotokollen

    Merkmal DDS MQTT AMQP XMPP JMS REST/HTTP CoAP
    Abstraktion Pub/Sub Pub/Sub Pub/Sub N / A Pub/Sub Anfrage/Antwort Anfrage/Antwort
    Architektur Globaler Datenraum Proxy P2P oder Proxy N / A Proxy Durch TCP-Garantie P2P
    QoS 22 Typen 3 Typen 3 Typen N / A 3 Typen Bestätigung über TCP oder bestätigte Nachrichten Ja
    Interoperabilität Ja Teilweise Ja N / A Nein Ja Ja
    Leistung 100.000 Nachrichten/Sekunde/Sub 1.000 Nachrichten/s/Sub 1.000 Nachrichten/s/Sub N / A 1.000 Nachrichten/s/Sub 100 Anfragen/s 100 Anfragen/s
    Echtzeit Ja Nein Nein Nein Nein Nein Ja
    Transportschicht Unterstützt UDP und TCP TCP TCP Nicht spezifiziert, üblicherweise TCP TCP UDP UDP
    Abonnementfilterung Nachrichteninhalts- und themenbasierte Filterung Gestaffeltes Abonnement basierend auf Themen und Nachrichteninhalten Warteschlangen- und Nachrichtenfilterung N / A Nachrichteninhalts- und Themenfilterung Nicht unterstützt Unterstützt Topic und Multicast
    Codierung Binär Binär Binär XML-Format Binär Klartext Klartext
    Dynamische Entdeckung Ja Nein Nein N / A Nein Nein Nein
    Sicherheit Bietet FSS, TLS und weitere Sicherheitsoptionen Einfacher Benutzername/Passwort, SSL-Datenverschlüsselung SASL- und TLS-Datenverschlüsselung N / A Bietet Unterstützung für FSS, TLS und JAAS API. Allgemeine Unterstützung für SSL und TLS Allgemeine Unterstützung für SSL und TLS

     

    Schlussfolgerung

    MQTT, DDS, AMQP, XMPP, JMS, REST und CoAP sind weit verbreitete Protokolle mit jeweils mehreren Implementierungen, die Echtzeit-Publish/Subscribe-Kommunikation im IoT-Bereich ermöglichen sollen. Bei der Entwicklung spezifischer IoT-Systemarchitekturen ist es jedoch unerlässlich, die tatsächlichen Kommunikationsanforderungen des jeweiligen Szenarios – wie Bandbreitenbeschränkungen, Latenzanforderungen und Sicherheitsaspekte – zu berücksichtigen, bevor das am besten geeignete Protokoll ausgewählt wird.

    Nächste: LoRaWAN vs. Zigbee: Was ist der Unterschied?
    Prev: Die 5 wichtigsten Tipps für die Sicherheit am Arbeitsplatz im Jahr 2025: IoT-Technologie sorgt für Sicherheit am Arbeitsplatz