Exercices du chapitre "Communication"
Technologies de communication sans fil (portée et débit)
Exercice 1
Situez les technologies BLE, Wi-Fi et Zigbee dans le diagramme ci-dessous. Indiquez également à quelles technologies peuvent correspondre le point jaune et le point bleu ?
Technologies de communication sans fil (applications)
Exercice 2
Complétez le tableau suivant afin de spécifier quelle technologie est
adaptée à différents cas d’utilisation. Indiquez par un un scénario parfaitement adapté,
par un
les scénarios totalement inadaptés et par un
les scénarios partiellement adaptés.
| Cas d’utilisation | BLE | ZigBee | Wi-Fi | NFC |
|---|---|---|---|---|
| Contrôle à distance | ||||
| Paiements sécurisés | ||||
| Localisation | ||||
| Verrouillage | ||||
| Santé et fitness |
Technologie BLE
Exercice 3
Énoncez les différents types de paquets d’advertising. Expliquez les propriétés de ces paquets et les scénarios pour lesquels ils peuvent être utilisés.
MQTT et topics
Exercice 4
Concevez des topics pour les applications suivantes:
- Station météo connectée
- Contrôle d’une habitation (domotique)
- Messagerie de type WhatsApp
Expérimenter la technologie MQTT
Exercice 5
- Installez un client MQTT sur votre PC. Je vous recommande MQTT Explorer pour commencer, mais vous pouvez installer des outils en ligne de commande (https://hivemq.github.io/mqtt-cli/, https://mosquitto.org/download/)
- Par groupe de deux, choisissez un broker de test (par exemple
test.mosquitto.org) ainsi qu’un topic (par exempleheiafr/isc-id-2/group/1/msg) - Le premier étudiant se prépare à recevoir les messages (par exemple
en s’abonnant à
heiafr/isc-id-2/#)1 - Le second étudiant publie un message dans le topic choisi
Défi : Envoyer “I Love Embedded Systems” sur le topic
heiafr/isc/edu/<student name>/msg en remplaçant <student name>
par votre nom
MQTT et encodage de la taille d’un paquet
Exercice 6
Comment est codée la taille pour un paquet de 1700 Bytes ?
MQTT et décodage de la taille d’un paquet
Exercice 7
Écrivez le pseudo-code de la méthode qui permet de décoder une taille d’un paquet.
Port utilisé par MQTT
Exercice 8
Quel est le numéro de port utilisé par défaut par MQTT ?
Analyse de traffic MQTT
Exercice Exercices du chapitre “Communication”/9
Démarrez “Wireshark” sur votre PC, capturez les paquets MQTT et publiez un message de plus de 128 Bytes vers un broker. Étudiez la capture regardez comment est codée la taille du paquet.
Faites le codage à la main et vérifiez que vous obtenez la même chose
Expérimenter la technologie CoAP
Exercice 10
- Installez
coap-clicomme une command line interface pour CoAP. Les instructions pour l’installation sont disponibles sur CoAP-CLI. L’utilisation decoap-clinécessite l’installation de node.js. - Après installation de l’outil, vous pouvez taper
L’exécution devrait se passer sans problème et le texte de la version de l’outil devrait s’afficher (par ex.
coap --version0.11.1). -
Vous pouvez ensuite faire votre premier appel à un serveur CoAP en tapant
Le code de la réponse devrait êtrecoap get coap://californium.eclipseprojects.io:56832.05(réponseContentà une requêteGET) et le contenu devrait être un texte générique décrivant le serveur. Le message affiché dans la console est composé du code de la réponse, suivi du payload du message. Afin de comprendre le format exact du message (y.c. des options), vous devez utilisez Wireshark. -
CoAP réalise un mécanisme de découverte des ressources disponibles sur un serveur. Afin d’obtenir les ressources, il faut interroger la resource “.well-known/core”.
Le code de la réponse devrait êtrecoap get coap://californium.eclipseprojects.io:5683/.well-known/core2.05(réponseContentà une requêteGET) et le payload devrait être une description des ressources disponibles dans le CoRE Link Format. -
Choisissez la ressource « multi-format » et observez le trafic à l’aide de WireShark (vous pouvez filtrer le trafic avec le mot clé “coap”). Veuillez noter que le contenu de la réponse est une version textuelle des propriétés du message CoAP.
Cette ressource peut délivrer des réponses au format “text/plain” ou “application/xml”. Comme la requête ne précise pas le contenu accepté, la réponse du serveur indique le codecoap get coap://californium.eclipseprojects.io:5683/multi-format2.05(cela pourrait être4.06). Le payload de la réponse est dans leContent-format“text/plain”, mais la réponse indique toutefois que l’option “Accept” de la requête est “-1”. -
Afin d’ajouter le format accepté de la réponse, la requête doit ajouter une option CoAP
Accept. L’option est l’option17et la valeur du media-type accepté peut être soit0x00(“text/plain”) ou0x29(“application/xml”) :Testez les deux formats (coap --coap-option 17,0x00 get coap://californium.eclipseprojects.io:5683/multi-format0x00et0x29), observez le contenu des requêtes et réponses à l’aide de Wireshark. -
Par défaut, les requêtes effectuées sont des requête
CON. Cela signifie que leMIDde la requête et de le quittance (ou de la réponsepiggybacked) doivent correspondre. Vérifiez ce comportement avec Wireshark. -
Effectuez une requête
NONet observez le trafic :coap --non-confirmable --coap-option 17,0x00 get coap://californium.eclipseprojects.io:5683/multi-format -
Afin de bien comprendre la notion de réponse
piggybacked, effectuez une requête sur la ressource “separate” qui délivre la quittance et la réponse dans deux messages différents :coap get coap://californium.eclipseprojects.io:5683/separate -
Dans toutes les requêtes faites jusque-là, observez les valeurs des MID et des tokens des requêtes et des réponses.
CoAP et encodage des numéros d’options
Exercice Exercices du chapitre “Communication”/11
Répondez aux questions suivantes:
- Dans l’encodage des numéros d’options, pourquoi avoir utilisé 13 et 14 et non 14 et 15 ?
- A quoi sert alors la valeur 15 ?
- Quel est l’intérêt de l’encodage par delta ?
Message CoAP
Exercice 12
Un message CoAP contient les options suivantes. Expliquer toutes les options
contenues dans ce message avec leur valeur et leur signification. Calculer la taille totale des options.
Traffic CoAP
Exercice 13
Poursuivez le premier exercice permettant d’analyser le traffic CoAP afin de comprendre et d’analyser d’autres options, sur la base de la description des ressources obtenue dans l’exercice précédent :
- “Uri-Path” : formulez une requête contenant au moins deux options répétées “Uri-Path”.
- “Uri-Query” : formulez une requête contenant au moins deux options répétées “Uri-Query”.
- Formulez une requête afin de créer une ressource “large-create” avec un body content au format “application/json”. Observez la réponse et comprenez la signification de l’option “Location-Path”. Formulez une requête afin d’obtenir une représentation de la ressource que vous venez de créer.
Traffic CoAP et observation
Exercice 14
Poursuivez l’exercice précédent permettant d’analyser le traffic CoAP afin de comprendre le mécanisme d’observation :
- Choisissez la ressource “obs” et effectuez une requête d’observation sur cette ressource. Observez les messages transmis dans Wireshark, en particulier le contenu des options “observe”.
- Faîtes de même avec la ressource “obs-non”. Observez les différences en rapport avec la ressource “obs”.
-
Avec MQTT Explorer, lorsque vous configurez la connexion, vous devez cliquer sur “ADVANCED” et configurer l’abonnement (Subscription) ↩