Was ist MQTT?

Message Queuing Telemetry Transport (MQTT) ist ein beliebtes und einfaches Publish-Subscribe-Messaging-Protokoll, das sich ideal für die Verbindung von Internet der Dinge (IoT)- oder Maschine-zu-Maschine (M2M)-Geräten und -Anwendungen über das Internet eignet. MQTT wurde für den effizienten Betrieb in Umgebungen mit geringer Bandbreite oder geringem Leistungsverbrauch entwickelt und ist daher die ideale Wahl für Anwendungen mit einer großen Anzahl von Remote-Clients. Es wird in einer Vielzahl von Branchen eingesetzt, darunter Unterhaltungselektronik, Automobilindustrie, Transportwesen, Fertigung und Gesundheitswesen.

Wie funktioniert MQTT?

Geräte oder Anwendungen, die über MQTT verbunden sind, werden als Clients bezeichnet. Diese Clients veröffentlichen und/oder abonnieren Nachrichten zu einem bestimmten Thema oder zu mehreren Themen. Abonnierte Clients erhalten alle Nachrichten, die zu diesem Thema veröffentlicht werden, was einen effizienten und fehlertoleranten Datenaustausch zwischen vielen Geräten und Diensten ermöglicht.

Das Herzstück einer MQTT-Architektur ist ein Broker. Der Broker ist ein Server, der für die Verfolgung von Clients (und allen Themen, die sie abonniert haben), die Verarbeitung von Nachrichten und die Weiterleitung dieser Nachrichten an die entsprechenden Systeme zuständig ist.

MQTT-Protokoll-Versionen

Mehrere Schlüsselversionen des MQTT-Protokolls wurden als Standard übernommen. Die OASIS-Organisation verwaltet die Überarbeitungen des Protokolls und pflegt eine vollständige Spezifikation für jede Version. Mit jeder Überarbeitung von MQTT wurde der Funktionsumfang des Protokolls erweitert, daher ist es wichtig zu wissen, welche Version von MQTT Ihre Geräte und Ihr Broker verwenden.

MQTT-Nachrichtentyp und -format

Es gibt verschiedene Arten von MQTT-Nachrichten, und jeder Nachrichtentyp enthält ein spezifisches Format, das konforme Geräte und Anwendungen befolgen müssen. Die Überarbeitungen des MQTT-Protokolls unterscheiden sich in Format und Nachrichtentypen. Eine vollständige Liste der Nachrichtentypen finden Sie in jeder Spezifikation des MQTT-Protokolls.

Die drei gebräuchlichsten Nachrichtentypen sind CONNECT, PUBLISH und SUBSCRIBE. Jede MQTT-Nachricht enthält einen Header, eine Nutzlast und optionale Markierungen. Je nach Nachrichtentyp kann die Länge der Nutzlast variabel sein. In einer PUBLISH-Nachricht enthält die Nutzlast beispielsweise die Daten, die an alle abonnierenden Geräte gesendet werden sollen, und die Länge des Datenfelds hat einen direkten Einfluss auf die Größe der Nachricht. Standardmäßig stellen MQTT-Geräte eine ungesicherte Verbindung über Port 1883 her oder über Port 8883 her, wenn die SSL/TLS-Verschlüsselung aktiviert wurde.

Was ist ein Beispiel für MQTT in Aktion?

Intelligente Autos sind ein großartiges Beispiel für MQTT in Aktion. Da Autohersteller neue Funktionen hinzufügen, um alles von Ferndiagnose und Flottenmanagement bis hin zu Kraftstoffzahlungen und Unterhaltung zu unterstützen, ist MQTT zu einem gängigen Standard für vernetzte Autos geworden. Im Gegensatz zum Hypertext Transfer Protocol (HTTP) kann MQTT eine dauerhafte Sitzung aufrechterhalten, selbst wenn sich ein Auto in und aus Funklöchern bewegt oder wenn seine Verbindung den Mobilfunkmast wechselt. MQTT unterstützt auch bidirektionale Kommunikation, was es für das Auto und die Cloud-Anwendung einfacher macht, Daten zu senden und zu empfangen, ohne auf die Antwort des anderen zu warten.

Was ist der Unterschied zwischen HTTP und MQTT?

HTTP und MQTT sind beides Netzwerkprotokolle, die zur Übertragung von Daten über das Internet verwendet werden. Sehen wir uns ihre Unterschiede an.

HTTP

  • Anforderung-Antwort-Protokoll, bei dem ein Client eine Anforderung an einen Server sendet und der Server mit den angeforderten Daten antwortet.
  • In erster Linie für die Übertragung von Webinhalten (z. B. HTML-Dokumente, Bilder und Formulardaten) zwischen Webservern und Browsern konzipiert.
  • Beispiel: Ein Webbrowser (der Client) sendet eine Anforderung an einen Webserver, und der Server antwortet mit Daten in Form einer Webseite.

MQTT

  • Einfaches Nachrichtenprotokoll für Veröffentlichungen und Abonnements, bei dem Clients Themen abonnieren und Nachrichten empfangen, die von anderen Clients im Rahmen dieser Themen veröffentlicht werden.
  • Entwickelt für Netzwerktopologien und Geräte, bei denen niedrige Bandbreite, Verbindungsstabilität und Stromverbrauch eine wichtige Rolle spielen.
  • Beispiel: Das oben beschriebene Szenario eines intelligenten Autos.
Warum MQTT im Internet der Dinge (IoT) verwendet werden sollte

Viele Funktionen von MQTT machen es zum idealen Protokoll für den Nachrichtenaustausch zwischen IoT-Geräten (den „Dingen“ im IoT) und Backend-Systemen. Hier konzentrieren wir uns auf vier Funktionen:

  • Einfach – MQTT hat einen kleinen Code-Fußabdruck, der gut in Geräten mit begrenzter Verarbeitungsleistung und begrenztem Speicher, wie z. B. Sensoren, funktioniert.
  • Zuverlässig – Viele IoT-Geräte vernetzen sich über Mobilfunknetze. MQTT ist ein Protokoll, das sich für Netzwerke mit geringer Bandbreite eignet, die kompakte Nachrichten mit weniger Daten erfordern. Das macht MQTT zuverlässiger, selbst wenn die Bandbreite des Netzwerks begrenzt oder instabil ist.
  • Skalierbar – Das Publish-Subscribe-Modell lässt sich leicht um weitere Geräte und Backend-Systeme erweitern. Ein Beispiel für ein einzelnes Gerät, das in zwei separaten Backend-Netzwerken (Abonnenten) veröffentlicht wird, ist ein intelligenter Zähler für Privathaushalte, der Daten zur Nutzung von Dienstleistungen der Versorgungsunternehmen sowohl zu Abrechnungszwecken an die Systeme des Versorgungsunternehmens als auch an eine kundenorientierte Anwendung sendet, auf die der Hausbesitzer zugreifen kann, um den Energieverbrauch seiner Wohnung im Auge zu behalten.
  • Sicher – MQTT-Nachrichten können mit standardmäßiger Transport Layer Security (TLS) verschlüsselt werden und unterstützen Anmeldeinformationen, die zur Authentifizierung verwendet werden können. Dies macht MQTT zu einem sicheren Nachrichtenprotokoll in IoT-Anwendungen, die sensible Informationen wie Messwerte von Gesundheitsmonitoren von verschiedenen medizinischen Geräten verarbeiten können.
Welches Transportprotokoll wird von MQTT verwendet?

MQTT unterstützt das Transmission Control Protocol / Internet Protocol (TCP/IP) als zugrunde liegendes Transportprotokoll. Dieses weit verbreitete Netzwerkprotokoll stellt sicher, dass Nachrichten zuverlässig zwischen Clients und Brokern übertragen werden.

Es gibt mehrere Gründe, warum TCP/IP als zuverlässig und effizient gilt:

  • Fehlererkennung und -korrektur – Verschiedene Techniken überprüfen die Integrität von Datenpaketen und Mechanismen zur erneuten Übertragung, um verlorene Pakete wiederherzustellen.
  • Flussregelung – Die Daten werden mit einer für das jeweilige Netz optimalen Geschwindigkeit übertragen, wodurch Verzögerungen bei der Übertragung vermieden und eine effiziente Kommunikation gefördert wird.
  • Multiplexing – Mehrere Datenströme können über eine einzige Verbindung gesendet werden, sodass mehrere Anwendungen dieselbe Verbindung gleichzeitig nutzen können.
  • Kompatibilität – Funktioniert mit einer Vielzahl von Geräten und Betriebssystemen.
  • Skalierbarkeit – Entwickelt für den Einsatz in großen, komplexen Netzwerken ohne Leistungseinbußen, selbst bei hohem Datenaufkommen.

TCP/IP ist zwar die gängigste, aber nicht die einzige Wahl für den Transport von MQTT-Nachrichten. Das MQTT-Protokoll funktioniert auch über das User Datagram Protocol (UDP) und WebSockets.

Zusätzliche Ressourcen

Wir sind stolz darauf, Ihnen die folgenden kostenlosen Ressourcen zur Verfügung stellen zu können, damit Sie weiter erforschen können, wie NGINX MQTT-basierte IoT-Systeme sichern, ausgleichen und hochverfügbar machen kann.

Blog

Docs