28 PDF
28 PDF
28 PDF
scientifique
Université de Kasdi Merbah Ouargla
Faculté des nouvelles technologies de l’information et de
communication
Département des mathématiques et de l’informatique
Thème :
Promotion : 2019/2020
Remerciement
C’est pour nous un plaisir autant qu’un devoir de remercier toutes les
personnes qui ont pu contribuer de près ou de loin à l’établissement de
ce projet, qui nous ont aidé, soutenu et ont fait sorte que ce travail ait eu
lieu.
Nous tenons aussi à remercier les membres du jury pour leur précieux
temps accordé à l’étude de notre mémoire.
2
Dédicace
Je dédie ce mémoire
de joies et de bonheur
BENCHOULA Rayane
3
Dédicace
Je dédie ce mémoire
A mes très chers parents pour leur soutient et encouragement durant toutes mes
années d’études et sans lesquels je n’aurais jamais réussi.
A mes chères sœurs Widad, Rahma, Yousra et Lyna ainsi qu’à mon frère Yanis.
A tous mes professeurs et enseignants que j’ai eu durant tout mon cursus
scolaire et qui m’ont permis de réussir dans mes études.
4
Résumé
L’internet of things (IoT) est un vaste réseau qui comprend différents dispositif
intelligent. IoT permet à des objets de collecter et d'échanger des données et de
communiqué entre eux.
Afin d’assurer cette communication, l’IoT fait appel à des différents protocoles
de communication qui vont permettre à ses objets de communiquer, parmi ses
protocoles il y’a le protocole CoAP et le protocole MQTT.
Ces protocoles sont toujours en développement afin de permettre une meilleure
interaction, et chaque protocole a ses propres caractéristiques et certaines
performances.
Pour étudier leurs fonctionnements et les performances qu’ils offrent, il
existe plusieurs méthodes parmi elles la simulation grâce à des différents outils
comme le simulateur COOJA.
Abstract
The Internet of Things (IoT) is a vast network that includes different smart
devices, it allows items to collect and exchange data.
The IoT uses protocols that allow objects to communicate among its protocols
there are the CoAP protocol and the MQTT protocol.
These protocols are still in development to allow better interaction, and each protocol
has its own characteristics and performance.
In order to know their operation and the performance that they offer there are
several methods among them the simulation thanks to simulators like the cooja
simulator.
5
Table des matières
Remerciement.................................................................................................................................2
Résumé ............................................................................................................................................5
Liste des figures .............................................................................................................................9
Liste des tableaux ........................................................................................................................ 11
Liste des abbreviations............................................................................................................... 12
Introduction générale ..................................................................................................................... 13
I. Chapitre 1 Concept de l’IOT ...................................................................................................... 15
I.1 Introduction : ................................................................................................................. 15
I.2 L’Internet des objets .................................................................................................... 15
I.2.1 Définition ...................................................................................................................... 15
I.2.2 Objet connecté.............................................................................................................. 16
I.2.2.1 Définition .............................................................................................................. 16
I.2.2.2 Caractéristiques d’un objet connecté .................................................................... 16
I.2.3 Domaines d’application de l’Internet des objets ........................................................... 17
I.2.4 Fonctionnement de l’IoT ............................................................................................... 18
I.2.4.1 Composants de l’IoT .............................................................................................. 18
I.2.4.2 Technologies de l’IoT ............................................................................................. 20
I.2.5 L’architecture de l’IoT ................................................................................................... 20
I.2.6 Les protocoles de l’IoT .................................................................................................. 22
I.2.7 Caractéristiques d’une application de IOT..................................................................... 25
I.3 Conclusion ..................................................................................................................... 26
II. Chapitre 2 : La communication dans l’IoT ................................................................................. 28
II.1 Introduction ................................................................................................................... 28
II.2 La Couche application ................................................................................................. 28
II.2.1 Les protocoles de la couche application .................................................................... 28
II.3 Comparaison des protocoles applicatif ................................................................... 33
II.4 Conclusion ..................................................................................................................... 35
III. Chapitre 3 : protocoles MQTT et CoAP ................................................................................. 37
III.1 Introduction ................................................................................................................... 37
III.2 Le protocole MQTT ....................................................................................................... 37
III.2.1 Historique ................................................................................................................. 37
III.2.2 Mode de fonctionnement ......................................................................................... 37
6
III.2.2.1 Composants MQTT ............................................................................................ 38
III.2.2.2 Fonctionnement ................................................................................................ 38
III.2.3 La QoS dans le MQTT................................................................................................. 40
III.2.4 Format de paquet de contrôle MQTT(𝟏)................................................................... 41
III.2.4.1 Fixed header (En-tête fixe) : .............................................................................. 41
III.2.4.2 Variable header (en tête-variable) :................................................................... 43
III.2.4.3 Payload (charge utile) : ...................................................................................... 43
III.2.4.4 CONNECT : ......................................................................................................... 43
III.2.4.5 CONNACK .......................................................................................................... 45
III.2.4.6 PUBLISH ............................................................................................................. 45
III.2.4.7 PUBACK, PUBREC, PUBREL, PUBCOMP : ............................................................ 46
III.2.4.8 SUBSCRIBE ......................................................................................................... 46
III.2.4.9 SUBACK.............................................................................................................. 47
III.2.4.10 UNSUBSCRIBE : .................................................................................................. 47
III.2.4.11 UNSUBACK......................................................................................................... 47
III.2.4.12 PINGREQ, PINGRESP .......................................................................................... 48
III.2.4.13 DISCONNECT ...................................................................................................... 48
III.2.5 Exemple d’utilisation du protocole MQTT ................................................................. 48
III.3 Le protocole CoAP ....................................................................................................... 49
III.3.1 Historique ................................................................................................................. 49
III.3.2 Mode de fonctionnement ......................................................................................... 49
III.3.2.1 Composants ....................................................................................................... 49
III.3.2.2 Fonctionnement ................................................................................................ 50
III.3.3 Message CoAP ........................................................................................................... 53
III.3.3.1 L'En-tête ............................................................................................................ 53
III.3.3.1 Token................................................................................................................. 54
III.3.3.2 Option ............................................................................................................... 54
III.3.3.3 Payload .............................................................................................................. 54
III.3.4 Exemple d’utilisation du protocole CoAP .................................................................. 55
III.4 Différences entre MQTT et CoAP ............................................................................... 56
III.4.1 Les points en commun entre les deux protocoles[67] : ............................................. 56
III.5 Conclusion de comparaison....................................................................................... 57
III.6 Conclusion ..................................................................................................................... 57
IV. Chapitre 4 : Simulation ......................................................................................................... 59
7
IV.1 Introduction ................................................................................................................... 59
IV.2 La Simulation ................................................................................................................. 59
IV.2.1 Définition .................................................................................................................. 59
IV.2.2 Les outils de simulation les plus connu ..................................................................... 59
IV.2.3 L’environnement d’évaluation : ................................................................................ 60
IV.2.3.1 Contiki OS .......................................................................................................... 60
IV.3 Scenario de simulation ................................................................................................ 60
IV.3.1 Pour le protocole CoAP ............................................................................................. 60
IV.3.2 Pour le protocole MQTT ............................................................................................ 61
IV.4 Environnement de travail et outils de simulation ................................................... 62
IV.4.1 Outils matériels ......................................................................................................... 62
IV.4.2 Outils Logiciels .......................................................................................................... 63
IV.4.3 Les étapes de la simulation ....................................................................................... 63
IV.4.3.1 Installation logicielle .......................................................................................... 63
IV.4.3.2 Exécution du simulateur Cooja : ........................................................................ 63
IV.4.3.3 Création d’une nouvelle simulation ................................................................... 64
IV.4.4 Simulation du scenariodu protocole CoAP ................................................................ 65
IV.4.5 Simulation du protocole MQTT ................................................................................. 69
IV.5 Résultats de la simulation du protocole CoAP et MQTT ....................................... 70
IV.5.1 Comparaison de CoAP et MQTT ................................................................................ 73
IV.5.1.1 Travaux connexes : ............................................................................................ 73
IV.5.1.2 Comparaison des performances ........................................................................ 74
IV.5.1.3 Analyse des performances ................................................................................. 77
IV.6 Conclusion ..................................................................................................................... 77
Conclusion générale ................................................................................................................... 78
Bibliographie................................................................................................................................. 79
8
Liste des figures
Figure 1.1Internet des objets …………………………………………………………… 15
Figure 1.2 Exemple de smart city……………………………………………………….. 18
Figure 1.3 Fonctionnement de l'internet des objets…………………………………… 19
Figure 1.4 Architecture IOT à 3 couches et à 5 couches………………………….….. 22
Figure 1.5Architecture à cinq couches…………………………………………………. 23
Figure 1.6 Protocoles et technologies de l'IoT…………………………………………. 24
Figure 2.1 Fonctionnement du protocole XMPP……………………………………….. 28
Figure 2.2 Modèle de communication DDS…………………………………………… . 28
Figure 2.3 Fonctionnement du protocole MQTT………………………………………. 29
Figure 2.4 Fonctionnement du protocole CoAP……………………………………….. 30
Figure 2.5 Fonctionnement de WebSocket…………………………………………….. 31
Figure 2.6 Fonctionnement du protocole AMQP………………………………………. 31
Figure 3.1 Principe Client / Serveur……………………………………........................ 37
Figure 3.2 Principe de fonctionnement du protocole MQTT..………………………… 37
Figure 3.3 Séparateur de niveau de sujet………………………………………………. 38
Figure 3.4 Structure d'un paquet de contrôle MQTT………………………………….. 40
Figure 3.5 Format d'en tête fixe…………………………………………………………. 40
Figure 3.6 Format d'un paquet CONNACK ……………………………………………. 44
Figure 3.7 Format d'un paquet PUBLISH ……………………………………………… 44
Figure 3.8 Attribut du paquet PUBLISH ………………………………………………... 45
Figure 3.9 Format d'un paquet PUB[ACK/REC/REL/COMP]………………………… 45
Figure 3.10 Format d'un paquet SUBSCRIBE…………………………………………. 45
Figure 3.11 Format d'un paquet SUBACK……………………………………………… 46
Figure 3.12 Format d'un paquet UNSUBSCRIBE……………………………………... 46
Figure 3.13 Format d'un paquet UNSUBACK………………………………………….. 46
Figure 3.14 Format d'un paquet PING[REQ/RESP]………………………………...… 47
Figure 3.15 Format d'un paquet DISCONNECT………………………………………. 47
Figure 3.16 Principe de fonctionnement du protocole CoAP………………………… 48
Figure 3.17 Architecture CoAP……………………………………………………………49
Figure 3.18 Réponse disponible cas de message CON avec méthode GET……… .50
Figure 3.19 Dans le cas d'un ACK perdu………………………………………………. 50
Figure 3.21 Message NON………………………………………………………………. 51
Figure 3.22 Message CON et RST……………………………………………………… 51
Figure 3.23 Message NON et RST……………………………………………………… 51
Figure 3.24 format du message COAP…………………………………………………. 52
Figure 3.25 Exemple de requête et de réponse CoAP……………………………….. 53
Figure 3.26 Exemple de configuration utilisant des protocoles propriétaires pour le
contrôle de périphérique………………………………………………………………..… 54
Figure 4.1 Exécution de COOJA………………………………………......................... 61
Figure 4.2 Interface du simulateur COOJA…………………………………………….. 62
Figure 4.3 Création d'une nouvelle simulation…………………………………………. 62
Figure 4.4 Nommer la simulation………………………………………………………... 62
Figure 4.5 Fenêtres du simulateur COOJA…………………………………………….. 63
Figure 4.6 Création des motes…………………………………………………………... 63
Figure 4.7 Fenêtre de compilation………………………………………………………. 64
Figure 4.8 Ajout des motes………………………………………………………………. 64
Figure 4.9 Fenêtre de serial socket server……………………………………………... 66
9
Figure 4.10 Commencement de la simulation…………………………………………. 66
Figure 4.11 Interface Wireshark…………………………………………………………. 70
Figure 4.12 Couches réseau dans CoAP………………………………………………. 70
Figure 4.13 nombre de messages échangé durant la simulation……………………. 72
Figure 4.14 taille des messages CoAP et MQTT……………………………………… 73
Figure 4.15 Moyenne des données transférées par message par rapport au taux de
perte de paquets…………………………………………………………………………... 74
10
Liste des tableaux
Tableau 1.1 Protocole IoT de chaque couches………………………………………... 23
Tableau 2.1 Tableau comparatif de différents protocoles de la couche application...33
Tableau 3.1 Type de paquets MQTT…………………………………………………….41
Tableau 3.2 Description du drapeau dans l'en tête fixe du protocole MQTT……......41
Tableau 3.3 Format d'un paquet CONNECT…………………………………………... 43
Tableau 3.4 Champs du paquet CONNECT…………………………………………… 43
Tableau 3.5 Messages de la couche messagerie CoAP……………………………… 48
Tableau 3.6 Les méthodes CoAP……………………………………………………….. 49
Tableau 3.7 différence majeur entre MQTT et CoAP…………………………………. 54
Tableau 4.1 nombre de messages transféré durant la simulation…………………… 72
Tableau 4.2 Taille des messages CoAP et MQTT…………………………………….. 73
11
Liste des abbreviations
AMQP : Advanced Message Queuing Protocol
12
Introduction générale
L’internet et le réseau informatique ont connus un énorme développement ce qui a
fait naître l’internet des objets (connu sous le nom de IoT: internet of things) et grâce
à ce développement presque tout est devenu connecté, maintenant il n’y a pas que
les ordinateur et les smart phones qui ont accès à internet et permettent à l’humain
d'accéder en ligne de plus en plus d'appareille ont accès à internet comme les objets
du quotidien l'électroménager par exemple.
Ces objets contiennent des dispositifs informatiques reliés par les réseaux qui vont
permettre à un objet d'échanger des données.
L’interaction entre les objets nécessite différents type de technologies telles que les
protocoles de communication ou ce qu’on appelle les protocoles de communication
de l’IoT.
Jusqu'à présent Il n'existe pas de standardisation pour les protocoles IoT et les
utilisateurs ne savent pas quel protocole choisir car chaque protocole a ses propres
caractéristiques et performances c'est pour cela que nous avons décidé d'étudier
deux des protocoles de l iot les plus connus qui sont le protocole MQTT qui a été
standardisé par OASIS et le protocole CoAP qui a été standardisé par l’IETF.
La simulation d’un protocole permet de suivre et de voir comment il fonctionne, afin
de comprendre et d'étudier les protocoles MQTT et CoAP nous avons simulé ces
deux derniers avec le simulateur COOJA pour pouvoir connaître et analyser les
performances de chaque protocole pour pouvoir faire une comparaison entre eux.
Notre mémoire est constitué d’une introduction générale, quatre chapitres qui sont :
Chapitre 1 : Nous présentons dans ce 1er chapitre le concept de l’IoT, son
fonctionnement ainsi que ses différentes caractéristiques.
Chapitre 2 : Ce chapitre sera consacré à la communication dans l’IoT ou nous
présentons les différents protocoles de l’IoT et leurs caractéristiques.
Chapitre 3 : Nous présentons dans ce chapitre les deux protocoles MQTT et CoAP
et nous allons expliquer leur fonctionnement et nous ferons une comparaison.
Chapitre 4 : Ce dernier chapitre sera consacré a la simulation de nos deux protocole
MQTT et CoAP.
Et enfin nous terminerons avec une conclusion générale.
13
Chapitre I : Concept de l’Internet
des objets
14
I. Chapitre 1 Concept de l’IOT
I.1 Introduction :
L’internet des objets (l’IoT) représente l’échange des objets connecté à internet, ces
objets peuvent émettre et recevoir des informations. Grâce à l’impact positif de l’IoT
sur notre quotidien notre vie quotidienne sera simplifiée et notre bien-être sera
amélioré.
I.2.1 Définition
15
Dans l’IOT, tout Objet est potentiellement connecté à Internet est capable de
communiquer avec d’autres Objets. Ceci engendre de nouveaux risques liés
notamment à la confidentialité, l’authenticité et l’intégrité des données échangées
entre les Objets [2].
L’IEEE¹ définit l’IoT comme un « réseau d’éléments chacun muni de capteurs qui
sont connectés à Internet » [8]
I.2.2.1 Définition
Les objets connectés interagissent avec leur environnement par le biais de capteurs
(température, vitesse, humidité, vibration…). Dans l’Internet des Objets, un objet peut
aussi bien être un véhicule, une machine industrielle ou bien une place de parking
[14].
Identité : pour que les objets soient gérables il est essentiel que chaque objet
connecté possède une identité unique qu’il lui propre et qui le distingue des
autres objets du système.
Interactivité : Un objet n’a pas besoin d’être connecté à un réseau à tout
moment.
Programmable: l’objet connecté doit être programmé et piloté à distance via
un ordinateur, une tablette ou un Smartphone.
Sensibilité : un objet a la capacité de percevoir son environnement et peut
collecter ou transmettre des informations à celui-ci.
Autonomie : cette caractéristique est, peut-être, la caractéristique la plus
importante pour l’objet connecté. On désigne par cette caractéristique la
capacité de l’objet d’agir sans l’intervention d’un tiers.
16
I.2.3 Domaines d’application de l’Internet des objets
17
Exemple réel de smart city [46] :
Santander s’est lancée dans une vaste politique d’installation de capteurs, des
lampadaires aux poubelles, et de développement d’applications dédiées aux
habitants, faisant de cette ville de 180 000 habitants un laboratoire grandeur nature
des stratégies smart city appliquées aux métropoles intermédiaires de l’Europe. La
municipalité a installé plus de 20 000 capteurs, générant plus de 200 000 données
quotidiennes, collectées, traitées et agglomérées par la ville. Santander connaît ainsi,
en temps réel et en tout point de la ville, le taux de CO2 ou de NO2, le niveau de
bruit, l’intensité lumineuse.
18
Les objets : pour capter des données de valeur. Ce sont les
équipements actifs ou passifs pouvant générer de la donnée exploitable et
créatrice de valeur pour les utilisateurs. Les objets sont composés
d’éléments passifs : les capteurs, et pour certains d’éléments actifs les
rendant capables de traitements d’enrichissement de la données et de
transmission de celle-ci. Les données sont aussi diverses que les métiers.
Nous pouvons aussi bien avoir des données de température, d’humidité, de
positionnement, de temps de fonctionnement, de niveau, d’alerte…[4]
Le réseau : pour transmettre les données. Les réseaux sont le maillon
prépondérant d’un projet d’IoT, ils doivent répondre à un critère d’usage :
La couverture de la zone d’usage des objets : Sur un campus, Sur une ville,
à l'ensemble de la planète.[4]
Les données : Dans un projet d’IoT, les données sont nos diamants
bruts. Il s’agit surtout des éléments bruts que nous récoltons depuis les
objets ou les outils de processus industriels pour l’IoT. Afin de créer de la
valeur pour les utilisateurs de ces données, il est absolument nécessaire de
les stocker, archiver et sauvegarder dans des bases de données et de
correctement structurer cette dernière. En effet une base de données
correctement structurée améliorera la performance des services IoT
d’exploitation [4].
Les informations : les informations sont les résultantes des données
traitées, corrélées et analysées. Ces informations doivent elles-aussi être
stockées, archivées et sauvegardées dans des bases de données [4].
Les applications d’exploitation : Les applications d’exploitation sont en
principe les interfaces Homme-machine (IHM) dans lesquelles nous
pouvons visualiser les données sous forme de tableau de bord [4].
19
I.2.4.2 Technologies de l’IoT
L’IoT permet l’interconnexion des différents Objets intelligents via l’Internet. Et pour
le bon fonctionnement d’un système IoT, plusieurs systèmes technologiques sont
nécessaires. Bien qu’il existe plusieurs technologies utilisées dans le fonctionnement
de l’IoT, nous mettons l’accent seulement sur quelques-unes qui sont : M2M, RFID,
WSN et le Bluetooth
20
Il existe de nombreux proposition d'architectures pour l'IoT parmi les architectures qui
ont été proposées, il y’a l’architecture a cinq couches proposée par Wu et al et a trois
couche proposé par IEEE (voir figure 1.3).En ce moment y’a pas une architecture
universellement acceptée.
21
Figure 1.4Architectures IoT: (A) Architecture à trois couches IEEE P 4213 [30]. (B)
Architecture à cinq couches [35]
Au niveau de la couche de liaison : le standard IEEE 802.15.4 est plus adapté que
l’Ethernet aux environnements industriels difficiles.
Au niveau réseau : le standard 6loWPan a réussi à adapter le protocole IPV6 aux
communications sans fil entre nœud à très faible consommation.
Au niveau routage : l’IETF a publié en 2011 le standard RPL.
Au niveau de la couche application : le protocole CoAP qui tente d’adapter http,
beaucoup trop gourmand aux contraintes des communications entre nœuds à faible
consommation [38].
L'IoT a sa propre pile de protocoles, différente des autre pile de protocoles comme le
modèle OSI et le protocole TCP / IP.
22
Figure 1.5Architecture à cinq couches [64]
Le tableau suivant (Tableau 1.1) montre les différents protocoles IoT selon
l’architecture à cinq couches :
23
Couches Protocoles
Couche métier Gère l’ensemble du système IoT
(buisness layer)
Couche CoAP
Application MQTT
(Application XMPP
layer) AMQP
WEBSOCKET
DDS
La couche de La couche middleware (traitement) est une couche logicielle
traitement interposée entre la couche de transmission (transport) et
(processing layer/ couche d'application, qui peut associer directement les services
middleware layer) aux demandeurs correspondants et a un lien vers
la base de données. La base de données, l'informatique
omniprésente, le cloud computing et la prise de décision peuvent
avoir lieu dans cette couche [65].
Couche UDP : protocole de couche de transport simple pour les
Transport / applications réseau client / serveur basé sur le protocole
Couche réseau Internet (IP).UDP est souvent utilisé dans des applications
(transport spécialement conçues pour des performances en temps réel.
layer/network TCP : Protocole utilisé pour la majorité des connexions Internet.
layer) DTLS:Le protocole DTLS assure la confidentialité des
communications pour les protocoles de datagramme. Le
protocole permet aux applications client / serveur de
communiquer d'une manière conçue pour empêcher l'écoute
clandestine. Le protocole DTLS est basé sur le protocole de
transport Protocole Layer Security (TLS) et offre des garanties
de sécurité équivalentes.
24
I.2.7 Caractéristiques d’une application de IOT
Les caractéristiques d’une application IoT sont à l'origine du succès de l’IoT. Chaque
caractéristique englobe un ensemble de fonctionnalités qui font de l'IoT un succès.
Parmi les caractéristique de l’IoT il y’a :
25
I.3 Conclusion
Dans ce chapitre, nous avons présenté l’Iot et on a montré que cette technologie a
contribué de manière efficace au développement de notre quotidien et notre vie en
générale, car elle est utilisée dans plusieurs et différents domaines dont on a cité
quelques-uns.
26
Chapitre 2 : La communication
dans l’IoT
27
II. Chapitre 2 : La communication dans l’IoT
II.1 Introduction
La communication dans l’IoT ce fait à l’aide de différents protocoles et le type de
protocole IoT à utiliser dépend de la couche et de l'architecture système sur laquelle
les données doivent circuler.
28
Figure 2.1Fonctionnement du protocole XMPP [10]
29
C. MQTT (Message Queuing Telemetry Transport):
MQTT est un Protocole de messagerie conçu pour une communication machine à
machine légère, et principalement utilisé pour les connexions à faible bande
passante vers des emplacements distants. MQTT utilise un modèle éditeur-abonné
et est idéal pour les petits appareils qui nécessitent une utilisation efficace de la
bande passante et de la batterie. [12]
fonctionnement :
Un client, appelé publisher, établi dans un premier temps une connexion de type
‘publish’ avec le serveur MQTT, appelé broker. Puis, le publisher transmet les
messages au broker sur un canal spécifique, appelé topic [10].
30
Figure 2.4 Fonctionnement du protocole CoAP [10]
E. WebSocket :
Le protocole Web-Socket offre deux méthodes pour communication entre les clients
et un serveur distant. WebSocket fournit une sécurité similaire au modèle de sécurité
utilisé Protocole HTTPS. Pour parcourir la couche d'application utilisée et Web-
socket fonctionne sur le protocole de couche de transport TCP, besoin d'interagir et
de communiquer avec l'hôte ceux qui se connectent avec télécommande. Web-
Socket est un protocole Web qui fonctionne sur le canal TCP unique et fournit un
duplex intégral les communications. Web-socket démarre la session sans modèles
de publication / abonnement et demande / réponse comme les précédents
protocoles [49].
Fonctionnement [10]:
31
Figure 2.5 Fonctionnement de WebSocket[10]
AMQP est un protocole qui fait face à l'industrie financière. La sécurité est gérer avec
l'utilisation des protocoles TLS/SSL. C'est écrasé TCP. AMQT suit la communication
de publication / abonnement protocole de messagerie.[49]
● Fonctionnement :
Le fonctionnement du protocole AMQP est basé sur le même principe que celui de
MQTT, toutefois la notion de publisher/subsciber est remplacée par celle
de producer/consumer. En outre, grâce à un mécanisme interne noté « exchange »,
AMQP permet de router un message d’un producer vers plusieurs topics. Les critères
de routage peuvent se faire de plusieurs façons ; inspection du contenu, de l’en-tête,
clés de routage, etc. Ainsi, un même message peut être consommé par différents
consumers via plusieurs topics. [10]
32
II.3 Comparaison des protocoles applicatif
Dans cette partie nous allons faire une comparaison entre les protocoles applicatifs
cités précédemment selon les différents critères suivant [32] :
● Le standard du protocole.
● Le modèle de communication : Deux types de communications :
1. Communication publication / abonnement : ou les utilisateurs
peuvent s'abonner pour un contenu précis.
2. Communication requête / réponse : Dans cette communication un
utilisateur peut acquérir des données avec des messages de requêtes
personnalisés.
● Le protocole de transport : Protocoles de la couche transport :
1. TCP : ou une connexion est nécessaire
2. UDP : La connexion n’est pas nécessaire
● La sécurité : Soit :
1. SSL(Secure Sockets Layer) /TLS (Transport Layer Security)
:Transport Layer Security (TLS) et son prédécesseur Secure Sockets
Layer (SSL), sont des protocoles de sécurisation des échanges par
réseau informatique, notamment par Internet.[39]
2. DTLS (Datagram Transport Layer Security) : Datagram Transport
Layer Security (DTLS) est un protocole conçu pour protéger les données
privées en prévenant la falsification, les écoutes, et la contrefaçon dans
les communications. Il est basé sur le Transport Layer Security (TLS), qui
est un protocole qui sécurise les réseaux de communications
informatiques.[40]
● Les principaux framework
● Le type de protocole : il existe trois types de protocole : protocole de
messagerie, de transfert web et protocole réseau
Le tableau suivant montre les différences qui peuvent avoir entre les
protocoles IoT selon les caractéristiques que nous avons présentées [32],[10]:
33
XMPP DDS MQTT COAP AMQP WebSocket
L’Internet Object Organization L’Internet Organization L’Internet
Engineering Management for the Engineering for the Engineering
Standard Task Force Group Advancement Task Force Advancement Task Force
(IETF) (OMG) of Structured (IETF) of Structured (IETF)
Information Information
Standards Standards
(OASIS) (OASIS)[51]
Protocole de
transport
TCP TCP/UDP TCP UDP TCP TCP
Apres avoir présenté les différents protocoles IoT de la couche application et donner
quelques différences nous avons vu que chaque protocole a ces propre
caractéristiques qui peuvent répondre à un besoin dans l’IoT et les deux protocoles
qui nous ont le plus intéressé sont les protocoles CoAP et MQTT du à leur différentes
performance par exemple le protocole CoAP Rapide et efficace grâce à la
dépendance à l'UDP à faible coût, Et pour MQTT l'architecture du Broker peut
simplifier la gestion; TCP et les options de qualité de service permettent une
distribution robuste des messages.
34
II.4 Conclusion
Dans ce chapitre nous avons cité les différents protocoles de la couche application et
nous avons donné leur caractéristique ainsi qu’une comparaison entre les différents
protocoles applicatif les plus connu, nous avons aussi éclairé quelque points
essentiels des principes de fonctionnement de chaque protocole.
Le prochain chapitre, sera consacré à une étude par simulation entre les deux
protocoles CoAP et MQTT, afin de comparer leurs efficacités et leurs performances.
35
Chapitre 3 : protocoles MQTT et
CoAP
36
III. Chapitre 3 : protocoles MQTT et CoAP
III.1 Introduction
COAP et MQTT sont les deux protocoles de communication les plus utilisés dans
l'Internet des objets, ils sont souvent utilisé par les périphériques à ressources
limitées.
On a déjà donné une brève définition des deux protocoles dans le chapitre
précédent. Dans ce chapitre on va expliquer en détailler la structure et le
fonctionnement de ces deux protocoles.
III.2.1 Historique
MQTT a été créé en 1999 par deux ingénieurs - Andy Stanford-Clark (IBM) et Arlen
Nipper (Eurotech). La conception de MQTT a été motivée par la création d'un
protocole léger et économe en bande passante, indépendant des données et prenant
en charge plusieurs niveaux de qualité de service (QoS). Fait intéressant, même
aujourd'hui, ce sont les mêmes raisons pour lesquelles MQTT est choisi pour mettre
en œuvre des solutions IoT. En 2011, IBM et Eurotech ont fait don de MQTT au
projet Eclipse proposé appelé Paho. En 2013, il a été soumis à l'OASIS pour
normalisation. La dernière version de la spécification de protocole, 3.1.1 est devenue
une norme OASIS. [15] Il devient un standard ISO (ISO/IEC 20922) en 2016. [16]
III.2.2.2 Fonctionnement
38
B. L'abonnement et le désabonnement
● l’abonnement : Les clients s’enregistrent avec la commande
SUBSCRIBE auprès du broker sur des topics qui seront des chemins
d’accès aux ressources. Les clients recevront une notification lorsque
quelqu’un publie sur ces topics.
● Désabonnement : Si un client souhaite annuler un abonnement d’un
ou plusieurs topics il utilise la commande UNSUBSCRIBE et ainsi il ne
recevra plus les publications qui concernent ces topics. La bonne
réception de cette commande est confirmée par le broker par un
UNSUBACK portant le même identifiant de paquet.
● les topics (sujets) [17] : Dans MQTT, le mot rubrique fait référence à
une chaîne UTF-8 que le courtier utilise pour filtrer les messages pour
chaque client connecté. Le sujet comprend un ou plusieurs niveaux de
sujet. Chaque niveau de sujet est séparé par une barre oblique (figure
3.3).
Par rapport à une file d'attente de messages, les rubriques MQTT sont très légères.
Le client n'a pas besoin de créer le sujet souhaité avant de le publier ou de s'y
abonner. Le broker accepte chaque sujet valide sans aucune initialisation préalable.
Voici quelques exemples de sujets:
Myhome/ez-de-chaussée/salon/température
Allemagne / Bavière / voiture / 2382340923453 / latitude
Notez que chaque rubrique doit contenir au moins 1 caractère et que la chaîne
de rubrique autorise les espaces vides. Les sujets sont sensibles à la casse.
Par exemple :
De plus, la barre oblique seule est un sujet valide Il est possible de définir une
arborescence à l'aide du séparateur /.
39
● Niveau unique: + Comme son nom l'indique, un caractère générique à
un niveau remplace un niveau de sujet. Le symbole plus représente un
caractère générique à un niveau dans une rubrique.
● Multi Level: # Le caractère générique à plusieurs niveaux couvre de
nombreux niveaux de sujet. Le symbole de hachage représente le
caractère générique à plusieurs niveaux dans le sujet. Pour que le courtier
détermine les sujets qui correspondent, le caractère générique à plusieurs
niveaux doit être placé en tant que dernier caractère du sujet et précédé
d'une barre oblique.
C. La publication:
La commande PUBLISH permet aux abonnés de publier un message qui sera
transmis par le broker aux abonnés éventuels. La même commande sera
envoyée par le broker aux abonnés pour délivrer le message.
Trois niveaux de qualité de service (QoS) sont définis pour la publication des
messages [18] :
40
évidemment des conséquences en matière de trafic réseau, mais cet
impact est souvent acceptable sachant l'importance du contenu du
message.
La qualité de service peut être sélectionnée message par message, ce qui permet la
publication des messages d'importance mineure avec le niveau QoS 0 et la
distribution des messages plus importants avec QoS 2.
Ces niveaux sont mis en œuvre par des échanges supplémentaires entre
l’expéditeur et le récepteur, et plus la qualité demandée est élevée, plus il faudra
d’échanges pour valider une publication.
(1) Tous les tableaux de cette section sont extraits du ref [20]
41
les composants de l’en-tête :
A. MQTT Control Packet type (Type de paquet de contrôle MQTT):
42
C. Remaining Length :
La longueur restante est le nombre d'octets restant dans le paquet actuel, y compris
les données dans l'en-tête variable et la charge utile. La longueur restante n'inclut
pas les octets utilisés pour coder la longueur restante.
La longueur restante est codée à l'aide d'un schéma de codage de longueur variable
qui utilise un seul octet pour des valeurs allant jusqu'à 127. Les valeurs plus grandes
sont traitées comme suit. Les sept bits les moins significatifs de chaque octet codant
les données et le bit le plus significatif est utilisé pour indiquer qu'il y a des octets
suivants dans la représentation. Ainsi, chaque octet code 128 valeurs et un "bit de
continuation". Le nombre maximal d'octets dans le champ Longueur restante est de
quatre.[20]
III.2.4.4 CONNECT :
Le tableau 3.3 suivant est un exemple de paquet CONNECT [22]:
43
Tableau 3.3format d’un paquet CONNECT
44
III.2.4.5 CONNACK
Le paquet CONNACK est le paquet envoyé par le serveur en réponse à un paquet
CONNECT reçu d'un client. Le premier paquet envoyé du serveur au client DOIT être
un paquet CONNACK.
III.2.4.6 PUBLISH
45
Le client expéditeur (publisher) a le choix d’envoyer des données binaires, des
données texte ou même du XML etc. Un message PUBLISH dans MQTT à plusieurs
attributs comme on peut voir dans l’exemple ci dessue :
III.2.4.8 SUBSCRIBE
Ce message d'abonnement est très simple, il contient un identifiant de paquet unique
et une liste d'abonnements.
46
III.2.4.9 SUBACK
Un paquet SUBACK contient une liste de codes de retour, qui spécifient le niveau de
QoS maximal qui a été accordé dans chaque abonnement demandé par le
SUBSCRIBE.[20]
III.2.4.10 UNSUBSCRIBE :
Le packet UNSUBCRIBE ressemble au paquet SUBSCRIBE :
III.2.4.11 UNSUBACK
UNSUBACK contient l’identifiant de paquet de la requête correspondante.
47
III.2.4.12 PINGREQ, PINGRESP
Ces deux paquets sont constitués uniquement de l’entête fixe du protocole, tenant
ainsi sur deux octets.
III.2.4.13 DISCONNECT
Comporte uniquement l'en tête fixe.
Haptik est une application de chat qui connecte les utilisateurs à leurs assistants
personnels numériques en temps réel. Lorsque vous discutez avec votre assistant
personnel, vous voulez le moins de retard possible afin de faire avancer les choses
rapidement.
48
Haptik est passé de XMPP à MQTT, parmi les raisons de ce changement :
III.3.1 Historique
CoAP utilise un modèle client-serveur qui ressemble à celui de http figure (3.16), où
les clients envoient des requêtes sur des ressources REST pour récupérer de
l'information d'un capteur ou contrôler un périphérique et son environnement. Il faut
noter que CoAP traite les échanges de manière asynchrone au travers de
datagrammes UDP
III.3.2.1 Composants
a. client : le client envoi une requête qui est similaire à une requête http pour
demander une action.
b. serveur : répond au client par un un code réponse.
c. message : les informations échangé entre le client et le serveur.
49
III.3.2.2 Fonctionnement
CoAP s'appuie sur une approche à deux couches, une couche de messagerie CoAP
ou 4 message sont définis (tableau 3.5) et une couche d’interaction sous forme de
requête/réponse héritée du protocole HTTP (figure 3.18)
Message Description
CON Confirmable: Le message requiert une réponse qui peut être véhiculée par un
message d'acknowlegment ou envoyé de façon asynchrone si la demande ne
peut être traitée immédiatement. Peut-être aussi bien une requête qu'une
réponse qui doit être acquittée.
La sémantique des requêtes et réponses COAP est transportée dans des messages
COAP qui incluent soit un code de méthode (Tableau 3.5) ou un code de réponse
(e.g., 404, 205, etc).
50
Un jeton (token) est utilisé pour associer une requête à une réponse
indépendamment des messages qui les transportent. Le Token est indépendant de
l’identificateur de message. [26]
Méthode Description
Une requête est transportée dans un message CON (Confirmable) ou NON (Non
Confirmable):
● Si la réponse est disponible immédiatement dans le cas d’un message CON, elle est
transportée dans un message Acknowledgement (ACK).Une des réponses avec
(2.05) indique un succès et l'échec avec (4.04) (figure 3.19)
Figure 3.18réponse disponible dans le cas de message CON avec méthode GET
51
Figure 3.19 Dans le cas d’un ACK perdu
● Si une requête est émise dans un message Non-confirmable (NON), alors la réponse
est émise via un nouveau message NON. (Figure 3.22)
Lorsqu’un récepteur n’est pas en mesure de traiter un message CON (même pas en
mesure de fournir une réponse d'erreur), il répond avec un message Reset (RST) à
la place du message Acknowledgement (ACK). (Figure 3.23)
52
Figure 3.22Message CON et RST
L'en-tête CoAP a été conçu pour être facile à analyser par des programmes tournant
sur de petits équipements comme les capteurs (3.25).
III.3.3.1 L'En-tête
Au lieu du texte lisible de HTTP, l'en-tête de CoAP commence par une partie fixe de
quatre octets, qui comprend [26] :
53
● La version du protocole (Ver) : il s’agit de la version du protocole
CoAP
● Le type de message (T): Indique si le message est de type
Confirmable (0), Non Confirmable (1), Acknowledgement (2), ou Reset (3).
● La longueur du Token (TKL): Indique la longueur (variable) du champ
Token (0-8 octets) Les longueurs 9-15 sont réservées et ne doivent pas être
utilisées. Si un récepteur reçoit une valeur comprise entre 9 et 15, il doit la
traiter comme une erreur de format.
● Code: Entier sur 8 bits, séparé en 3 bits de class (bits les plus
significatifs) et 5 bits de détail (bits les moins significatifs), documentés sous
la forme c.dd ou « c » est un digit compris entre 0 et 7 (3 bits) et « dd »
représente deux digits entre 00 et 31 (5 bits). La classe peut indiquer une
requête (0), une réponse de succès (2), une réponse d’erreur client (4) ou
une réponse d’erreur de serveur (5). Toutes les autres valeurs de classe
sont réservées. Un cas particulier est celui d’un message vide dont le code
est 0.00. Dans le cas d’une requête, le champ Code indique la méthode.
(0.01 = GET; 0.02 = POST; 0.03 = PUT; 0.04 = DELETE).
● Un Message ID sur deux octets : Ce Message ID permet de détecter
les duplicatas et d'associer un accusé de réception à un message précis. À
noter qu'avec ces deux octets, on est limité à environ 250 messages par
seconde (en raison du paramètre EXCHANGE_LIFETIME qui est à 247
secondes par défaut). Ce n'est pas une limite bien grave : les ressources
des machines CoAP ne leur permettent pas d'être trop bavardes de toutes
les façons.
III.3.3.1 Token
La longueur est indiquée par le champ TKL. La valeur de token est utilisée afin de
corréler une requête et sa réponse. L ’en-tête et le Token sont suivis par zéro, une ou
plusieurs options. [26]
III.3.3.2 Option
Une option peut être suivie par la fin du message, par une autre option ou un
marqueur de payload (contenu) et le contenu lui-même.[26]
III.3.3.3 Payload
Le payload est optionnel. Si présent, il est préfixé par un marqueur de payload d’un
octet (0xFF), qui indique la fin des options et le début du payload. Le payload
commence après le marqueur et termine à la fin du datagramme UDP.
54
Figure 3.25Exemple de requête et de réponse CoAP [26]
55
III.4 Différences entre MQTT et CoAP
CoAP MQTT
Protocole de couche de Fonctionne sur UDP, TCP Fonctionne sur TCP, UDP
transport peut être utilisé peut être utilisé (MQTT-
SN)
Nombre de types de 4 16
messages utilisés
56
III.5 Conclusion de comparaison
Apres avoir présenté le protocole CoAP et le protocole MQTT et expliqué le
fonctionnement de chaque protocole on peut dire que les deux protocoles sont utile
en tant que protocole de l’IoT mais avec des différences fondamentales.
Pour le protocole CoAP , ce qui le différencie de MQTT et le rend plus fort est ça
compatibilité avec HTTP, il est construit sur le protocole UDP et ça c’est très utile
pour l’utilisation de CoAP dans certain environnements a ressource limité, car il ne
faut pas oublier que UDP permet la diffusion (Broadcast) et la multi diffusion
(Multicast) donc la transmission peut se faire à plusieurs hôtes et ça en utilisant
moins de bande passante ce qui rend ce protocole idéal pour les environnements de
réseau local dans le quelle les périphériques doivent se parler rapidement.
III.6 Conclusion
Dans ce chapitre on a montré les différentes caractéristiques de MQTT et CoAP.
Nous avons expliqué comment ces deux protocoles fonctionnent et on a montré les
différences qui existent entre eux. Enfin nous avons conclu par un tableau de
comparaison entre ces deux protocoles (MQTT et CoAP).
Dans le prochain chapitre nous allons opter a une étude comparative par simulation
entre les deux protocole.
57
Chapitre 4 : Simulation
58
IV. Chapitre 4 : Simulation
IV.1 Introduction
Dans ce chapitre nous allons décrire le processus de la réalisation de notre
simulation. Ceci en présentant l’environnement de développement, et une
présentation de quelques interfaces de notre simulation, nous allons aussi proposer
un scenario de simulation. Enfin nous allons évoluer les performances des
protocoles MQTT et CoAP et les comparer, afin de conclure ou le mieux utiliser
chacun deux.
IV.2 La Simulation
IV.2.1 Définition
La simulation informatique ou numérique désigne l'exécution d'un programme
informatique sur un ordinateur ou réseau. Les simulations numériques scientifiques
reposent sur la mise en œuvre de modèles théoriques. Elles sont donc une
adaptation aux moyens numériques de la modélisation mathématique, et servent à
étudier le fonctionnement et les propriétés d’un système modélisé ainsi qu’à en
prédire son évolution. Les interfaces graphiques permettent la visualisation des
résultats des calculs.[53]
59
réseaux et d'interagir avec les capteurs. Cet outil permet aux développeurs
de tester les applications à moindre coût.
Le Boson NetSim Network Simulator : est une application qui simule
le matériel et les logiciels de mise en réseau de Cisco Systems et conçue
pour aider l'utilisateur à apprendre la structure de commande de Cisco IOS.
[68]
Afin d’étudier les protocoles de communication IoT, nous avons choisi pour notre
simulation l’outil COOJA car il est open source, pratique et simple a utilisé et parmi
les simulateurs les plus utiliser dans la simulation des protocoles des réseaux de
capteurs sans fils (WSN)
IV.2.3.1 Contiki OS
Contiki est un système d’exploitation open source léger et flexible pour les nœuds de
capteurs WSN créé par Adam Dunkels écrit en langage C. Contiki connecte de petits
microcontrôleurs peu couteux et peu performant a internet. [54] [55]
Exigences fonctionnelles :
Détecteurs de gaz / Alarme
Récepteur d’information
Contrôleur
Scenario de communication :
Quand le détecteur de gaz détecte une fuite il envoie un message qui prévient
qu’il y’a une fuite avec son emplacement au récepteur d’information qui va
prévenir le Contrôleur pour que l’alarme se déclenche
60
Scenario de communication selon le protocole CoAP :
Quand une fuite de gaz est détectée par le détecteur de gaz (cliant1) il
envoie un message au récepteur d’informations (routeur) qui va prévenir le
contrôleur (serveur) et ce dernier va ordonner à l’alarme (client2) de se
déclencher
Diagramme de séquence :
Exigences fonctionnelles :
Détecteurs de gaz / Détecteur de fumé
Contrôleur
Alarme
Scenario de communication :
61
Quand le détecteur de gaz détecte une fuite il envoie un message qui prévient
qu’il y’a une fuite avec son emplacement au contrôleur qui va provoquer le
déclanchement de l’alarme
Scenario de communication selon le protocole MQTT:
Tout d’abord le détecteur de gaz (publisher) se connecte avec le contrôleur
(broker) et le broker accepte la connexion et l’alarme (subscriber) aussi va se
connecter avec le broker et s’abonne au topic Detection_de_gaz.
Lors d’une détection de fuite de gaz le détecteur de gaz (publisher) publie
dans le topic Detection_de_gaz et le broker envoi à l’alarme (subscriber)
comme ça l’alarme se déclenche.
Diagramme de séquence :
62
IV.4.2 Outils Logiciels
Pour notre simulation nous avons utilisé une machine virtuelle nommée VMware a et
le système d’exploitation instant Contiki 3.0 qui met à disposition un simulateur
réseau appelé Cooja qui est un émulateur qui permet d’exécuter des programmes
sur contiki sans avoir besoin de matériels et pour faire tourner cette machine nous
avons utilisé un lecteur des machines virtuelles VMware workstation 15.5
VMware Workstation : VMware Workstation est un outil de virtualisation
de poste de travail créé par la société VMware, il peut être utilisé pour
mettre en place un environnement de test pour développer de nouveaux
logiciels, ou pour tester l'architecture complexe d’un système
d’exploitation avant de l’installer réellement sur une machine
physique.[29]
Wireshark : Wireshark est un outil open source c’est un analyseur de
réseau et de protocole de réseau. Il est anciennement connu sous le
nom d'Ethereal, peut être utilisé pour examiner les détails du trafic à
divers niveaux allant des informations au niveau de la connexion aux bits
qui composent un seul paquet. La capture de paquets peut fournir à un
administrateur réseau des informations sur des paquets individuels.
Installation de mosquitto :
cd contiki/tools/cooja
ant run
63
Figure 4.2Interface de simulateur COOJA
Dans le menu il faut choisir : File> New simulation. (Figure 4.3) Apres il faut choisir
un nom de la simulation (figure 4.4) ensuite Diverses fenêtres apparaîtront pour la
simulation, comme la fenêtre du réseau, fenêtre de contrôle de simulation, sortie de
mote et chronologie (Figure 4.5)
64
Figure 4.5 Fenêtres du simulateur cooja
Une fois que la nouvelle simulation et créé et nommé, il faut créer les
motes nous on a choisi des motes de type « Sky Mote» pour le routeur, le
serveur et les clients (10) (figure 4.6)
Après avoir choisi le type de mote une fenêtre apparaît qui permet de
donner un ID aux motes et de choisir le fichier .C (en cliquant sur Browse)
qui sera compilé comme la compilation d’un programme C et cela va
permettre de simuler les motes (Figure 4.7)
65
Figure 4.7Fenêtre de compilation
B. Le serveur : même chose que le routeur sauf que on lui a donné l’ID «
Server » et on a sélectionné le fichier er-example-server.c
Information du sky mote server :
66
C. Les clients : On a nommé le sky mote pour les clients « client » et on a
choisi le fichier er-example-clients.c et pour ce qui est de nombre de motes on
a choisi 10
Information du sky mote client :
Une fois les motes créé il faut allumer le routeur comme suite :
67
Après une fenêtre avec l’option de démarrage s’affiche (Figure 4.9)
68
IV.4.5 Simulation du protocole MQTT
69
Border router : le controleur
Subscriber : l’alarme
1. Installer Wireshark
70
3. Ouvrir, numériser et exporter des fichiers PCAP au format CSV en
utilisant le Programme Wireshark : Dans le menu il faut sélectionner :
File>Open
71
La figure 4.12 montre un exemple de récupération d'une transaction capturée par
Wireshark.
Les frais généraux des couches réseau capturées par WireShark sont affichés au
milieu de l'image.
72
IV.5.1 Comparaison de CoAP et MQTT
Travaille Résultats
Dans [56], les auteurs présentent L'analyse des résultats expérimentaux montre que CoAP est
une analyse des besoins en le plus efficace en termes de consommation d'énergie et de
ressources pour les protocoles bande passante. Pour envoyer un message avec une fiabilité
CoAP et MQTT basé sur des pour les deux protocoles, CoAP n'utilise que 140 octets au
résultats expérimentaux réalisés total (y compris la liaison, le réseau et en-tête de couche de
à l'aide de systèmes Intel X86 transport). MQTT avec QoS-1 est deuxième avec 162 octets,
avec Ubuntu, libcoap et tandis que MQTT avec QoS-2 nécessite 318 octets au total.
Mosquitto. Ils sont comparés en En général, les résultats montrent que CoAP et MQTT
fonction de différentes consomment une faible bande passante.
caractéristiques spécifiques du
protocole ainsi que l'utilisation de
ressources telles que la bande
passante et l'énergie.
Dans [57], les auteurs comparent Les résultats montrent que CoAP est le plus efficace en
les performances de CoAP, termes de temps et de bande passante pour les plus
MQTT et HTTP REST à l'aide petits charges utiles, et ses performances se détériorent à
mesure que la taille de la charge utile augmente.
d'un Raspberry Pi 3 et les
implémentations aiocoap,
Mosquitto et Django des
protocoles. Ils comparent les
nombre d'octets consommés et
délai pour chacun des
protocoles sous différents
réseaux conditions.
73
Dans une autre expérience [60]
ils ont montré les résultats de
l’influence de la perte de
paquets sur le transfert de
données
Pour notre cas nous allons comparer CoAP et MQTT en terme de la consommation
d’énergie, le taux de messages transférées et cela va nous indiquer l'utilisation de
la bande passante. Influence de la perte de paquets sur le transfert de
données,afin de calculer et suivre ces différents caractéristiques nous avons utilisé
quelque méthodes que cooja propose et nous avons aussi utilisé les résultats
enregistré sur Wireshark.
74
Le taux de message transféré :
Le client CoAP commence à faire des requêtes en envoyant des méthodes
POST. Cependant, la configuration de la connexion dans MQTT est un peu
différente de CoAP car plus de messages doivent être échangés en raison du
fait que les clients MQTT doivent s'inscrire et s'abonner à un sujet (topic)
avant de recevoir un message de publication du broker.
Afin de commencer à recevoir tous les messages de publication liés au
topic souscrits, un client MQTT envoie PINGREQ au broker, ce qui est assez
similaire à la méthodes POST dans CoAP.
Le tableau 4.1 montre le nombre de message échangé.
Le temps de notre simulation est de 20min
Nous avons choisi de faire la comparaison entre le message Confirmable
(POST) du protocole CoAP et le message PINGREQ de MQTT.
Temps 0 5 10 15 20
Comme on peut voir le nombre de messages transféré pour le protocole CoAP est
supérieure à celui du nombre de message transféré dans le protocole MQTT cela est
dû au fonctionnement du MQTT car au début MQTT échange plus dans le but de
s'abonner et enregistrer les Topic,
Une fois que Le client MQTT est abonné aux Topic qui l’intéresse, il passe en
«mode veille», ce qui explique la baisse de nombre de message échanger.
75
La consommation d’énergie :
La consommation d’énergie selon la longueur des messages :
Apres avoir vu les résultats de taux de messages transféré durant la
simulation et vu que le protocole CoAP transfère plus de message on déduit
que CoAP consomme plus d’énergie car comme on la explique le protocole
MQTT transfère plus de message au début après le Transfer de message
baisse et ce qui fait que la consommation d’énergie baisse aussi et il ne faut
pas aussi oublie que la longueur du message CoAP sont plus grandes que la
longueur du message MQTT tableau 4.2
Pour cette comparaison nous avons choisi les messages que MQTT utilise au
début de la simulation qui sont : CONNECT, SUBSCRIBE, PINGREQ,
PUBLISH avec le message CoAP Confirmable sous la méthode POST.
MQTT CoAP
Longueur (bits) 64 54 61 64 71
Comme on peut voir les résultats montre que la longueur du message CoAP est
supérieure à celle des messages MQTT qui ne dépasse pas le 64 bits
76
IV.5.1.3 Analyse des performances
Apres avoir analysé les performances des deux protocoles par rapport à :
Nous pouvons dire que les deux protocoles sont performants mais leur
utilisation dépend des besoins de l’utilisateur et des conditions du réseau.
Pour notre cas les performances du protocole CoAP nous intéressent plus car
pour notre scenario, des messages de taille petite nous suffisent. Une autre
chose, il ne faut pas oublier que le protocole MQTT nécessite une
infrastructure qui implique l’allocation du système du Broker. Cette demande
n’est pas pratique lorsque le réseau est déjà déployé. Cependant, la mise en
œuvre de CoAP en termes d'infrastructure est plus simple car elle peut
fonctionner sans elle.
IV.6 Conclusion
Ce chapitre a été consacré à la simulation des deux protocoles CoAP et MQTT pour
qui nous avons proposé un scenario qui fonctionnent selon ces deux dernier.
Pour cette simulation nous avons utilisé l’outil de simulation COOJA qui contient
différents méthodes et outils qui nous ont permis d’obtenir a des résultats concernant
les performances des protocoles : en terme de la consommation d’énergie, le taux
de messages transférées et cela va nous indiquer l'utilisation de la bande passante,
et le retard dans les protocoles CoAP et MQTT.
77
Conclusion générale
L’IoT, de nos jours est devenu très fondée, et dans les prochaines années, la
plupart des objets de la vie quotidienne seront connectés entre eux et à Internet. En
quelques années seulement depuis son apparition, elle fut adopté dans divers
secteurs et cela à grâce à son potentiel énorme.
La communication constante entre les objets se fait par de multiples protocoles qui
offrent des performances qui permettent à l’IoT d’avoir plus d’impact et d’être plus
performant. Parmi les protocoles les plus utilisés pour la communication entre objets
dans l IoT, les protocoles CoAP et MQTT qui sont parmi les protocoles les plus
connu de l’IoT et c’est pour cela que nous avons voulu évaluer leurs performances et
comprendre leur fonctionnement, afin de réaliser une comparaison entre eux.
Comme résultat de ce travail, nous avons conclu que le protocole CoAP est le plus
performant grâce aux résultats de comparaison, mais cela est dans la seule
condition qui est la non influence, dans l’application IoT, de la grande consommation
d’énergie. On peut dire aussi que le MQTT est le mieux utilisé si la consommation
d’énergie est un critère important dans une application IoT.
78
Webographie
[1] https://www.talsom.com/insights/definition-internet-des-objets/(Consulté le 09 mars
2020)
[10] https://blog.engineering.publicissapient.fr/2018/04/16/internet-des-objets-quels-
protocoles-applicatifs-utiliser-1-2/ (Consulté le 09 mars 2020)
[12] https://azure.microsoft.com/fr-fr/overview/internet-of-things-iot/iot-technology-
protocols/(Consulté le09 mars 2020)
[17] https://www.hivemq.com/blog/mqtt-essentials-part-5-mqtt-topics-best-practices/
(Consulté le09 mars 2020)
[18] http://www.hivemq.com/blog/mqtt-essentials-part-9-last-will-and-testament
(Consulté le09 mars 2020)
[22]
https://www.digi.com/resources/documentation/digidocs/90001525/reference/r_exam
ple_mqtt.htm(Consulté le20 mars 2020)
[23] https://www.hivemq.com/blog/mqtt-essentials-part-4-mqtt-publish-subscribe-
unsubscribe/ (Consulté le20 mars 2020)
79
[27] https://www-npa.lip6.fr/~fourmaux/res/res4m8c.html(Consulté le 12 Avril 2020)
[31] https://fr.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol
(Consulté le15 Avril 2020)
[33] https://www.webchoiceonline.com.au/fundamental-characteristics-that-makes-
the-internet-of-things-what-it-is/ (Consulté le15 Avril 2020)
[35] http://www.wikiwai.com/2020/02/21/internet-des-objets-architectures-protocoles-
et-applications /(Consulté le15 Avril 2020)
[39]
https://fr.wikipedia.org/wiki/Transport_Layer_Security#:~:text=La%20Transport%20Lay
er%20Security%20(TLS,r%C3%A9seau%20informatique%2C%20notamment%20par
%20Internet.(Consulté le20 mars 2020)
[47] https://www.ideas4allinnovation.com/innovators/here-is-santander-city-brain-the-
ideas-platform-launched-by-santanders-city-council-in-collaboration-with-ideas4all/
[50] https://www.slideshare.net/butler-iot/butler-project-overview-13603599(Consulté
le20 avril 2020)
[61] https://www.geospatialworld.net/news/iot-sensors-market-expected-grow-42-08-
cagr-2022/(Consulté le 24 septembre 2020)
[63] https://www.semanticscholar.org/paper/A-CoAP-gateway-for-smart-homes-
Bergmann-Hillmann/0059e65915b93f5c5d3cfb2b4689f2e570c8c2e3 (Consulté le 24
septembre 2020)
80
[66] https://www.lebigdata.fr/mqtt-tout-savoir (Consulté le 24 septembre 2020)
[67] https://www.eclipse.org/community/eclipse_newsletter/2014/february/article2.php?
fbclid=IwAR0h_n85YTIc_QsjmlzJfNt6HiBQD0Pd4hiEWG74gQO_qBeTISjfZvBRV3k(C
onsulté le 24 septembre 2020)
Bibliographie
[2] Yacine Challal. Sécurité de l’Internet des Objets : vers une approche cognitive et
systémique. [en ligne]Réseaux et télécommunications [cs.NI]. Université de
Technologie de Compiègne, 2012. Disponible sur <https://tel.archives-ouvertes.fr/tel-
00866052 > (Le 09 mars 2020)
[11] Rabeb Saad. Modèle collaboratif pour l'Internet of Things (IoT)[en ligne].Mai
2016.Université du Quebec a Chicoutimi. Disponible sur :
<https://constellation.uqac.ca/3983/1/Saad_uqac_0862N_10207.pdf >
[13] MELITI Nedjema. Architecture Basée Agents pour le diagnostic d’un système
d’IoT (Internet ofThings). [en ligne]. Mémoire de Master académique, Architectures
Distribuées. Oum-El-Bouaghi : UniversitéLarbi Ben M’hidi Oum-El-Bouaghi, 2017.
Disponible sur : <http://bib.univ-
oeb.dz:8080/jspui/bitstream/123456789/6894/1/VertionFnalNedjma2017.pdf>(Consul
té le09 mars 2020)
[16] MQTT Version 3.1.1. Edited by Andrew Banks and Rahul Gupta. 29 October
2014. OASIS
[24] JOSUE, Melka. Model Based Testing des applications du protocole MQTT [en
ligne]. Mémoire de Master Recherche Informatique. France : Septembre 2016
Disponible sur : <https://fr.slideshare.net/ymelka/model-based-testing-des-
applications-du-protocole-mqtt>
81
[26] EFORT. COAP (Constrained Application Protocol) : Protocole d’Application pour
l’Internet des Objets. [en ligne].2015 Disponible sur : <http://www.efort.com/>
[32] Fatima Zahra Saadaoui, Abderrahim Maizate, Mohammed Ouzzif. État d’art sur
les protocoles en temps réel pour l’internet des objets sous le réseau NDN.[en
ligne]. Ecole Supérieure de Technologie de Casablanca (Maroc), Institut
Universitaire de Technologie d'Aix Marseille (France), , CASABLANCA, Maroc. Juin
2019 Disponible sur <https://hal.archives-ouvertes.fr/hal-02296848>
[34] GS1. Gs1 and the internet of things, 2017.(Consulté le15 Avril 2020)
[38] S.Feng, J.Cerles, H.Dalmas, T.Do-Khac, and B. Paulin. Sécurité des objets
Connectés. [en ligne]Institut national des hautes études de la sécurité et de la justice,
2014. Disponible <https://www.cigref.fr>
[43] G.Yoon,J.Choi, H.Park, &H.Choi, Topic naming service for DDS. Janvier 2016,
International Conference on Information Networking (ICOIN) Disponible sur
<https://ieeexplore.ieee.org/document/7427138>
[44] Hyun-Ji Kim, Ok-Kyoon Ha, Yong-Kee Jun, and Hee-Dong Park . Case study
message Races in Data Distribution Service Programs.International Journal of
Software Engineering and Its Applications [en ligne]. 2016. Disponible sur
<https://www.researchgate.net/>
82
[46] Makkad Asim. A Survey on Application Layer Protocols for Internet of Things
(IoT). [en ligne].Department of Computer Science and Engineering Institute of
Technology, Nirma University Ahmedabad, India Disponible sur
<https://www.plm.automation.siemens.com/global/en/webinar/low-code-
development/76318>
[49]Sangyoon Oh, Jai-Hoon Kim, and Geoffrey Fox. “Real-time Performance Analysis
for Publish/Subscribe Systems”. In: Future Gener. Comput. Syst.26.3 (Mar. 2010), pp.
318–323. ISSN: 0167-739X. DOI: 10.1016/j.future.2009.09.001. URL:
http://dx.doi.org/10.1016/j.future.2009.09.001.
[51] OASIS. Advanced message queuing protocol (amqp) version 1.0. Oasis standard,
29 October 2012.
[57]Tandale, U.; Momin, B.; Seetharam, D.P. An empirical study of application layer
protocols for IoT. In Proceedings of the 2017 International Conference on Energy,
Communication, Data Analytics and Soft Computing (ICECDS), Chennai, India, 1–2
August 2017; pp. 2447–2451, doi:10.1109/ICECDS.2017.8389890.
[58]A. Velinov et A.Mileva, «Running and Testing Applications for Contiki OS Using
Cooja Simulator,» chez International Conference on Information Technology and
Development of Education – ITRO 2016, Zrenjanin, Republic of Serbia, Juin 2016.
[60]Dinesh Thangavel, Xiaoping Ma, Alvin Valera and Hwee-Xian Tan, Colin Keng-Yan
TAN. Performance Evaluation of MQTT and CoAP via a Common Middleware. [en
ligne]. Disponible sur <http://hxtan.info/wp-content/uploads/2014-issnip-mqtt-
coap.pdf>
[64]Khan R, Khan SU, Zaheer R, Khan S (2012) Future internet: the internet of things
architecture, possible applications and key challenges. In: 2012 10th International
Conference on Frontiers of Information Technology.
83