Résumé
- Une direction de flux QUIC est une suite ordonnée d’octets ; les limites des trames STREAM ne deviennent pas des limites de messages.
- FIN et RESET_STREAM communiquent une Final Size immuable qui permet de comptabiliser le crédit de contrôle de flux consommé.
- Final Size ne prouve ni la lecture par l’application, ni le décodage, ni l’engagement durable, ni le résultat métier.
Un tableau de supervision peut donc être exact sur le transport et trompeur sur l’activité. Lorsqu’il voit une taille finale connue, il peut classer une requête comme terminée, alors que cette valeur ne fait que fermer l’étendue de la séquence d’octets. La distinction est essentielle : une direction peut se terminer proprement par une trame STREAM portant FIN ou brutalement par RESET_STREAM. Les deux voies peuvent établir une limite comptable, sans répondre à la question de savoir ce que l’application a réellement fait.
QUIC expose chaque direction comme une suite ordonnée d’octets. Les limites des trames STREAM ne sont pas conservées pendant la transmission, la retransmission ou la remise à l’application. Le protocole applicatif doit donc définir son propre découpage des messages. Une frontière de trame ne constitue pas un délimiteur de commande, de document ou de transaction.
Avec FIN, Final Size vaut le décalage de la trame STREAM augmenté de la longueur de ses données. RESET_STREAM transporte explicitement un champ Final Size. Cette valeur est supérieure d’une unité au plus grand décalage envoyé, ou égale à zéro si aucun octet n’a été envoyé. Elle représente le crédit de contrôle de flux consommé par la direction et sa comptabilisation. La somme des tailles finales de tous les flux alimente le contrôle de flux au niveau de la connexion, y compris pour les flux terminés. Il s’agit d’une obligation de comptabilisation, non d’une preuve de succès.
Une fois connue, Final Size ne peut plus changer. Des données situées à cette limite ou au-delà, ou une déclaration ultérieure différente, peuvent provoquer FINAL_SIZE_ERROR. Cette règle protège la cohérence du compte et peut imposer de conserver un état après la fermeture afin de détecter une contradiction. Elle ne transforme pas le compte en reçu de livraison.
Les états de réception doivent rester séparés. Connaître Final Size n’équivaut pas à avoir reçu tous les octets situés avant cette limite. Les avoir reçus ne signifie pas qu’ils ont été remis à l’application. Les avoir remis ne signifie pas qu’ils ont été lus, correctement analysés, validés, enregistrés durablement, annulés ou compensés. RESET_STREAM rend cette séparation visible : il peut interrompre la remise et permettre d’abandonner des octets non lus, mais il ne prouve pas une non-livraison totale. Tous les octets peuvent déjà être dans un tampon, et l’indication de reset peut être supprimée.
L’accusé de réception des paquets appartient à une couche inférieure. Traiter une trame STREAM suppose d’en mettre les octets en file pour l’application, pas de prouver que celle-ci les a lus ou utilisés. De même, Final Size ne dit rien, à lui seul, de la direction opposée ni de la connexion entière.
Le registre de preuve doit conserver séparément l’identifiant et la direction du flux, FIN ou RESET_STREAM, le code d’erreur applicatif du reset, la source et la valeur numérique de Final Size, le plus grand décalage observé, la couverture contiguë, l’entrée des octets dans le récepteur, leur remise ou lecture par l’application, le cadrage des messages, le commit durable, la compensation, le rollback et le résultat métier, ainsi que tout état nécessaire à FINAL_SIZE_ERROR.
Cette discipline distingue aussi cinq dimensions voisines. TR-046 porte sur l’autorisation d’envoyer, non sur le total final. TR-052 porte sur les frontières de messages DATAGRAM, alors que le flux ordonné ne conserve pas les frontières STREAM. TR-053 porte sur CONNECTION_CLOSE et la connexion entière. TR-054 porte sur STOP_SENDING et l’annulation. TR-045 limite la portée d’un ACK au traitement d’un paquet. Aucune de ces preuves ne remplace les autres.
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

