Protocoles IOT Mqtt Coap

CCST Networking (Cisco Certified Support Technician)Cloud & IoT

Protocoles IoT : MQTT, CoAP

Définition

Les environnements IoT nécessitent des protocoles de communication légers, adaptés aux appareils à ressources limitées (CPU, RAM, batterie). Les deux protocoles dominants sont :

  • MQTT (Message Queuing Telemetry Transport) : protocole publish/subscribe fonctionnant sur TCP, conçu pour les réseaux à faible bande passante et haute latence.
  • CoAP (Constrained Application Protocol) : protocole requête/réponse (RESTful) fonctionnant sur UDP, pensé pour les micro-contrôleurs et les réseaux contraints (6LoWPAN).

Contexte

Alors que HTTP est trop lourd pour la plupart des capteurs et actuateurs IoT, MQTT et CoAP offrent des échanges efficaces avec un overhead minimal. La certification CCST attend du candidat qu'il comprenne le rôle de ces protocoles dans l'écosystème IoT et leurs différences fondamentales.

Détails techniques

MQTT — architecture publish/subscribe

Capteurs ──publish──▶ BROKER MQTT ──deliver──▶ Abonnés (dashboard, backend)
                      (Mosquitto,              (filtrage par topic)
                       HiveMQ, AWS IoT Core)
Concept Description
Broker Serveur central qui reçoit les messages et les distribue aux abonnés
Topic Chemin hiérarchique de publication (ex : usine/ligne1/temperature)
QoS 0 At most once — fire-and-forget, aucune garantie
QoS 1 At least once — le broker acquitte ; doublon possible
QoS 2 Exactly once — handshake en 4 étapes, le plus fiable mais le plus lent
Retained message Le broker garde le dernier message d'un topic pour les nouveaux abonnés
Last Will & Testament Message envoyé automatiquement si un client se déconnecte anormalement
  • Port par défaut : 1883 (non chiffré), 8883 (MQTT over TLS).
  • Overhead : en-tête fixe de seulement 2 octets (vs ~700 octets pour HTTP).

CoAP — architecture requête/réponse

Propriété Détail
Transport UDP (port 5683), DTLS pour chiffrement (port 5684)
Méthodes GET, PUT, POST, DELETE (similaires à HTTP)
En-tête 4 octets fixes
Mode Observe Le client s'abonne à une ressource ; le serveur pousse les mises à jour (équivalent simpliste de pub/sub)
Découverte /.well-known/core expose les ressources disponibles au format CoRE Link Format

MQTT vs CoAP

Critère MQTT CoAP
Modèle Publish/Subscribe Requête/Réponse (+ Observe)
Transport TCP UDP
Sécurité TLS DTLS
Broker requis Oui Non (point-à-point)
Overhead ~2 octets ~4 octets
Cas d'usage idéal Télémétrie vers cloud, many-to-many Communication M2M locale, découverte de services
Fiabilité QoS 0/1/2 Confirmable / Non-confirmable

Autres protocoles IoT notables

Protocole Caractéristique
AMQP File d'attente de messages ; plus lourd que MQTT, utilisé en entreprise
HTTP/REST Compatible partout mais lourd pour l'IoT
Bluetooth LE Courte portée, très basse consommation
Zigbee / Z-Wave Réseaux mesh domotiques, basse puissance
LoRaWAN Longue portée (km), très bas débit, idéal pour les capteurs extérieurs

Exemple concret

Scénario : une serre intelligente surveille 200 capteurs (température, humidité, luminosité, CO₂).

  1. Chaque capteur publie ses mesures toutes les 30 secondes sur un topic MQTT (serre/zone-A/temperature, serre/zone-B/humidite…) avec QoS 1 pour garantir la livraison.
  2. Un broker Mosquitto local reçoit tous les messages et les redistribue :
    • Un dashboard Grafana s'abonne à serre/# pour l'affichage en temps réel.
    • Un service d'alerte s'abonne à serre/+/temperature et déclenche une alarme si T > 35 °C.
  3. Les actuateurs (vannes d'arrosage) utilisent CoAP en mode Observe : ils exposent une ressource /valve/state que le contrôleur surveille et commande via PUT.
  4. Toutes les communications MQTT sont chiffrées via TLS (port 8883) ; les échanges CoAP locaux utilisent DTLS.