Versions du protocole MQTT
Les versions MQTT ne sont pas de simples libellés historiques. Elles déterminent le paquet CONNECT, la compatibilité broker, les diagnostics d'erreur, la durée de session, les métadonnées de message et l'observabilité. En pratique, il faut distinguer MQTT 3.1, MQTT 3.1.1, MQTT 5.0 et le protocole associé MQTT-SN. En mai 2026, le répertoire officiel OASIS liste MQTT 3.1.1 et MQTT 5.0 comme standards principaux, pas MQTT 5.1.
VersionStatutNiveauMeilleur usageConseil nouveau projet
MQTT 3.1Historique3Legacy, anciens brokers, compatibilité IBM initialeSeulement si le legacy l'impose
MQTT 3.1.1OASIS / ISO4Compatibilité IoT large, gateways, télémétrie légèreBase sûre de compatibilité
MQTT 5.0OASIS5Brokers modernes, cloud, multi-tenant, meilleurs diagnosticsPréféré pour le neuf
MQTT-SN 1.2Spécification associéeIndépendantRéseaux de capteurs, non TCP/IP, appareils contraintsSeulement si le réseau l'exige
MQTT 3.1 : version historique pour compatibilité legacy
MQTT 3.1 est la base pré-OASIS et contient déjà clients, brokers, CONNECT, PUBLISH, SUBSCRIBE, QoS, retained messages, will, keep alive et topic filters.
Son intérêt actuel est d'expliquer les anciens protocol names, les paquets CONNECT historiques et les modes de compatibilité broker.
Ne le ciblez pas pour un nouveau produit sauf firmware ou gateway non migrable.
Points à vérifier
- Vérifier que le broker accepte MQTT 3.1.
- Inspecter protocol name et protocol level dans CONNECT.
- Ne pas confondre négociation de version et panne réseau.
MQTT 3.1.1 : base de compatibilité pratique
MQTT 3.1.1 est la version standardisée la plus répandue dans les appareils IoT, gateways, brokers open source, services cloud et clients WebSocket.
Elle suffit si le besoin se limite à publish, subscribe, QoS, retain et last will.
Ses limites concernent les erreurs peu détaillées, l'absence de properties standard, la gestion plus faible des sessions, expirations, flow control et diagnostics disconnect.
Quand rester en 3.1.1
- SDKs ou modules sans MQTT 5.0.
- Modèle de messages simple.
- Compatibilité maximale prioritaire.
- Coût de mise à jour terrain élevé.
MQTT 5.0 : version moderne de référence
MQTT 5.0 conserve publish/subscribe et ajoute properties et reason codes à la connexion, publication, souscription, confirmations et déconnexion.
Les properties couvrent session expiry, message expiry, packet size, receive maximum, topic alias, response topic, correlation data, user properties et content type.
Les reason codes permettent de distinguer authentification, autorisation, taille de paquet, migration serveur et déconnexion administrative.
Capacités clés
- Reason codes précis.
- Properties pour métadonnées.
- Message Expiry contre les commandes obsolètes.
- Receive Maximum et Maximum Packet Size pour la protection.
- Response Topic et Correlation Data pour request-response.
MQTT-SN : protocole associé aux réseaux de capteurs
MQTT-SN ne remplace pas MQTT sur TCP. Il adapte publish/subscribe aux réseaux non TCP/IP et aux capteurs fortement contraints.
Il introduit souvent un gateway qui traduit adresses courtes et Topic IDs vers un broker MQTT classique.
Si TCP/TLS ou WebSocket fonctionne correctement, MQTT-SN est généralement inutile.
Choisir
- Cloud IoT et WebSocket : MQTT 3.1.1 ou 5.0.
- Non TCP/IP et appareils dormants : évaluer MQTT-SN.
- Connexion à un broker existant : concevoir le gateway avec soin.