Besprechung am 12.12.2000
Aufgabe 1 TCP Übersicht
Gegeben sei das folgende time-sequence Diagramm (die Größenangaben seien jeweils Vielfache von 1024 Byte):
a) Beschreiben Sie die Bedeutung der ersten 3 Segmente die hier ausgetauscht werden, gehen sie dabei auf alle Felder ein, die im time-sequence Diagramm aufgeführt sind.
Lösung:
A nach B: SYN, Sequ 1023, MSS 1024, win 4096: active open, initiale Sequenznummer von A soll 1023 sein, maximum segment size ist 1024 und das Fluß-Kontroll-Fenster ist 4096 groß.
B nach A: SYN, Sequ 0, Ack 1024, MSS 1024, win 8192: passive open, initiale Sequenznummer von B is 0, das SYN von A wird bestätigt, maximum segment size ist 1024 und das Fluß-Kontroll-Fenster ist 8192 groß.
A nach B: Sequ 1024, Ack 1, win 4096: dies bestätigt das SYN von B.
b) Nun möchte A 7(*1024) bytes übertragen und dann die Verbindung geordnet beenden. Annotieren sie die Grafik entsprechend. Verwenden sie dabei die gleiche Notation wie für die ersten 5 Segmente! Gehen Sie davon aus, daß B alle Daten sofort aus den Puffern entfernt. Vernachlässigen Sie mögliche Auswirkungen der Überlastkontrolle (congestion control).
Lösung:
B nach A: Sequ 1, Ack 3072, win 8192
A nach B: Sequ 3072, Ack 1, Data 1024, win 4096
A nach B: Sequ 4096, Ack 1, Data 1024, win 4096
B nach A: Sequ 1, Ack 3072, win 8192
A nach B: Sequ 5120, Ack 1, Data 1024, win 4096
B nach A: Sequ 1, Ack 3072, win 8192
A nach B: Sequ 6144, Ack 1, Data 1024, win 4096
B nach A: Sequ 1, Ack 3072, win 8192
A nach B: Sequ 7168, Ack 1, Data 1024, win 4096
B nach A: Sequ 1, Ack 3072, win 8192
A nach B: Sequ 3072, Ack 1, Data 1024, win 4096
B nach A: Sequ 1, Ack 8192, win 8192
A nach B: FIN, Sequ 8192, Ack 1, win 4096
B nach A: Sequ 1, Ack 8193, win 8192
B nach A: FIN, Sequ 1, Ack 8193, win 8192
A nach B: Sequ 8193, Ack 2, win 4096
c) Nehmen Sie an ssthresh sei initial auf 4 segmente gesetzt. Berechnen
sie das cwnd von A nach
erhalt des acks für die ersten beiden Datenpackete. Berücksichtigen
Sie dabei, daß das ack für den Verbindungsaufbau
wie ein "normales" ack behandelt wird. Warum kann sich der weitere
Ablauf nicht wie in der Abbildung dargestellt
entwickeln wenn A normale congestion control durchführt? Was würde
statt dessen passieren?
Lösung:
cwnd = 3 (start bei 1, +1 für das ack bei Verbindungsaufbau, +1 für das ack für Datenpackete 1 und 2)
Der Ablauf kann bei normaler congestion control nicht so stattfinden,
da A 7! Segmente überträgt, ohne,
daß eines davon von B bestätigt wird.
Mit congestion control (also in der Realität) würde A nach
dem 5. Datenpacket aufhören zu senden
(cwnd ist voll), dann würde A einen timeout für das 3. Datenpacket
erhalten und dessen Übertragung wiederholten.
Aufgabe 2 TCP Spezialfall
Gegeben sei das folgende time-sequence Diagramm:
a) Erklären Sie die Funktion der 4 Nachrichten, die Versandt werden, gehen sie dabei davon aus, daß die TCP Ports (Sender und Empfänger) immer mit 5000 angegeben sind.
Lösung:
SYN, Sequ 23: active open
SYN, Sequ 30: active open
SYN, Sequ 23, Ack 31: Bestätigung des Verbindungswunsches von
B
SYN, Sequ 30, Ack 24: Bestätigung des Verbindungswunsches von
A
b) Welche besondere Situation ist hier dargestellt?
Lösung:
Hier wollen beide Kommunikationsteilnehmer gleichzeitig eine Verbindung
aufbauen, beide führen ein active open durch. Dies resultiert in einer
TCP Verbindung.
Aufgabe 3 (TCP cwnd)
Gegeben sei das folgende Diagramm:
a) Geben Sie zu t=0 und zu den durch Punkte markierten Zeiten jeweils
die Werte für cwnd und ssthresh an, dabei hat jeder gepunktete Strich
die Einheit 1 (*1024 byte). In t=0 ist cwnd also z.B. 1. Wenn zu einem
Zeitpukt eine Unstetigkeit in dem Diagramm ist, geben Sie bitte beide Werte
an.
Lösung:
t=0: cwnd 1 ssthresh = 8
t=1: cwnd 8 ssthresh = 8
t=2: cwnd 12 ssthresh = 8 und cwnd = 6 ssthresh = 6
t=3: cwnd 8 ssthresh = 6 und cwnd = 1 ssthresh = 4
t=4: cwnd 4 ssthresh = 4
t=5: cwnd 7 ssthresh = 4
b) Was passiert jeweils zu den mit Punkten markierten Zeiten? Je Punkt ein Satz!
Lösung:
t=1: Übergang von slow start zu congestion avoidance.
t=2: Triple Duplicate Ack erkannt, dann congestion avoidance.
t=3: Timeout und retransmission, dann slow start.
t=4: Übergang von slow start zu congestion avoidance
t=5: nichts besonderes
Aufgabe 4 (TCP Implementierung)
Erweitern sie die TCP Beispielprogramme zu einem Chat Client/Server.
Dabei sollen sich an einen Server beliebig viele Clients anmelden können.
Jede Zeile, die von einem Client eigegeben wird, soll bei allen Clients
ausgegeben werden.