TCP-Überlastkontrolle
Kurz: TCP bremst sich selbst, wenn das Netz überlastet ist. Es tastet sich über ein Fenster (cwnd) an die verfügbare Bandbreite heran und halbiert die Rate bei Paketverlust.
Genauer: Bei einem neuen Verbindungsaufbau beginnt TCP mit kleinem Fenster und verdoppelt es pro Roundtrip (Slow Start), bis ein Schwellwert erreicht ist oder Verlust auftritt. Danach wächst es linear (Congestion Avoidance). Verlust gilt als Signal für Überlast, das Fenster schrumpft (AIMD: additiv erhöhen, multiplikativ senken).
Im Detail
- Flow Control vs. Congestion Control: Empfängerfenster schützt den Empfänger, Überlastkontrolle das Netz.
- Varianten: Reno, CUBIC (Linux-Standard), BBR (misst Bandbreite und Laufzeit statt Verlust).
- Bufferbloat: Zu große Puffer in Routern verstecken Überlast und erzeugen hohe Latenz.
- Fast Retransmit: Drei doppelte ACKs lösen sofortige Neuübertragung aus.
- Bandbreite-Verzögerung-Produkt: Bandbreite × RTT = Datenmenge „in der Leitung“, bestimmt das nötige Fenster.
- UDP/QUIC: Brauchen eigene Überlastkontrolle.
Siehe auch: QUIC und HTTP/3, Little’s Law und Kapazitätsplanung