Résumé
- STOP_SENDING traduit le désintérêt du récepteur pour un sens entrant, sans prouver que les octets précédents ont été ignorés.
- RESET_STREAM termine uniquement le sens d’émission du pair; final size comptabilise le crédit de contrôle de flux, pas le travail réalisé ou annulé.
- Les faits de transport doivent rester séparés de l’admission applicative, de l’acceptation d’une annulation, des effets durables, de la compensation et du résultat final.
Un client peut dépasser un délai, ne plus vouloir la réponse et envoyer STOP_SENDING avec un code d’erreur applicatif. C’est un fait précis du transport. Cette trame demande au pair de cesser d’émettre sur un sens d’un flux QUIC. Elle ne transforme pas pour autant un registre opérationnel en preuve qu’une commande, une tâche ou une demande distante est annulée. Les octets et l’action métier obéissent à des états différents.
RFC 9000 présente STOP_SENDING comme le moyen, pour une application qui ne s’intéresse plus aux données reçues sur un flux, d’arrêter sa lecture. Lorsque la partie réceptrice est dans Recv ou Size Known, le transport devrait envoyer STOP_SENDING pour provoquer la fermeture du sens opposé. Mais le texte pose une limite explicite : la trame ne garantit pas que les données entrantes seront ignorées. Des octets STREAM antérieurs ont pu être reçus, remis à l’application ou traités. Même après STOP_SENDING, les octets STREAM reçus continuent de compter dans le contrôle de flux du flux et de la connexion, quand bien même le transport les écarterait.
La réponse du pair constitue une transition distincte. Si sa partie émettrice est dans Ready ou Send, il doit envoyer RESET_STREAM. Dans Data Sent, il peut attendre que les données en suspens soient acquittées ou déclarées perdues. Si elles sont déclarées perdues, il devrait envoyer RESET_STREAM au lieu de les retransmettre. Le pair devrait recopier le code d’erreur applicatif de STOP_SENDING, mais peut en choisir un autre. Le premier émetteur peut ignorer le code de RESET_STREAM reçu plus tard: les deux observations doivent donc rester séparées.
La direction est la frontière essentielle. RESET_STREAM interrompt brutalement la partie émettrice seulement. Sur un flux bidirectionnel, l’autre sens reste indépendant. Pour viser les deux sens, un endpoint peut envoyer RESET_STREAM pour son propre sens d’émission et STOP_SENDING pour encourager l’arrêt du sens opposé. Rien de cela ne ferme la connexion ni ne prouve la fin d’une paire requête-réponse ou d’un processus métier.
final size est une donnée de contrôle de flux. Il représente la quantité de données associée au crédit consommé au niveau de la connexion. Une fois connu, il ne change plus et reste communiqué qu’un flux finisse normalement ou soit réinitialisé. Il ne mesure ni le travail applicatif achevé, ni l’admission de l’opération, ni l’annulation d’un effet. Après RESET_STREAM, l’endpoint cesse d’émettre et de retransmettre les trames STREAM dans ce sens; cela décrit le comportement du transport, pas la restauration de l’état applicatif.
La fiabilité possède ici un périmètre étroit. QUIC ne retransmet pas un paquet perdu dans son ensemble. Les informations utiles réapparaissent dans de nouvelles trames si nécessaire. RESET_STREAM est envoyé jusqu’à acquittement ou jusqu’à l’acquittement de toutes les données du flux. STOP_SENDING est envoyé jusqu’à ce que la partie réceptrice atteigne Data Recvd ou Reset Recvd. L’acquittement démontre donc une progression dans la machine d’état QUIC, jamais que le pair n’a pas consommé les octets précédents, annulé le travail, rétabli les effets ou réussi une compensation.
Le registre probant doit contenir l’identité de connexion, le stream ID, l’initiateur, le type unidirectionnel ou bidirectionnel et le sens touché. Il doit distinguer la décision locale d’arrêter la lecture, les envois de STOP_SENDING, les retransmissions, chaque code d’erreur, RESET_STREAM et son code, final size, le crédit de flux et les octets STREAM ultérieurs. Seules des preuves applicatives séparées établissent l’admission distante, l’acceptation de l’annulation, les effets durables, le retour arrière, la compensation ou le résultat final.
Cette discipline distingue aussi les dossiers voisins. TR-045 traite de ACK et du traitement des paquets; TR-046 du droit de consommer le contrôle de flux; TR-052 des limites et garanties absentes de DATAGRAM; TR-053 de CONNECTION_CLOSE et de l’état global du transport. STOP_SENDING est différent: il sollicite l’arrêt d’un seul sens tout en laissant la connexion active.
Briefing des membres
Contexte approfondi du profil
Connectez-vous avec le bon niveau d'adhésion pour débloquer le briefing complet et les notes de source.
Réservé à Strategic Circle
Strategic Circle
Ouvert à tous les lecteurs. Débloquez les briefings de profil après adhésion et connexion.
Rejoindre Strategic CircleRéservé aux membres de Leadership Alliance
Leadership Alliance
Réservé aux propriétaires et dirigeants qualifiés d'actifs IP ; connectez-vous pour débloquer les briefings Alliance.
Rejoindre Leadership Alliance

