Message Queuing Telemetry Transport (MQTT) est un protocole de messagerie de publication et d’abonnement populaire et léger, idéal pour connecter des appareils et des applications de l’internet des objets (IdO) ou de machine à machine (M2M) sur internet. MQTT est conçu pour fonctionner efficacement dans des environnements à faible bande passante ou à faible consommation, ce qui en fait un choix idéal pour les applications comportant un grand nombre de clients distants. Il est utilisé dans divers secteurs, notamment l’électronique grand public, l’automobile, les transports, la fabrication et les soins de santé.
Les appareils ou applications connectés via MQTT sont appelés clients. Ces clients publient et/ou s’abonnent à des messages sur un sujet spécifique ou sur plusieurs sujets. Les clients abonnés reçoivent tous les messages publiés sur ce sujet, ce qui permet un échange de données efficace et tolérant aux pannes entre un grand nombre d’appareils et de services.
Au cœur de l’architecture MQTT se trouve un courtier, c’est-à-dire un serveur chargé de suivre les clients (et les sujets auxquels ils sont abonnés), de traiter les messages et de les acheminer vers les systèmes appropriés.
Plusieurs versions clés du protocole MQTT ont été adoptées en tant que norme. L’organisation OASIS gère les révisions du protocole et maintient une spécification complète pour chaque version. Chaque révision de MQTT a élargi l’ensemble des fonctionnalités du protocole, il est donc important de savoir à quelle version de MQTT vos appareils et votre courtier adhèrent.
Il existe plusieurs types de messages MQTT, et chaque type de message contient un format spécifique que les appareils et applications conformes doivent respecter. Les révisions du protocole MQTT varient en termes de format et de types de messages. Une liste complète des types de messages est disponible dans chaque spécification du protocole MQTT.
Les trois types de messages les plus courants sont CONNECT, PUBLISH et SUBSCRIBE. Chaque message MQTT contient un en-tête, une charge utile et des drapeaux facultatifs. Selon le type de message, la charge utile peut être de longueur variable. Par exemple, dans un message PUBLISH, la charge utile contient les données à envoyer à tous les dispositifs abonnés et la longueur du champ de données a une incidence directe sur la taille du message. Par défaut, les dispositifs MQTT se connectent sur le port 1883 de manière non sécurisée ou sur le port 8883 lorsque le cryptage SSL/TLS a été activé.
Les voitures intelligentes sont un excellent exemple de MQTT en action. Comme les constructeurs automobiles ajoutent de nouvelles fonctionnalités pour tout prendre en charge, des diagnostics à distance et de la gestion de flotte aux paiements de carburant et aux divertissements, MQTT est devenu une norme commune pour les voitures connectées. Contrairement au protocole Hypertext Transfer Protocol (HTTP), MQTT peut maintenir une session persistante même lorsqu’une voiture entre et sort de zones mortes ou si sa connexion change de tour cellulaire. MQTT prend également en charge les communications bidirectionnelles, ce qui facilite l’envoi et la réception de données par la voiture et l’application en cloud sans attendre la réponse de l’autre partie.
HTTP et MQTT sont tous deux des protocoles réseau utilisés pour transmettre des données sur internet. Voyons leurs différences.
De nombreuses caractéristiques de MQTT en font le protocole idéal pour la messagerie entre les appareils IdO (les « objets » de l’IdO) et les systèmes dorsaux. Nous nous concentrons ici sur quatre caractéristiques :
MQTT utilise le protocole TCP/IP (Transmission Control Protocol/Internet Protocol) comme protocole de transport sous-jacent. Ce protocole de réseau largement utilisé garantit que les messages sont envoyés de manière fiable entre les clients et les courtiers.
Plusieurs raisons expliquent pourquoi TCP/IP est considéré comme fiable et efficace :
Bien qu’il soit le plus courant, le protocole TCP/IP n’est pas le seul choix pour le transport des messages MQTT. Le protocole MQTT fonctionne également avec le protocole UDP (User Datagram Protocol) et les WebSockets.
Nous sommes fiers d’offrir les ressources gratuites suivantes pour vous aider à poursuivre vos recherches sur la façon dont NGINX peut sécuriser, équilibrer la charge et fournir une haute disponibilité pour les systèmes IdO basés sur MQTT.