Devoir de Philosophie

Structure d’un paquet de contrôle MQTT V5

Publié le 29/02/2024

Extrait du document

« Structure d’un paquet de contrôle MQTT V5 1) Structure générale de la trame d’un paquet de contrôle MQTT quelconque 2) Structure générale de la trame d’un paquet de contrôle MQTT CONNECT 3) Structure générale de la trame d’un paquet de contrôle MQTT PUBLISH • Outil à installer : Wireshark https://www.wireshark.org/download.html • Ce cours se base sur les spécifications de la dernière version 5 du protocole MQTT (Mars 2019) https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.pdf 1 Source : https://fr.wikipedia.org/wiki/Wireshark 1) Structure générale d’un paquet de contrôle MQTT Les paquets MQTT ont une structure binaire.

Ils se composent de 3 parties au maximum : 1.a) En-tête fixe , présent dans tous les paquets MQTT 1.b) En-tête variable , présent dans certains paquets MQTT 1.c) Payload , présent dans certains paquets MQTT L'en-tête fixe est toujours présent dans chaque paquet MQTT.

Il a une taille minimale de deux octets. L’en-tête variable n'est pas présent dans tous les paquets de contrôle MQTT.

Sa structure est différente pour différentes requêtes MQTT. Payload correspond aux données réelles qui vont être envoyées.

Il n’est pas présent dans tous les paquets de contrôle MQTT. 3 1.a) En-tête fixe , présent dans tous les paquets MQTT 4 • Donc, dès le 1er octet d’une trame MQTT, le broker MQTT peur savoir quel est le type de ce paquet (à l’aide des bits 4-7 de l’octet 1) 5 • Commence à l’octet 2 (Remaining Length prend au maximum 4 octets) • Pour simplifier les calculs, on prendra le cas où Remaining Length ne prendra qu’un seul octet La longueur restante (Remaing Length) est un nombre variable entier d'octets qui représente le nombre d'octets restants dans le paquet de contrôle actuel.

La longueur restante n'inclut pas les octets utilisés pour coder la longueur restante.

La taille du paquet est le nombre total de octets dans un paquet de contrôle MQTT, cela est égal à la longueur de l'en-tête fixe plus la longueur restante. 6 • Activité 1 : Analyser ce paquet MQTT obtenu à l’aide de wireskark et dire quel est son type ? • Réponse Activité 1 : Cette trame MQTT (en bleu) contient 14 octets 1er octet : 10 ; Conversion en binaire : 0001 0000.

Donc, il s’agit d’un paquet car les flags (bits 0-3) sont tous à 0 et les bits 4-7 de l’octet 1 sont 0001 Connect, 2ème octet : 10 ; conversion en binaire : 00010000, Donc, le remaining lenght =,16 octets ; cela veut dire que l’entête variable et le payload auront la taille de 16 octets.

En comptant les octets 7 restants, on vérifie bien que le nombre d’octets restants de la trame MQTT est bien égal à 16 octets • Activité 2 : Analyser ce paquet MQTT obtenu à l’aide de wireskark et dire quel est son type ? • Réponse Activité 2 : Cette trame MQTT (en bleu) contient 11 octets 1er octet : 82 ; Conversion en binaire : 0100 0010.

Donc, il s’agit d’un paquet SUBSCRIBE, car les flags (bits 0-3) sont à 0010 et les bits 4-7 de l’octet 1 sont 0100 2ème octet : 09 ; conversion en binaire : 0000 1001, Donc, le remaining lenght =,9 ; cela veut dire que l’entête variable et le payload auront la taille de 9 octets.

En comptant les octets restants, on vérifie bien que le nombre d’octets restants de la trame MQTT est bien égal à 9 octets 8 1.b) En-tête variable , présent seulement dans certains paquets MQTT • Certains types de paquets de contrôle MQTT contiennent une en-tête variable.

Cette entête se trouve l'en-tête fixe et la charge utile (payload). • Le contenu de l'en-tête variable varie en fonction du type de paquet. • L’entête variable peut contenir le champ Identificateur de paquet.

Il est commun à plusieurs types de paquets. 9 • L’entête variable contient plusieurs informations qui dépendent du type de paquet MQTT. • L’entête variable se termine par de propriétés.

L'ensemble des propriétés est composé d'une longueur des propriétés (property length) suivie des propriétés. • S'il n'y a pas de propriétés, cela DOIT être indiqué en incluant une longueur de propriété de zéro. • Une propriété se compose d'un identifiant qui définit son utilisation et son type de données, suivi d'une valeur. 10 1.c) Payload , présent seulement dans certains paquets MQTT • • Certains paquets de contrôle MQTT contiennent une charge utile comme partie finale du paquet MQTT Liste des paquets de contrôle MQTT qui contiennent ou non un payload : 11 2) Structure d’un paquet de contrôle MQTT CONNECT Présent Présent 12 Entête variable du paquet CONNECT : Elle contient.... »

↓↓↓ APERÇU DU DOCUMENT ↓↓↓

Liens utiles