Résumé

  • RFC 9565 rattache tcpControlBits au registre vivant des drapeaux TCP tenu par l’IANA et impose de restituer tels qu’observés les bits attribués comme non attribués.
  • Un bit positionné signifie qu’au moins un paquet du flux portait ce drapeau ; il ne révèle ni l’ordre, ni le sens, ni la fréquence, ni la coexistence des drapeaux dans un même paquet.
  • Une décision sur l’état d’une connexion doit joindre au bitmap le Template IPFIX, sa longueur, l’époque d’observation, le comportement de l’exportateur et des preuves issues des paquets ou des extrémités.

Deux incidents peuvent produire exactement le même entier. Dans le premier, une ouverture de connexion aboutit, les données circulent, puis un FIN clôt l’échange. Dans le second, des SYN sont retransmis, un ACK parasite est vu dans le sens opposé et un FIN tardif appartient à une observation tronquée. Une fois les drapeaux fusionnés dans tcpControlBits, les deux histoires deviennent indiscernables.

C’est la limite centrale de la mesure que RFC 9565 révise. Le texte accomplit un travail nécessaire : au lieu d’enfermer la définition IPFIX dans une photographie ancienne des drapeaux TCP, il renvoie au registre IANA faisant autorité. L’élément d’information 6 reste un champ de type unsigned16 interprété comme ensemble de drapeaux. Les positions attribuées aujourd’hui, celles qui le seront demain et celles qui restent non attribuées doivent être exportées selon ce que le processus de mesure a réellement vu.

Cette fidélité protège l’observation contre l’évolution du protocole. Elle ne restaure pas ce que l’agrégation a supprimé.

La vérité minimale d’un bit

La règle est existentielle : si un paquet quelconque rattaché au Flow présentait un bit, le bit de sortie est positionné. Sinon, il est effacé. Il n’existe dans ce résultat aucune colonne pour « avant », « après », « trois fois », « côté client » ou « dans le même segment ».

Un bitmap contenant SYN et ACK ne prouve donc pas la poignée de main à trois temps. Il ne dit pas si les deux drapeaux figuraient dans le même sens, si le SYN a été retransmis, si le SYN-ACK a été observé, ni si l’extrémité a jamais atteint l’état établi. Ajouter FIN ou RST ne fournit pas davantage une fin chronologique. Le Flow est une construction de mesure, avec des clés, des temporisations actives et inactives, un point d’observation et parfois un échantillonnage ; ce n’est pas le journal interne de TCP.

Le risque apparaît quand une commodité analytique devient une affirmation opérationnelle. Filtrer les flux où un bit rare a été vu est légitime. Déduire l’intention de l’émetteur, la réussite de la session ou la cause d’un échec à partir de la même valeur ne l’est pas.

Huit bits ne sont pas seize bits silencieux

Le Template IPFIX fait partie de la preuve. Il annonce l’élément et la longueur encodée. RFC 9565 autorise une représentation réduite sur un octet, mais celle-ci ne couvre que les positions 8 à 15. Elle ne formule aucune assertion sur les positions 4 à 7. Un processus de mesure incapable de traiter toute la largeur doit employer cette forme réduite plutôt que simuler une observation complète.

Si le collecteur convertit immédiatement ce champ en entier sur seize bits et jette la longueur d’origine, il fabrique des zéros. On ne peut plus distinguer « observé et absent » de « hors de la capacité déclarée ». Le schéma de la base paraît uniforme, tandis que l’information essentielle sur la portée de l’observation a disparu.

Les quatre positions les plus basses illustrent une autre frontière. Elles appartiennent à la zone Data Offset de l’en-tête TCP et doivent être ignorées ou mises à zéro dans tcpControlBits; la longueur d’en-tête relève de tcpHeaderLength. Lire le mot de seize bits comme seize drapeaux équivalents revient à inventer une nomenclature.

Le temps du registre et celui du parc installé

RFC 9293 décrit les drapeaux aujourd’hui familiers. RFC 8311 a modifié le statut d’une position auparavant liée à l’usage expérimental NS. Les anciennes définitions, notamment dans la lignée de RFC 7125, ont aussi imposé la mise à zéro de positions que des implémentations plus récentes doivent pouvoir restituer. Un zéro peut donc provenir du trafic, d’une largeur réduite, d’un logiciel ancien ou d’une fenêtre d’observation incomplète.

À l’inverse, un bit inconnu du collecteur peut être une observation parfaitement fidèle selon le registre IANA courant. Le libellé local n’annule pas le paquet. Il faut conserver la version de l’exportateur, le Template, le domaine d’observation, les horodatages et la politique de décodage pour relire correctement l’événement.

La séparation proposée par Heng Lu prend ici une forme concrète. L’IANA détient l’autorité symbolique du registre. La RFC définit le contrat d’interopérabilité. Le code en fonctionnement choisit et agrège ses observations. L’état de la connexion demeure chez TCP et ses extrémités. Aucun de ces étages ne peut parler à la place des autres.