Códec MQTT
Codificar y decodificar paquetes del protocolo MQTT
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
Visor de bytes
Resultado codificado
Configure parámetros y haga clic en Construir paquete para generar
Visor de bytes
Vista previa de estructura del paquete
Referencia de tipos de paquetes MQTT
| Código | Nombre | Dirección | Descripción |
|---|---|---|---|
| 0x10 | CONNECT | C→S | Solicitud de conexión del cliente |
| 0x20 | CONNACK | S→C | Reconocimiento de conexión |
| 0x30 | PUBLISH | C↔S | Publicar mensaje |
| 0x40 | PUBACK | C↔S | Reconocimiento de publicación (QoS 1) |
| 0x50 | PUBREC | C↔S | Publicación recibida (QoS 2 parte 1) |
| 0x60 | PUBREL | C↔S | Publicación liberada (QoS 2 parte 2) |
| 0x70 | PUBCOMP | C↔S | Publicación completa (QoS 2 parte 3) |
| 0x80 | SUBSCRIBE | C→S | Solicitud de suscripción |
| 0x90 | SUBACK | S→C | Reconocimiento de suscripción |
| 0xA0 | UNSUBSCRIBE | C→S | Solicitud de cancelación de suscripción |
| 0xB0 | UNSUBACK | S→C | Reconocimiento de cancelación de suscripción |
| 0xC0 | PINGREQ | C→S | Solicitud de ping (keep-alive) |
| 0xD0 | PINGRESP | S→C | Respuesta de ping |
| 0xE0 | DISCONNECT | C→S | Desconexió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-4 | Tipo de paquete | Tipo de paquete de control (1-15) |
| 3-0 | Banderas | Banderas 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 |
|---|---|---|
| 1 | 0 | 127 |
| 2 | 128 | 16,383 |
| 3 | 16,384 | 2,097,151 |
| 4 | 2,097,152 | 268,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
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.
Herramientas Relacionadas
Cliente MQTT WebSocket
Cliente MQTT basado en navegador para conectar, publicar, suscribirse y depurar mensajes IoT vía WebSocket
Probador de Topics MQTT
Probar y validar patrones de topics MQTT con comodines + y # para pruebas de suscripción
Analizador Modbus RTU/ASCII/TCP
Analizar, codificar y depurar tramas del protocolo Modbus RTU/ASCII/TCP con cálculo de CRC-16/LRC y depuración serie
Convertidor de Base
Convertir entre sistemas binario, octal, decimal y hexadecimal con soporte de bases personalizadas (2-36)