Anhang B. Staukontroll-Pseudocode (Congestion Control Pseudocode)
Dieser Anhang beschreibt eine Beispielimplementierung des in Abschnitt 7 beschriebenen Staukontrollers.
B.1. Relevante Konstanten (Constants of Interest)
- kInitialWindow: Anfängliches Staufenster
- kMinimumWindow: Minimales Staufenster
- kLossReductionFactor: Reduzierungsfaktor (empfohlen: 0.5)
- kPersistentCongestionThreshold: Dauer anhaltender Stau (empfohlen: 3)
B.2. Relevante Variablen (Variables of Interest)
- max_datagram_size: Aktuelle maximale Nutzlastgröße
- ecn_ce_counters[kPacketNumberSpace]: ECN-CE-Zählerwerte
- bytes_in_flight: Gesamtbytes in Übertragung befindlicher Pakete
- congestion_window: Maximal zulässige Bytes in Übertragung
- ssthresh: Schwellenwert für langsamen Start
B.3-B.9. Algorithmusfunktionen
Funktionen zur Implementierung des Staukontrollalgorithmus:
- B.3. Initialisierung: Staukontrollvariablen initialisieren
- B.4. Beim Senden eines Pakets: Bytes in Übertragung aktualisieren
- B.5. Bei Paketbestätigung: Bestätigte Pakete verarbeiten
- B.6. Bei neuem Stauereignis: Stauerkennung behandeln
- B.7. ECN-Informationen verarbeiten: ECN-Feedback verarbeiten
- B.8. Bei Paketverlusten: Paketverlust behandeln
- B.9. Verworfene Pakete entfernen: Bytes für verworfene Pakete aktualisieren
Hinweis: Für vollständige Pseudocode-Implementierungen konsultieren Sie bitte Anhang B des offiziellen RFC 9002-Dokuments.