MQTT


MQTT es un protocolo de red ligero de publicación-suscripción que transporta mensajes entre dispositivos. El protocolo generalmente se ejecuta sobre TCP / IP ; sin embargo, cualquier protocolo de red que proporcione conexiones bidireccionales ordenadas y sin pérdidas puede admitir MQTT. [1] Está diseñado para conexiones con ubicaciones remotas donde existen restricciones de recursos o el ancho de banda de la red es limitado. El protocolo es un abierto OASIS estándar y una ISO recomendación (ISO / IEC 20922).

Andy Stanford-Clark ( IBM ) y Arlen Nipper (que entonces trabajaba para Eurotech, Inc. ) fueron los autores de la primera versión del protocolo en 1999. [4] Se utilizó para monitorear oleoductos dentro del sistema de control industrial SCADA . [5] El objetivo era tener un protocolo que fuera eficiente en el ancho de banda, liviano y que usara poca energía de la batería, porque los dispositivos estaban conectados a través de un enlace satelital que, en ese momento, era extremadamente costoso. [6]

Históricamente, el "MQ" en "MQTT" provenía de la línea de productos IBM MQ (entonces 'MQSeries') MQ, donde significa "Message Queue". Sin embargo, el protocolo proporciona mensajes de publicación y suscripción (sin colas, a pesar del nombre). [7] En la especificación abierta por IBM como versión 3.1, el protocolo se denominó "Transporte de telemetría MQ". [8] [9] Las versiones posteriores publicadas por OASIS se refieren estrictamente al protocolo simplemente como "MQTT", aunque el comité técnico en sí se denomina "Comité Técnico de Transporte de Telemetría de Cola de Mensajes de OASIS". [2] Desde 2013, "MQTT" no significa nada. [10] [7]

En 2013, IBM presentó MQTT v3.1 al organismo de especificación de OASIS con un estatuto que garantizaba que solo se aceptaran cambios menores en la especificación. [2] Después de hacerse cargo el mantenimiento del estándar de IBM, OASIS lanzado la versión 3.1.1, el 29 de octubre de 2014. [11] [12] Una mejora más sustancial a MQTT la versión 5, la adición de varias características nuevas, [13] fue puesto en libertad el 7 de marzo de 2019. [1]

MQTT-SN (MQTT para redes de sensores) es una variación del protocolo principal destinado a dispositivos integrados alimentados por batería en redes que no son TCP / IP, [14] como Zigbee . [15]

El protocolo MQTT define dos tipos de entidades de red: un intermediario de mensajes y varios clientes. Un intermediario MQTT es un servidor que recibe todos los mensajes de los clientes y luego enruta los mensajes a los clientes de destino adecuados. [16] Un cliente MQTT es cualquier dispositivo (desde un microcontrolador hasta un servidor completo) que ejecuta una biblioteca MQTT y se conecta a un corredor MQTT a través de una red. [17]


Ejemplo de una conexión MQTT (QoS 0) con conexión, publicación / suscripción y desconexión. El primer mensaje del cliente B se almacena debido al indicador de retención.