Résumé
- L'acquittement cumulatif de TCP s'arrête au premier trou dans la suite d'octets. SACK permettait au destinataire de signaler les blocs arrivés plus loin.
- Le RFC 2018 autorisait le destinataire à abandonner des données déjà signalées par SACK. L'émetteur conservait donc ses octets jusqu'à l'avancée de l'acquittement cumulatif.
Le courrier apporte un dossier par liasses. La troisième manque; la quatrième attend déjà sur le bureau. Le tampon officiel ne peut pas certifier une série complète au-delà de la deuxième. On peut cependant griffonner sur un billet que la quatrième liasse est arrivée. Voilà le service rendu par l'acquittement sélectif de TCP. Le billet a une vertu : il renseigne. Il a aussi une limite : un bureau encombré peut être vidé.
Le RFC 1072, proposé en octobre 1988, présentait le problème des chemins à grand délai. Avec le seul acquittement cumulatif, l'expéditeur voit une frontière immobile après une perte, même si d'autres segments ont atteint le destinataire. Il peut attendre un nouveau trajet aller-retour pour découvrir le trou suivant, ou réexpédier des données déjà reçues. Les auteurs proposaient une information plus fine sur les morceaux parvenus à destination. Le texte de 1988 ouvrait une piste expérimentale; la forme normalisée viendrait ensuite.
En octobre 1996, le RFC 2018 donna à SACK une place dans les options TCP. Pour qu'un destinataire envoie ces blocs, l'autre extrémité devait avoir annoncé SACK-Permitted dans le SYN initial. Un bloc SACK décrivait une plage continue d'octets reçus au-delà du trou. Le numéro d'acquittement ordinaire restait dans l'en-tête TCP et continuait à marquer le préfixe complet. Le paquet pouvait donc porter deux renseignements différents : jusqu'où la suite était entière, et quels îlots ultérieurs reposaient dans la file.
L'option disposait de peu de place. Plusieurs îlots pouvaient exister sans que tous tiennent dans un seul accusé de réception. Le premier bloc devait normalement couvrir le segment qui venait de déclencher l'ACK, sauf si ce segment avait fait avancer l'acquittement cumulatif. Le RFC recommandait d'indiquer autant de blocs distincts que possible, puis de répéter des blocs récemment signalés. Un ACK perdu n'effaçait ainsi pas forcément toute trace d'un îlot. L'expéditeur lisait une liste limitée, dont l'ordre après le premier bloc pouvait varier.
Le point le plus intéressant se trouvait du côté de la corbeille. Le destinataire pouvait jeter des données hors ordre déjà signalées, notamment lorsque sa mémoire manquait. Le RFC 2018 appelait cela reneging. Les prochains blocs SACK ne devaient plus présenter comme conservés les vieux octets effectivement jetés. Une exception imposait encore de signaler dans le premier bloc le segment le plus récent, même si le destinataire allait l'écarter. Le billet sélectif attestait l'arrivée et un état transitoire; il n'était pas un reçu de garde définitive.
Le RFC en tirait une consigne stricte pour l'émetteur : ne pas supprimer ses octets avant que le numéro d'acquittement cumulatif ne les couvre. SACK pouvait orienter les retransmissions vers les trous et épargner des copies inutiles. Mais une liasse momentanément visible chez le destinataire pouvait finir à la poubelle avant que le trou précédent soit comblé. L'expéditeur restait le dépositaire de secours. Le gain de précision servait à décider quoi envoyer ensuite; il ne dispensait pas de garder l'original.
Le RFC 2883 de juillet 2000 utilisa encore l'option pour annoncer la réception d'un doublon, sous le nom D-SACK. Il ne changea ni la signification du numéro cumulatif ni le moment où un ACK devait être émis. Un doublon pouvait n'être rapporté que dans un seul paquet; si cet ACK disparaissait, l'information disparaissait avec lui. Même un accusé enrichi dépendait du voyage de son propre message.
L'histoire de SACK tient dans cette nuance du reçu. TCP a appris à dire « la suite est là » pendant qu'un trou bloquait le tampon officiel. Il a refusé de confondre cette note utile avec une promesse de stockage éternel. L'expéditeur peut éviter de renvoyer les pages qui semblent posées sur le bureau. Il attend le tampon cumulatif avant de brûler ses doubles.
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





