MQTT Codec
MQTT-Protokollpakete kodieren und dekodieren
Fügen Sie MQTT-Paketdaten ein, die von Wireshark, Netzwerkanalysator oder Broker-Logs erfasst wurden
Beispielpakete
Dekodiertes Ergebnis
Geben Sie Paketdaten ein und klicken Sie auf Dekodieren, um Ergebnisse zu sehen
Byte-Viewer
Kodiertes Ergebnis
Konfigurieren Sie Parameter und klicken Sie auf Paket erstellen
Byte-Viewer
Paketstruktur-Vorschau
MQTT-Pakettypen-Referenz
| Code | Name | Richtung | Beschreibung |
|---|---|---|---|
| 0x10 | CONNECT | C→S | Client-Verbindungsanfrage |
| 0x20 | CONNACK | S→C | Verbindungsbestätigung |
| 0x30 | PUBLISH | C↔S | Nachricht veröffentlichen |
| 0x40 | PUBACK | C↔S | Veröffentlichungsbestätigung (QoS 1) |
| 0x50 | PUBREC | C↔S | Veröffentlichung empfangen (QoS 2 Teil 1) |
| 0x60 | PUBREL | C↔S | Veröffentlichung freigegeben (QoS 2 Teil 2) |
| 0x70 | PUBCOMP | C↔S | Veröffentlichung abgeschlossen (QoS 2 Teil 3) |
| 0x80 | SUBSCRIBE | C→S | Abonnement-Anfrage |
| 0x90 | SUBACK | S→C | Abonnementbestätigung |
| 0xA0 | UNSUBSCRIBE | C→S | Abbestellungsanfrage |
| 0xB0 | UNSUBACK | S→C | Abbestellungsbestätigung |
| 0xC0 | PINGREQ | C→S | Ping-Anfrage (Keep-Alive) |
| 0xD0 | PINGRESP | S→C | Ping-Antwort |
| 0xE0 | DISCONNECT | C→S | Client-Trennung |
MQTT-Protokoll-Leitfaden
Das MQTT-Protokoll verstehen
MQTT (Message Queuing Telemetry Transport) ist ein leichtgewichtiges Messaging-Protokoll auf TCP/IP-Basis. 1999 von IBM für die Überwachung von Satellitenverbindungen entwickelt, ist es heute der De-facto-Standard für IoT-Kommunikation. Das Protokoll verwendet ein Publish-Subscribe-Muster, bei dem Clients über einen zentralen Broker kommunizieren, ideal für instabile Netzwerke und ressourcenbeschränkte Geräte.
Paket-Binärstruktur
Jedes MQTT-Paket beginnt mit einem festen Header (1-5 Bytes), gefolgt von einem optionalen variablen Header und Nutzdaten. Das erste Byte enthält den Pakettyp in den Bits 7-4 und typspezifische Flags in den Bits 3-0. Das Restlängenfeld verwendet variable Längencodierung.
| Bitbereich | Feldname | Beschreibung |
|---|---|---|
| 7-4 | Pakettyp | Steuerpakettyp (1-15) |
| 3-0 | Flags | Typspezifische Flags (DUP, QoS, RETAIN für PUBLISH) |
Variable Längencodierung
MQTT verwendet eine kompakte Codierung für das Restlängenfeld. Jedes Byte verwendet 7 Bits für Daten und 1 Bit als Fortsetzungsflag. Werte 0-127 benötigen 1 Byte, 128-16383 benötigen 2 Bytes, bis maximal 4 Bytes für Längen bis 268.435.455.
| Bytes | Min-Wert | Max-Wert |
|---|---|---|
| 1 | 0 | 127 |
| 2 | 128 | 16,383 |
| 3 | 16,384 | 2,097,151 |
| 4 | 2,097,152 | 268,435,455 |
CONNECT-Paket-Details
Das CONNECT-Paket wird nach dem TCP-Verbindungsaufbau zuerst gesendet. Es enthält Protokollversion, Keep-Alive-Intervall, Client-ID und optionale Anmeldedaten. Die Verbindungsflags steuern das Sitzungsverhalten einschließlich Clean Session, Testament-Nachrichtenkonfiguration und Authentifizierung.
PUBLISH-Paket-Mechanik
PUBLISH-Pakete transportieren Anwendungsnachrichten. Die Flags im festen Header zeigen QoS-Level, Retain-Verhalten und Duplikatstatus an. QoS 0 ist Fire-and-Forget, QoS 1 garantiert mindestens einmalige Zustellung, QoS 2 stellt genau einmalige Zustellung durch Vier-Wege-Handshake sicher.
QoS-Zustellungsgarantien
Praktische Anwendungen
- Paketerfassungen von Wireshark oder tcpdump für Debugging analysieren
- Testpakete erstellen, um MQTT-Broker- oder Client-Implementierungen zu überprüfen
- MQTT-Protokoll-Interna durch praktische Paketinspektion lernen
- IoT-Gerätekonnektivitäts- und Nachrichtenzustellungsprobleme beheben
- Beispielpakete für automatisierte Testszenarien generieren
Protokollversionen
Drei Hauptversionen von MQTT sind im Einsatz: MQTT 3.1 (Protokollebene 3), MQTT 3.1.1 (Protokollebene 4, ISO/IEC 20922:2016) und MQTT 5.0 (Protokollebene 5) mit erweiterten Funktionen. Dieses Tool zielt hauptsächlich auf MQTT 3.1.1, die am weitesten verbreitete Version.
Verwandte Tools
MQTT WebSocket-Client
Browser-basierter MQTT-Client zum Verbinden, Veröffentlichen, Abonnieren und Debuggen von IoT-Nachrichten über WebSocket
MQTT Topic-Tester
Testen und validieren Sie MQTT-Topic-Muster mit + und # Wildcards für Abonnement-Tests
Modbus RTU/ASCII/TCP-Parser
Parsen, kodieren und debuggen Sie Modbus RTU/ASCII/TCP-Protokollrahmen mit CRC-16/LRC-Berechnung und serieller Fehlersuche
Zahlenbasis-Konverter
Konvertieren zwischen binären, oktalen, dezimalen und hexadezimalen Zahlensystemen mit Unterstützung für benutzerdefinierte Basen (2-36)