Résumé

  • L’Identification IPv4 distinguait les ensembles de fragments, mais les premières règles exigeaient aussi son unicité pour les datagrammes qui ne seraient jamais fragmentés.
  • À haut débit, 65 536 valeurs peuvent revenir pendant que d’anciens fragments restent assemblables ; des compteurs prévisibles créent en outre des signaux que le protocole n’avait pas promis.
  • RFC 6864 ordonne d’ignorer l’ID d’un datagramme atomique et conserve l’obligation d’unicité pour tout datagramme déjà fragmenté ou encore fragmentable.

Le nom commun des morceaux

RFC 791 autorisait un routeur à découper un datagramme trop grand pour le réseau suivant. À l’arrivée, l’adresse source, l’adresse de destination, le protocole et l’Identification formaient la clé de regroupement. L’offset plaçait chaque morceau ; MF annonçait une suite ; DF interdisait le découpage.

Cette valeur ne nommait donc ni une transaction ni une intention applicative. Elle évitait seulement que deux ensembles de fragments encore vivants soient confondus. Mais, puisque le champ figurait aussi dans les paquets entiers, des usages supplémentaires ont paru naturels.

RFC 1122 conserva l’exigence d’unicité pour tous les datagrammes d’un même triplet source, destination et protocole pendant leur durée de vie maximale. Il évoqua aussi l’élimination de doublons et la réutilisation du numéro lors d’une retransmission identique.

Le label de réassemblage devenait ainsi un service d’identité implicite. Un expéditeur devait gérer la rareté même lorsqu’il avait fixé DF. Des outils pouvaient lire une séquence comme preuve de chronologie, d’activité ou de présence d’une machine.

La vitesse a révélé une dette de sens

Seules 65 536 valeurs existent. Le problème n’est pas simplement le retour à zéro : une valeur ne peut être réutilisée sans risque tant que d’anciens fragments portant ce numéro peuvent encore atteindre le même contexte de réassemblage.

RFC 4963 décrit ce défaut d’échelle. Si deux datagrammes fragmentés partagent trop tôt le même ID, le destinataire peut associer des morceaux de messages différents. Selon les sommes de contrôle, les pertes et l’ordre d’arrivée, l’erreur entraîne rejet, corruption ou effondrement du débit.

Un trafic entier et non fragmentable ne crée pas ce mélange. Lui imposer la même consommation d’identifiants ne protège donc pas le cas dangereux.

RFC 6864 montre qu’avec une MTU de 1 500 octets et une durée supposée de deux minutes, l’ancienne règle plafonnerait un protocole entre deux adresses à environ 6,4 Mbit/s. Ce calcul dépend de ces hypothèses ; il démontre surtout que la norme exigeait déjà ce que les systèmes ordinaires ne pouvaient fournir.

Une suite visible n’est pas une autorité

Le compteur global est simple et observable. Entre deux sondes, son écart peut révéler une activité, servir d’empreinte ou aider à deviner l’identifiant d’un fragment. RFC 7739 analyse plusieurs conséquences de valeurs prévisibles et des familles d’algorithmes possibles.

La randomisation ne supprime pas mécaniquement le conflit dans un espace fini. Surtout, les implémentations historiques n’ont jamais offert un comportement unique : certaines utilisaient déjà une valeur constante pour des paquets qui ne risquaient pas d’être fragmentés.

Un observateur pouvait exploiter un motif. Il ne pouvait pas en déduire que ce motif appartenait au contrat d’interopérabilité.

L’atome retire la question du réassemblage

RFC 6864 qualifie d’atomique un datagramme avec DF=1, MF=0 et un offset nul. Il n’est pas un fragment, et un équipement de transit conforme ne peut pas le fragmenter.

Son Identification peut prendre n’importe quelle valeur. Zéro n’est ni réservé ni obligatoire. Plus important encore, tout équipement qui lit l’en-tête—routeur, hôte, pare-feu, NAT ou extrémité de tunnel—doit ignorer ce champ pour ce datagramme.

La norme n’accorde pas seulement une liberté à la source ; elle retire une compétence aux consommateurs. Aucun contrôle ne doit dépendre d’une valeur devenue sans objet.

La catégorie non atomique comprend le complément logique. Un datagramme entier avec DF=0 peut encore être fragmenté plus loin. Un paquet avec MF ou un offset est déjà un fragment. Dans les deux cas, l’ID conserve son rôle potentiel.

Là où les morceaux existent, la discipline demeure

Une source de datagrammes non atomiques ne doit pas répéter un ID, pour le même triplet source, destination et protocole, pendant une durée de vie maximale. Une copie retransmise reçoit elle aussi un nouvel ID. Les entrées de tunnel et les mécanismes de partage d’adresses héritent de cette responsabilité lorsqu’ils créent ou réécrivent le paquet.

Le chemin doit respecter DF. Un routeur ne peut ni fragmenter un paquet DF=1, ni effacer ce bit. Sinon il transformerait une valeur arbitraire et sûre en identifiant soudain nécessaire au réassemblage.

La liberté locale dépend donc d’un fait vérifiable, et le réseau a l’obligation de préserver ce fait.

Réduire une spécification peut la rendre plus solide

RFC 6864 interdit l’usage de l’ID pour dédupliquer les datagrammes. Les diagnostics doivent trouver d’autres corrélations. Les méthodes comptant des hôtes derrière un NAT à partir des suites d’ID perdent leur base. L’ID atomique ne promet ni hasard, ni secret, ni entropie.

Le format IPv4 n’a pas changé. La frontière utilise des bits déjà présents pour conserver la compatibilité tout en supprimant une signification superflue.

L’histoire n’est donc pas celle d’un champ devenu inutile. C’est celle d’un champ redevenu exact. Le réassemblage garde l’autorité dont il a besoin ; les autres usages cessent de transformer une commodité observable en droit de décision.

Sources et limites

Le corpus fermé réunit RFC 791, RFC 1122, RFC 4963, RFC 6864 et RFC 7739. Il établit le mécanisme, l’ancienne obligation, le risque de réassemblage à haut débit, la nouvelle frontière et les risques de prévisibilité. Il ne mesure ni les pratiques actuelles des systèmes, ni la fréquence présente de fragmentation ou d’attaque.