Académique Documents
Professionnel Documents
Culture Documents
3
Protocoles applicatifs IoT
HTTP
L’architecture client/serveur
Le terme client / serveur décrit un type de traitement distribué
dans lequel une application est divisée en deux parties. Chaque
partie peut être sur des systèmes d'exploitation distincts, mais ils
fonctionnent ensemble pour fournir un service à l'utilisateur.
4
Protocoles applicatifs IoT
HTTP
6
Protocoles applicatifs IoT
HTTP
9
Protocoles applicatifs IoT
HTTP
Requête HTTP
Une requête HTTP est un ensemble de lignes envoyées au
serveur par le navigateur. Elle comprend :
Une ligne de requête: La ligne comprend trois éléments devant
être séparés par un espace :
La méthode (GET, POST, DELETE, PUT,…)
L'URL
La version du protocole utilisé par le client (HTTP/1.0)
10
Protocoles applicatifs IoT
HTTP
12
Protocoles applicatifs IoT
HTTP
Réponse HTTP
Une réponse HTTP est un ensemble de lignes envoyées au
navigateur par le serveur.
Elle comprend :Une ligne de statut: c'est une ligne précisant la
version du protocole utilisé et l'état du traitement de la
requête à l'aide d'un code et d'un texte explicatif. La ligne
comprend trois éléments devant être séparés par un espace :
La version du protocole utilisé
Le code de statut
La signification du code 13
Protocoles applicatifs IoT
HTTP
Les champs d'en-tête de la réponse: il s'agit d'un ensemble de
lignes facultatives permettant de donner des informations
supplémentaires sur la réponse et/ou le serveur. Chacune de
ces lignes est composée d'un nom qualifiant le type d'en-tête,
suivi de deux points (:) et de la valeur de l'en-tête
Le corps de la réponse: il contient le document demandé
Exemple
14
Protocoles applicatifs IoT
HTTP
Commandes HTTP
15
Protocoles applicatifs IoT
MQTT
MQTT(Message Queuing Telemetry Transport) est un
standard ISO (ISO/IEC PRF 20922) basé sur TCP.
MQTT est un protocole de messagerie de
publication/souscription (publish/subscribe) léger
conçu pour M2M (machine to machine) dans les
environnements à faible bande passante.
Au départ, ce protocole a été développé par Andy
Stanford-Clark (IBM) et Arlen Nipper (Eurotech) en
1999
MQTT est un protocole ouvert, simple, léger et
facile à mettre en œuvre. 16
Protocoles applicatifs IoT
MQTT
17
Protocoles applicatifs IoT
MQTT
18
Protocoles applicatifs IoT
MQTT
22
Protocoles applicatifs IoT
MQTT
23
Protocoles applicatifs IoT
MQTT
Le broker MQTT
Le broker le plus connu reste Mosquitto (géré par la
fondation eclipse)
Le point central de la communication est le broker
MQTT qui est en charge de relayer les messages des
émetteurs vers les clients.
Chaque client s’abonne via un message vers le broker
: le « topic » (sorte d’information de routage pour le
broker) qui permettra au broker de réémettre les
messages reçus des éditeurs ‘publishers’ vers les
clients.
Les clients n’ont pas à se connaître, ils ne
communiquent qu’ à travers des topics. 24
Protocoles applicatifs IoT
MQTT
Authentification du client
Un broker ‘Mosquitto’ peut vérifier l'identité d'un client
MQTT de trois manières:
Identifiants clients (clients Ids)
Noms d'utilisateur et mots de passe (Usernames and
passwords)
Certifications des clients (Client Certificates)
25
Protocoles applicatifs IoT
MQTT
Identifiant client (client Id)
Tous les clients MQTT doivent fournir un identifiant client.
Lorsqu'un client s'abonne à une ou plusieurs rubriques (Topics), l'ID
client lie la rubrique au client et à la connexion TCP (protocole
Transport).
Username and Password
Un broker MQTT peut exiger un nom d'utilisateur et un mot de passe
valides d'un client avant qu'une connexion ne soit autorisée.
C’est le moyen le plus facile et le plus utilisé pour restreindre
l'accès à un broker.
Certifications des clients
En cryptographie, un certificat client est un type de certificat
numérique utilisé par les clients pour effectuer des requêtes
authentifiées à un serveur distant. 26
Protocoles applicatifs IoT
MQTT
27
Protocoles applicatifs IoT
MQTT
31
Protocoles applicatifs IoT
MQTT
32
Protocoles applicatifs IoT
MQTT
33
Protocoles applicatifs IoT
MQTT
■ Le Broker Mosquitto
36
Protocoles applicatifs IoT
MQTT
37
Protocoles applicatifs IoT
MQTT
38
Protocoles applicatifs IoT
MQTT
39
Protocoles applicatifs IoT
MQTT
40
Protocoles applicatifs IoT
MQTT
42
Protocoles applicatifs IoT
MQTT
44
Protocoles applicatifs IoT
MQTT
Exemple
46
Protocoles applicatifs IoT
MQTT
Dans Actility, il faut d'abord créer et configurer le client MQTT :
Actility > Connexions > TPX > MQTT .
TPX: Actility ThingPark X IoT Flow est le module de flux de
données de la plateforme ThingPark qui traite les messages
uplink (capteur à réseau) et messages downlink (commandes
aux capteurs et aux actionneurs).
Puis vous entrez les paramètres suivants :
Hostname: broker.hivemq.com:1883
MQTT Username: test
MQTT Password: test
Uplink topic pattern: mqtt/things/{DevEUI}/uplink
Downlink topic pattern: mqtt/things/{DevEUI}/downlink 47
48
Protocoles applicatifs IoT
CoAP
La taille des messages CoAP est allégée par rapport à celle des messages
HTTP; l’en-tête d’un message CoAP est fixé à 4 octets alors que celui des
messages HTTP est variable.
L’en-tête de chaque paquet contient le type de message et la qualité de
service souhaitée pour la transmission du message :
Confirmable : Message envoyé avec une demande d’accusé de
réception, noté CON
Non-Confirmable : Message envoyé sans demande d’accusé de
réception, noté NON
Acknowledgment : Accusé de réception du message de type
«confirmable », noté ACK
Reset : Accusé de réception d’un message qui n’est pas exploitable,
49
noté RST
Protocoles applicatifs IoT
CoAP
51
Protocoles applicatifs IoT
CoAP
CoAP est un protocole asynchrone adapté au transfert entre un client et
un serveur.
Soit une requête de type GET transportée dans un message CON avec la
réponse retournée dans un message ACK. Une des réponses indique un
succès (2.05) et l’autre indique un échec (4.04).
52
Protocoles applicatifs IoT
CoAP
Si le serveur n’est pas en mesure de répondre
immédiatement à une requête (GET) transportée dans un
message CON, il répond simplement via un message ACK sans
contenu.
Lorsque la réponse est prête, le serveur l’émet dans un
nouveau message CON (qui devra être acquitté par le client
via un message ACK sans contenu).
Rq: Le token est une donnée créée par le serveur contenant des
informations permettant d’associer une requête avec une réponse. il
peut y avoir plusieurs jetons pour le même utilisateur. Le jeton a une
durée de vie. Il est valide pendant 1800 secondes à partir de sa
création (configurable). Les jetons expirés ne sont pas valides.
53
Protocoles applicatifs IoT
Comparaison
54
Protocoles applicatifs IoT
Application
Expliquez ces échanges
selon le protocole MQTT.
55
Protocoles applicatifs IoT
Correction
Le client C est un publisher, il transmet un message de
type PUBLISH pour publier une nouvelle donnée selon un
Topic2. Le Broker confirme la réception de son message
en envoyant PUBREC.
Le client A est un publisher aussi, il transmet un message
de type PUBLISH pour publier une nouvelle donnée selon
un Topic1. Le Broker confirme la réception de son
message en envoyant PUBREC.
Le client F est un subscriber, il s’authentifie en envoyant
un nom d'utilisateur et un mot de passe au serveur
« broker » lors de la séquence de paquets 56
CONNECT/CONNACK.
Protocoles applicatifs IoT
57