Internet Des Objets: Ahmed Karim Ben Salem, Slim Ben Othman Et Taoufik Majoul

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 36

INTERNET DES OBJETS 2ème année Cycle Ingénieur

Cours préparé par l’équipe des systèmes embarqués à l’ISTMT en Génie Biomédical (Parcours : TTIS)
Ahmed Karim Ben Salem, Slim Ben Othman et Taoufik Majoul
AU 2023/2024 COURS INTERNET DES OBJETS- CI-GBM2TTIS
1
CHAPITRE III 2ème année Cycle Ingénieur
STANDARDS ET PROTOCOLES IOT en Génie Biomédical (Parcours : TTIS)

2023/2024 COURS INTERNET DES OBJETS- CI-GBM2TTIS 2


CONTENU DU CHAPITRE

- Modèle de référence et pile de protocoles IoT

- Couche réseau
 Protocoles de routage
 Protocoles d’adaptation

- Couche application

 Protocoles de messagerie: MQTT, XMPP et AMQ


 Protocoles de transfert web: CoAP, API REST
 Protocoles réseau: Websocket

COURS INTERNET DES OBJETS- CI-GBM2TTIS 3


RAPPEL DE LA PILE DE PROTOCOLES IOT

Source : https://www.researchgate.net/ (uploaded by Antonino Rullo)

COURS INTERNET DES OBJETS- CI-GBM2TTIS 4


PROTOCOLES DE LA COUCHE RÉSEAU

• La couche réseau peut être vu comme deux sous-couches :

- Routage : transfert des paquets de la source vers la destination

- Adaptation : ex. IPv6 sur des liaisons IEEE 802.15.4

COURS INTERNET DES OBJETS- CI-GBM2TTIS 5


PROTOCOLES DE ROUTAGE
COURS INTERNET DES OBJETS- CI-GBM2TTIS 6
PROTOCOLES DE ROUTAGE

• Routage : acheminement des données entre les nœuds


Exemples d’algorithmes de routage :
• RPL (Routing Protocol for Low-Power and Lossy Networks) : se
base sur l’algorithme vecteur de distance. Mis en place par IETF
en 2012
• CORPL (COgnitive RPL), extension “non standard” du protocole
RPL : conçu principalement pour les réseaux cognitifs
• CARP (Channel-Aware Routing Protocol) : protocole de routage
IoT distribué

COURS INTERNET DES OBJETS- CI-GBM2TTIS 7


PROTOCOLE D’ADAPTATION IPV6
6LOWPAN
COURS INTERNET DES OBJETS- CI-GBM2TTIS 8
CONTRAINTES ASSOCIÉES À IPV6
Adressage IPv6 : sur 128 bits (8 groupements de 2 octets
chacun)
Exemple : 3FFE:085A:1F1E:0000:0000:0005:F5B19:54B2

Problème : taille trop longue et donc pas adaptée pour les


communications IoT ou les tailles des trames sont relativement
beaucoup plus petites

L’organisme IETF a développé un ensemble de standards afin


d’encapsuler les paquets IPv6 pour l’utilisation en IoT

COURS INTERNET DES OBJETS- CI-GBM2TTIS 9


6LOWPAN (IPV6 OVER LOW POWER
WIRELESS PERSONAL AREA NETWORK)
- Encapsulation des entêtes IPv6 au niveau des trames
IEEE802.15.4 de taille 127 octets

- Les spécifications associées tiennent en considération de la


taille des adresses, la faible bande passante, la topologie
(étoile ou maillée), la consommation énergétique, la mobilité, etc.
Le standard assure :
- la compression de l’entête IPv6 et la fragmentation en vue de
ne pas dépasser la taille autorisée de 127 octets par
IEEE802.15.4
- la transmission sur plusieurs sauts
COURS INTERNET DES OBJETS- CI-GBM2TTIS 10
PROTOCOLES DE LA COUCHE
APPLICATION 1

• Peuvent être divisé en 3 familles :

- Protocole de messagerie : MQTT, XMPP et AMQ


- Protocole de transfert web : CoAP et API REST
- Protocole réseau : Websocket

1 : https://blog.engineering.publicissapient.fr/2018/04/16/internet-des-objets-quels-protocoles-applicatifs-utiliser-1-2/

COURS INTERNET DES OBJETS- CI-GBM2TTIS 12


PROTOCOLES DE MESSAGERIE
COURS INTERNET DES OBJETS- CI-GBM2TTIS 12
MQTT
(MESSAGE QUEUING TELEMETRY TRANSPORT)

- Standard IoT depuis 2015


- Protocole de messagerie s’appuyant sur le mécanisme de publish/subscribe
(publication/abonnement)
- Communication asynchrone se basant sur TCP/IP
- Un client (publisher) établi une connexion avec le serveur MQTT (broker)
- Publisher transmet les messages au broker sur un canal spécifique (topic)
- Des subscribers ayant au préalable établi une connexion de type subscribe
avec le broker, peuvent lire les messages

COURS INTERNET DES OBJETS- CI-GBM2TTIS 13


FONCTIONNEMENT DU PROTOCOLE MQTT
- Les clients (publisher ou subscriber) établissent une connexion TCP/IP avec le
broker. Ce dernier garde la trace des clients connectés
- Cette connexion reste ouverte jusqu'à ce que le client y mette fin
- MQTT se base sur le protocole de transport TCP et utilise par défaut les ports
1883 et 8883
- Le client envoie un message CONNECT contenant les informations nécessaires
(nom d'utilisateur, mot de passe, identifiant du client, etc.). Le broker répond par
un message CONNACK, qui contient le résultat de la connexion (accepté, rejeté,
etc.)
- Pour envoyer les messages, le client utilise des messages PUBLISH, qui
contiennent le sujet et la charge utile.
- Pour s'abonner et se désabonner, on utilise des messages SUBSCRIBE et
UNSUSCRIBE, auxquels le serveur répond par SUBACK et UNSUBACK.
- Pour s'assurer que la connexion est active, les clients envoient périodiquement
un message PINGREQ auquel le serveur répond par un PINGRESP.
- Le client se déconnecte en envoyant un message DISCONNECT.

Source : https://www.ip-systemes.com/details-comprendre+le+protocole+mqtt-795.html#
COURS INTERNET DES OBJETS- CI-GBM2TTIS 14
ÉCHANGES MQTT
ENTRE PUBLISHERS, SUBSCRIBERS ET BROKER

Source : https://medium.com/

https://blog.compass-security.com/2023/09/from-mqtt-fundamentals-to-cve/
COURS INTERNET DES OBJETS- CI-GBM2TTIS 15
EXEMPLE :
ÉCHANGES MQTT ENTRE CLIENT ET SERVEUR WEB

https://microcontrollerslab.com

COURS INTERNET DES OBJETS- CI-GBM2TTIS 16


STRUCTURE D’UN MESSAGE MQTT
Un message MQTT présente :
- un entête fixe de 2 à 5 octets : champ obligatoire donnant type du message
(message type ou packet type : 15 types), des drapeaux et taille du reste du
paquet
- un entête variable : champ optionnel (meta-data associée au message)
- une charge utile (payload) : champ optionnel de taille maximale 256 Mo

https://http://www.weigu.lu
COURS INTERNET DES OBJETS- CI-GBM2TTIS 17
ÉLÉMENTS CONSTITUTIFS DE L’ENTÊTE FIXE

https://http://www.weigu.lu
Message Type : type du message MQTT (15 types possibles).
Ex. : CONNECT (valeur :1), PUBLISH (valeur : 3), SUBSCRIBE (valeur : 8)
DUP : indique si c’est un paquet dupliqué
QoS : qualité de service
RETAIN : indique si le message devrait être retenu
Remaining Length : longueur de l’entête variable et du payload
COURS INTERNET DES OBJETS- CI-GBM2TTIS 18
QOS DANS LES ÉCHANGES MQTT
Trois niveaux de qualité de service (QoS) pouvant être spécifiés par les
publishers :
 QoS 0 (at most once : fire and forget) : au plus une transmission. Ne demande
pas une large bande passante
 QoS 1 (at least once delivery): au moins une transmission. Garanti la réception
des messages (duplication possible)
 QoS 2 (exactly once delivery): une seule transmission. Scénario où l’on
suggère une réception garantie mais sans duplication

 QoS plus élevé : latence et bande passante nécessaire plus importantes


https://http://www.weigu.lu

COURS INTERNET DES OBJETS- CI-GBM2TTIS 19


ECHANGES MQTT SELON LA VALEUR QOS

Source : Patierno 2014, slide 8.


COURS INTERNET DES OBJETS-GBM3 SEE&INFMED 20
POINTS FORTS DE MQTT

- Faible bande passante nécessaire


- Faible consommation en énergie
- Ne nécessitant pas de larges ressources de calculs et de
mémoires
- Possible de transmettre un message à plusieurs nœuds sur
une seule connexion TCP

COURS INTERNET DES OBJETS- CI-GBM2TTIS 21


XMPP
(EXTENSIBLE MESSAGING AND PRESENCE PROTOCOL)
- Développé en 1999 en tant que service de messagerie instantanée
- Fonctionnement se basant sur une architecture client/serveur
- Echange de données en format XML
- Un client établit une connexion TCP avec son serveur XMPP, qui transmet la
donnée au serveur XMPP de la destination
- Le serveur XMPP transmet la donnée si la destination est connectée
- Sinon, le serveur XMPP mémorise la donnée tant que la destination ne s’est
pas connectée
- Un client est identifié d’une façon unique par :
<nom-du-client>@<nom-du-serveur>

COURS INTERNET DES OBJETS- CI-GBM2TTIS 22


FONCTIONNEMENT DU PROTOCOLE XMPP

https://www.frugalprototype.com

Client A souhaite envoyer un message à Client E. Il spécifie dans le message XMPP :

- l’identifiant de l’émetteur : ClientA@domainA


- l’identifiant du destinataire : ClientE@domainB
- l’information à transmettre : Hello
COURS INTERNET DES OBJETS- CI-GBM2TTIS 23
AVANTAGES DE XMPP

- Identifiant unique associé à chaque nœud


- Format de données structurées
- Adapté aux communications M2M
- Intégration simple de nouveaux connectés

COURS INTERNET DES OBJETS- CI-GBM2TTIS 24


AMQP
(ADVANCED MESSAGE QUEUING PROTOCOL)

- Protocole de messagerie
- AMQP est composé de producers, consumers, brokers, exchanges,
bindings et queues
- AMQP peut router un message envoyé par un producer vers
plusieurs topics en utilisant le mécanisme exchange
- Critères de routage : contenu, entête, clés de routage, etc.

COURS INTERNET DES OBJETS- CI-GBM2TTIS 25


FONCTIONNEMENT DU PROTOCOLE AMQP

http://alexvolov.com

- Producer publi les messages à Exchange


- Exchange peut router les messages vers les queues en utilisant les Bindings (règles)
- Broker délivre alors le message au Consumer correspondant

COURS INTERNET DES OBJETS- CI-GBM2TTIS 26


PROTOCOLES DE TRANSFERT WEB
COURS INTERNET DES OBJETS- CI-GBM2TTIS 27
COAP
(CONSTRAINED APPLICATION PROTOCOL)
- Basé sur une architecture client/serveur
- Partiellement similaire à HTTP
- CoAP se base sur la suite UDP/IPv6/6LowPAN (HTTP se base sur TCP/IP)

Source : https://fr.wikipedia.org/

COURS INTERNET DES OBJETS- CI-GBM2TTIS 28


CONTENU D’UN MESSAGE COAP

- Taille de l’entête des paquets CoAP : 4 Octets contenant type de message


et qualité de service souhaitée
- Confirmable (CON) : message avec demande d’accusé de réception
- Non confirmable (NON) : message sans demande d’accusé de réception
- Acknowledgment (ACK) : accusé de réception d’un message « confirmable »
- Reset (RST) : accusé de réception d’un message non exploitable

COURS INTERNET DES OBJETS- CI-GBM2TTIS 29


ÉCHANGE CLIENT/SERVEUR COAP
Le client envoie à un serveur une requête CoAP indiquant :
- le type du message (CON ou NON)
- l’identifiant du message (mid)
- l’action sur une ressource : GET, POST, PUT ou DELETE
- Si le type de la requête est CON, le serveur retourne une réponse de type
ACK, ayant le même mid, un code réponse et une représentation de la ressource

Codes de réponse :
- 2.xx : requête reçue et traitée
- 4.xx : erreur côté client
- 5.xx : serveur incapable de traiter la requête

COURS INTERNET DES OBJETS- CI-GBM2TTIS 30


API REST
(REPRESENTATIONAL STATE TRANSFER)
- API (Application Programming Interface) REST est une interface de programmation
d’application permettant la communication entre deux nœuds (client/serveur) en
utilisant le protocole HTTP
- Une API obéissant aux règles de conception REST est dite RESTful

- Le client envoie une


requête HTTP afin d’avoir
accès aux ressources.

- Le serveur lance alors


une réponse HTTP à cette
requête

Source : https://www.altexsoft.com/
COURS INTERNET DES OBJETS- CI-GBM2TTIS 31
STRUCTURE D’UNE REQUÊTE REST
- Eléments d’une requête REST : une méthode HTTP, endpoint, headers et body
- Méthode HTTP : indique le traitement à faire par la ressource. 4 méthodes de
base (appelées opérations CRUD : Create-Read-Update-Delete) : GET, PUT,
POST et DELETE
- Endpoint : contenant un URI (Uniform Resource Identifier) généralement un URL
(Unique Resource Location)
- Headers : informations associées au client et au serveur : adresse IP du
serveur, format de la réponse, etc.
- Body : information supplémentaire au serveur
Source : https://www.altexsoft.com/

COURS INTERNET DES OBJETS- CI-GBM2TTIS 32


STRUCTURE D’UNE RÉPONSE REST
- Réponses du serveur en formats JSON (recommandé), XML ou CSV
- Le serveur peut aussi inclure dans sa réponse des liens à d’autres
ressources que le client pourrait utiliser

La réponse HTTP du serveur


implique l’ajout d’un code :
- 2xx : succès de traitement
de la requête (200 pour OK)
- 3xx : redirection du client
vers un autre lien
- 4xx : faute dans la requête
du client (404 pour Not Found)
- 5xx : erreur côté serveur
(500 pour Internal Server Error)
Source : https://www.altexsoft.com/

COURS INTERNET DES OBJETS- CI-GBM2TTIS 33


PROTOCOLE RÉSEAU WEBSOCKET
COURS INTERNET DES OBJETS- CI-GBM2TTIS 34
WEBSOCKET
- Communication client/serveur full-duplex
- Connexion TCP en trois phases :
 ouverture de la connexion initiée par le client (handshake)
 échange de données
 fermeture de la connexion

Adapté aux applications impliquant l’envoi d’informations en temps


réel, les notifications, etc.

Source : https://www.researchgate.net/
COURS INTERNET DES OBJETS- CI-GBM2TTIS 35
RÉCAPITULATIF DES DIFFÉRENTS
PROTOCOLES APPLICATIFS CONSIDÉRÉS

Source : https://blog.engineering.publicissapient.fr/

COURS INTERNET DES OBJETS- CI-GBM2TTIS 36

Vous aimerez peut-être aussi