20150331 U4: ABP mit SPIN/Promela - Informatik

Universität Basel
Departement Mathematik
und Informatik
Dozenten
Christian Tschudin
Internet-Technologien
CS262
christian.tschudin@unibas.ch
FS2015
Übungsblatt 4
Assistenten
Christopher Scherb
Urs Schnurrenberger
christopher.scherb@unibas.ch
urs.schnurrenberger@unibas.ch
Tutoren
Maarten Schenk
Ausgegeben am
31.03.2015
maarten.schenk@unibas.ch
Rückgabe bis
21.04.2015
auf http://courses.cs.unibas.ch
Anforderungen
Die Lösungen müssen wie immer in der Übungsstunde vorgeführt und erklärt werden. Auch
diesmal wird die Lösung als PDF- oder Textatei und die Quelldateien erwartet.
Aufgabe 1 – Alternating-Bit Protocol (6 Punkte)
Ziel dieser Übung ist es, ein reliable data transfer protocol, auch bekannt als alternating-bit
protocol mit Hilfe von Promela zu modellieren. Der Zustandsautomat des alternating-bit protocol
ist weiter unten gegeben. Diese Aufgabe baut auf dem rdt 3.0 Beispiel in Kapitel 3.4 aus
dem in der Vorlesung referenzierten Buch auf. Allerdings unterscheidet sich der hier gegebene
Zustandsautomat von dem im Buch. Wir nehmen an, dass Pakete nicht korrupiert werden
können, packet-loss kann aber weitherhin vorkommen. Ausserdem ist die Anwendungsschicht
immer bereit, Pakete zu senden und zu empfangen. Das rdt 1.0 Protokoll wurde bereits in der
Vorlesung besprochen und auf der CS262 Website könnt ihr ein paar Beispiele runterladen. Von
dieser Basis ausgehend sollten Sie das alternating-bit protocol implementieren.
Details
• Implementieren Sie das alternating-bit protocol basierend auf der vorgegebenen Zustandsmaschine.
• Die Anwendungsschicht sendet und empfängt Daten, die mit modulo MAXSEQ,
MAXSEQ=16 numeriert werden.
• Wenn keine andere Aktion mehr möglich ist, soll ein timeout ausgelöst werden.
• Benutzen Sie SPIN, um die Korrekheit ihrer Spezifikation zu überprüfen. Erklären Sie,
wie Sie die Korrektheit ihrer Spezifikation überprüft haben (da Ihr Code noch getestet
wird, erläutern Sie bitte, was ein Tester tun sollte, um Ihre Spez ifikation zu validieren).
Der Zustandsautomat (ZA)
• Ein Pfeil im ZA repräsentiert eine Transition. Das Ereignis, das die Transition auslöst,
steht oberhalb des Pfeils, die korrespondierende Aktion unterhalb.
Universität Basel
Departement Mathematik
und Informatik
Internet-Technologien
CS262
FS2015
Übungsblatt 4
Figure 1: Alternating bit protocol Zustandsautomat.
• Die Funktionen get_data und deliver_data werden zur Kommunikation mit der Anwendungsschicht verwendet.
• Die Funktionen pkt_send und pkt_rcv werden für den Datenaustausch mit dem Übertragungskanal verwendet.