Résumé

  • Une trame DATAGRAM rend son paquet QUIC ack-eliciting ; un ACK peut permettre à l’émetteur de notifier à son application que le datagramme a été transmis et reçu.
  • RFC 9221, section 5.2, limite exactement ce signal au traitement de la trame par la couche de transport du récepteur, sans garantie de traitement réussi par l’application.

Un reçu n’est utile que s’il conserve son objet. L’ACK d’un paquet qui contient un DATAGRAM ne répond pas à la question « l’application a-t-elle fait ce qu’il fallait ? ». Il répond à une question plus étroite, définie par QUIC : la couche de transport qui reçoit a traité la trame. Confondre les deux transforme un résultat de protocole en verdict sur un système que ce protocole n’observe pas.

RFC 9221, publié en mars 2022 et signé par Tommy Pauly, E. Kinnear et David Schinazi, ajoute les trames DATAGRAM à QUIC pour des données applicatives non fiables. Ces trames suscitent un ACK. Lorsqu’un paquet qui en contient une est acquitté, l’implémentation émettrice peut avertir son application que le datagramme a été transmis et reçu. C’est une information transport réelle, pas une promesse vide.

La même section précise pourtant sa portée. L’acquittement indique le traitement de la trame par la couche de transport du récepteur ; il ne garantit pas que l’application réceptrice a traité les données avec succès. Le standard ne laisse donc pas un journal d’ACK se substituer à un parseur, à une validation métier ou à une écriture d’état.

Le choix de non-fiabilité confirme cette séparation. À la détection d’une perte, les données DATAGRAM ne sont pas retransmises. Les identifiants de multiplexage et la sémantique des données relèvent du protocole applicatif. Si ce protocole exige une preuve de livraison ou de traitement, il doit définir son propre accusé de réception. Ce dernier porte sur une autre chose et possède ses propres délais, corrélations et échecs possibles.

Le paramètre max_datagram_frame_size reçu doit être lu avec la même discipline. Une valeur non nulle exprime, pour cette connexion et dans ce sens, la disposition d’un pair à recevoir des DATAGRAM jusqu’à cette taille. Elle ne prouve ni envoi, ni usage, ni compréhension, ni accomplissement par une application. RFC 9000 et RFC 9002 éclairent le transport QUIC et sa récupération de perte ; ils ne changent pas cette limite de RFC 9221.

Il serait donc excessif de déduire d’un ACK qu’un appareil déterminé a activé l’extension, qu’un paquet a franchi une interface donnée, que le contenu a été analysé, qu’un état a changé ou qu’un utilisateur a obtenu un résultat. L’existence d’un RFC et le nom de ses auteurs documentent une coordination publique, non le comportement d’une connexion concrète.

La règle de Minimum Initial Specification de Heng Lu aide à préserver cette proportion. Garder la proposition déterministe que le mécanisme peut vérifier, puis rendre aux systèmes ultérieurs leurs propres décisions et leurs propres preuves. L’ACK appartient au transport ; la preuve de traitement appartient à l’application qui la définit.

Sources