Exercise 2
TCP-Verbindung
Verbindungsaufbau
Der Verbindungsaufbau bei TCP erfolgt in drei Schritten – dem sogenannten Three-Way-Handshake:
-
SYN
– Verbindungsanfrage vom Client- Der Client möchte eine Verbindung zum Server aufbauen.
- Er sendet ein TCP-Paket mit dem
SYN
-Flag gesetzt. - Dieses Paket enthält auch eine Initial Sequence Number (
ISN
), z. B. 1000.
-
SYN-ACK
– Bestätigung vom Server- Der Server empfängt das
SYN
-Paket. - Er antwortet mit einem Paket, das
SYN
undACK
enthält. - Er sendet seine eigene
ISN
(z. B. 2000) und bestätigt den Empfang der Client-ISN
(ACK=1001
).
- Der Server empfängt das
-
ACK
– Bestätigung vom Client- Der Client bestätigt nun den Empfang des Server-
SYN
. - Er sendet ein Paket mit
ACK
, z. B.ACK=2001
.
- Der Client bestätigt nun den Empfang des Server-
✅ Verbindung ist nun etabliert! Beide Seiten können ab jetzt Daten austauschen.
Verbindungsabbau
Der Verbindungsabbau bei TCP erfolgt in vier Schritten, weil jede Richtung der Kommunikation separat geschlossen wird. TCP ist ein Voll-Duplex-Protokoll – beide Seiten können gleichzeitig senden und empfangen. Deshalb muss jede Seite explizit signalisieren, dass sie keine Daten mehr senden möchte.
-
FIN
vom Client (oder Server)- Eine Seite signalisiert, dass sie keine Daten mehr senden möchte.
- Sie sendet ein Paket mit dem
FIN
-Flag.
-
ACK
vom Server- Die andere Seite bestätigt das
FIN
-Paket mit einemACK
.
- Die andere Seite bestätigt das
-
FIN
vom Server- Der Server sendet nun seinerseits ein
FIN
, wenn er auch keine Daten mehr senden möchte.
- Der Server sendet nun seinerseits ein
-
ACK
vom Client- Der Client bestätigt das
FIN
des Servers mit einemACK
.
- Der Client bestätigt das
✅ Verbindung ist nun sauber geschlossen.
Warum ist eine TCP-Verbindung ungeeignet für Live-Streaming?
TCP garantiert Zuverlässigkeit vor Geschwindigkeit – beim Live-Streaming braucht man Schnelligkeit vor Zuverlässigkeit.
TCP
-
Verbindungsorientiert: Bevor Daten gesendet werden, wird eine Verbindung aufgebaut (Three-Way Handshake).
-
Zuverlässig: TCP garantiert, dass alle Daten korrekt und in der richtigen Reihenfolge ankommen.
-
Flusskontrolle & Staukontrolle: TCP passt sich der Netzlast an und kann langsamer werden, wenn es zu Engpässen kommt.
-
Wiederholte Übertragungen (Retransmissions) bei Paketverlusten.
Probleme
-
Verzögerungen durch Wiederholungen: Wenn ein Paket verloren geht, wartet TCP, bis es neu übertragen wurde. → Latenz steigt.
-
Staukontrolle kann ruckeln: TCP bremst bei Überlastung – führt zu unregelmäßigem Datenfluss (Ruckeln oder Buffering).
-
Bei Live-Inhalten ist es wichtiger, dass die Daten schnell ankommen – auch wenn mal ein Paket fehlt.
Vorteile von UDP
-
Verbindungsfrei: Kein Handshake, sofortiger Start möglich.
-
Kein Paketverlust-Ausgleich: Wenn ein Paket weg ist, ist es weg – dafür keine Verzögerung.
-
Ideal für Echtzeitanwendungen, wo kurze Verzögerungen wichtiger als perfekte Übertragung sind (z. B. Live-Streaming, VoIP, Online-Gaming).
TCP ist zu „gründlich“ für Live-Streaming. Für Echtzeitübertragungen ist es wichtiger, dass die Daten schnell und kontinuierlich ankommen, als dass sie vollständig und korrekt sind. Deshalb ist UDP meist die bessere Wahl.