CoderTools

MQTT Codec

MQTT-Protokollpakete kodieren und dekodieren

🔒 100% Lokale VerarbeitungIhre eingegebenen Daten werden vollständig in Ihrem Browser verarbeitet. Es werden keine Daten auf einen Server hochgeladen.

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

MQTT-Pakettypen-Referenz

Code Name Richtung Beschreibung
0x10CONNECTC→SClient-Verbindungsanfrage
0x20CONNACKS→CVerbindungsbestätigung
0x30PUBLISHC↔SNachricht veröffentlichen
0x40PUBACKC↔SVeröffentlichungsbestätigung (QoS 1)
0x50PUBRECC↔SVeröffentlichung empfangen (QoS 2 Teil 1)
0x60PUBRELC↔SVeröffentlichung freigegeben (QoS 2 Teil 2)
0x70PUBCOMPC↔SVeröffentlichung abgeschlossen (QoS 2 Teil 3)
0x80SUBSCRIBEC→SAbonnement-Anfrage
0x90SUBACKS→CAbonnementbestätigung
0xA0UNSUBSCRIBEC→SAbbestellungsanfrage
0xB0UNSUBACKS→CAbbestellungsbestätigung
0xC0PINGREQC→SPing-Anfrage (Keep-Alive)
0xD0PINGRESPS→CPing-Antwort
0xE0DISCONNECTC→SClient-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-4PakettypSteuerpakettyp (1-15)
3-0FlagsTypspezifische 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
10127
212816,383
316,3842,097,151
42,097,152268,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

QoS 0
Höchstens einmal - Fire-and-Forget-Zustellung
QoS 1
Mindestens einmal - garantiert mit möglichen Duplikaten
QoS 2
Genau einmal - garantierte Einzelzustellung

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.

Schnellmenü

Keine aktuellen Tools