Aller au contenu principal

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 paquet
  • ack_eliciting: Si le paquet nécessite un accusé de réception
  • in_flight: Si le paquet compte dans les octets en vol
  • sent_bytes: Nombre d'octets envoyés
  • time_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.