iX 4/2023
S. 102
Wissen
Kurz erklärt

CoAP: REST-APIs für das IoT

Geräte im IoT haben oft nur geringe Kapazitäten für den Datenaustausch. Mit CoAP hat die IETF ein Netzwerkprotokoll für die speziellen Anforderungen entwickelt.

Von Martine Lenders

Wer eine App für einen Webdienst implementiert oder den eigenen Dienst durch Third-Party-Apps ansprechbar machen möchte, kommt kaum um REST-APIs herum. Klassischerweise greift man damit mithilfe von HTTP-Methoden und definierten URLs auf einen Dienst zu, um strukturierte Daten wie JSON-Objekte zu erhalten oder die Gegenstelle zu steuern. Im ressourcenschwachen IoT stoßen herkömmliche REST-APIs allerdings schnell an ihre Grenzen. Denn die Vorteile von HTTP und damit TCP – Zuverlässigkeit, geordnete Zustellung und Staukontrolle – nehmen auf die Ressourcen der schwächeren Geräte keine Rücksicht. Zwar gibt es Gateways, die Protokolle wie Zigbee, Bluetooth Low Energy oder LoRaWAN zu mächtigeren Protokollen wie MQTT übersetzen, aber das sind keine Schnittstellen, die das Gerät direkt ansteuern. Die elegantere Lösung, um ressourcenschwache Geräte anzusprechen, ist das speziell auf das IoT zugeschnittene Transferprotokoll CoAP (Constrained Application Protocol).

Minimales UDP

Anders als HTTP setzt CoAP auf UDP, also Datagramm-basierte Kommunikation ohne Zuverlässigkeit, geordnete Zustellung oder Staukontrolle, und verwendet ausschließlich binäre, also nicht menschenlesbare Paketheader. Das hat zwei Vorteile: Zum einen muss das Gerät im Vergleich zu TCP weniger Zustände verwalten, zum anderen lassen sich die Header erheblich reduzieren. So werden beispielsweise die aus HTTP bekannten Abfragemethoden und Antwortcodes in CoAP in einem nur 8 Bit großen Code ausgedrückt: 3 Bits für die Klasse und 5 Bits für mehr Details. GET wird hier zu 000|00001 (oder menschenlesbar 0.01) und der berühmte Fehler 404 zu 100|00100 (4.04).

Kommentieren