Appendice B. Pseudocodice di controllo congestione (Congestion Control Pseudocode)
Questa appendice descrive un'implementazione di esempio del controllore di congestione descritto nella Sezione 7.
B.1. Costanti di interesse (Constants of Interest)
- kInitialWindow: Finestra di congestione iniziale
- kMinimumWindow: Finestra di congestione minima
- kLossReductionFactor: Fattore di riduzione (raccomandato: 0.5)
- kPersistentCongestionThreshold: Durata congestione persistente (raccomandato: 3)
B.2. Variabili di interesse (Variables of Interest)
- max_datagram_size: Dimensione massima payload corrente
- ecn_ce_counters[kPacketNumberSpace]: Valori contatore ECN-CE
- bytes_in_flight: Totale byte di pacchetti in volo
- congestion_window: Massimo byte consentiti in volo
- ssthresh: Soglia di avvio lento
B.3-B.9. Funzioni dell'algoritmo
Funzioni per implementare l'algoritmo di controllo della congestione:
- B.3. Inizializzazione: Inizializzare variabili di controllo congestione
- B.4. All'invio di un pacchetto: Aggiornare byte in volo
- B.5. Alla conferma del pacchetto: Elaborare pacchetti confermati
- B.6. Al nuovo evento di congestione: Gestire rilevamento congestione
- B.7. Elaborare informazioni ECN: Elaborare feedback ECN
- B.8. Alla perdita di pacchetti: Gestire perdita pacchetti
- B.9. Rimuovere pacchetti scartati: Aggiornare byte per pacchetti scartati
Nota: Per implementazioni complete dello pseudocodice, consultare l'Appendice B del documento ufficiale RFC 9002.