Archivo mensual enero 2021

La fiabilidad de MQTT

Una pregunta más o menos recurrente cuando se habla de MQTT en un contexto industrial es, ¿Cuán fiable es la comunicación MQTT? ¿Será seguro implementarlo  en la industria? Aquí clarificamos cómo se concibe un tema tan importante en comunicaciones.

Fiabilidad MQTT: QoS

Antes de nada: cuando hablamos de fiabilidad, nos referimos al grado de confianza que tenemos en el protocolo para asegurarnos que el envío y recepción de mensajes entre emisores y receptores funcionan de manera éxitosa. ¿Es lo bastante fiable a nivel industrial?

Como ya te comentamos en post previos, MQTT puede aplicarse en la industria. Y se puede aplicar en la industria porque una parte esencial del protocolo es la definición de la fiabilidad. 

Niveles QoS

Una de las definiciones clave dentro del concepto de fiabilidad son las Calidades de Servicio. Las Calidades de Servicios (QoS, Quality of Service), son los niveles que contempla la propia tecnología para asegurar que los mensajes se envían y se entregan con la fiabilidad que se necesite.

En MQTT los mensajes se pueden entregar de acuerdo a “Quality of Service (QoS)”. Existen tres calidades de servicios diferentes: QoS 0, QoS 1 y QoS 2, ordenados de menos a más calidad.

QoS 0 significa que la entrega se realizará como mucho, una vez. En este caso, los mensajes se confían la red, y por lo tanto, el emisor sólo envía el mensaje una vez, confiando en que el receptor la reciba. No hay reintentos de envío, ni nada por el estilo.

QoS1 es el segundo nivel, y significa que la entrega se realizara, al menos una vez. En este envío, el emisor envía, un paquete “ACK”, que deberá ser tratado como “no reconocido” hasta que el cliente lo haya recibido.

QoS 2 significa, exactamente una entrega. En este caso, el receptor debe hacer una aceptación en un proceso de 2 pasos del paquete que recibe.

La implementación de la QoS depende en muchos casos de las necesidades, pero también de la disponibilidad (Que esté soportada por los diferentes interlocutores).

Gestión de mensajes y Sesiones

Otro aspecto interesante a tener en cuenta con las comunicaciones MQTT es la gestión que se realiza en cuanto a mensajes y sesiones.

En cuanto a sesiones, todo cliente MQTT abre una sesión cuando se comunica con un Broker. Si la sesión en algun momento se pierde, los clientes pueden iniciar automáticamente procesos para establecer sesiones nuevas. Cada sesión en MQTT además contiene información relevante de la comunicación.

Otro aspecto interesante está en la gestión de mensajes. En muchos casos, los publicadores retienen el último mensaje enviado. Esto lo hacen porque, si algún cliente se conecta o desconecta, pueda recibir el último mensaje. Por ejemplo, si un publicador está enviando el valor de una temperatura a múltiples clientes, un nuevo cliente podría recibir esa temperatura (Esto se puede hacer mediante el uso de flags y los LWT).

Entonces, ¿Es MQTT fiable para la industria?

Hay muy buenas razones para pensar que la fiabilidad MQTT es lo suficientemente alta para implementarse  a nivel industrial.  De hecho, cada vez hay más PLC’s, librerías y aplicaciones con este protocolo.

¿Estás pensando en implementar MQTT? Si es así o tienes cualquier otra duda, no dudes en contactarnos!