Im Oktober 1986 brach der Durchsatz des Internets auf etwa ein Tausendstel der Kapazität ein, während die Last wuchs, obwohl keine einzelne Verbindung defekt war. Van Jacobson diagnostizierte die Ursache: Sender übertrugen so schnell sie konnten und wiederholten bei Verlust mit voller Geschwindigkeit, sodass das Netz seine Kapazität für die erneute Übertragung von Paketen aufwandte, die ohnehin wieder verworfen würden.
Sein Aufsatz von 1988 schlug Slow Start und Congestion Avoidance vor. Ein Sender beginnt mit einem Segment und verdoppelt sein Fenster bei jeder Bestätigung, bis er Verlust erkennt, dann halbiert er das Fenster und erhöht langsam. Statt die Kapazität des Pfades anzunehmen, misst jeder Sender sie durch Rückmeldung und passt sich an.
Das Design ist am Anfang bewusst konservativ, denn die einzige Möglichkeit, die verfügbare Bandbreite zu erfahren, ist, sie auszuloten, und die einzige sichere Art des Auslotens ist die sanfte. Das resultierende Verhalten – additive Erhöhung, multiplikative Verringerung – lässt Tausende von Verbindungen einen Pfad teilen, ohne zentrale Steuerung.
Kapazität sanft ausloten; bei Verlust halbieren
Verlust wird als Signal behandelt, nicht als Fehler, sodass Sender reagieren, bevor das Netz überflutet wird.
Exponentielles Wachstum findet die Kapazität schnell, während das Halbieren bei Verlust die Erholung sicher hält.
Der Algorithmus ist lokal: Jeder Sender passt sich anhand seiner eigenen Rückmeldung an, sodass das System auf Millionen von Verbindungen skaliert.
Es behob einen systemischen Ausfall durch eine Änderung des Verhaltens eines Protokolls, nicht durch neue Hardware.
Wenn die Kapazität des Systems unbekannt und geteilt ist, sollte jeder Teilnehmer konservativ ausloten und bei Rückmeldung zurückweichen – die Gesamtheit reguliert sich dann selbst.
Slow Start und Congestion Avoidance wurden zum Kern der Überlastungssteuerung von TCP und 1997 in RFC 2001 kodifiziert. Spätere Varianten (NewReno, CUBIC, BBR) verfeinerten die Regeln des Auslotens, doch das Prinzip des Auslotens und Zurückweichens bestimmt noch immer, wie der Großteil des Internets Bandbreite teilt.
DEN BELEGEN FOLGEN
Die Quellen
- Congestion Avoidance and Control ACM SIGCOMM 1988 (via Lawrence Berkeley National Laboratory) · ee.lbl.gov ·
- RFC 2001 — TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms IETF / RFC Editor · rfc-editor.org