por Ponlakshmi
MQTT se ha convertido en el protocolo TCP/IP más utilizado y aceptado para la comunicación IoT M2M. Su adopción generalizada ha llevado a aumentar la demanda de mejoras en laMQTTespecificación, dando lugar al MQTT 5. Esta nueva versión está diseñada para satisfacer las necesidades de las aplicaciones modernas de IoT, especialmente en la fabricación sistemas, logística, hogares inteligentes, IoT empresarial y aplicaciones móviles, donde las características de MQTT 5 mejoran la escalabilidad, el rendimiento y confiabilidad.
Aunque el protocolo MQTT no tiene mucho que decir sobre la implementación, MQTT 5 ha sido cuidadosamente diseñado para ayudar a los proveedores de soluciones a escalar mejor sus soluciones. Las nuevas características en la versión 5 de MQTT están destinadas a alcanzar los siguientes objetivos:
Construcción de grandes aplicaciones de escala:El control de flujo de los datos entreMQTT Brokery los clientes se simplifican en gran medida con las mejoras del Protocolo. Flujo control, Suscripción compartida y manejo de sesión ayudan a construir a gran escalaAplicaciones IoT.
Mejor reportaje de error:MQTT 5 Protocol has added strong return codes for the errors that happen during the communication. Casi todo el MQTT Packets tiene el código de devolución en un byte único del encabezado. El valor del byte indica una gama más amplia de fracasos para una mejor aplicación.
Bien definido M2M Comunicación:MQTT 3 no soporta cómo los temas y los mensajes deben definirse dentro. MQTT 5 ha añadido maneras de queMQTT clientescomunicarse con el otro. Solicitud y respuesta del MQTT flujo ayuda a definir cómo los dispositivos de borde se comunican en la capa de aplicación.
Extender el MQTT Especificaciones:Las propiedades personalizadas se pueden añadir a los paquetes MQTT y a la carga útil. Las propiedades personalizadas ayudarán a ampliar protocolo según sea necesario para la aplicación. Todos los controles y los paquetes de datos admiten propiedades excepto PINGREQ y PINGRESP.
MQTT v5.0 difiere del MQTT 3 en diversos aspectos, mostrando avances en protocolos de comunicación y cambios fundamentales en los sesiones de forma, transmisión de mensajes y gestión de suscripción se manejan. Estas distinciones contribuyen a un protocolo de mensajería más evolucionado y versátil en comparación con su predecesor.
A continuación se presentan los avances en MQTT 5 :
Adjuntar la bandera de sesión limpia en una bandera de inicio limpio, lo que indica que la sesión debe comenzar sin utilizar un existente período de sesiones, y un intervalo de gastos de sesión, que especifica cuánto tiempo debe mantenerse el período de sesiones después de un período de sesiones desconectar. Al desconectar, se puede cambiar el intervalo de expiración de la sesión. En MQTT v3.1, el establecimiento de inicio limpio a 1 y los gastos de sesión Interval a 0 es equivalente para establecer una sesión limpia a 1.
La expiración del mensaje es un componente opcional delPaquete de control PUBLISH. La Intervalación de Expiración de Mensajes en el paquete PUBLISH entregado por el Servidor a un Cliente debe establecerse en el valor recibido excluido el tiempo que el mensaje ha estado esperando en el Servidor. La Intervalación de Expiración Publish, que se aplica a ambos mensajes en línea y apagado, es la duración de la publicación en segundos. Permitir el establecimiento de un intervalo de expiración cuando un El mensaje se publica.
Incluye un código de razones en todos los paquetes de respuesta.CONNACK,PUBACK,PUBREC,PUBREL,PUBCOMP,SUBACK,UNSUBACK,DISCONNECT, yAUTHson algunos ejemplos. Esto permite al invocador verificar si se completó la función solicitada con éxito. La mayoría de los paquetes que contienen un código de razón ahora debe permitir una cadena de razón opcional también. Esto es destinado a utilizado para la identificación de problemas en lugar de analizar por el receptor.
El alias temático en MQTT v5 permite utilizar el modelo de mensajería pub-sub de una manera más flexible. Tema Los alias pueden salvar eficazmente recursos de red y procesamiento para mensajes publicados repetidamente a una colección finita temas, especialmente en grandes volúmenes. Permite que el nombre de tema sea abreviado a un pequeño entero para reducir el tamaño del paquete MQTT arriba. El cliente y el servidor cada uno especifica el número máximo de alias de tema que aceptarán.
El servidor puede enviar un mensaje de desconexión al cliente junto con un código de razones en MQTT 5. A diferencia de MQTT 3.1, MQTT 5.0 permite mensajes sobre desconexiones para ser enviado tanto del cliente como del servidor. Permitir al Servidor enviar DISCONECTO para especificar por qué La conexión está siendo cerrada. Si hubiera algún problema con el servidor, terminaría el período de sesiones.
Al enviar un mensaje PUBLISH, está disponible otro par de identificación/valor. Este es el indicador el Formato Payload. Cuando se publica un mensaje, permite que el formato de carga útil (binario, texto) y un tipo de contenido de estilo MIME sean especificado. Estos son enviados al destinatario del mensaje.
El patrón de solicitud/respuesta proporciona las características de los datos del tema de respuesta y correlación en MQTT para permitir mensajes de respuesta viajó de nuevo al editor de la solicitud. Además, da al Cliente la capacidad de obtener la configuración información del Servidor sobre cómo construir los temas de respuesta. Este mecanismo permite la implementación de un “business” reconocimiento” funcionalidad que es extensible, dinámico y transparente.
Con estándarProtocolos MQTT, las suscripciones compartidas son una manera maravillosa de distribuir mensajes entre varios suscriptores de MQTT. En la versión 5, se añadió apoyo a las suscripciones compartidas, lo que permite la suscripción equilibrada de carga consumidores. Una raíz temática reservada llamado $share y un nombre de participación se utilizan para agrupar suscriptores en suscripciones compartidas.
Al suscribirse, el cliente podría especificar un identificador de suscripción. Cuando usted crea o editar una suscripción, elMQTT Servergenerará y almacenará la relación de mapeo entre esta suscripción y la identificador de suscripción. Permite un Identificador de suscripción numérica que se dará en un SUBSCRIBE y se devuelve cuando se entrega el mensaje. Esto permite al Cliente determinar qué suscripción o suscripciones fueron responsables de la entrega del mensaje.
Las opciones de suscripción deben definirse principalmente para aplicaciones de gateway de mensajes. También hay un no opción local para no enviar mensajes de este Cliente, así como opciones para cómo manejar mensajes retenidos en suscripción. A personalizar el comportamiento del servidor, puede utilizar más opciones de suscripción en MQTT v5.
Permitir al Cliente y Servidor seleccionar la cantidad de mensajes fiables pendientes paraMQTT QoS Levelsexcepto QoS 0 que aceptarán por separado. Para permanecer dentro de esta cuota, el remitente pausa el envío de dichos mensajes. Esto se utiliza para limitar la tasa a la que se envían comunicaciones fiables y el número de mensajes en vuelo en cualquier momento dado.
La mayoría de los paquetes deben tener Propiedades de usuario. Aplicaciones del cliente definen las propiedades del usuario enPUBLISH, que son incluido con el mensaje. El Servidor envía las propiedades del usuario en PUBLISH y Will Properties al Receptor de mensaje. La implementación del servidor define las propiedades del usuario enCONNECT,SUBSCRIBE, yUNSUBSCRIBEpaquetes. El remitente define las características del usuario enCONNACK,PUBACK,PUBREC,PUBREL,PUBCOMP,SUBACK,UNSUBACK, yAUTHpaquetes, y cada aplicación del remitente es única. MQTT no define el significado de las propiedades del usuario.
Permita que el Cliente y el Servidor declaren el tamaño máximo del paquete que pueden soportar independientemente. Enviar un paquete más grande por el socio de sesión es un error. Esta propiedad no debe ser enviada si elevar el tamaño del Paquete PUBACK sobre el tamaño máximo del paquete del receptor.
Definir un conjunto de características que el Servidor no permite, y dar al Servidor una razón para determinar el Cliente sobre ellos. MáximoMQTT Calidad del servicio, Retener Disponible, Tarjeta Salvaje Suscripción Disponible, Identificador de Suscripción Disponible, y Suscripción compartida Disponibles son algunas de las características que se pueden especificar de esta manera. Usando características que Servidor ha indicado que no disponible es un error para el cliente.
En versiones anteriores, un Servidor podría negarse a implementar una característica declarando que el Cliente no es autorizado para usarlo. Cuando el Cliente utiliza una de estas características de todos modos, esta característica permite que tal comportamiento opcional sea declarados y agregados Códigos de Razón correspondientes.
Permitir un retraso de tiempo entre el final de la conexión y la transmisión del mensaje de voluntad. Esto se hace para que la voluntad El mensaje no se envía si se restablece la conexión al período de sesiones. Esto permite al menor interrupciones de la conexión a ocurre sin que otros sean notificados.
Sigue vivo.asegura que la conexión entre el agente y el cliente siga activa y que tanto el corredor como el cliente son conscientes de que están vinculados. Permite al Servidor proporcionar el valor vivo que debe utilizar el Cliente. Esto permite el Servidor para definir un máximo Mantenga el tiempo vivo mientras todavía tiene al cliente respeto.
El Cliente puede utilizar la referencia del servidor para encontrar otro servidor para usar. Permite al Servidor especificar un servidor diferente para CONNACK Y DISCONECTO. Esto se puede utilizar para redirigir o para realizar la provisión.
Permite al Broker asignar IDs de cliente a los clientes de manera consistente. Devuelve el ClienteID asignado en situaciones en las que Cliente La identificación es asignada por el servidor. La restricción de que los ClienteID asignados por Servidor sólo podrían utilizarse con sesión limpia=1 También se levantan las conexiones.
Para la mayoría de los casos de uso IoT, la especificación MQTT 5 se ha convertido en la opción lógica debido a sus avances en seguridad, fiabilidad, flexibilidad y rendimiento. MQTT 5 no sólo supera las limitaciones de su predecesor pero también sienta las bases para futuras innovaciones. La adopción del MQTT 5 le ayudará a entender y a bordo de su intercambio completo de datos sobre él. Nosotros anticipar que la adopción se cierne en los próximos años en todos los sectores.
Para obtener más información sobre el protocolo,