CoAP Implementierung für die TriSOS-Sensorknoten

Status: abgeschlossen
Betreuer: Horst Hellbrück , Torsten Teubler
Student: Jonas Friehold

Themengebiet

Das Constrained Application Protocol (CoAP) ist ein leichtgewichtiges Pendant zu HTTP. Im Gegensatz zu HTTP ist CoAP kein ASCII basiertes Protokoll sondern ein binäres. CoAP wird daher auch nicht zur Darstellung von Webinhalten eingesetzt sondern mehr im Umfeld von REST (Representational State Transfer). REST ist eine Technik für leichtgewichtige Web Services. Im Internet wird REST zurzeit mit HTTP realisiert. Der Zustand der Kommunikation oder des Web Service wird, wie bei HTTP üblich, dabei nicht gespeichert, sondern lässt sich komplett aus den Nachrichten wieder herstellen. Im Bereich der Drahtlosen Sensorsysteme ist HTTP als ASCII Protokoll ungeeignet, da die Rahmengröße von IEEE 802.15.4, dem Funkstandard von Drahtlosen Sensorsystemen, nur 127 Byte beträgt. CoAP ist neben „komprimiertem HTTP“ auch ein Transportprotokoll, da es Mechanismen für Zuverlässigkeit der Übertragung bereitstellt. Somit kann CoAP beispielsweise auch über UDP oder vergleichbar unzuverlässigen Protokollen eingesetzt werden. Typische CoAP Web Services, die auf Drahtlosen Sensorsystemen realisiert werden sind die Abfrage nach Sensorwerten.

Details

CoAP ist ein recht neues Protokoll und noch immer in der Standardisierungsphase. Nichtsdestotrotz gibt es schon Implementierungen. Eine dieser Implementierungen findet sich im Contiki Betriebssystem für Drahtlose Sensorsysteme (http://www.contiki-os.org). Hier wird sie zusammen mit dem uIP Stapel als Transportprotokoll und 6LoWPAN als IPv6 Übertragungsmechanismus über IEEE 802.15.4 eingesetzt. Da CoAP recht flexibel ist, was das Transportprotokoll angeht sollte in der Arbeit CoAP über AutoCast, einem best-effort Datenverteilungsprotokoll, realisiert werden. Eine AutoCast Implementierung für die TriSOS Knoten ist bereits vorhanden. Sie ist in der generischen Algorithmen Bibliothek Wiselib (https://github.com/ibr-alg/wiselib/wiki/) implementiert. In der Arbeit soll eine vorhandene Implementierung von CoAP auf unsere TriSOS Knoten portiert werden, so dass diese mit der AutoCast Implementierung zusammenarbeitet. Hier bietet sich vielleicht eine Portierung in die Wiselib an.

Aufgaben

  • Auswahl einer geeigneten CoAP Implementierung
  • Portierung einer CoAP Implementierung auf die TriSOS Knoten/Wiselib, mit AutoCast als Transportprotokoll
  • Evaluation der Implementierung, beispielsweise mit einer existierenden CoAP Implementierung auf der PC Seite zusammen mit Web Service Anwendung für die TriSOS Sensorknoten

Voraussetzungen

  • Solide Kenntnisse in C/C++ sowie C++ Template Programmierung
  • Bereitschaft und Eignung sich in neue Themengebiete einarbeiten zu können
  • Beherrschung der englischen Sprache da ein Teil der Dokumentation in Englisch vorliegt.