Studiengänge

Informatik, Ingenieurinformatik, Wirtschaftsinformatik

(Es gibt keine Beschränkung auf einen Studiengang von unserer Seite. Wenn Ihnen ihr Prüfungsamt dieses Projektseminar anrechnet, dann sind Sie herzlich willkommen.)

Betreuer

M. Sc. David Schatz

Einschreibung, Termine und Ort

Sollte Interesse an der Teilnahme bestehen, melden Sie sich idealerweise bis zum 07.04.2020 (spätestens bis 20.04.2020) per Mail an David Schatz (david.schatz[at]tu-ilmenau.de).

Weiterhin wird es am 08.04.2020 um 17:00 eine kurze Einführungsveranstaltung per Videokonferenz geben (Details zur Einwahl werden den Interessenten persönlich mitgeteilt). In der Einführungsveranstaltung wird auf die Motivation sowie den Ablauf des Projektseminars eingegangen. Eine Teilnahme ist für den weiteren Verlauf des Seminars allerdings nicht zwingend. Die wichtigsten Details sind zudem auf dieser Seite zusammengefasst.

Die ersten Versuche (bis mindestens zum 03.05.2020) finden ebenfalls Remote statt, siehe Details zum Ablauf weiter unten.

Eine Verbindliche Einschreibung erfolgt ab dem 04.05.2020.

Inhalt

Simulation ist ein wichtiges Instrument bei dem Entwurf und der Bewertung von Kommunikationsprotokollen, da das Protokollverhalten und kritische Leistungskenngrößen oft nicht mit anderen Techniken vor einer großflächigen Einführung eines Protokolls adäquat bewertet werden können. In diesem Projektseminar sollen grundlegende Protokollmechanismen wie Paketweiterleitung, Routing, Fehlerkontrolle sowie Fluss- und Staukontrolle simulativ erprobt werden, so dass die wesentlichen im Internet zum Einsatz kommenden Konzepte anschaulich erfahren und experimentell untersucht werden können. Die Programierung erfolgt hierbei mit dem Open-Source-Werkzeug OMNeT++ in der Programmiersprache C++ (grundlegende Vorkenntnisse in Java sollten bei entsprechender Bereitschaft zum Erlernen von C++ ausreichend sein).

Empfehlung

Wir empfehlen Ihnen dieses Seminar frühestens im 2. FS durchzuführen, sodass Kenntnisse aus den Vorlesungen "Algorithmen und Programmierung" sowie "Telematik 1" (ein paralleles Besuchen erfüllt ebenfalls die Voraussetzungen) vorhanden sind. Falls Sie dieses Seminar ohne jegliche Grundkenntnisse in C++ durchführen so planen Sie bitte im Vorfeld mehr Zeit zur Bearbeitung der Aufgaben, sowie zum Erlernen der Programmiersprache ein. Die Vorbereitungszeit für jedes Seminar kann mit etwa einer Stunde angesetzt werden.

Zu Beginn des ersten Seminars sind Grundkenntnisse zur Simulationstechnik und der eingesetzten Werkzeuge unbedingt notwendig. Zur Aneignung dieser Kenntnisse soll das auf dieser Seite angegebene Selbststudienmaterial dienen. Für das erste Seminar ist das gesamte Material (ausgenommen Chapter 5: Obtaining Data) relevant. Zusätzlich ist es hilfreich die Vorlesung Telematik2/Leistungsbewertung gehört zu haben, da dort die Konzepte der Simulation und die im Projektseminar verwendeten Werkzeuge ausführlich behandelt werden.

Ablauf

Die Lösungen der Vorbereitungsaufgaben müssen jeweils einen Tag vor dem Labortermin (bis 24 Uhr) als PDF im  Moodle-Kurs abgegeben werden. Die Lösungen der praktischen Aufgaben werden vor Ort besprochen und sind ggf. nach Rücksprache ebenfalls im Moodle abzugeben.

Während den ersten Wochen sind die Vorbereitungsaufgaben jeweils bis Montag (24 Uhr) in der angegebenen Woche abzugeben. Für die Bearbeitung zu Hause sowie Rücksprachen mit dem Betreuer sind Dienstag - Donnerstag vorgesehen. Eine Abgabe der gelösten praktischen Aufgaben muss bis Donnerstag (24 Uhr) erfolgen. Nähere Details für die Kommunikation mit dem Betreuer werden mit den Teilnehmern vereinbart.

Arbeitsumgebung

Um die Materialien auszuchecken, benötigen Sie SVN Software auf Ihrem Rechner. Unter Debian/Ubuntu genügt dazu die Eingabe des Befehls "sudo apt-get install subversion" auf der Kommandozeile; hierfür benötigen Sie Administratorrechte. Unter OSX können Sie z.B. das Tool "svnX" benutzen (grafisch). Anschließend führen Sie in Ihrem Benutzerverzeichnis den folgenden Befehl aus:

svn co telsv3.prakinf.tu-ilmenau.de/svn/Projekte/protsim --username=svnuser

Die Zugangsdaten erhalten Sie von Ihrem Betreuer. Machen Sie sich mit dem Inhalt des herunter geladenen Ordners vertraut. Hier finden Sie auch die Aufgabenblätter in Deutsch und Englisch. Eine Dokumentation zu Subversion finden sie unter [SVN11].

Anleitung zur Installation als PDF: Deutsch English

Themen

PDF-File Inhalt Seminartermin
Projekt 1 Die Simulationsumgebung, Einstieg KW17, remote
Projekt 2 Forwarding, Shortest Path Routing, Metriken KW18, remote
Projekt 3 Random Routing, Backward Learning, Flooding 

KW19, remote

Projekt 4 Distance Vector Routing TBA
Projekt 5 Link State Routing, Dijkstra TBA
Projekt 6 FIFO-Queue, Messung statistischer Größen TBA
Projekt 7 Transientenerkennung, Konfidenzintervalle, TBA
Projekt 8 ARQ Send and Wait TBA
Projekt 9 Go Back N TBA
Projekt 10 Verbindungsauf- und -abbau TBA
Projekt 11 Zustandsmaschine und Go Back N, Flusskontrolle TBA
Projekt 12 Staukontrolle TBA
  Zusatztermine bei Bedarf

Sie können alle Versuche remote auf unseren PCs im Rechnerpool durchführen und müssen sich deshalb keine Software installieren um die Aufgaben zu bearbeiten.

Literatur

[Wolf09]
 Jürgen Wolf. C++ von A bis Z. 2009. Galileo Press
[WGG10]
 K. Wehrle, M. Günes, J. Gross. Modelling and Tools for Network Simulation. Springer Berlin Heidelberg, 1st Edition, 2010.
[SVN11]
 http://svnbook.red-bean.com/nightly/de/svn-book.pdf
[Tan10]
 A.S. Tanenbaum. Computer Networks. 5th edition, Prentice Hall, 2010.
Eines der meistgelesenen Standardlehrbücher zu Rechnernetzen.
[Var11]
 A. Varga. OMNeT++: Object-Oriented Discrete Event Simulator. http://www.omnetpp.org/
Die offizielle Web-Seite zu OMNeT++. Enthält Links zum Download der Software sowie des Referenzhandbuchs (User Manual, API Documentation).
 

Selbststudienmaterial

File Content Relevant for
01_Intro Simulation Introduction All projects
02_C++ Java to C++ Primer All projects, especially if you are new to C++
03_OMNeT++ Introduction to OMNeT++⁽¹⁾ All projects
04_Protsim Overview of the Protsim Framework All projects
05_ObtainingData Obtaining Data from Simulations & Short Probability Primer Projects 6 - 12
CppTutorial Java to C++ Transition Tutorial All projects, especially if you are new to C++
(1) Während die Grundkonzepte von OMNeT++ gleichbleiben, unterliegt die genaue Syntax (z.B. von *.ned und *.msg Dateien) Veränderungen. Daher wird die aktuellste Version der Dokumentation sowie der API das gesamte Projektseminar über Ihr Freund sein :)
 

Abschluss

Die erfolgreiche Teilnahme an der Lehrveranstaltung wird durch eine regelmäßige Abnahme der zu erstellenden Simulationsprogramme und abzugebenden Projektprotokolle erfolgen. Eine regelmäßige Teilnahme an der Veranstaltung ist hierfür eine notwendige Voraussetzung. Zu jedem Projektseminar gehört eine gründliche Vorbereitung und die Lösung der Vorbereitungsaufgaben. Wir behalten uns vor, dies durch mündliche Rücksprachen zu überprüfen.

Am Ende des Semesters wird es ein mündliche Prüfung geben, in dem die endgültige Note festgelegt wird, welche sich aus den Leistungen im Seminar und den Leistungen der Prüfung zusammensetzt (50/50).