Vous êtes sur la page 1sur 6

Qu'est-ce que le protocole MQTT ?

MQTT est un protocole de messagerie basé sur des normes, ou un ensemble de


règles, utilisé pour la communication de machine à machine. Les capteurs
intelligents, les objets portés sur soi (wearables) et les autres appareils de
l'Internet des objets (IoT) doivent généralement transmettre et recevoir des
données sur un réseau aux ressources limitées et à la bande passante
restreinte. Ces appareils IoT utilisent MQTT pour la transmission des données,
car il est facile à implémenter et peut communiquer efficacement les données
IoT. MQTT prend en charge la messagerie des appareils vers le cloud et du
cloud vers l'appareil.

1/6
Pourquoi le protocole MQTT est-il important ?
Le protocole MQTT est devenu une norme pour la transmission de données IoT,
car il offre les avantages suivants :

Léger et efficace
L'implémentation de MQTT sur l'appareil IoT nécessite des ressources
minimales, de sorte qu'il peut même être utilisé sur de petits microcontrôleurs.
Par exemple, un message de contrôle MQTT minimal peut ne contenir que deux
octets de données. Les en-têtes des messages MQTT sont également de petite
taille afin que vous puissiez optimiser la bande passante du réseau.

Évolutif
L'implémentation de MQTT nécessite une quantité minimale de code qui
consomme très peu d'énergie en fonctionnement. Le protocole possède
également des fonctionnalités intégrées pour prendre en charge la
communication avec un grand nombre d'appareils IoT. Vous pouvez donc
implémenter le protocole MQTT pour vous connecter à des millions de ces
appareils.

Fiable
De nombreux appareils IoT se connectent sur des réseaux cellulaires peu
fiables, avec une faible bande passante et une forte latence. MQTT possède des
fonctionnalités intégrées qui réduisent le temps que le dispositif IoT prend pour
se reconnecter au cloud. Il définit également trois niveaux de qualité de service
différents pour garantir la fiabilité des cas d'utilisation IoT : au plus une fois
(0), au moins une fois (1) et exactement une fois (2).

Sécurisé
MQTT permet aux développeurs de chiffrer facilement les messages et
d'authentifier les appareils et les utilisateurs à l'aide de protocoles
d'authentification modernes, tels que OAuth, TLS1.3, Customer Managed
Certificates, etc.

Bonne prise en charge


Plusieurs langages comme Python disposent d'un support étendu pour
implémenter le protocole MQTT. Les développeurs peuvent donc l'implémenter
rapidement avec un codage minimal dans tout type d'application.

2/6
Quelle est l'histoire du protocole MQTT ?
Le protocole MQTT a été inventé en 1999 pour être utilisé dans l'industrie
pétrolière et gazière. Les ingénieurs avaient besoin d'un protocole offrant une
bande passante et une consommation batterie minimales pour surveiller les
oléoducs par satellite. Au départ, le protocole était connu sous le nom de
Message Queuing Telemetry Transport, en raison du produit MQ Series d'IBM
qui a pris en charge sa phase initiale. En 2010, IBM a publié MQTT 3.1 en tant
que protocole libre et ouvert que tout le monde peut implémenter, qui a
ensuite été soumis, en 2013, à l'organisme de spécification OASIS
(Organization for the Advancement of Structured Information Standards) pour
être maintenu. En 2019, une version 5 améliorée de MQTT a été publiée par
OASIS. Désormais, MQTT n'est plus un acronyme, mais est considéré comme
le nom officiel du protocole.

Quel est le principe de MQTT ?


Le protocole MQTT fonctionne sur les principes du modèle de
publication/abonnement. Dans la communication réseau traditionnelle, les
clients et les serveurs communiquent directement entre eux. Les clients
demandent des ressources ou des données au serveur, puis le serveur les
traite et renvoie une réponse. Cependant, MQTT utilise un modèle de
publication/abonnement pour découpler l'expéditeur du message (éditeur) du
récepteur du message (abonné). Au lieu de cela, un troisième composant,
appelé agent de messagerie, gère la communication entre les éditeurs et les
abonnés. La tâche de l'agent est de filtrer tous les messages entrants des
éditeurs et de les distribuer correctement aux abonnés. L'agent découple les
éditeurs et les abonnés comme ci-dessous :

Découplage spatial
L'éditeur et l'abonné ne connaissent pas l'emplacement du réseau de l'autre et
n'échangent pas d'informations telles que les adresses IP ou les numéros de
port.

Découplage temporel
L'éditeur et l'abonné ne fonctionnent pas ou n'ont pas de connectivité réseau
au même moment.

Découplage de la synchronisation
Les éditeurs et les abonnés peuvent envoyer ou recevoir des messages sans
s'interrompre mutuellement. Par exemple, l'abonné ne doit pas attendre que
l'éditeur envoie un message.

3/6
Que sont les composants MQTT ?
MQTT implémente le modèle de publication/abonnement en définissant les
clients et les agents comme ci-dessous.

Client MQTT
Un client MQTT est tout appareil, du serveur au microcontrôleur, qui exécute
une bibliothèque MQTT. Si le client envoie des messages, il agit comme un
éditeur, et s'il reçoit des messages, il agit comme un récepteur.
Fondamentalement, tout appareil qui communique à l'aide de MQTT sur un
réseau peut être appelé un appareil client MQTT.

Agent MQTT
L'agent MQTT est le système dorsal qui coordonne les messages entre les
différents clients. Les responsabilités de l'agent comprennent la réception et le
filtrage des messages, l'identification des clients abonnés à chaque message et
l'envoi des messages à ces derniers. Il est également responsable d'autres
tâches telles que :
• Autoriser et authentifier les clients MQTT
• Transmettre des messages à d'autres systèmes pour une analyse plus
approfondie
• Traiter les messages et les sessions clients manqués

Connexion MQTT
Les clients et les agents commencent à communiquer en utilisant une
connexion MQTT. Les clients initient la connexion en envoyant un message
CONNECT à l'agent MQTT. L'agent confirme qu'une connexion a été établie en
répondant par un message CONNACK. Le client MQTT et l'agent ont tous deux
besoin d'une pile TCP/IP pour communiquer. Les clients ne se connectent
jamais entre eux, uniquement avec l'agent.

Comment fonctionne MQTT ?


Un aperçu du fonctionnement de MQTT est donné ci-dessous.
1. Un client MQTT établit une connexion avec l'agent MQTT.
2. Une fois connecté, le client peut soit publier des messages, soit
s'abonner à des messages spécifiques, soit faire les deux.
3. Lorsque l'agent MQTT reçoit un message, il le transmet aux abonnés qui
sont intéressés.
Examinons les détails pour mieux comprendre.

4/6
Rubrique MQTT
Le terme « rubrique » (topic) fait référence aux mots-clés que l'agent MQTT
utilise pour filtrer les messages destinés aux clients MQTT. Les rubriques sont
organisées de manière hiérarchique, à l'instar d'un répertoire de fichiers ou de
dossiers. Par exemple, considérons un système de maison intelligente
fonctionnant dans une maison à plusieurs niveaux qui possède différents
appareils intelligents à chaque étage. Dans ce cas, l'agent MQTT peut organiser
les rubriques comme suit :
notremaison/rez-de-chaussée/salon/lumière
notremaison/premierétage/cuisine/température

Publication MQTT
Les clients MQTT publient des messages qui contiennent la rubrique et les
données au format octet. Le client détermine le format des données, comme
les données textuelles, les données binaires, les fichiers XML ou JSON. Par
exemple, une lampe dans le système de maison intelligente peut publier un
message allumer pour la rubrique salon/lumière.

Abonnement MQTT
Les clients MQTT envoient un message SUBSCRIBE (S'ABONNER) à l'agent
MQTT, pour recevoir des messages sur les rubriques qui les intéressent. Ce
message contient un identifiant unique et une liste d'abonnements. Par
exemple, l'application de maison intelligente sur votre téléphone veut afficher
le nombre de lumières allumées dans votre maison. Il s'abonnera à la rubrique
lumière et augmentera le compteur pour tous les messages allumer.

Qu'est-ce que MQTT over WSS ?


MQTT over WebSockets (WSS) est une implémentation de MQTT permettant de
recevoir des données directement dans un navigateur Web. Le protocole MQTT
définit un client JavaScript pour fournir un support WSS aux navigateurs. Dans
ce cas, le protocole fonctionne comme habituellement, mais ajoute des en-
têtes supplémentaires aux messages MQTT pour prendre également en charge
le protocole WSS. Vous pouvez le considérer comme la charge utile du
message MQTT enveloppée dans une enveloppe WSS.

5/6
MQTT est-il sécurisé ?
La communication MQTT utilise le protocole SSL pour protéger les données
sensibles transmises par les appareils IoT. Vous pouvez implémenter l'identité,
l'authentification et l'autorisation entre les clients et l'agent en utilisant des
certificats SSL et/ou des mots de passe. L'agent MQTT authentifie
généralement les clients à l'aide de leurs mots de passe ainsi que des
identifiants client uniques qu'il attribue à chaque client. Dans la plupart des
implémentations, le client authentifie le serveur à l'aide de certificats ou de
consultations DNS (DNS lookups). Vous pouvez également implémenter des
protocoles de chiffrement avec MQTT.

MQTT est-il conforme au style d'architecture REST (RESTful) ?


MQTT n'est pas conforme au style d'architecture REST (RESTful). REST
(Representational State Transfer) est une approche architecturale de la
communication réseau qui utilise le modèle de communication demande-
réponse entre les émetteurs et les récepteurs de messages. En revanche,
MQTT (Message Queuing Telemetry Transport) utilise le modèle de
communication publish/subscribe (publier/s'abonner) dans la couche
d'application et nécessite une connexion TCP permanente pour transmettre les
messages en mode push. Cependant, la version 5 de MQTT ajoute une nouvelle
méthode de demande/réponse pour agir de manière similaire à REST, dans
laquelle l'éditeur peut joindre une rubrique de réponse spécial, que le
récepteur traite et génère une réponse appropriée.

Comment AWS peut-il prendre en charge votre implémentation MQTT ?


AWS IoT Core est un service entièrement géré qui vous permet de connecter
des milliards d'appareils IoT et d'acheminer des milliers de milliards de
messages vers les services AWS. Vous pouvez :
• Connecter, gérer et mettre à l'échelle vos flottes d'appareils de manière
simple et fiable sans avoir à provisionner ou gérer des serveurs.
• Choisissez votre protocole de communication préféré, dont MQTT, HTTPS,
MQTT sur WSS et LoRaWAN.
• Sécurisez les connexions et les données des appareils grâce à
l'authentification mutuelle et au chiffrement de bout en bout.
• Filtrer, transformer et traiter les données des appareils à la volée, en
fonction des règles de gestion que vous avez définies.

6/6

Vous aimerez peut-être aussi