Qu’est-ce que MQTT ? Définition de MQTT
MQTT (Message Queuing Telemetry Transport) est un protocole réseau léger de publication-abonnement qui transporte les messages entre les appareils. Le protocole s’exécute généralement sur TCP / IP; cependant, tout protocole réseau qui fournit des connexions ordonnées, sans perte et bidirectionnelles peut prendre en charge MQTT. Il est conçu pour les connexions avec des emplacements distants où une “petite empreinte de code” est requise ou la bande passante réseau est limitée.
Andy Stanford-Clark (IBM) et Arlen Nipper (Cirrus Link, puis Eurotech) ont rédigé la première version du protocole en 1999. Il a été utilisé pour surveiller un oléoduc à travers le désert. L’objectif était d’avoir un protocole à faible bande passante, léger et utilisant peu de batterie, car les appareils étaient connectés via une liaison satellite qui, à l’époque, était extrêmement coûteuse.
En 2013, IBM a soumis MQTT v3.1 à l’organisme de spécification OASIS avec une charte garantissant que seules des modifications mineures de la spécification pourraient être acceptées. MQTT-SN est une variante du protocole principal destiné aux appareils embarqués sur des réseaux non TCP / IP, tels que Zigbee.
ProcessOne ejabberd est un serveur d’applications multi-protocoles en temps réel qui peut agir comme un courtier MQTT, un serveur XMPP et une passerelle SIP.
Historiquement, le «MQ» dans «MQTT» provenait de la gamme de produits IBM MQ. Cependant, le protocole fournit une messagerie de publication et d’abonnement (pas de files d’attente, malgré son nom) et a été spécialement conçu pour les appareils à ressources limitées et à faible bande passante, les réseaux à latence élevée tels que les lignes commutées et les liaisons par satellite, par exemple.
Le protocole MQTT définit deux types d’entités réseau: un courtier de messages et un certain nombre de clients. Un courtier MQTT est un serveur qui reçoit tous les messages des clients, puis achemine les messages vers les clients de destination appropriés. Un client MQTT est tout appareil (depuis un microcontrôleur jusqu’à un serveur à part entière) qui exécute une bibliothèque MQTT et se connecte à un courtier MQTT sur un réseau.
Les clients interagissent uniquement avec un courtier, mais un système peut contenir plusieurs serveurs de courtier qui échangent des données en fonction des sujets de leurs abonnés actuels. MQTT s’appuie sur le protocole TCP pour la transmission des données. Une variante, MQTT-SN, est utilisée sur d’autres transports tels que UDP ou Bluetooth.
MQTT envoie les informations d’identification de connexion au format texte brut et n’inclut aucune mesure de sécurité ou d’authentification. Cela peut être fourni par le transport TCP sous-jacent en utilisant des mesures pour protéger l’intégrité des informations transférées contre l’interception ou la duplication. Le port MQTT non chiffré par défaut est 1883, tandis que le port chiffré est 8883.