Zusammenfassung

  • RFC 2140 erschien im April 1997 als Informational Memo. Es plädierte dafür, ausgewählte Beobachtungen aus TCP-Kontrollblöcken einem Rechnerpaar zuzuordnen, damit kurze Verbindungen MSS und RTT nicht immer neu ermitteln müssen. Es war weder ein Internetstandard noch ein Leistungsnachweis für das gesamte Netz.
  • Zeitliches Teilen nutzt Werte einer beendeten Verbindung. Beim Teilen innerhalb eines Ensembles sind andere Verbindungen noch aktiv; ein vollständig kopiertes Stau-Fenster würde dann die mögliche Gesamtlast erhöhen. Die vorgeschlagene Aufteilung eines gemeinsamen Fensters blieb eine zu prüfende Annahme.
  • Auch falsche oder veraltete Werte würden weitergereicht. Das Memo verlangte Grenzprüfungen und die Trennung manipulierter Zustände; TCP-Sequenznummern sollten niemals in dieses Leistungs-Gedächtnis gelangen.

Was nicht mit dem Socket sterben muss

Ein TCP-Kontrollblock enthält sehr unterschiedliche Dinge. Zeiger auf Puffer und Wiederholungswarteschlangen, Portnummern, Verbindungszustand und Timer gehören zu genau einem Austausch. Eine zuvor beobachtete maximale Segmentgröße oder Umlaufzeit kann dagegen für einen späteren Austausch zwischen denselben Rechnern nützlich sein. RFC 2140 machte aus dieser Unterscheidung einen Entwurf für voneinander abhängige Kontrollblöcke.

Die Trennung hat eine zweite Stufe. MSS und RTT lassen sich als Startschätzung übernehmen. Sendefenster und Stau-Fenster beschreiben zugleich, wie stark mehrere Verbindungen einen möglicherweise gemeinsamen Pfad belasten. Eine Kopie der Zahl kann daher eine andere Wirkung haben als eine Kopie der Messung. Der Verfasser wollte die Anlaufphase vieler kurzer und paralleler Web-Verbindungen verbessern, ohne das längerfristige Verhalten einer etablierten Verbindung zu ändern. Das war ein begründeter Vorschlag, kein dokumentierter Durchsatzgewinn aus realen Netzen.

Der Unterschied zwischen später und gleichzeitig

Bei zeitlichem Teilen hat die ältere Verbindung bereits geschlossen. RFC 2140 nennt die T/TCP-Erweiterungen von SunOS 4.1.3 und eine FreeBSD-Portierung als begrenzte Beispiele für gespeicherte MSS- und RTT-Werte. Eine eintreffende MSS-Option konnte den Cache sofort aktualisieren; RTT und Streuung wurden beim Schließen einer Verbindung eingemischt. Das frühere snd_cwnd war als Wiederverwendungswert diskutiert, in diesem Beispiel aber noch nicht implementiert. Zudem warnte der Text, dass ein Durchschnitt über Verbindungen nicht wie die RTT-Schätzung innerhalb einer einzelnen Verbindung berechnet wird und deshalb ungeeignet sein kann.

Beim Ensemble laufen mehrere Verbindungen bereits. Wenn keine davon geschlossen hat, kommt ein Cache, der nur beim Schließen geschrieben wird, für die neu hinzukommenden zu spät. RFC 2140 erwog deshalb frühere Aktualisierungen. Die Fensterfrage ist hier nicht bloß ein Detail der Datenstruktur: Schon das damalige Anfangsfenster von einem Segment ließ die Summe mit jeder weiteren Verbindung wachsen. Würde jede neue Verbindung das größere Fenster einer alten vollständig erben, wüchse die mögliche Last noch stärker.

Eine Skizze im Memo teilt ein aggregiertes Fenster unter N+1 Verbindungen auf und verringert auch die Anteile der bereits bestehenden N. Der Text sagt ausdrücklich, dass gleiche Anteile möglicherweise nicht die richtige Funktion sind und weitere Untersuchungen brauchen. Weder die Fairness noch ein breiter Einsatz dieser Skizze wurden dort belegt. Der entscheidende Gedanke ist vielmehr, dass dieselbe beobachtete Übertragungskapazität nicht mehrfach als unabhängige Sendeberechtigung gebucht werden darf.

Ein Fehler erhält neue Adressaten

Im gemeinsamen Cache kann ein falsches kleines oder ein Null-Fenster spätere Verbindungen bremsen. Kurze Übertragungen leiden besonders, weil sie enden können, bevor die Schätzung korrigiert wird. RFC 2140 forderte daher die Prüfung gegen Standard-Minima beim Initialisieren, Beschränkungen für Änderungen des gemeinsam genutzten Zustands während laufender Verbindungen und die Abschirmung von Werten, die eine Anwendung direkt verändert hat oder die ohne Authentisierung übertragen wurden. Sequenznummern sind kein teilbares Leistungssignal.

Dass zwei Verbindungen dieselben Rechner verbinden, garantiert keinen identischen Pfad und keine freie Kapazität. RFC 9040 ersetzte RFC 2140 im Jahr 2021 und beschrieb das Thema später genauer. Diese spätere Fassung macht die Idee von 1997 nicht nachträglich zu einer überall implementierten Praxis. Das frühe Memo bleibt interessant, weil es jede geerbte Zahl an einen Erzeuger, einen Schreibzeitpunkt und eine Fehlermöglichkeit band.

Quellen und Grenzen

Die Texte liefern keinen aktuellen Verbreitungsgrad, keinen gemessenen Geschwindigkeitsgewinn und keinen Nachweis, dass ein Rechnerpaar stets denselben Engpass nutzt.