CoAP – Das zukünftige Standard-Protokoll für das Internet of Things?

19.09.2016

Das Internet of Things (IoT) gewinnt aktuell zunehmend an Popularität, womit auch ein massiver Anstieg an verbundenen Geräten einhergeht. Diese Geräte nutzen momentan verschiedenste Protokolle für die Kommunikation untereinander oder für den Austausch von Daten mit einer zentralen IoT-Plattform. Insbesondere leistungsschwache oder beispielsweise über Mobilfunk angebundene IoT-Devices haben jedoch spezielle Anforderungen an die zum Einsatz kommenden Kommunikationsprotokolle. Dazu zählen z.B. ein geringer Overhead durch das Protokoll, standardisierte Verschlüsselung oder verschiedene Quality of Service Level.

Da es Stand heute noch keinen etablierten Standard für IoT-Devices gibt, stellt sich bei der Entwicklung eines neuen Geräts also die Frage, welches Protokoll das geeignetste ist. Dafür stehen verschiedene teils alte, teils noch junge Protokolle zur Auswahl. Einige Namen, die in letzter Zeit immer wieder in einschlägigen Fachzeitschriften und Blogs genannt werden, sind z.B. MQTT, AMQP aber auch das „Constrained Application Protocol“ (CoAP).

Constrained Application Protokoll im Detail

CoAP ist ein relativ neues Protokoll das im Juni 2014 von der Internet Engineering Task Force (IETF) als Standard veröffentlicht wurde und nach wie vor aktiv weiter entwickelt wird [1]. Im RFC wird CoAP als ein auf ressourcenbeschränkte Geräte und auf Netzwerke mit besonders geringen Übertragungs- und hohen Verlustraten spezialisiertes Protokoll beschrieben. Es wurde für den Einsatz im „Machine to Machine (M2M)“ Umfeld designed und orientiert sich grundsätzlich an HTTP in Verbindung mit den RESTful –Grundsätzen. Die Grundidee dahinter war, die guten Ansätze von HTTP zu übernehmen und dabei alle Nachteile in Bezug auf die neuen Zielumgebungen auszumerzen.

Die im RFC genannten Kernfeatures sind:

  • „Request/Response“ Kommunikationsmodell
  • „Out of the Box“ Service und Resource Discovery
  • Multicast Support
  • Geringer Protokoll-Overhead
  • Einfache Architektur für Umgebungen mit Beschränkungen (IoT Umfeld)

Darüber hinaus zeichnet sich CoAP durch weitere Besonderheiten aus. Beispielsweise basiert CoAP auf dem User Datagram Protocol (UDP) und setzt für die Transportverschlüsselung auf DTLS anstatt auf TLS/SSL. Außerdem ist in der Spezifikation eine Observe Funktionalität vorgesehen, die es Clients ermöglicht, einen Benachrichtigungswunsch über Änderungen einzelner Ressourcen beim Server (üblicherweise das IoT-Device) zu hinterlegen. Dadurch entfallen unnötig häufige Polling-Anfragen durch den Client.

Ein weiteres Argument, das für den Einsatz von CoAP spricht, ist die Design bedingte Kompatibilität zu HTTP. Viele CoAP Implementierungen bringen bereits fertige Proxys mit, mittels derer zwischen einem CoAP-Server und einem HTTP-Client oder umgekehrt kommuniziert werden kann. Dadurch lassen sich beispielsweise mit relativ geringem Aufwand IoT-Devices, die CoAP unterstützen, an bestehende Plattformen mit Rest-Schnittstellen anbinden.
Einige der dabei möglichen Konstellationen kann man der folgenden Grafik entnehmen:

doubleSlash: CoAP im Einsatz für das Internet of Things (IoT)

Aufgrund der vielen genannten Vorteile hat CoAP durchaus das Potential eine hohe Verbreitung im IoT Umfeld zu erreichen. Ob es sich als inoffizieller Standard gegenüber den anderen erwähnten Protokollen durchsetzt, wird die Zukunft zeigen. Dies hängt jedoch auch stark von der Weiterentwicklung des Protokolls und der Verfügbarkeit von ausgereiften Implementierungen ab. Eine Implementierung die bereits einen sehr guten Stand erreicht hat ist Eclipse Californium [2]. Aus diesem Projekt ist sowohl eine Server als auch eine Client Implementierung für Java entstanden. Außerdem wird dort auch eine Bibliothek entwickelt die die Verwendung von DTLS ermöglicht.

CoAP und ThingWorx

Um die Verbreitung und die Etablierung von CoAP zu unterstützen, wurde bei doubleSlash eine CoAP-Extension für ThingWorx [3] entwickelt und veröffentlicht [4]. Damit lassen sich CoAP-Geräte direkt in die Plattform einbinden, wodurch der Einsatz eines Proxys entfällt und die Verwaltung der Geräte in der Plattform vereinfacht wird.


Quellen:
[1] https://tools.ietf.org/html/rfc7252
[2] http://www.eclipse.org/californium/
[3] https://www.thingworx.com/
[4] https://marketplace.thingworx.com/tools/coap-extension

Mehr zu IoT-Services und Connected Products erfahren Sie hier

 

Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*Pflichtfelder

*