Exercise 2

TCP-Verbindung

Verbindungsaufbau

TCP-Verbindungsaufbau

Der Verbindungsaufbau bei TCP erfolgt in drei Schritten – dem sogenannten Three-Way-Handshake:

  1. 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.
  2. SYN-ACK – Bestätigung vom Server

    • Der Server empfängt das SYN-Paket.
    • Er antwortet mit einem Paket, das SYN und ACK enthält.
    • Er sendet seine eigene ISN (z. B. 2000) und bestätigt den Empfang der Client-ISN (ACK=1001).
  3. 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.

Verbindung ist nun etabliert! Beide Seiten können ab jetzt Daten austauschen.

Verbindungsabbau

TCP-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.

  1. FIN vom Client (oder Server)

    • Eine Seite signalisiert, dass sie keine Daten mehr senden möchte.
    • Sie sendet ein Paket mit dem FIN-Flag.
  2. ACK vom Server

    • Die andere Seite bestätigt das FIN-Paket mit einem ACK.
  3. FIN vom Server

    • Der Server sendet nun seinerseits ein FIN, wenn er auch keine Daten mehr senden möchte.
  4. ACK vom Client

    • Der Client bestätigt das FIN des Servers mit einem ACK.

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.