Résumé
- La RFC 3479 numérotait les opérations LDP protégées et utilisait un ACK cumulatif pour borner le préfixe que le pair avait rendu durable.
- Après reconnexion, la partie incertaine était réémise ; un checkpoint vidait les confirmations et trois messages Cork établissaient une quiescence bilatérale.
La panne la plus difficile n’était pas nécessairement la disparition d’un label. C’était l’absence de réponse à une question plus simple : quel était le dernier changement dont les deux routeurs pouvaient prouver la conservation ? Une connexion TCP fiable masquait cette question tant qu’elle restait continue. Après une bascule du plan de contrôle, le nouveau flux ne contenait aucune mémoire magique du précédent. La RFC 3479 a construit cette mémoire explicitement.
Le périmètre était négocié dans le FT Session TLV. Le bit S activait les opérations protégées par numéro de séquence ; A pouvait imposer cette protection à tous les labels ; C sélectionnait le checkpointing, y compris sans S. Une capture qui conserve un ACK mais pas ces bits ne permet donc pas de savoir quelle population l’ACK décrit.
Lorsqu’un message portait le FT Protection TLV, son numéro appartenait à une session précise. Le récepteur devait sécuriser le message ou l’état produit par son traitement avant de renvoyer le FT ACK. La norme n’imposait pas de sauvegarder la même représentation partout. Elle imposait seulement que l’information survive à la défaillance qui justifiait le mécanisme.
Les ACK étaient cumulatifs. Le numéro quatre signifiait que le préfixe jusqu’à quatre était sécurisé. Il ne disait rien des opérations suivantes. Les réponses pouvaient être regroupées et retardées ; un doublon était toléré ; un ACK hors ordre était interdit. Un retard trop long remplissait l’espace des séquences non acquittées et empêchait de protéger de nouvelles opérations. L’économie de messages avait donc une dette opérationnelle mesurable.
À la reconnexion, chaque pair annonçait la dernière séquence qu’il avait sécurisée. L’autre réémettait les opérations au-delà de cette frontière, et le récepteur les traitait comme nouvelles. La reprise ne reconstituait pas tous les octets perdus : elle reconstruisait le suffixe dont le résultat n’était pas attesté par la mémoire du pair.
Deux paires pouvaient être réduites à zéro : Label Request suivi de Label Abort, et Label Mapping suivi de Label Withdraw. Mais la présence locale des deux messages ne suffisait pas. Si la première moitié avait déjà franchi l’ancienne connexion, supprimer les deux aurait laissé un état asymétrique. L’ACK reçu à la reconnexion déterminait d’abord ce que le pair avait vu ; l’optimisation venait ensuite.
La même logique protégeait Address et Address Withdraw. Sans historique durable, une adresse pouvait rester valide pour un pair et retirée pour l’autre. Toute adresse devenue invalide devait être explicitement retirée après la reprise. En l’absence de conservation revendiquée des deux côtés, l’ancien ensemble était considéré comme retiré puis reconstruit.
Le checkpoint n’était pas simplement un gros ACK. Un Keepalive avec FT Protection demandait au pair de sécuriser tous les messages check-pointable antérieurs, puis de confirmer cette frontière. Avec C sans S, les messages ordinaires n’avaient pas chacun une séquence active ; le checkpoint synchronisait l’ensemble. Avec S, il couvrait les opérations numérotées et les adresses. Sa portée venait du contrat de session, pas de son nom.
Une confirmation dans un seul sens ne suffisait pas à arrêter proprement la session. Le pair qui demandait l’arrêt devait aussi prouver qu’il avait sécurisé l’histoire reçue dans l’autre sens. Le FT Cork TLV organisait donc trois temps : demande de quiescence, achèvement et arrêt des nouvelles opérations chez le pair, puis fermeture de l’autre direction. Avant le troisième message, les deux journaux ne partageaient pas encore la même ponctuation finale.
La reprise avait aussi une sortie honnête. Un pair incapable de conserver ou de mettre en attente les opérations devait effacer le FT Reconnect Flag. Si l’un des deux le faisait, l’ancien état FT était abandonné. Une modification des paramètres, notamment des bornes de l’espace de labels, interdisait également de faire comme si l’ancienne signification restait inchangée.
La note de l’IESG tempère toute lecture triomphale. Elle juge insuffisantes les indications sur les temporisateurs et les nouvelles tentatives, avertit du risque de bascules prématurées et refuse d’ériger ce mécanisme en modèle général de tolérance aux pannes TCP. Le protocole ordonnait les preuves ; il ne garantissait pas une configuration sûre universelle.
La frontière éditoriale est nette. L’article consacré à la RFC 3478 possède l’état de transfert périmé et les fenêtres temporelles. Celui sur la RFC 3612 possède la distinction entre état conservé, ACK et vérité du forwarding. Ici, l’objet est le registre de contrôle lui-même : portée négociée, séquences, frontière durable, réémission, réduction net-zero, checkpoint et Cork.
La méthode de Heng Lu impose alors un inventaire à deux colonnes. Pour chaque pair : identité de l’ancienne et de la nouvelle session, bits S/A/C/R, paramètres, séquences émises, état sécurisé, ACK réellement transmis. Au moment de la panne : messages envoyés non confirmés, reçus non sécurisés et opérations en attente. Après reprise : justification de chaque réémission et de chaque annulation. Pour l’arrêt planifié : les trois messages Cork et l’instant où chaque direction cesse d’émettre.
Un ACK ne couvre pas un futur numéro. Un checkpoint ne couvre pas une population non négociée. Un Cork isolé ne prouve pas la quiescence. Aucun de ces reçus ne prouve la livraison d’un paquet à une application. Ils établissent une vérité plus étroite et indispensable : la portion d’histoire opérationnelle que les deux pairs peuvent reconnaître ensemble.
C’est cette discipline qui donne à la RFC 3479 sa valeur historique. Au lieu de rebaptiser l’amnésie « reprise », elle a borné le désaccord entre deux mémoires. La séquence délimitait la question, l’ACK retrouvait le passé commun, la réémission réparait le suffixe et Cork créait un point d’arrêt partagé.
Sources
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
