Protocole MQTT-SN: MQTT For Sensor Networks
Protocole MQTT-SN: MQTT For Sensor Networks
Protocole MQTT-SN: MQTT For Sensor Networks
Réalisé par:
HADJ SADEK Nouha
YAMANI Mehdia 1
ZBAKH Douae
Plan
Introduction
- MQTT VS MQTT-SN
- Architecture de MQTT-SN
Format de message
- Entêtedu message
- Message variable Part
- Procédure de connexion
Simulation
2
Introduction
3
Les réseaux de capteurs ont généralement un nœud avec un processeur de faible
puissance, et la mémoire flash sera de quelques KB.
Pour que le nœud du capteur communique, il a besoin d'au moins une puce Ethernet ou
un modem GPRS.
Complexes en fonctionnement
Le coût de l'ensemble
Consommation d'énergie
4
MQTT vs MQTT-SN
MQTT MQTT-SN
6
Format des messages
7
Format général des messages
8
1. En-tête du message
Length MsgType
(1 ou 3 octets) (1 octet)
Longueur: Spécifie le nombre total d'octets contenus dans le message (Y compris le champ
Longueur lui-même).
• Si le premier octet du champ Longueur est codé "0x01" alors le champ est de 3 octets; Dans ce
cas, les deux octets suivants spécifient le nombre total d'octets du message (l'octet le plus
significatif en premier).
• Sinon, la longueur du champ est seulement 1 octet et il spécifie lui même le nombre total
d'octets contenus dans le message.
Le format de 3 octets permet le codage de messages allant jusqu’à 65535 octets.
Les messages avec des longueurs plus petites que 256 octets peuvent utiliser le format le plus
court de 1 octet. 9
Type du message: Doit être fixé à l'une des valeurs suivantes.
10
2. Message Variable Part
Le contenu de la partie variable du message dépend du type de message.
Les champs suivants sont définis pour cette partie:
ClientId: Comme avec MQTT, le champ ClientId a une longueur variable et contient une
chaîne longue de 1 à 23 caractères qui identifie le client sur le serveur.
Data: Le champ Données correspond à la charge utile d'un message MQTT PUBLISH. Il a une
longueur variable et contient les données d'application qui sont publiées
Duration: Le champ Durée est de 2 octets et spécifie la durée d'une période en secondes. La
valeur maximale qui peut être codée est d'environ 18 heures.
Flags: Le champ Flags est d’un octet et contient les drapeaux suivants:
GwAdd: Le champ GwAdd a une longueur variable et contient l'adresse d'un GW. Il dépend
du réseau sur lequel MQTT-SN fonctionne. Par exemple, dans un réseau ZigBee, le réseau
l'adresse est de 2 octets.
GwId: Le champ GwId est de 1 octet de long et identifie une passerelle de façon unique.
MsgAdd: Le champ MsgId est de 2 octets et correspond au paramètre MQTT ‘Message Id'. Il
permet à l'expéditeur de faire correspondre un message avec son accusé de réception.
ProtocoId: Le ProtocolId est de 1 octet. Il est seulement présent dans un message CONNECT
et correspond au ‘protocol name‘ et ‘protocol version'. Il est codé 0x01. Toutes les autres
valeurs sont réservées.
12
2. Message Variable Part
Radius: Le champ Radius est de 1 octet et indique la valeur du rayon de diffusion. La valeur
0x00 signifie "diffusion à tous les noeuds du réseau ".
ReturnCode: de 1 octet.
ReturnCode Value Meaning
0x00 Accepted
0x01,0x02,0x03 Rejected
0x04-0x0F reserved
TopicId: Le champ TopicId est de 2 octets et contient la valeur de l'ID de rubrique. Les valeurs
"0x0000" et "0xFFFF" sont réservées et ne doivent donc pas être utilisées.
TopicName: Le champ TopicName a une longueur variable et contient une chaîne codée en
UTF8 qui spécifie le nom de la rubrique
13
3. Procédure de connexion
Configuration de la connexion du client :
Un client MQTT-SN doit configurer une connexion à un GW avant qu'il puisse échanger des
informations avec lui. La procédure pour établir une connexion avec un GW est illustrée à la
Fig. 3, dans laquelle il est supposé que le client demande à la passerelle de demander le
transfert du WILLTOPIC et du WILLMSG. Cette demande est indiquée en définissant le Will
Flag du message CONNECT.
Le client envoie ensuite ces deux informations au GW à la réception des messages de
demande correspondants WILLTOPICREQ et WILLMSGREQ. La procédure est terminée par le
message CONNACK envoyé par le GW.
Si l'indicateur Will Flag n'est pas défini, le GW répond directement par un message
CONNACK.
14
3. Procédure de connexion
15
Simulation
16
Serveur
Démarrage de serveur
17
Client
tcp://192.168.43.39:789
18
19