Message Queuing Telemetry Transport (MQTT) est un protocole de messagerie de publication-abonnement populaire et léger, idéal pour connecter des appareils et des applications de l'Internet des objets (IoT) 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 avec un grand nombre de clients distants. Il est utilisé dans de nombreux 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 cette rubrique, permettant un échange de données efficace et tolérant aux pannes entre de nombreux appareils et services.
Au cœur d’une architecture MQTT se trouve un courtier . Le courtier est un serveur chargé de suivre les clients (et tous 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 comme 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 étendu 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 suivre. Les révisions du protocole MQTT varient en termes de format et de types de messages. Une liste complète des types de messages peut être trouvée 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 indicateurs facultatifs. Selon le type de message, la charge utile peut avoir une longueur variable. Par exemple, dans un message PUBLISH, la charge utile contient les données à envoyer à tous les appareils abonnés et la longueur du champ de données a une incidence directe sur la taille du message. Par défaut, les appareils 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 du MQTT en action. Alors que les constructeurs automobiles ajoutent de nouvelles fonctionnalités pour prendre en charge tout, du diagnostic à distance et de la gestion de flotte aux paiements de carburant et au divertissement, MQTT est devenu une norme courante pour les voitures connectées. Contrairement au protocole HTTP (Hypertext Transfer Protocol), MQTT peut maintenir une session persistante même lorsqu'une voiture entre et sort de zones mortes ou si sa connexion change de tour de téléphonie cellulaire. MQTT prend également en charge les communications bidirectionnelles, ce qui permet à la voiture et à l'application cloud d'envoyer et de recevoir plus facilement des données sans attendre la réponse de l'autre.
HTTP et MQTT sont tous deux des protocoles réseau utilisés pour transmettre des données sur Internet. Regardons leurs différences.
De nombreuses fonctionnalités de MQTT en font le protocole idéal pour la messagerie entre les appareils IoT (les « objets » dans l’IoT) et les systèmes back-end. Ici, nous nous concentrons sur quatre fonctionnalités :
MQTT prend en charge le protocole de contrôle de transmission/protocole Internet (TCP/IP) comme protocole de transport sous-jacent. Ce protocole réseau largement utilisé garantit que les messages sont envoyés de manière fiable entre les clients et les courtiers.
Il existe plusieurs raisons pour lesquelles TCP/IP est considéré comme fiable et efficace :
Bien qu’il soit le plus courant, TCP/IP n’est pas le seul choix pour le transport des messages MQTT. Le protocole MQTT fonctionne également sur le protocole User Datagram Protocol (UDP) et les WebSockets.
Nous sommes fiers d'offrir les ressources gratuites suivantes pour vous aider à continuer à rechercher comment NGINX peut sécuriser, équilibrer la charge et fournir une haute disponibilité pour les systèmes IoT basés sur MQTT.