Übungsblatt 3 Lösung


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.