Résumé
- TIME-WAIT conserve l’état d’une connexion fermée afin que ses anciens segments ne soient pas confondus avec ceux d’une nouvelle instance de connexion utilisant le même quadruplet.
- RFC 1337 décrit une chaîne où un segment inacceptable déclenche un ACK, que le pair sans état transforme en RST ; ce RST peut supprimer TIME-WAIT trop tôt.
- RFC 1337 proposait d’ignorer les RST dans TIME-WAIT, mais ce document Informational ne constitue pas une obligation universelle actuelle.
- RFC 6191 autorise certaines réouvertures anticipées seulement lorsque des preuves de timestamp et de numéro de séquence indiquent une instance plus récente.
Une mémoire de sécurité
Après une fermeture active, TCP garde normalement le bloc de contrôle pendant 2×MSL. Cette attente laisse disparaître les doublons retardés avant la réutilisation du même quadruplet d’adresses et de ports. TIME-WAIT ne règle ni les retransmissions ni le délai de livraison d’une application : c’est une frontière entre deux histoires de connexion.
Comment le danger se forme
Le scénario de RFC 1337 commence avec A en TIME-WAIT et B déjà revenu à CLOSED. Un ancien segment de données ou d’ACK arrive chez A et est jugé inacceptable. A répond par un ACK. B, qui ne possède plus de connexion correspondante, répond à cet ACK par un RST. A traite alors ce RST et supprime son état TIME-WAIT avant l’expiration prévue.
Chaque action peut paraître normale isolément. Ensemble, elles retirent la mémoire qui devait empêcher un ancien paquet d’atteindre une nouvelle instance de connexion. Le paquet qui assassine l’état est le RST ; le danger ultérieur peut venir d’un autre doublon ancien.
Deux remèdes qui ne se confondent pas
La solution F1 de RFC 1337 consistait à ignorer les RST en TIME-WAIT. Le texte la présentait comme une solution simple à court terme, sous réserve d’un MSL effectivement respecté, et demandait des essais en production. RFC 9293 conserve toutefois, dans son traitement de base, la fermeture et la suppression du bloc après validation d’un RST en TIME-WAIT. F1 ne doit donc pas être décrit comme intégré partout.
RFC 6191 traite une autre pression : les réouvertures fréquentes. Il modifie le traitement des SYN entrants et conserve TIME-WAIT si les timestamps et numéros de séquence ne prouvent pas qu’il s’agit d’une instance plus récente. RFC 9293 n’autorise la réouverture directe qu’avec ses contrôles de numéro de séquence et le retour à TIME-WAIT si le SYN se révèle être un ancien doublon ; il recommande l’algorithme à timestamps de RFC 6191 pour les cadences élevées. Réutiliser prudemment n’est pas effacer l’état.
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
