MQTT – Message Queuing Telemetry Transport¶
Übersicht¶
MQTT ist ein leichtgewichtiges, offenes Netzwerkprotokoll, das speziell für die Kommunikation zwischen Geräten im Bereich Internet of Things (IoT) und Machine-to-Machine (M2M) entwickelt wurde. Es wurde ursprünglich 1999 von IBM entwickelt und ist heute ein internationaler Standard (OASIS Standard und ISO/IEC 20922).
MQTT eignet sich besonders für Umgebungen mit:
- begrenzter Bandbreite,
- energiearmen Geräten,
- unzuverlässigen Netzwerken (z. B. Mobilfunk),
- und Anwendungen, die eine einfache, asynchrone Nachrichtenübermittlung benötigen.
Funktionsweise¶
MQTT basiert auf dem Publish/Subscribe-Prinzip mit einem zentralen Broker, der als Vermittler zwischen den Geräten fungiert:
- Publisher senden Nachrichten zu bestimmten Topics (Themen),
- Subscriber abonnieren Topics, um Nachrichten zu erhalten,
- der Broker leitet Nachrichten vom Publisher an alle Subscriber weiter, die das Topic abonniert haben.
Dies entkoppelt Sender und Empfänger komplett und ermöglicht eine sehr flexible und skalierbare Architektur.
Architektur & Komponenten¶
| Komponente | Beschreibung |
|---|---|
| Broker | Vermittler, der Nachrichten verwaltet und verteilt. |
| Client | Gerät oder Anwendung, die Nachrichten sendet (Publisher) oder empfängt (Subscriber). |
| Topic | Hierarchischer String zur Kategorisierung von Nachrichten, z. B. haus/wohnzimmer/temperatur. |
Technische Details¶
| Merkmal | Beschreibung |
|---|---|
| Transportprotokoll | TCP/IP (Standardport 1883 ohne TLS, 8883 mit TLS) |
| OSI-Schicht | Anwendungsschicht (Layer 7) |
| Datenformat | Binär, sehr effizient, geringe Overhead |
| Quality of Service (QoS) | Drei Stufen zur Zustellgarantie: 0 = höchstens einmal 1 = mindestens einmal 2 = genau einmal |
| Nachrichtenlänge | Minimaler Header, sehr kurze Nachrichten möglich |
| Security | Keine native Verschlüsselung, TLS/SSL und Authentifizierung extern |
Wichtige Konzepte¶
Topics¶
Topics sind hierarchische Strings, z. B.:
sensor/halle1/temperatur
aktor/anlage2/ventil1
Subscribers abonnieren diese Topics oder Wildcards (+, #) zur Gruppierung.
QoS-Stufen¶
| QoS | Bedeutung | Verwendung |
|---|---|---|
| 0 | Fire and forget (einmalig) | Unkritische Sensordaten |
| 1 | Mindestens einmal | Steuerbefehle, Statusmeldungen |
| 2 | Exakt einmal | Kritische Alarme, Steuerungen |
Retained Messages¶
Der Broker speichert die letzte Nachricht eines Topics, sodass neue Subscriber sofort den aktuellen Wert erhalten.
Last Will & Testament¶
Ein Client kann beim Verbinden eine Nachricht definieren, die der Broker sendet, falls der Client unerwartet die Verbindung verliert.
Sicherheit¶
- MQTT überträgt standardmäßig unverschlüsselt.
- Absicherung erfolgt über TLS/SSL auf TCP-Ebene.
- Authentifizierung meist über Benutzername/Passwort.
- Broker können Zugriffsrechte (ACL) für Topics verwalten.
- Monitoring und Logging sind empfehlenswert, da das Protokoll selbst keine Intrusion Detection bietet.
Typische Einsatzgebiete¶
- IoT-Sensorik und Aktorik (Temperatur, Luftfeuchte, Schalter)
- Smart Home (Heizung, Licht, Sicherheit)
- Gebäudeautomation
- Industrie 4.0 / OT-Integration
- Telemetrie in Fahrzeugen
- Cloud- und Edge-Kommunikation
Vorteile¶
| Vorteil | Erklärung |
|---|---|
| Sehr leichtgewichtig | Minimale Protokolloverhead, ideal für kleine Geräte |
| Asynchrone Kommunikation | Entkoppelt Publisher und Subscriber |
| Skalierbarkeit | Tausende bis Millionen Clients möglich |
| Flexibel | Unterstützung von QoS und Retained Messages |
| Plattformunabhängig | Funktioniert auf Mikrocontrollern bis zur Cloud |
Nachteile¶
| Nachteil | Erklärung |
|---|---|
| Keine native Verschlüsselung | Sicherheit muss durch TLS/SSL ergänzt werden |
| Nicht echtzeitfähig | Keine deterministische Übertragung |
| Single Point of Failure | Broker ist zentrales Element und Ausfallquelle (außer Cluster) |
| Kein komplexes Datenmodell | Nur einfache Nachrichtentexte, keine semantische Struktur |
Vergleich zu anderen Protokollen¶
| Merkmal | MQTT | OPC UA | Modbus TCP |
|---|---|---|---|
| Architektur | Broker-basiert (Pub/Sub) | Client/Server (auch Pub/Sub) | Master/Slave |
| Sicherheit | TLS optional | Integriert | Keine |
| Echtzeitfähigkeit | Nein | Teilweise | Teilweise |
| Datenmodell | Einfach Topics | Objektorientiert | Registerbasiert |
| Cloud-Integration | Sehr gut | Eingeschränkt | Kaum |
| Overhead | Sehr gering | Mittel bis hoch | Gering |
Fazit¶
MQTT ist das führende Protokoll für IoT- und leichte M2M-Kommunikation. Es besticht durch seine Einfachheit, geringe Bandbreite und gute Skalierbarkeit. Für sicherheitskritische oder echtzeitnahe Anwendungen muss es mit Zusatzmaßnahmen ergänzt werden.