CoderTools

Códec MQTT

Codificar y decodificar paquetes del protocolo MQTT

🔒 100% Procesamiento localLos datos que introduce se procesan completamente en su navegador. No se envían a ningún servidor.

Pegue datos de paquetes MQTT capturados desde Wireshark, analizador de red o logs del broker

Paquetes de ejemplo

Resultado decodificado

Ingrese datos del paquete y haga clic en Decodificar para ver resultados

Referencia de tipos de paquetes MQTT

Código Nombre Dirección Descripción
0x10CONNECTC→SSolicitud de conexión del cliente
0x20CONNACKS→CReconocimiento de conexión
0x30PUBLISHC↔SPublicar mensaje
0x40PUBACKC↔SReconocimiento de publicación (QoS 1)
0x50PUBRECC↔SPublicación recibida (QoS 2 parte 1)
0x60PUBRELC↔SPublicación liberada (QoS 2 parte 2)
0x70PUBCOMPC↔SPublicación completa (QoS 2 parte 3)
0x80SUBSCRIBEC→SSolicitud de suscripción
0x90SUBACKS→CReconocimiento de suscripción
0xA0UNSUBSCRIBEC→SSolicitud de cancelación de suscripción
0xB0UNSUBACKS→CReconocimiento de cancelación de suscripción
0xC0PINGREQC→SSolicitud de ping (keep-alive)
0xD0PINGRESPS→CRespuesta de ping
0xE0DISCONNECTC→SDesconexión del cliente

Guía del protocolo MQTT

Entendiendo el protocolo MQTT

MQTT (Message Queuing Telemetry Transport) es un protocolo de mensajería ligero construido sobre TCP/IP. Desarrollado por IBM en 1999 para monitoreo de enlaces satelitales, se ha convertido en el estándar de facto para comunicación IoT. El protocolo usa un patrón publicar-suscribir donde los clientes se comunican a través de un broker central, ideal para redes inestables y dispositivos con recursos limitados.

Estructura binaria del paquete

Cada paquete MQTT comienza con un encabezado fijo (1-5 bytes), seguido de un encabezado variable opcional y carga útil. El primer byte contiene el tipo de paquete en los bits 7-4 y banderas específicas del tipo en los bits 3-0. El campo de longitud restante usa codificación de longitud variable.

Rango de bits Nombre del campo Descripción
7-4Tipo de paqueteTipo de paquete de control (1-15)
3-0BanderasBanderas específicas del tipo (DUP, QoS, RETAIN para PUBLISH)

Codificación de longitud variable

MQTT usa una codificación compacta para el campo de longitud restante. Cada byte usa 7 bits para datos y 1 bit como bandera de continuación. Valores 0-127 necesitan 1 byte, 128-16383 necesitan 2 bytes, hasta un máximo de 4 bytes para longitudes hasta 268,435,455.

Bytes Valor mín Valor máx
10127
212816,383
316,3842,097,151
42,097,152268,435,455

Detalles del paquete CONNECT

El paquete CONNECT se envía primero después del establecimiento de la conexión TCP. Contiene versión del protocolo, intervalo keep-alive, ID del cliente y credenciales opcionales. Las banderas de conexión controlan el comportamiento de sesión incluyendo Clean Session, configuración del mensaje de testamento y autenticación.

Mecánica del paquete PUBLISH

Los paquetes PUBLISH transportan mensajes de aplicación. Las banderas del encabezado fijo indican nivel QoS, comportamiento de retención y estado de duplicado. QoS 0 es fire-and-forget, QoS 1 garantiza entrega al menos una vez, QoS 2 asegura exactamente una vez vía handshake de cuatro vías.

Garantías de entrega QoS

QoS 0
A lo más una vez - entrega fire and forget
QoS 1
Al menos una vez - garantizado con posibles duplicados
QoS 2
Exactamente una vez - entrega única garantizada

Aplicaciones prácticas

  • Analizar capturas de paquetes de Wireshark o tcpdump para depuración
  • Construir paquetes de prueba para verificar implementaciones de broker o cliente MQTT
  • Aprender los internals del protocolo MQTT mediante inspección práctica de paquetes
  • Solucionar problemas de conectividad y entrega de mensajes de dispositivos IoT
  • Generar paquetes de ejemplo para escenarios de pruebas automatizadas

Versiones del protocolo

Tres versiones principales de MQTT están en uso: MQTT 3.1 (nivel de protocolo 3), MQTT 3.1.1 (nivel de protocolo 4, ISO/IEC 20922:2016), y MQTT 5.0 (nivel de protocolo 5) con características mejoradas. Esta herramienta se enfoca principalmente en MQTT 3.1.1, la versión más ampliamente desplegada.

Menú Rápido

Sin herramientas recientes