RFC 7252 - The Constrained Application Protocol (CoAP)
Veröffentlicht: Juni 2014
Status: Standards Track
Autoren: Z. Shelby, K. Hartke, C. Bormann
Zusammenfassung (Abstract)
Das Constrained Application Protocol (CoAP) ist ein spezialisiertes Web-Übertragungsprotokoll für die Verwendung mit eingeschränkten Knoten und eingeschränkten (z.B. stromsparenden, verlustbehafteten) Netzwerken. Die Knoten verfügen oft über 8-Bit-Mikrocontroller mit geringen ROM- und RAM-Mengen, während eingeschränkte Netzwerke wie IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) häufig hohe Paketfehlerraten und typische Durchsätze von zehn kbit/s aufweisen. Das Protokoll ist für Machine-to-Machine (M2M)-Anwendungen wie intelligente Energie und Gebäudeautomation konzipiert.
CoAP bietet ein Request/Response-Interaktionsmodell zwischen Anwendungsendpunkten, unterstützt die integrierte Entdeckung von Diensten und Ressourcen und umfasst Schlüsselkonzepte des Webs wie URIs und Internet-Medientypen. CoAP ist so konzipiert, dass es leicht mit HTTP für die Integration ins Web verbunden werden kann und gleichzeitig spezialisierte Anforderungen wie Multicast-Unterstützung, sehr geringer Overhead und Einfachheit für eingeschränkte Umgebungen erfüllt.
Inhalt (Contents)
- 1. Introduction (Einführung)
- 1.1 Features (Funktionen)
- 1.2 Terminology (Terminologie)
- 2. Constrained Application Protocol (Eingeschränktes Anwendungsprotokoll)
- 2.1 Messaging Model (Nachrichtenmodell)
- 2.2 Request/Response Model (Anfrage/Antwort-Modell)
- 2.3 Intermediaries and Caching (Vermittler und Zwischenspeicherung)
- 2.4 Resource Discovery (Ressourcenentdeckung)
- 3. Message Format (Nachrichtenformat)
- 3.1 Option Format (Optionsformat)
- 3.2 Option Value Formats (Optionswertformate)
- 4. Message Transmission (Nachrichtenübertragung)
- 4.1 Messages and Endpoints (Nachrichten und Endpunkte)
- 4.2 Messages Transmitted Reliably (Zuverlässig übertragene Nachrichten)
- 4.3 Messages Transmitted without Reliability (Nicht zuverlässig übertragene Nachrichten)
- 4.4 Message Correlation (Nachrichtenkorrelation)
- 4.5 Message Deduplication (Nachrichtendeduplizierung)
- 4.6 Message Size (Nachrichtengröße)
- 4.7 Congestion Control (Staukontrolle)
- 4.8 Transmission Parameters (Übertragungsparameter)
- 5. Request/Response Semantics (Anfrage/Antwort-Semantik)
- 5.1 Requests (Anfragen)
- 5.2 Responses (Antworten)
- 5.3 Request/Response Matching (Anfrage/Antwort-Zuordnung)
- 5.4 Options (Optionen)
- 5.5 Payloads and Representations (Nutzdaten und Darstellungen)
- 5.6 Caching (Zwischenspeicherung)
- 5.7 Proxying (Proxy-Funktion)
- 5.8 Method Definitions (Methodendefinitionen)
- 5.9 Response Code Definitions (Antwortcode-Definitionen)
- 5.10 Option Definitions (Optionsdefinitionen)
- 6. CoAP URIs
- 6.1 coap URI Scheme (coap URI-Schema)
- 6.2 coaps URI Scheme (coaps URI-Schema)
- 6.3 Normalization and Comparison Rules (Normalisierungs- und Vergleichsregeln)
- 6.4 Decomposing URIs into Options (Zerlegen von URIs in Optionen)
- 6.5 Composing URIs from Options (Zusammensetzen von URIs aus Optionen)
- 7. Discovery (Entdeckung)
- 7.1 Service Discovery (Dienstentdeckung)
- 7.2 Resource Discovery (Ressourcenentdeckung)
- 8. Multicast CoAP
- 8.1 Messaging Layer (Nachrichtenschicht)
- 8.2 Request/Response Layer (Anfrage/Antwort-Schicht)
- 9. Securing CoAP (CoAP-Sicherheit)
- 9.1 DTLS-Secured CoAP (DTLS-gesichertes CoAP)
- 10. Cross-Protocol Proxying (Protokollübergreifendes Proxy)
- 10.1 CoAP-HTTP Proxying
- 10.2 HTTP-CoAP Proxying
- 11. Security Considerations (Sicherheitserwägungen)
- 12. IANA Considerations (IANA-Erwägungen)
- 13. Acknowledgements (Danksagungen)
- 14. References (Referenzen)
Verwandte Ressourcen
- Offizieller Text: RFC 7252
- Offizielle Seite: RFC 7252 DataTracker
- Errata: RFC Editor Errata
Schnellreferenz
Was ist CoAP?
CoAP (Constrained Application Protocol) ist ein spezialisiertes Webprotokoll, das für Internet der Dinge (IoT)-Geräte und eingeschränkte Umgebungen entwickelt wurde.
Hauptmerkmale
- ✅ Leichtgewichtig - Geeignet für ressourcenbeschränkte Geräte
- ✅ UDP-basiert - Verwendet UDP-Transport mit optionaler DTLS-Sicherheit
- ✅ RESTful - HTTP-ähnliches Anfrage/Antwort-Modell
- ✅ Beobachtbare Ressourcen - Unterstützt Publish/Subscribe-Muster
- ✅ Integrierte Entdeckung - Ressourcen- und Dienstentdeckungsmechanismen
- ✅ Multicast-Unterstützung - Effiziente Geräteentdeckung
CoAP vs HTTP
| Merkmal | HTTP | CoAP |
|---|---|---|
| Transport | TCP | UDP |
| Header-Overhead | Groß (hunderte Bytes) | Klein (4-Byte fest) |
| Methoden | GET/POST/PUT/DELETE... | GET/POST/PUT/DELETE |
| Antwortcodes | 3-stellig | 2-stellig |
| Caching | Unterstützt | Unterstützt |
| Proxying | Unterstützt | Unterstützt |
| Sicherheit | TLS | DTLS |
| Anwendungsfälle | Webanwendungen | IoT-Geräte |
Anwendungsszenarien
- 🏠 Smart Home - Beleuchtung, Thermostate, Sensoren
- 🏭 Industrieautomation - Geräteüberwachung und -steuerung
- ⚡ Smart Grid - Energiemanagement
- 🏢 Gebäudeautomation - HVAC-, Beleuchtungssysteme
- 📡 Stromsparende Netzwerke - 6LoWPAN, LoRa, usw.