Résumé

  • Sent termine la responsabilité de l’API de transport, non celle du système entier envers le résultat recherché.
  • RFC 9622 laisse expressément l’emplacement exact des données à l’implémentation; le mot ne peut donc pas devenir une preuve universelle d’émission ou de livraison.

Dans les comptes rendus d’exploitation, « envoyé » a souvent l’air définitif. Pourtant ce mot peut désigner un clic, une file applicative, un tampon du noyau ou un paquet observé après une interface. Les regrouper fait gagner une colonne de tableau, mais détruit la question que chaque surface pourrait réellement trancher.

Le choix de Colin Perkins et de ses coauteurs dans RFC 9622 est utile parce qu’il ne cache pas cette différence. Après une action Send, l’événement Sent intervient lorsque les données dérivées du message sont passées dans ou à travers la pile de protocole sous-jacente et ne relèvent plus de l’API. La phrase suivante refuse une conclusion plus grande: l’état exact peut être une transmission effective, un tampon d’interface, un tampon du noyau ou une autre situation dépendante de l’implémentation.

L’API est ainsi une frontière locale entre l’application et le système de services de transport. RFC 9621 permet à l’application de formuler des exigences, des interdictions ou des préférences de chemin et de protocole, mais la sélection dépend aussi de la politique et des heuristiques du système. Une préférence de l’application n’est pas une prise de contrôle du chemin; un événement local n’est pas un journal chez le pair.

Les autres événements aident à garder les états séparés. Expired indique qu’un message n’a pas été envoyé avant la fin de sa durée de vie; SendError signale une erreur locale. La durée elle-même est une indication, non l’assurance qu’un envoi tardif sera impossible. Les priorités sont elles aussi relatives: elles peuvent guider un ordonnanceur local ou être visibles sur le fil, sans garantie quant à leur réalisation.

Pour affirmer un résultat, il faut joindre la preuve au bon endroit: journal d’egress pour l’émission, observation du pair pour l’arrivée, journal applicatif distant pour le traitement, trace métier pour l’effet. Sent n’est pas une preuve insuffisante; c’est une preuve plus étroite qu’il faut cesser d’étirer.

Sources