CoAP (constrained application protocol)

Constrained Application Protocol (CoAP) ist ein von der Internet Engineering Task Force (IETF) entwickeltes Web-Transfer-Protocol für das Internet of Things (IoT) oder für die M2M-Kommunikation. Es basiert auf Representational State Transfer (REST), dem Architekturmodell für Webservices, bei dem Ressourcen von Servern durch einen Anwendungsprozess kontrolliert und über die Uniform Resource Identifiers (URI) identifiziert werden.


Das CoAP-Protokoll ist ein rein binäres Protokoll und nicht im ASCII-Zeichensatz darstellbar. Es wurde für einfache Anwendungen konzipiert und ist über zwei Schichten organisiert: Dem Transport Layer und dem Transaction Layer. Ein wesentlicher Unterschied zwischen HTTP und CoAP liegt in der Transportschicht, auf der beide Protokolle aufsetzen. Während das HTTP-Protokoll das Transmission Control Protocol (TCP) benutzt, das für Low Power and Lossy Networks (LLN) relativ ungeeignet ist weil der Overhead für deterministische Transaktionen zu groß ist, arbeitet das CoAP-Protokoll mit dem User Datagram Protocol (UDP), das einen wesentlich kleineren Overhead hat.

Einbettung des CoAP-Protokolls mit UDP und 6LoWPAN

Einbettung des CoAP-Protokolls mit UDP und 6LoWPAN

Über den Transaction Layer wird der Nachrichtenaustausch zwischen den Endpunkten durchgeführt. Dabei wird zwischen vier Nachrichtentypen unterschieden: Confirmables, das sind zu bestätigende Nachrichten, Non-Confirmables, das sind nicht zu bestätigende Nachrichten, Acknowledgement, das ist die Bestätigung einer zu bestätigenden Nachricht, und Reset zeigt an, dass eine Confirmable-Nachricht empfangen wurde aber nicht weiter verarbeitet werden kann.

Das CoAP-Protokoll wird u.a. auch als Anwendungsprotokoll in Lightweight M2M (LWM2M), in Lemonbeat und in IoTivity eingesetzt.

Informationen zum Artikel
Deutsch: CoAP-Protokoll
Englisch: constrained application protocol - CoAP
Veröffentlicht: 05.07.2016
Wörter: 241
Tags: #Internet-Konzepte
Links: Anwendungsprozess, Apps, ASCII-Zeichensatz, CONF (confirmation), HTTP (hypertext transfer protocol)