Internetkommunikation entlang der Schichten

In diesem Kurs werden Lösungen für die Kommunikation im Internet entwickelt. Dabei werden alle Aspekte des Ökosystems Internet berücksichtigt. Dies schließt sowohl das aktuelle Internet als auch das Internet der Dinge auf den untersten Schichten bis zur Anwendungsebene ein. Die Teilnehmer werden in Kleingruppen (3-4 Studenten) arbeiten, wobei sich jede Gruppe auf einen speziellen Teilbereich konzentrieren wird. Auf diese Weise sollen persönliche Interessen und Expertisen berücksichtigt werden - z.B. Web- versus Embedded-System-Programmierung.

Hinweis: Die Ergebnisse dieses Softwareprojekts wollen wir nutzen, um die alten Supercomputer (die PDP 11 und der russische Nachbau) im Eingangsbereich des Institutsgebäudes 'aufzufrischen'. Wir werden beide Computer durch netzwerkfähige Geräte, Sensoren, Bildschirme und die im Projekt entstandene Software erweitern, a) um das Internet der Dinge zu demonstrieren und b) um Einblicke in den aktuellen Stand des Internet-Backbone zu geben.

Einige Punkte, die wir in der ersten Sitzung klären werden:

Embedded/IoT-Programmierung

Sie entwickeln Anwendungen für eingebettete Geräte. Basissoftware ist das Open-Source-Betriebssystem RIOT.

Internet-Backbone-Messungen

Sie entwickeln Anwendungen, die Live-BGP-Daten verarbeiten und prüfen, ob ein Angriff durchgeführt wird. Die Basissoftware ist die RTRlib und BGPMON/BGPStream.

Web-Schnittstelle

Sie entwickeln eine Schnittstelle, die den Status der Supercomputer externen Teilnehmern über einen Web-Client darstellt. Ihr Web-Frontend sollte für mobile Geräte geeignet sein.

Bei weiteren Fragen wenden Sie sich bitte an Matthias Wählisch.


Literatur

  • A. S. Tanenbaum, Modern Operating Systems, 3rd ed. Upper Saddle River, NJ, USA: Prentice Hall Press, 2007.
  • Shelby, Zach, and Carsten Bormann. 6LoWPAN: The wireless embedded Internet. Vol. 43. Wiley. com, 2011.
  • A. Dunkels, B. Gronvall, and T. Voigt, "Contiki - a lightweight and flexible operating system for tiny networked sensors." in LCN. IEEE Computer Society, 2004, pp. 455-462.
  • P. Levis, S. Madden, J. Polastre, R. Szewczyk, K. Whitehouse, A. Woo, D. Gay, J. Hill, M. Welsh, E. Brewer, and D. Culler, "TinyOS: An Operating System for Sensor Networks," in Ambient Intelligence, W. Weber, J. M. Rabaey, and E. Aarts, Eds. Berlin/Heidelberg: Springer-Verlag, 2005, ch. 7, pp. 115-148.
  • Oliver Hahm, Emmanuel Baccelli, Mesut Günes, Matthias Wählisch, Thomas C. Schmidt, "RIOT OS: Towards an OS for the Internet of Things," in Proceedings of the 32nd IEEE International Conference on Computer Communications (INFOCOM), Poster Session, April 2013.
  • M.R. Palattella, N. Accettura, X. Vilajosana, T. Watteyne, L.A. Grieco, G. Boggia and M. Dohler, "Standardized Protocol Stack For The Internet Of (Important) Things", IEEE Communications Surveys and Tutorials, December 2012.
  • J. Wiegelmann, Softwareentwicklung in C für Mikroprozessoren und Mikrocontroller, Hüthig, 2009

Zusätzliche Informationen

In this course you will be expected to write code. The outcome of your software project should be a concrete contribution to the RIOT code base, and take the shape of one or more pull request(s) to the RIOT github (https://github.com/RIOT-OS/RIOT). Before you start coding, refer to the starting guide

https://github.com/RIOT-OS/RIOT/wiki#wiki-start-the-riot