
MQTT: El Protocolo Ligero que Está Impulsando el Internet de las Cosas
En un mundo cada vez más conectado, la comunicación entre dispositivos se ha vuelto esencial. Desde sensores en fábricas hasta aplicaciones de monitoreo en ciudades inteligentes, el Internet de las Cosas (IoT) necesita protocolos que permitan transmitir información de forma rápida, segura y eficiente. Aquí es donde MQTT se ha convertido en un estándar ampliamente aceptado.
¿Qué es MQTT?
MQTT (Message Queuing Telemetry Transport) es un protocolo de mensajería ligero, diseñado para entornos donde el ancho de banda es limitado, la latencia debe ser baja y la energía es un recurso crítico. Fue creado en 1999 por ingenieros de IBM y Eurotech para monitorear oleoductos a través de enlaces satelitales, por lo que se enfocó en ser eficiente y confiable en redes poco estables. Se basa en un modelo publicador–suscriptor, lo que permite que los dispositivos envíen y reciban mensajes sin depender de conexiones directas entre ellos.
Características clave

Ligero y eficiente
Los clientes MQTT son muy ligeros y requieren pocos recursos, lo que los hace adecuados para microcontroladores pequeños. Además, los encabezados de sus mensajes son reducidos, optimizando así el uso del ancho de banda de la red.
Comunicaciones bidireccionales
Los dispositivos pueden enviar mensajes a un broker y, al mismo tiempo, recibir información suscribiéndose a distintos tópicos.
Escalable
La implementación de MQTT consume poca energía y requiere un código mínimo. Además, cuenta con funciones que permiten comunicarse con millones de dispositivos IoT.
Entrega de mensajes confiable
La confiabilidad en la entrega de mensajes es crucial en muchos casos de uso de IoT. MQTT ofrece tres niveles de calidad de servicio: 0, el mensaje se envía como máximo una vez; 1, se garantiza que el mensaje se entregue al menos una vez; y 2, se asegura que el mensaje se reciba exactamente una vez, evitando duplicados.
Soporte para redes no confiables
Muchos dispositivos IoT se conectan mediante redes celulares inestables. MQTT facilita estas conexiones gracias a sus sesiones persistentes, que permiten al cliente reconectarse con el broker rápidamente sin perder información ni suscripciones.
Seguridad
MQTT permite cifrar los mensajes usando TLS y autenticar a los clientes mediante protocolos modernos, como OAuth.
Compatibilidad con múltiples plataformas
Todos los grandes proveedores de nube (AWS IoT, Azure IoT Hub, Google Cloud IoT) soportan MQTT, lo que facilita la integración con infraestructuras modernas.
Arquitectura y funcionamiento

-
1. Client: Publisher (Publicador)
Es el dispositivo o aplicación que genera los datos y los envía a un broker.
Puede ser un sensor, un microcontrolador (ESP32, Arduino), un PLC, etc.
Publica mensajes en un tema (topic), que es como una categoría o canal. -
2. Broker
Se encarga de recibir mensajes de los publicadores y enviarlos a los sucriptores según el tópico.
Ejemplos populares: Mosquitto, HiveMQ, EMQX.
Administra la conexión, la seguridad, la calidad de servicio y el almacenamiento temporal (si es necesario). -
3. Client: Subscriber (Suscriptor)
Es el dispositivo o aplicación que recibe los datos.
Se suscribe a uno o varios tópicos para recibir solo la información que le interesa.
Ejemplo: una app móvil que muestra la temperatura solo si está suscrita al tópico casa/salon/temperatura.

4. Topics (Tópicos)
En MQTT, un tópico es la dirección donde se publican y reciben mensajes. Funciona como una ruta jerárquica separada por /, por ejemplo casa/sala/temperatura. Los dispositivos publican datos en un tópico y los suscriptores que estén conectados a ese mismo tópico reciben la información. Además, se pueden usar comodines: + para un nivel y # para todos los niveles inferiores.
Funcionamiento básico de la arquitectura
En MQTT, el flujo comienza cuando el publicador se conecta al broker mediante TCP/IP, y en entornos seguros se emplea TLS para cifrar la comunicación. Luego, el publicador publica un mensaje en un tópico específico, que actúa como un canal organizado para la información.
El broker recibe el mensaje y lo reenvía únicamente a los suscriptores que estén suscritos a ese tópico, garantizando que la distribución sea precisa. Los suscriptores reciben los datos sin conocer al publicador, y el publicador tampoco sabe quién recibe el mensaje. Este desacoplamiento entre emisores y receptores hace que el protocolo sea eficiente y escalable.