13. Paquétisation et fiabilité
13. Paquétisation et fiabilité
Un expéditeur envoie une ou plusieurs trames dans un paquet QUIC (Section 12.4). Un expéditeur peut minimiser les coûts de bande passante et de calcul par paquet en incluant autant de trames que possible dans chaque paquet QUIC. Un expéditeur PEUT attendre une courte période de temps pour collecter plusieurs trames avant d'envoyer un paquet qui n'est pas maximalement rempli, afin d'éviter d'envoyer un grand nombre de petits paquets.
13.1 Traitement des paquets
Un paquet NE DOIT PAS être accusé réception tant que la protection du paquet n'a pas été supprimée avec succès et que toutes les trames contenues dans le paquet n'ont pas été traitées. Pour les trames STREAM, cela signifie que les données ont été mises en file d'attente en préparation de la réception par le protocole d'application, mais cela n'exige pas que les données soient livrées et consommées.
13.2 Génération d'accusés de réception
Les points de terminaison accusent réception de tous les paquets qu'ils reçoivent et traitent. Cependant, seuls les paquets nécessitant un accusé de réception provoquent l'envoi d'une trame ACK dans le délai d'accusé maximal. Les paquets qui ne nécessitent pas d'accusé de réception ne sont accusés réception que lorsqu'une trame ACK est envoyée pour d'autres raisons.
13.2.1 Envoi de trames ACK
Chaque paquet DEVRAIT être accusé réception au moins une fois, et les paquets nécessitant un accusé de réception DOIVENT être accusés réception au moins une fois dans le délai maximal communiqué par un point de terminaison en utilisant le paramètre de transport max_ack_delay; voir Section 18.2.
13.2.2 Fréquence des accusés de réception
Un récepteur détermine la fréquence à laquelle envoyer des accusés de réception en réponse aux paquets nécessitant un accusé de réception. Cette détermination est spécifique à l'implémentation.
13.2.3 Gestion des plages ACK
Lorsqu'une trame ACK est envoyée, une ou plusieurs plages de paquets accusés réception sont incluses. L'inclusion de plages plus anciennes réduit les risques de retransmissions erronées causées par la perte de trames ACK précédemment envoyées.
13.2.4 Limitation des plages par suivi des trames ACK
Lorsqu'un expéditeur reçoit un accusé de réception pour un paquet contenant une trame ACK, l'expéditeur peut cesser d'accuser réception des paquets inférieurs ou égaux au plus grand accusé réception dans cette trame ACK.
13.2.5 Mesure et rapport du délai de l'hôte
Un point de terminaison mesure le délai entre la réception d'un paquet nécessitant un accusé de réception et l'envoi de l'ACK correspondant.
13.2.6 Trames ACK et protection des paquets
Les trames ACK NE DOIVENT être transportées que dans un paquet ayant le même espace de numéros de paquet que le paquet accusé réception.
13.2.7 Les trames PADDING consomment la fenêtre de congestion
Les paquets contenant des trames PADDING sont considérés comme étant en vol aux fins du contrôle de congestion [QUIC-RECOVERY].
13.3 Retransmission des informations
QUIC utilise une combinaison d'accusé de réception négatif (NACK) et d'accusé de réception positif (ACK) pour déclencher la retransmission. Les paquets QUIC ne sont pas retransmis dans leur intégralité; lorsque des paquets sont déterminés comme perdus, les informations qui pourraient y être transportées sont renvoyées dans de nouveaux paquets selon les besoins.
De nouvelles trames et de nouveaux paquets sont utilisés pour transporter les informations déterminées comme perdues. En général, les informations sont renvoyées lorsqu'un paquet contenant ces informations est déterminé comme perdu et l'envoi cesse lorsqu'un paquet contenant ces informations est accusé réception.
13.4 Notification explicite de congestion
Les points de terminaison QUIC utilisent la notification explicite de congestion (ECN) [RFC3168] pour détecter et répondre à la congestion du réseau. ECN permet à un point de terminaison de marquer des paquets pour demander qu'un élément réseau ajoute un marquage de congestion expérimentée (CE) plutôt que de supprimer le paquet.
13.4.1 Rapport des comptes ECN
L'utilisation d'ECN nécessite que les deux points de terminaison activent ECN dans les paquets IP et signalent la réception des marquages CE dans les trames ACK QUIC.
13.4.2 Validation ECN
Il est possible que des dispositifs réseau défectueux corrompent ou suppriment par erreur des paquets portant un point de code ECN non nul. Pour garantir la connectivité en présence de tels dispositifs, un point de terminaison valide les comptes ECN qu'il reçoit de son pair et désactive ECN si les comptes semblent peu fiables.