Résumé
- RFC 1185 calculait qu’à 1 Gbit/s la moitié pertinente de l’espace des numéros de séquence TCP pouvait défiler en environ 17 secondes. Un ancien segment risquait de revenir avec un numéro devenu plausible.
- PAWS, défini dans RFC 1323, utilisait
TS.Recentpour écarter les horodatages anciens au sein d’une connexion. Après plus de 24 jours d’inactivité, cette mémoire devait être invalidée afin que le premier paquet du réveil puisse entrer.
TCP numérote les octets, puis recommence quand le compteur a fait le tour. À faible débit, l’ancienne valeur a le temps de disparaître du réseau avant de revenir sur le cadran. À très haut débit, le compteur tourne assez vite pour qu’un vieux paquet et un paquet neuf portent des numéros compatibles. Le portier reconnaît un numéro sur la liste et risque de laisser rentrer un visiteur de la veille.
Le RFC 1185 d’octobre 1990 posait le calcul sur la table. Pour une voie à 1 Gbit/s, son tableau donnait environ 17 secondes pour parcourir la moitié critique de l’espace de séquence. L’analyse utilisait une durée de vie maximale de segment TCP de deux minutes. Le débit raccourcissait le temps de retour des numéros sans raccourcir la possibilité qu’un segment erre encore dans le réseau. Il fallait une seconde pièce d’identité.
Le RFC 1323 de mai 1992 l’a placée dans l’option Timestamp. Cette option servait à mesurer le temps aller-retour et à protéger contre le bouclage des numéros de séquence. Le second emploi portait un nom : PAWS. Dans une connexion établie, le récepteur conservait TS.Recent, une date récemment reçue. Si un segment arrivait avec un TSval plus ancien que cette référence valide, il était acquitté puis écarté. Les règles habituelles de fenêtre TCP continuaient ensuite leur travail pour les segments qui passaient le contrôle de date. Le vieux paquet pouvait porter le bon numéro de séquence; sa montre le trahissait.
Chaque émetteur faisait avancer sa propre horloge. Les deux extrémités n’avaient pas à régler leurs montres sur la même heure. Il fallait en revanche que les valeurs transmises ne reculent pas, et leur comparaison suivait l’arithmétique modulaire sur 32 bits. Le choix de TS.Recent mettait aussi une même valeur au service du calcul du temps aller-retour et de PAWS. Le contrôle visait les données comme les acquittements reçus dans la même connexion ouverte.
Le carnet du portier pouvait pourtant vieillir. RFC 1323 admettait des horloges de timestamp entre une impulsion par seconde et une par milliseconde. Au rythme le plus rapide, le demi-tour signé de ses 32 bits survenait en quelque 24,8 jours. Laissez une connexion ouverte mais sans trafic. Pendant le silence, l’horloge de l’autre machine avance. Lorsqu’elle envoie enfin un nouveau segment, sa date peut paraître inférieure à l’ancien TS.Recent. Le filtre consciencieux rejetterait alors chaque nouveau venu et figerait la connexion.
Le remède était inscrit dans la règle. Après plus de 24 jours d’inactivité, une implémentation de PAWS devait invalider la valeur conservée. Si le nouveau TSval semblait inférieur, le récepteur vérifiait d’abord l’âge de son propre souvenir. Une référence périmée laissait passer le segment au contrôle PAWS, et le segment recevable pouvait apporter une nouvelle valeur. La vérification ordinaire de la fenêtre de séquence restait en place. Jeter le vieux carnet rendait son jugement au portier; cela ne supprimait pas la serrure.
Les auteurs avaient envisagé un message de maintien périodique pour renouveler la référence. Ils ont retenu l’invalidation, puisque la spécification TCP n’imposait pas ces messages. Le récepteur ignorait aussi la vitesse de l’horloge distante et devait donc compter avec le cas le plus rapide. Les 24 jours mesuraient le silence d’une connexion, pas son âge total. Une connexion active continuait d’alimenter sa mémoire; une connexion endormie devait pouvoir se réveiller.
Le RFC 7323, révision ultérieure, a repris ce mécanisme et sa règle des 24 jours. Le récit de 1990 à 1992 tient en deux accélérations contraires. Le numéro de séquence revenait trop vite pour identifier seul un paquet; la date sauvait le contrôle, puis vieillissait à son tour pendant l’arrêt. TCP a appris au gardien à reconnaître les revenants et à brûler sa propre liste quand elle cessait d’être fiable.
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





