Résumé
- RFC 2001 attendait trois ACK dupliqués avant de retransmettre sans attendre le temporisateur : une forte indication de perte, jamais un constat sur sa cause.
- Pendant la reprise rapide,
cwndpassait provisoirement àssthresh + 3segments, gagnait un segment par ACK dupliqué supplémentaire, puis revenait àssthreshavec le premier ACK couvrant des données nouvelles. - Ce registre renseigne sur la progression vue par le TCP récepteur ; il ne mesure ni la capacité du chemin, ni l’identité du pair, ni la remise à l’application.
Un seuil n’est pas une sentence
Le premier ACK répété laisse ouvertes plusieurs histoires. Un segment a peut-être disparu ; il peut aussi être simplement arrivé après ceux qui le suivaient. Le deuxième ne ferme pas davantage l’enquête. RFC 2001 choisit le troisième ACK dupliqué consécutif comme seuil opérationnel : l’hypothèse de la perte devient assez forte pour justifier la retransmission du trou apparent avant l’expiration du RTO.
Le document ne prétend pas que le nombre trois révèle le réseau. Il part de l’hypothèse qu’un réordonnancement ordinaire produit souvent un ou deux doublons, puis un ACK nouveau lorsque le segment retardé arrive. Le seuil transforme donc une série d’observations imparfaites en droit d’agir. Il ne transforme pas l’émetteur en témoin de la file d’attente ou du lien où le paquet a disparu.
Cette distinction donne sa cohérence aux quatre algorithmes consignés en 1997. Le slow start sonde prudemment un chemin dont l’état est inconnu. La congestion avoidance ralentit la croissance de la fenêtre. Fast retransmit traite un motif d’ACK particulier. Fast recovery préserve ce que ce motif révèle encore : malgré le trou, des segments plus récents continuent d’atteindre l’autre extrémité.
Le même ACK, trois informations bornées
RFC 1122 permet au récepteur d’émettre immédiatement un ACK pour RCV.NXT lorsqu’un segment valide arrive dans la fenêtre mais hors ordre. Le numéro ne progresse pas. Il désigne toujours le prochain octet attendu et signale qu’une donnée située plus loin dans l’espace de séquence est arrivée.
Pour l’émetteur, chaque doublon ajoute donc un élément borné au dossier. La frontière cumulative est bloquée ; un autre segment a pourtant été pris en charge par le TCP distant. Ce constat ne dit pas si l’écart vient d’une congestion, d’une altération, d’un changement de route, d’une duplication de feedback ou d’une politique du récepteur. Il n’indique pas non plus la capacité restante du chemin.
Trois répétitions rendent crédible la même hypothèse de travail : retransmettre le segment qui commence à la frontière inchangée. Le mot essentiel est « crédible ». Une trace qui remplace cette nuance par « perte prouvée » efface précisément la limite que l’algorithme devait gérer.
Deux fenêtres, deux responsabilités
La fenêtre annoncée par le récepteur décrit son espace de réception. cwnd limite, côté émetteur, la quantité de données exposée au réseau selon l’encombrement perçu. RFC 2001 interdit d’envoyer au-delà du minimum des deux. Une mémoire disponible chez le destinataire ne constitue donc pas une promesse de capacité dans les routeurs intermédiaires.
ssthresh sépare ensuite les régimes de croissance. Sous le seuil, le slow start ouvre rapidement la fenêtre au retour d’ACK nouveaux. Au-dessus, la congestion avoidance vise une progression d’environ un segment par RTT. Un timeout, dépourvu d’indice sur un flux encore vivant, ramène cwnd à un segment. Trois ACK dupliqués dessinent une situation différente et permettent une reprise sans ce retour brutal.
Les trois segments ajoutés ne sont pas une nouvelle capacité
Au troisième doublon, RFC 2001 divise la fenêtre courante par deux pour établir ssthresh, sans descendre sous deux segments. Il retransmet le segment présumé manquant, puis fixe cwnd à ssthresh + 3*segsize.
Le supplément de trois correspond aux trois segments ultérieurs que les ACK dupliqués permettent d’inférer comme sortis du réseau et mis en tampon chez le récepteur. Ce n’est ni une prime de vitesse, ni une estimation durable de bande passante. C’est une écriture provisoire destinée à ne pas casser l’horloge des ACK pendant la réparation.
Chaque doublon supplémentaire ajoute un segment à cwnd. Si la nouvelle limite l’autorise, un paquet peut partir. La permission suit l’indice d’un départ supplémentaire ; elle ne prouve pas qu’une file est vide ou qu’un débit futur sera disponible. Fast recovery remplace des départs inférés, il ne fabrique pas de capacité.
L’ACK nouveau liquide le crédit
Dès qu’un ACK couvre des données nouvelles, l’exception disparaît. RFC 2001 ramène cwnd à ssthresh. Toute l’inflation liée aux doublons est retirée et l’émetteur demeure approximativement à la moitié du rythme antérieur à la perte présumée. C’est le retour à la congestion avoidance.
Le texte prévoit que cet ACK couvre la retransmission et les segments intermédiaires déjà reçus. Une observation réelle n’autorise toutefois pas à transformer cette attente en causalité parfaite. L’émetteur voit la frontière avancer ; il ne voit ni le traitement applicatif, ni le trajet exact de chaque copie, ni la raison physique de l’arrivée.
Le dégonflement est donc aussi important que le déclenchement. Sans lui, un mécanisme de reprise deviendrait une hausse permanente de l’autorité d’émettre.
Conserver les reçus séparés
Une trace exploitable doit garder le numéro d’ACK répété, le compteur de doublons, les plages encore en vol, cwnd, ssthresh, la retransmission, chaque incrément provisoire et le premier ACK qui avance. Le résultat applicatif appartient à un reçu ultérieur.
RFC 793 pose la limite décisive : un ACK TCP signifie que le TCP récepteur a pris la responsabilité des données, pas qu’elles ont été livrées à l’utilisateur. Un ACK dupliqué en dit moins encore. Il ne prouve aucune identité et RFC 2001 ne fournit pas d’analyse de sécurité.
Les sources primaires sont la fiche RFC Editor, les éditions HTML et texte, ainsi que l’historique IETF. RFC 1122 explique l’ACK hors ordre ; RFC 793 borne l’accusé de réception. RFC 2581 n’est cité que comme successeur qui a rendu RFC 2001 obsolète.
Il ne s’agit pas d’une description des piles actuelles ni d’un banc d’essai de Reno. C’est l’histoire d’un registre précis : observation, inférence, permission temporaire, retrait de la permission.
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

