RFC 7252 - The Constrained Application Protocol (CoAP)
Date de publication: Juin 2014
Statut: Standards Track
Auteurs: Z. Shelby, K. Hartke, C. Bormann
Résumé (Abstract)
Le Constrained Application Protocol (CoAP) est un protocole de transfert Web spécialisé pour une utilisation avec des nœuds contraints et des réseaux contraints (par exemple, à faible consommation d'énergie, avec pertes). Les nœuds ont souvent des microcontrôleurs 8 bits avec de petites quantités de ROM et RAM, tandis que les réseaux contraints tels que IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) ont souvent des taux d'erreur de paquets élevés et un débit typique de dizaines de kbit/s. Le protocole est conçu pour les applications machine-to-machine (M2M) telles que l'énergie intelligente et l'automatisation des bâtiments.
CoAP fournit un modèle d'interaction requête/réponse entre les points de terminaison d'application, prend en charge la découverte intégrée des services et des ressources, et inclut des concepts clés du Web tels que les URI et les types de médias Internet. CoAP est conçu pour s'interfacer facilement avec HTTP pour l'intégration avec le Web tout en répondant à des exigences spécialisées telles que le support multicast, une surcharge très faible et la simplicité pour les environnements contraints.
Contenu (Contents)
- 1. Introduction
- 1.1 Features (Caractéristiques)
- 1.2 Terminology (Terminologie)
- 2. Constrained Application Protocol
- 2.1 Messaging Model (Modèle de messagerie)
- 2.2 Request/Response Model (Modèle requête/réponse)
- 2.3 Intermediaries and Caching (Intermédiaires et mise en cache)
- 2.4 Resource Discovery (Découverte de ressources)
- 3. Message Format (Format de message)
- 3.1 Option Format (Format d'option)
- 3.2 Option Value Formats (Formats de valeur d'option)
- 4. Message Transmission (Transmission de message)
- 4.1 Messages and Endpoints (Messages et points de terminaison)
- 4.2 Messages Transmitted Reliably (Messages transmis de manière fiable)
- 4.3 Messages Transmitted without Reliability (Messages transmis sans fiabilité)
- 4.4 Message Correlation (Corrélation de message)
- 4.5 Message Deduplication (Déduplication de message)
- 4.6 Message Size (Taille de message)
- 4.7 Congestion Control (Contrôle de congestion)
- 4.8 Transmission Parameters (Paramètres de transmission)
- 5. Request/Response Semantics (Sémantique requête/réponse)
- 5.1 Requests (Requêtes)
- 5.2 Responses (Réponses)
- 5.3 Request/Response Matching (Correspondance requête/réponse)
- 5.4 Options
- 5.5 Payloads and Representations (Charges utiles et représentations)
- 5.6 Caching (Mise en cache)
- 5.7 Proxying
- 5.8 Method Definitions (Définitions de méthode)
- 5.9 Response Code Definitions (Définitions de code de réponse)
- 5.10 Option Definitions (Définitions d'option)
- 6. CoAP URIs
- 6.1 coap URI Scheme (Schéma URI coap)
- 6.2 coaps URI Scheme (Schéma URI coaps)
- 6.3 Normalization and Comparison Rules (Règles de normalisation et comparaison)
- 6.4 Decomposing URIs into Options (Décomposition des URI en options)
- 6.5 Composing URIs from Options (Composition des URI à partir d'options)
- 7. Discovery (Découverte)
- 7.1 Service Discovery (Découverte de service)
- 7.2 Resource Discovery (Découverte de ressource)
- 8. Multicast CoAP
- 8.1 Messaging Layer (Couche de messagerie)
- 8.2 Request/Response Layer (Couche requête/réponse)
- 9. Securing CoAP (Sécurisation de CoAP)
- 9.1 DTLS-Secured CoAP
- 10. Cross-Protocol Proxying (Proxy inter-protocoles)
- 10.1 CoAP-HTTP Proxying
- 10.2 HTTP-CoAP Proxying
- 11. Security Considerations (Considérations de sécurité)
- 12. IANA Considerations (Considérations IANA)
- 13. Acknowledgements (Remerciements)
- 14. References (Références)
Ressources connexes
- Texte officiel: RFC 7252
- Page officielle: RFC 7252 DataTracker
- Errata: RFC Editor Errata
Référence rapide
Qu'est-ce que CoAP?
CoAP (Constrained Application Protocol) est un protocole Web spécialisé conçu pour les appareils Internet des objets (IoT) et les environnements contraints.
Caractéristiques clés
- ✅ Léger - Convient aux appareils à ressources limitées
- ✅ Basé sur UDP - Utilise le transport UDP avec sécurité DTLS optionnelle
- ✅ RESTful - Modèle requête/réponse de type HTTP
- ✅ Ressources observables - Supporte le modèle publication/abonnement
- ✅ Découverte intégrée - Mécanismes de découverte de ressources et services
- ✅ Support multicast - Découverte efficace des appareils
CoAP vs HTTP
| Caractéristique | HTTP | CoAP |
|---|---|---|
| Transport | TCP | UDP |
| Surcharge d'en-tête | Grande (centaines d'octets) | Petite (4 octets fixes) |
| Méthodes | GET/POST/PUT/DELETE... | GET/POST/PUT/DELETE |
| Codes de réponse | 3 chiffres | 2 chiffres |
| Mise en cache | Supportée | Supportée |
| Proxy | Supporté | Supporté |
| Sécurité | TLS | DTLS |
| Cas d'usage | Applications Web | Appareils IoT |
Scénarios d'application
- 🏠 Maison intelligente - Lumières, thermostats, capteurs
- 🏭 Automatisation industrielle - Surveillance et contrôle d'appareils
- ⚡ Réseau électrique intelligent - Gestion de l'énergie
- 🏢 Automatisation du bâtiment - Systèmes HVAC, éclairage
- 📡 Réseaux à faible consommation - 6LoWPAN, LoRa, etc.