Passa al contenuto principale

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 pacchetto
  • ack_eliciting: Se il pacchetto richiede conferma
  • in_flight: Se il pacchetto conta nei byte in volo
  • sent_bytes: Numero di byte inviati
  • time_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.