Appendice A. Pseudocodice di recupero perdite (Loss Recovery Pseudocode)
Questa appendice descrive un'implementazione di esempio dei meccanismi di rilevamento delle perdite descritti nella Sezione 6.
A.1. Tracciamento dei pacchetti inviati (Tracking Sent Packets)
Per implementare correttamente il controllo della congestione, un mittente QUIC traccia ogni pacchetto che richiede conferma.
A.1.1. Campi del pacchetto inviato
Campi chiave tracciati per ogni pacchetto inviato:
packet_number: Numero del pacchettoack_eliciting: Se il pacchetto richiede confermain_flight: Se il pacchetto conta nei byte in volosent_bytes: Numero di byte inviatitime_sent: Timestamp di invio
A.2. Costanti di interesse (Constants of Interest)
- kPacketThreshold: Riordinamento massimo dei pacchetti (raccomandato: 3)
- kTimeThreshold: Riordinamento temporale massimo (raccomandato: 9/8)
- kGranularity: Granularità del timer (raccomandato: 1 ms)
- kInitialRtt: Valore RTT iniziale (raccomandato: 333 ms)
A.3-A.11. Funzioni dell'algoritmo
Funzioni per implementare l'algoritmo di recupero delle perdite:
- A.4. Inizializzazione: Inizializzare variabili di rilevamento perdite
- A.5. All'invio di un pacchetto: Memorizzare informazioni pacchetto
- A.6. Alla ricezione di un datagram: Gestire sblocco anti-amplificazione
- A.7. Alla ricezione di una conferma: Elaborare frame ACK
- A.8. Configurazione timer: Configurare timer di rilevamento
- A.9. Al timeout: Gestire scadenza timer
- A.10. Rilevamento pacchetti persi: Identificare pacchetti persi
- A.11. All'eliminazione delle chiavi: Gestire eliminazione chiavi
Nota: Per implementazioni complete dello pseudocodice, consultare l'Appendice A del documento ufficiale RFC 9002.