Zusammenfassung

  • Careful Resume nutzt Parameter einer früheren Verbindung, um bei einer späteren Verbindung schneller zu einer plausiblen Rate zu gelangen. Das gespeicherte Fenster ist vergangene Pfadevidenz, keine reservierte Bandbreite.
  • RFC 9959 lässt ein bestimmtes saved_cwnd nur für eine Verbindung gleichzeitig zu. Bei Load Balancing und Replikation wird diese Vorgabe zu einer systemweiten Koordinationsaufgabe.
  • Ein befristeter Wiederverwendungs-Lease sollte Zustandsversion, einzigen Nutzer, Lifetime, Pfadtest, Sprunggrenze, Phasen und Invalidierung verbinden. Das ist ein redaktioneller Vorschlag von Daniel Kade, keine IETF-Anforderung.

Die Zahl überlebt ihren Kontext

Ein Congestion Window entsteht aus Rückkopplung. Daten werden gesendet, ACKs kommen zurück, RTT wird gemessen, Verlust oder ECN melden Druck. Die Zahl beschreibt, was eine konkrete Verbindung auf einem konkreten Pfad zu einer konkreten Zeit erprobt hat.

Nach dem Ende der Verbindung bleibt diese Kapazität nicht frei. Andere Flows können den Engpass belegen, die Route kann wechseln, ein anderer Access-Link kann maßgeblich werden. Trotzdem kann eine junge Beobachtung nützlich sein. Wer sie vollständig verwirft, zwingt jede neue Verbindung, denselben Pfad ab dem kleinen Initial Window erneut zu erkunden.

RFC 9959 wählt einen Mittelweg. Ein etablierter Flow darf genutzte Kapazität als saved_cwnd zusammen mit minimaler RTT, Remote Endpoint und Lifetime speichern. Die nächste Verbindung beginnt dennoch mit normaler Staukontrolle. Erst nach einer Erkundung darf sie begrenzt und gepacet beschleunigen.

Auch die gespeicherte Zahl ist keine rohe Maximalzahl. Ein Fenster kann am Ende von Slow Start überschießen. Eine anwendungsbegrenzte Verbindung nutzt vielleicht nur einen Teil des erlaubten Fensters. Die Schätzung soll sich deshalb an tatsächlich genutzter Kapazität orientieren.

Der RFC-Editor-Eintrag weist RFC 9959 als IETF Proposed Standard aus. Das ist weder ein Nachweis heutiger Implementierung noch ein Leistungsversprechen oder eine Bestätigung verfügbarer Kapazität.

Remote Endpoint bedeutet: vermutlich derselbe Pfad

Der Remote Endpoint ist implementierungsabhängig. Er enthält eine Kennung für das sendende Interface und das unicast- oder anycast-Ziel; DSCP oder weitere Merkmale können hinzukommen. Eine feinere Kennung reduziert falsche Zuordnungen, senkt aber die Wiederverwendung.

Hinter dieser Abwägung steckt eine Behauptung über den Pfad. Gleiche IP-Adressen garantieren keinen gleichen Engpass. ECMP kann ein anderes Mitglied wählen, Anycast ein anderes Rechenzentrum, NAT einen anderen Verlauf. Auch Mobilität und Load Balancer verändern die Route, ohne dass jedes Schlüsselfeld wechselt.

Die Reconnaissance Phase prüft deshalb zuerst aktuelle Signale. Die Verbindung startet mit IW, wartet auf ACKs und misst RTT. Verlust, ECN, Ablauf, bekannte Pfadänderung, große RTT-Abweichung oder bereits belegter Zustand beenden Careful Resume. Eine aktuelle RTT über dem Zehnfachen der gespeicherten minimalen RTT ist ein explizites Änderungssignal; ein kleinerer Unterschied ist kein Identitätsbeweis.

Ändert eine Plattform ihre Quellinterface-Regel, DSCP-Nutzung, Anycast-Topologie oder Load-Balancer-Logik, ändert sich auch die Bedeutung des Schlüssels. Darum muss die Implementierung gespeicherte Parameter nach Konfigurationsänderungen löschen können.

Lokale Korrektheit kann global multipliziert werden

RFC 9959 verbietet, dass mehrere Verbindungen dasselbe saved_cwnd gleichzeitig verwenden. Diese Regel ist die eigentliche Brücke zwischen Transportalgorithmus und verteilter Governance.

Bei einem gespeicherten Fenster von 48 dürfen zwei Worker jeweils höchstens 24 als historische Sprungbasis verwenden. Beide erfüllen lokal die Hälfte-Regel. Der gemeinsame Engpass sieht aber 48 unvalidierte Zunahme. Mit mehr Kopien wächst der Fehler weiter.

Der Wert ist daher kein gewöhnlicher Cache-Eintrag. Viele Prozesse dürfen von seiner Existenz wissen; nur einer darf die zeitweilige Berechtigung erhalten, ihn für einen Versuch zu verbrauchen.

In einem Prozess kann eine atomare Markierung genügen. Hinter einem Load Balancer erreichen Verbindungen desselben Clients verschiedene Worker. Replikationsverzug, Wiederholung nach Timeout, Prozessausfall und Failover können zwei scheinbar gültige Besitzer erzeugen.

Lesen und Erwerben müssen getrennt sein. Lesen liefert Historie. Erwerben schließt andere Nutzer aus. Ein unsicheres Erwerbsergebnis ist kein Grund für einen zweiten Sprung; normale Staukontrolle bleibt verfügbar.

Im Policy Mirror zeigt sich damit die Autoritätsverschiebung: Der Standard formuliert eine globale Eigenschaft, während die Implementierung Befugnisse auf lokale Prozesse verteilt. Modultests allein können diese Eigenschaft nicht beweisen.

Die Hälfte ist keine Zuteilung

Der unvalidierte Sprung ist auf das kleinere von max_jump und der Hälfte von saved_cwnd begrenzt. Er wird anhand der aktuellen RTT gepacet, um keinen Line-Rate-Burst zu erzeugen.

Diese Hälfte gehört der neuen Verbindung nicht. Seit der Messung können bestehende Flows wachsen, neue hinzukommen oder der Engpass wechseln. Die Grenze begrenzt den Schaden einer falschen Annahme; sie verteilt keine Ressource.

Careful Resume trennt Reconnaissance, Unvalidated, Validating, Normal und Safe Retreat. Der ACK eines unvalidierten Pakets, das Senden des begrenzten Fensters oder der Ablauf einer RTT verändert die Phase. Erst gegenwärtige Bestätigungen verwandeln historische Schätzung in eine aktuelle.

Ein Dashboard mit nur einem cwnd-Wert verliert diese Herkunft. Derselbe Zahlenwert kann Ergebnis normalen Slow Starts, noch unvalidierter Wiederaufnahme oder aktueller Validierung sein.

Der Arbeitsentwurf Careful Resume qlog-02 definiert Ereignisse und Trigger für diese Übergänge sowie Felder für gespeichertes Fenster und RTT. Er ist nützliche entstehende Telemetrie, aber kein endgültiger Standard. Ein lokales Ereignis belegt außerdem nicht die exklusive Nutzung über alle Replikate.

Safe Retreat muss den Zustand überall entwerten

Verlust, ECN oder ein Pfadwechsel während der vorläufigen Nutzung widerlegen die Annahme. RFC 9959 erklärt die verwendeten Parameter für ungültig, entfernt sie und senkt im Safe Retreat das Fenster deutlich.

Die Reaktion ist stärker als eine gewöhnliche graduelle Reduktion, weil der historische Sprung erheblich überschießen und Pakete bereits etablierter Flows verdrängen kann. Der Versuch darf andere Verbindungen am gemeinsamen Engpass nicht unangemessen benachteiligen.

In einer verteilten Plattform ist lokale Löschung keine globale Invalidierung. Jede Replik mit Verbrauchsberechtigung muss die Generation sperren. Sonst kann ein isolierter Worker dieselbe widerlegte Beobachtung erneut ausgeben.

Lifetime begrenzt eine andere Alterung. Für dynamische Pfade nennt der RFC Minuten als Beispiel; für stabile, wenig geteilte Pfade können Stunden erwogen werden. Das sind kontextabhängige Größen. Längere Dauer erhöht Treffer und zugleich das Zeitfenster, in dem Historie und Realität auseinanderlaufen.

Ein Lease für gespeicherten Zustand

„Lease“ ist hier eine Metapher für befristete Exklusivität in verteilten Systemen. Es ist kein Rechtsanspruch, Vertrag, Bandbreitenreservat oder neues RFC-Objekt.

Ein schlanker Beleg verbindet:

  1. eine rotierende Kennung des Remote-Endpoint-Bereichs und die Version seiner Definition;
  2. Digest und Generation des Zustands, Beobachtungszeit, saved_cwnd, saved_rtt und Lifetime;
  3. anfordernden Worker beziehungsweise Verbindung, atomares Erwerbsergebnis und Ablauf;
  4. normalen Start, aktuellen RTT-Vergleich und Begründung der Pfadzuordnung;
  5. Basisalgorithmus, max_jump, Hälfte-Grenze, Pacing und tatsächlichen Sprung;
  6. Phasenwechsel und Trigger;
  7. Freigabe, Ersatz, Ablauf, Konfigurations-Flush oder Safe-Retreat-Invalidierung samt Replikationsnachweis;
  8. aggregierte Konflikt-, Verlust-, ECN-, Overshoot- und Bestandsflow-Metriken.

Payload, URL, Konto, Cookie, Zugangsdaten oder dauerhafte Klartext-Clientadresse gehören nicht hinein. Die Verknüpfungskennung kann regelmäßig rotieren, Details kurz gespeichert und streng zugänglich sein. Öffentlich genügen Konfliktrate, abgelaufene Versuche, Pfadabweichung, Safe Retreat und Widerrufsverzug pro Version und Kohorte.

Minimum Initial Specification verlangt keine zentrale Datenbank. Stark konsistentes Erwerben, ein Besitzer pro Shard, kurze Lifetime oder Abschaltung für ununterscheidbares Anycast sind verschiedene Wege. Gemeinsam ist nur die prüfbare Aussage: eine Generation, ein berechtigter Verbraucher, ein Versuch.

Grenzen

Die Quellen enthalten keine aktuelle Einsatzquote, Anbieterzusage, Beschleunigungszahl oder benannten Vorfall. Sie belegen kein doppeltes Verbrauchen in einem realen System. Kleine Fenster nicht zu speichern oder Careful Resume bei unklaren Pfaden nicht zu nutzen, kann korrekt sein.

RFC 2914 beschreibt allgemeine Staukontrollprinzipien. RFC 7661 behandelt nicht validierte Fenster innerhalb einer anwendungsbegrenzten TCP-Verbindung, RFC 9002 den QUIC-Kontext und RFC 9040 die Interdependenz von TCP Control Blocks. Keines erklärt frühere Datenrate zu künftigem Eigentum.

Reality, Not Advocacy hält die Zeiten auseinander: Früher wurde eine Rate beobachtet. Jetzt darf eine Verbindung einen Teil testen. Erst neue Rückmeldung bestätigt gegenwärtige Kapazität.

Sources