Annexe A. Pseudocode de récupération de perte (Loss Recovery Pseudocode)
Cette annexe décrit un exemple d'implémentation des mécanismes de détection de perte décrits dans la section 6.
A.1. Suivi des paquets envoyés (Tracking Sent Packets)
Pour implémenter correctement le contrôle de congestion, un expéditeur QUIC suit chaque paquet nécessitant un accusé de réception.
A.1.1. Champs de paquet envoyé
Champs clés suivis pour chaque paquet envoyé :
packet_number: Numéro du paquetack_eliciting: Si le paquet nécessite un accusé de réceptionin_flight: Si le paquet compte dans les octets en volsent_bytes: Nombre d'octets envoyéstime_sent: Horodatage d'envoi
A.2. Constantes d'intérêt (Constants of Interest)
- kPacketThreshold: Réordonnancement maximal de paquets (recommandé : 3)
- kTimeThreshold: Réordonnancement temporel maximal (recommandé : 9/8)
- kGranularity: Granularité du minuteur (recommandé : 1 ms)
- kInitialRtt: Valeur RTT initiale (recommandé : 333 ms)
A.3-A.11. Fonctions d'algorithme
Fonctions implémentant l'algorithme de récupération de perte :
- A.4. Initialisation: Initialiser les variables de détection de perte
- A.5. Lors de l'envoi d'un paquet: Stocker les informations du paquet
- A.6. Lors de la réception d'un datagramme: Gérer le déblocage anti-amplification
- A.7. Lors de la réception d'un accusé: Traiter les trames ACK
- A.8. Configuration du minuteur: Configurer le minuteur de détection
- A.9. Lors du timeout: Gérer l'expiration du minuteur
- A.10. Détection des paquets perdus: Identifier les paquets perdus
- A.11. Lors de l'abandon des clés: Gérer l'abandon des clés
Note : Pour les implémentations complètes du pseudocode, veuillez consulter l'annexe A du document officiel RFC 9002.