TIME-WAIT
TIME-WAIT : état dans lequel une connexion TCP reste, après l'échange des FIN, du côté de celui qui a fermé en premier. Il permet de réacquitter un FIN retransmis si le dernier acquittement s'est perdu, et d'éviter qu'un segment retardé de l'ancienne connexion soit pris pour une donnée d'une nouvelle connexion entre les mêmes adresses et ports. La spécification fixe sa durée à deux fois la durée de vie maximale d'un segment ; Linux utilise 60 secondes.
Une connexion en TIME-WAIT ne tient ni processus ni descripteur de fichier, mais elle occupe un port éphémère côté client : un client qui ouvre et ferme des milliers de connexions vers une même destination peut épuiser sa plage de ports. Le remède est de réutiliser les connexions, pas de raccourcir l'état (l'ancien réglage tcp_tw_recycle a été supprimé de Linux en version 4.12).
Dans les cours
- Le modèle TCP/IP, leçon 10 : TCP : établir et fermer une connexion
- Le modèle TCP/IP, leçon 12 : Diagnostiquer un problème réseau