Aufgabe 2 - TCP vs. UDP vs. TCP

Starten Sie ein xterm-Fenster auf allen 3 Hosts. Schauen wir zuerst, ob TCP es schafft die 10 Mbit/s zwischen zwei Hosts bei 40ms Rundlaufzeit zu nutzen. Sollte das nicht funktionieren, wäre das keine Gute Nachricht. Starten Sie einen iperf TCP-Server auf Host 1 (iperf -s &).

  1. Starten Sie einen iperf-Client auf Host 2, der sich mit dem Serverauf Host 1 verbindet und 20 Sekunden misst.
  2. Das sollte funktioniert haben. Jetzt starten wir einen zweiten iperf-Server auf Host 1 und zwar einen, der UDP nutzt anstelle von TCP (iperf -u -s &). Geben Sie auf Host 2 das Kommando ein, um einen UDP iperf-Client zu starten, der 20 Sekunden mit 5 Mbit/s sendet, aber geben Sie noch kein ein! Geben Sie das Kommando ein, um auf Host 3 einen iperf-Client mit TCP zu starten der ebenfalls 20 Sekunden sendet, aber geben Sie noch kein ein. Versuchen Sie jetzt beide möglichst zügig hintereinander zu starten. Wie wird die Bandbreite aufgeteilt und warum?
  3. Wiederholen Sie den Versuch in 3., aber der UDP iperf-Client soll nun mit 8 Mbit/s senden. Wie wird die Bandbreite aufgeteilt und warum?
  4. Wiederholen Sie den Versuch in 3., aber starten Sie von Host 2 und 3 jeweils einen TCP iperf-Client. Wie wird die Bandbreite aufgeteilt und warum? (hier müssen im virtuellen Netz und mit echten Implementierungen evtl. Abstriche gemacht werden, überlegen Sie wie die Bandbreite modellhaft aufgeteilt werden müsste)
  5. Wiederholen Sie den Versuch in 3., aber starten Sie von Host 2 und 3 jeweils einen TCP iperf-Client, wobei ein Client 4 parallele TCP-Verbindungen nutzen soll (Schalter -P 4). Wie wird die Bandbreite aufgeteilt und warum? (hier müssen im virtuellen Netz und mit echten Implementierungen evtl. Abstriche gemacht werden, überlegen Sie wie die Bandbreite modellhaft aufgeteilt werden müsste)
  6. Beenden Sie Mininet und starten Mininet neu mit der gleichen Topologie, allerdings fügen wir etwas Paketverlust hinzu (sudo mn --switch lxbr --topo single,3 --link tc,bw=10,max_queue_size=200,delay=10ms,loss=1). Starten Sie nun auf einem Host wieder einen iperf TCP-Server und testen Sie die Bandbreite von einem anderen Host zu diesem Server. Die Bandbreite sollte geringer sein, aber warum?
  7. Beenden Sie Mininet und starten Mininet neu mit der gleichen Topologie, allerdings reduzieren wir jetzt den delay (sudo mn --switch lxbr --topo single,3 --linktc,bw=10,max_queue_size=200,delay=1ms,loss=1). Starten Sie nun auf einem Host wieder einen iperf TCP-Server. Auf dem Host, auf dem der iperf-Client laufen soll, starten Sie Wireshark und die Aufzeichung der Pakete. Testen Sie anschliessend die Bandbreite von diesem Host zum Server. Die Bandbreite sollte wieder gestiegen sein, aber warum? Schauen Sie sich den Paketverlust in Wireshark an. Finden Sie duplizierte ACKs und die Neu-übertragung von Paketen (wann werden diese neu gesendet)?


Zurück
Übersicht
Weiter