Zum Hauptinhalt springen

Anhang A. Verlustwiederherstellungs-Pseudocode (Loss Recovery Pseudocode)

Dieser Anhang beschreibt eine Beispielimplementierung der in Abschnitt 6 beschriebenen Verlusterkennungsmechanismen.

A.1. Verfolgung gesendeter Pakete (Tracking Sent Packets)

Zur korrekten Implementierung der Staukontrolle verfolgt ein QUIC-Sender jedes bestätigungsanfordernde Paket.

A.1.1. Gesendete Paketfelder

Schlüsselfelder für jedes gesendete Paket:

  • packet_number: Paketnummer
  • ack_eliciting: Ob Paket Bestätigung erfordert
  • in_flight: Ob Paket zu Bytes in Übertragung zählt
  • sent_bytes: Anzahl gesendeter Bytes
  • time_sent: Sendezeitstempel

A.2. Relevante Konstanten (Constants of Interest)

  • kPacketThreshold: Maximale Paketneuordnung (empfohlen: 3)
  • kTimeThreshold: Maximale Zeitneuordnung (empfohlen: 9/8)
  • kGranularity: Timer-Granularität (empfohlen: 1 ms)
  • kInitialRtt: Anfänglicher RTT-Wert (empfohlen: 333 ms)

A.3-A.11. Algorithmusfunktionen

Funktionen zur Implementierung des Verlustwiederherstellungsalgorithmus:

  • A.4. Initialisierung: Verlusterkennungsvariablen initialisieren
  • A.5. Beim Senden eines Pakets: Paketinformationen speichern
  • A.6. Beim Empfang eines Datagramms: Anti-Amplifikations-Entsperrung behandeln
  • A.7. Beim Empfang einer Bestätigung: ACK-Rahmen verarbeiten
  • A.8. Timer-Einstellung: Erkennungstimer konfigurieren
  • A.9. Bei Timeout: Timer-Ablauf behandeln
  • A.10. Erkennung verlorener Pakete: Verlorene Pakete identifizieren
  • A.11. Beim Verwerfen von Schlüsseln: Schlüsselverwerfung behandeln

Hinweis: Für vollständige Pseudocode-Implementierungen konsultieren Sie bitte Anhang A des offiziellen RFC 9002-Dokuments.