Mensaje Queuing Telemetry Transport (MQTT)es un peso ligero, simple, y protocolo de mensajería de código abierto. Es el protocolo más utilizado para la comunicación en el Internet de las cosas (IoT) o entornos de máquina a máquina (M2M). El objetivo principal del MQTT esfacilitar el mensaje y el intercambio de datos entre IoT y Dispositivos de IoT Industrial (IIoT),como sensores, que tienen ancho de banda limitado. Dispositivos IoT/IIoT utilizando elMQTT protocolooperar en un modelo de subscripción publica, donde un dispositivo (cliente) puede publicar mensajes o datos a temas específicos mientras se suscribe a recibir datos de otros dispositivos. Funciona sobre TCP/IP.
ElMQTTopera en un modelo public-subscribe, permitiendo dispositivos/clientes para comunicarse. Sin embargo, la comunicación entre los clientes no ocurre directamente; en su lugar, es facilitado por unInterventor de MQTT.El corredor actúa como intermediario, recepción y distribuyendo datos entre clientes. Este modelo de subscripción publica gira alrededor de dos roles clave: editor y suscriptor
Los clientes pueden actuar como editores y suscriptores simultáneamente. En MQTT, el intercambio de mensajes es organizados por temas(MQTT Temas),que funcionan como canales. Cuando un editor quiere enviar un mensaje, publica el mensaje a un tema específico, como sensor/temperatura. Los dispositivos interesados en este tema se suscribirán y recibirán los datos de manera eficiente. Todo este proceso es gestionado por el corredor, que toma los datos del cliente editor y lo envía a los clientes que se han suscrito a ese tema en particular.
En caso de problemas de red o fracasos inesperados de conexión, el cliente editor puede enviar unMensaje de la Voluntada mensaje en caché que contiene instrucciones para los clientes de suscripción. Si hay una desconexión entre el corredor y el suscriptor, el corredor almacena los mensajes y los entrega al suscriptor una vez que se restablezca la conexión.
MQ Telemetry Transport (MQTT) define varios tipos de mensajes que facilitan la comunicación entreMQTT clientesy el corredor MQTT en IoT sistemas. Cada tipo sirve un papel único en el proceso de comunicación. Entre los diferentes tipos de mensajes de MQTT, a continuación cuatro son cruciales:
1. CONNECT– El mensaje CONNECT es enviado por un cliente para iniciar una conexión con el corredor de MQTT. Este mensaje ayuda al corredor a identificar al cliente y establecer la conexión. El mensaje CONNECT incluye detalles como el ID del cliente, conexión opciones y credenciales de inicio de sesión.
2. DISCONECTO– El mensaje DISCONNECT es utilizado por un cliente para cerrar su conexión con el MQTT bróker. Al enviar este mensaje, el cliente informa al corredor que no desea comunicarse más tiempo. Esto asegura que el corredor es consciente de que el cliente está saliendo fuera de línea correctamente, en lugar de experimentar una desconexión inesperada.
3. PUBLISH– El mensaje PUBLISH se utiliza para enviar datos a un tema específico. Contiene la carga útil, que son los datos reales, junto con metadatos como el nombre del tema, los niveles de calidad del servicio (QoS) y si el mensaje debe ser retenido por el corredor. El mensaje PUBLISH permite que los datos se muevan de un cliente al corredor, donde se puede distribuir a otros clientes suscritos a ese tema.
4. SUBSCRIBE– El mensaje SUBSCRIBE se envía cuando un cliente o dispositivo desea recibir datos sobre un tema específico publicado por otro cliente. Al suscribirse, el cliente le dice al corredor qué tema le interesa. Una vez suscrito, el cliente comenzará a recibir todos los mensajes publicado a ese tema. Así es como los dispositivos notifican al corredor que quieren recibir tipos específicos datos.
Echa un vistazo a la tabla de abajo para más tipos y descripciones de mensajes MQTT!
Es adecuado para la comunicación M2M ya que disminuye la necesidad de ancho de banda de red. Además, tiene capacidad redes inestables y requiere menos esfuerzo de desarrollo. El protocolo sirve para intercambiar datos entre dispositivos controlados y aplicaciones servidor. Un sistema que utiliza Internet de las Cosas (IoT) es una colección de interconectados objetos que pueden comunicarse entre sí. Para este concepto, Mensaje Queuing Telemetry Transport works Bueno. Algunas justificaciones son las siguientes:
Algunos beneficios del MQTT son los siguientes:
Termo de dirección que permite
clientes para compartir información.
Representación de un
conexión entre una
cliente
Y un corredor
"Última buena"
Mensaje” en un
Tema
Comprobando estado de la conexión TCP/IP
Le permite recibir datos directamente en un navegador web
MQTT representa el transporte de telemetría en búsqueda de mensajes. Es un protocolo de mensajería ligero y sencillo. ayuda a los dispositivos inteligentes (dispositivos que están interconectados a través de Internet) para comunicarse sin problemas enviando y recibiendo datos, especialmente en situaciones donde la red o los recursos energéticos son limitados
MQTT es el protocolo más utilizado en IoT. Es debido a su capacidad de proporcionar una manera confiable dispositivos para comunicarse incluso en ambientes con bajo ancho de banda o condiciones inestables. Su modelo de publicación/subscribe permite a los dispositivos enviar datos solo cuando es necesario, por lo tanto, hacerlo eficiente para una gran red de dispositivos conectados en hogares inteligentes, fábricas, etc.
A continuación se presentan algunos casos prácticos de uso del MQTT:
MQTT es un protocolo de capa de aplicación construido sobreProtocolo TCPpara la transmisión de datos, garantía envío confiable y ordenado de mensajes. TCP (Protocolo de Control de Transmisiones) proporciona una conexión estable entre dispositivos, lo que lo hace ideal para aplicaciones donde la integridad de los datos es vital. Hay una variante llamadaMQTT-SN(MQTT for Sensor Networks) diseñado exclusivamente para redes de sensores de borde, se construye sobre UDP (Protocolo de Datagram de usuario)
MQTT es fácil de usar y es esencial para situaciones en las que el tiempo de respuesta, el rendimiento, la batería baja y El uso del ancho de banda es crucial. Comparado con otra comunicación IoT protocolos como HTTP y CoAP, MQTT es mejor debido a su diseño ligero que permite más rápido y transmisión de datos más eficiente. También publica/subscribe modelo simplifica la comunicación entre dispositivos, reduciendo así la necesidad de conexiones constantes. Todos estos hacen de MQTT un protocolo de comunicación mejor que otros protocolos.
Sí, MQTT está diseñado para apoyar una comunicación muy segura. MQTT admite métodos de autenticación garantizar que sólo los dispositivos autorizados puedan conectar e intercambiar información. Además, también ofrece diversas medidas de seguridad como el cifrado a través de SSL/TLS, que protege datos como viaja entre dispositivos. Así, estas características hacen Mensaje Queuing Telemetry Transport protocol es una opción segura para transmitir datos confidenciales en aplicaciones de IoT.
Sí, MQTT es un protocolo de código abierto que está estandarizado por organizaciones como OEAIS e ISO. Esto significa que está disponible para cualquiera para usar, implementar, o modificar sin restricciones. Como no es propiedad de ninguna empresa específica, MQTT puede ser adoptado ampliamente en diversas plataformas y aplicaciones
No, MQTT no es RESTful. Mientras tanto MQTT y REST se utilizan para la comunicación entre dispositivos, tienen
diferentes arquitectura y diferentes propósitos para servir.
MQTT se basa en el modelo publicado/subscribe que permite a los dispositivos enviar y recibir mensajes/datos en
en tiempo real.
Por otro lado, REST se basa en el modelo de solicitud/respuesta que permite a los clientes solicitar datos del
servidor.
Para saber más, lea nuestraMQTT vs REST¡Un blog!
1883 es el puerto estándar de MQTT. Este es el puerto predeterminado que se utiliza para conexiones no seguras, permitiendo que los dispositivos se comuniquen entre sí fácilmente. Cuando TLS está habilitado para una conexión segura, MQTT generalmente utiliza el puerto 8883 como una capa adicional de seguridad para la transmisión de datos
Sí, por supuesto. Necesitas un corredor para usar MQTT. Es el corredor que actúa como un centro central que administra toda comunicación entre los dispositivos (clientes). El papel delMQTT brokeres obtener los mensajes/datos de los dispositivos que actúa como editor y distribuir esos mensajes a los dispositivos que actúan como suscriptor. Sin el corredor, el sistema MQTT no sería capaz de manejar o gestionar mensajes eficientemente
MQTT es muy adecuado para aplicaciones IIoT debido a las siguientes características:
Estos factores lo convierten en el protocolo de mensajería preferido para la industria aplicaciones que requieren un intercambio de datos fiable y eficiente.
Sí, MQTT admite QoS, lo que ayuda a asegurar la entrega confiable de mensajes. QoS permite al remitente especificar cómo se deben entregar mensajes fiables, ofreciendo opciones para satisfacer diferentes necesidades de comunicación. Esta característica hace que el MQTT sea flexible para varias aplicaciones de IoT, desde datos no críticos hasta tiempos sensibles información
MQTT QoS consta de 3 niveles que se clasificaron como por orden creciente de arriba
QoS 0 – Al menos una vez
QoS 1 – Al menos una vez
QoS 2 – Exactamente una vez
Para saber más sobre QoS, navega porMQTT Artículo de QoS
AnTema MQTTes una cadena o patrón que define el destino o sujeto de un mensaje. Sirve para categorize and route messages within the publish-subscribe model, permitiendo a los dispositivos suscribirse a temas específicos de interés. Los temas pueden tener una estructura jerárquica, usando slashes (/) para separar diferentes niveles, que permite filtrar mensajes organizados y eficientes. Este sistema permite múltiples dispositivos para recibir mensajes relevantes sin tráfico de datos innecesario, haciendo la comunicación más eficaz.
Mensajes retenidosson característica en MQTT que permite un mensaje publicado a un tema para ser almacenado por el broker. Esto significa que cuando un nuevo suscriptor se conecta a ese tema, reciben inmediatamente el último mensaje retenido, asegurando que tienen los datos más recientes sin tener que esperar nuevas actualizaciones. Esta característica es especialmente útil para proporcionar información crítica, como estado de dispositivo o configuración de configuración, a nuevos suscriptores derecho lejos.
El tamaño máximo del mensaje en MQTT es definido por el broker y puede variar, pero generalmente es de hasta 256 MB. Sin embargo, se recomienda mantener mensajes pequeña para optimizar el rendimiento y reducir la latencia, especialmente en entornos limitados
MQTT garantiza la orden de mensajes mediante la entrega de mensajes en el orden que se publican al utilizar QoS 1 o QoS 2. Esto significa que los suscriptores recibirán mensajes en la misma secuencia que fueron enviados, que es crucial para aplicaciones donde el orden de datos es importante
ElÚltima Voluntad y Testamento(LWT) función permite a un cliente especificar un mensaje que será enviado por bróker si el cliente se desconecta inesperadamente. Esta característica es útil para notificar otros dispositivos sobre el estado del cliente, ayudando a mantener conciencia en la red
Sí, MQTT es muy adecuado para las redes móviles debido a su naturaleza ligera y a su baja ancho de banda consumo. Esto lo hace ideal para aplicaciones donde los dispositivos pueden tener conectividad intermitente, como sensores móviles o dispositivos IoT que dependen de redes celulares
Sí, MQTT es muy adecuado para aplicaciones en tiempo real debido a su baja latencia y eficiencia Entrega de mensajes. El modelo publicado/subscribe permite notificaciones instantáneas, lo que lo hace ideal para casos de uso tales como alimentación de datos en vivo, monitoreo remoto y mensajería instantánea
Un protocolo de mensajería ligero, sencillo y de código abierto diseñado para dispositivos con recursos limitados. Comúnmente utilizado en IoT para una comunicación rápida y fiable.
Los datos reales enviados entre dispositivos, conteniendo un tema y una carga útil, que contiene el contenido del mensaje.
El servidor central (middleware) que recibe todos los mensajes de clientes y los dirige a los suscriptores apropiados.
Dispositivos o aplicaciones que se conectan al corredor para enviar y recibir mensajes.
Un dispositivo o aplicación que envía mensajes (publica) al corredor bajo un tema específico.
Un dispositivo o aplicación que recibe (suscribe a) mensajes del corredor basados en temas específicos.
Un identificador único para cada cliente MQTT, utilizado por el corredor para gestionar sesiones y conexiones.
Un intervalo de tiempo para comprobar si un cliente sigue conectado. Si no se envían datos, el cliente envía un ping.
Un mensaje que el corredor envía si un cliente desconecta inesperadamente, alertando a otros clientes de su estado offline.
Los diferentes tipos de paquetes de control utilizados en la comunicación MQTT, como CONNECT, PUBLISH y SUBSCRIBE.
El contenido o los datos reales dentro de un mensaje MQTT, como valores de sensor, actualizaciones de estado o comandos.
Guarda información de suscripción y mensajes no entregados para que un cliente pueda reanudar su sesión después de reconectarse.
Define cómo se entregan mensajes fiables: al menos una vez (0), al menos una vez (1), o exactamente una vez (2).
Un mensaje guardado por el corredor y enviado inmediatamente a cualquier cliente que posteriormente se suscribe a su tema.
Otro término para el corredor de MQTT — el sistema central que maneja el enrutamiento y la entrega de mensajes.
Controla cuánto tiempo retiene los datos de sesión después de que un cliente se desconecte — útil para conexiones temporales.
Permite a múltiples clientes compartir la carga de trabajo de los mensajes sobre el mismo tema, como una cola de mensajes.
Una extensión MQTT para sistemas industriales, añadiendo modelos de datos estándar y gestión estatal de dispositivos.
Etiquetas utilizadas para organizar mensajes, como carpetas — los clientes publican o se suscriben a temas específicos.
La última versión de MQTT, que ofrece características avanzadas como códigos de razón, suscripciones compartidas y expiración de sesión.
Una versión ligera de MQTT diseñada para redes de sensores, con bajo uso de energía y comunicación simplificada.