Principios del protocolo MQTT_Implementación del protocolo MQTT

MQTT es un protocolo de transporte de publicación y suscripción de mensajes basado en el modelo cliente-servidor. El protocolo MQTT es ligero, sencillo, abierto y fácil de implementar. Estas características lo hacen adecuado para una amplia gama de aplicaciones. En muchos casos, incluso en entornos con limitaciones, como las comunicaciones de máquina a máquina (M2M) y el Internet de las cosas (IoT). Se ha utilizado ampliamente en sensores de comunicación a través de enlaces por satélite, equipos médicos para llamadas esporádicas, hogares inteligentes y algunos dispositivos miniaturizados.

DTU/Pasarela Edge/Plataforma IoT/Módulo de pasarelaDTU/Pasarela Edge/Plataforma IoT/Módulo de pasarela

Características de MQTT

El protocolo MQTT es un protocolo diseñado para la comunicación con un gran número de sensores y dispositivos de control remotos con una potencia de cálculo limitada y que funcionan en redes de bajo ancho de banda y poco fiables. Presenta las siguientes características principales:

1. Utilizar el modelo de mensajes de publicación/suscripción para permitir la publicación de mensajes de uno a muchos y desacoplar las aplicaciones: esto es muy similar a XMPP, pero la redundancia de información de MQTT es mucho menor que la de XMPP (ya que XMPP utiliza el formato XML para transmitir datos, como ya sabes).

2. Transmisión de mensajes con contenido de carga útil blindado.

3. Utilizar TCP/IP para establecer conexiones de red: El protocolo MQTT más extendido se basa en conexiones TCP para el envío de datos, pero también existe una versión basada en UDP denominada MQTT-SN. Dado que estas dos versiones se basan en métodos de conexión diferentes, naturalmente presentan ventajas e inconvenientes distintos.

4. Existen tres tipos de calidad del servicio de publicación de mensajes:

[0] “Como máximo una vez”: la publicación de mensajes depende por completo de la red TCP/IP subyacente. Se producirán pérdidas o duplicaciones de mensajes: este nivel puede utilizarse en situaciones como los datos de sensores ambientales, en las que no importa que se pierda un registro de lectura, ya que en breve se enviará un segundo. Este método se utiliza principalmente para notificaciones push habituales de aplicaciones. Si tu dispositivo inteligente no está conectado a Internet cuando se envía el mensaje, y dicho mensaje no se recibió anteriormente, no se recibirá aunque el dispositivo vuelva a conectarse a Internet.

[1] “Al menos una vez” garantiza que el mensaje llegue, pero puede producirse una duplicación de mensajes: este método es relativamente inútil. En mi opinión, no se me ocurre ningún uso para este tipo de envío en el desarrollo habitual de aplicaciones.

[2] “Solo una vez”, lo que garantiza que el mensaje se reciba una sola vez: este nivel puede utilizarse en situaciones en las que la duplicación o la pérdida de mensajes puedan dar lugar a resultados erróneos en un sistema de facturación. Este servicio de publicación de mensajes de máxima calidad también puede utilizarse para notificaciones push en aplicaciones de mensajería instantánea, garantizando que los usuarios las reciban solo una vez.

5. Transmisión reducida, baja sobrecarga (la cabecera de longitud fija es de 2 bytes); el intercambio de protocolos se minimiza para reducir el tráfico de red: Por eso se afirma en la introducción que resulta muy adecuado para “en el ámbito del Internet de las cosas, la conexión entre sensores y servidores” y “la comunicación y la recopilación de información”. Hay que tener en cuenta que la potencia de cálculo y el ancho de banda de los dispositivos embebidos son relativamente limitados, por lo que el uso de este protocolo para transmitir mensajes resulta perfecto.

6. Utiliza las funciones «LastWill» y «Testament» para notificar a las partes pertinentes el mecanismo que se aplica en caso de interrupciones anómalas del cliente: «Last Will»: el mecanismo «Last Will» se utiliza para notificar a otros dispositivos del mismo tema que el dispositivo que envía las «últimas palabras» se ha desconectado. «Testament»: mecanismo «Will», similar en su funcionamiento a «Last Will».

Principios del protocolo MQTT

1. Método de implementación del protocolo MQTT

DTU/Pasarela Edge/Plataforma IoT/Módulo de pasarelaDTU/Pasarela Edge/Plataforma IoT/Módulo de pasarela

Para implementar el protocolo MQTT se necesitan: un cliente y un servidor

En el protocolo MQTT hay tres roles: emisor (Publish), intermediario (Broker) (servidor) y suscriptor (Subscribe). De ellos, tanto el emisor como el suscriptor de mensajes son clientes, el intermediario es el servidor, y el emisor de mensajes puede ser, al mismo tiempo, un suscriptor.

Los mensajes transmitidos por MQTT se dividen en dos partes: el tema (Topic) y la carga útil (payload). El tema puede entenderse como el tipo de mensaje. Una vez que el suscriptor se ha suscrito (Subscribe), recibirá el contenido del mensaje (carga útil) correspondiente a ese tema.

La «carga útil» puede entenderse como el contenido del mensaje, es decir, el contenido específico que el abonado desea utilizar.

2. Transmisión de red y mensajes de aplicación

MQTT se encargará de gestionar el transporte de red subyacente: establecerá una conexión entre el cliente y el servidor, proporcionando una transmisión bidireccional ordenada, sin pérdidas y basada en flujos de bytes entre ambos.

Cuando los datos de la aplicación se envían a través de la red MQTT, MQTT asocia la calidad de servicio (QoS) correspondiente y el nombre del tema (Topic).