Übungsblatt 3 Lösung


Besprechung am 19.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 über Funkverbindungen - alte Klausuraufgabe)

Gegeben sei ein Netzwerk bei dem die Verbindung vom letzten Router bis zum Endgerät über eine
Funkverbindung läuft. Funkverbindungen habe die spezielle Eigenschaft, dass Pakete häufig wegen
Funkproblemen (Interferenzen) verloren gehen. In diesem Netz soll TCP verwendet werden.
Welches Problem ergibt sich daraus für TCP? Können Sie sich eine Lösungsmöglichkeit für dieses
Problem vorstellen?

Lösung:

Das Problem ist hier, dass TCP Paketverluste als Signal für Congestion betrachtet, da es nicht für Netze
konstruiert ist, in denen Pakete aus anderen Gr"unden verloren gehen. Damit wird die TCP congestion control
auf den Paketverlust reagieren und die Senderate entsprechend der Anzahl der Paketverluste drosseln, obwohl
dies nicht sinnvoll ist.
Eine mögliche Lösung besteht darin auf Schicht 2 Übertragungswiederholungen durchzuführen, so dass TCP
von dem eigentlichen Problem nichts mitbekommt.

Aufgabe 5 (DNS - alte Klausuraufgabe)

a) DNS Anfrage

Sie wollen die IP-Adresse von www.cs.berkeley.edu von der Uni Mannheim aus in
Erfahrung bringen. Gegeben seien die folgenden Systeme (alle rein fiktiv!):
 
 


dns.edu hat einen gültigen Cache Eintrag für www.cs.berkeley.edu. Beschreiben Sie den Ablauf der Anfrage. Geben sie
für jede DNS Nachricht die folgenden Informationen an: Sender, Empfänger, DNS Questions
(wenn nicht leer, name reicht), DNS Answers, DNS Authority und DNS Additional Information
(wenn nicht leer, name + resource data reichen). Denken Sie daran, daß DNS Answers nur für
die Abbildung von dem gewünschten Namen auf eine IP-Adresse verwedet werden. Für die Mitteilung
über den Zuständigen DNS Server werden die anderen beiden Primitive verwendet. Gehen sie davon
aus, daß die Entscheidung ob rekursiv oder iterativ vorgegangen wird von jedem DNS Server
entsprechend den üblichen Konventionen getroffen wird.

Lösung:
 

b) DNS Server Verhalten
Welche DNS Server lassen typischerweise rekursive Anfragen zu? Warum ist dies sinnvoll?
Welche DNS Server lassen typischerweise keine rekursiven Anfragen zu? Warum ist dies
ebenfalls sinnvoll? (Für die Beantwortung jeder Frage reicht jeweils ein Satz!)

Lösung:

In der Regel lassen alle DNS Server, die keine Root server sind, rekursive
Anfragen zu. Dies ist sinnvoll, da sie die Antworten cachen und an
spätere Anfrager weitergeben können. Root server lassen keine
rekusiven Anfragen zu, da sie zu stark belastet sind um auch noch
Zustandsinformationen zu speichern.

Aufgabe 6 (DNS):

Welche Resource Record Typen (IPv4) kennen Sie? Wozu werden sie verwendet?

Lösung:

Typ A: Abbildung von DNS Namen auf IP Adressen
Typ PTR: Abbildung von IP Adressen auf DNS Namen
Typ CNAME: Abbildung von DNS Namen auf andere DNS Namen (als Alias)
Typ MX: Abbildung von Mailserver Namen auf DNS Namen