Lorsque je fais netstat -a
sur ma machine Windows, je reçois une liste des ports avec l’un des quatre états suivants:
- LISTENING
- CLOSE_WAIT
- TIME_WAIT
- ESTABLISHED
Que signifient CLOSE_WAIT
et TIME_WAIT
?
En raison du fonctionnement de TCP/IP, les connexions ne peuvent pas être fermées immédiatement. Les paquets peuvent arriver hors service ou être retransmis après la fermeture de la connexion. CLOSE_WAIT indique que le point de terminaison distant (de l'autre côté de la connexion) a fermé la connexion. TIME_WAIT indique que le point de terminaison local (de ce côté) a fermé la connexion. La connexion est conservée afin que tous les paquets retardés puissent être mis en correspondance avec la connexion et gérés de manière appropriée. Les connexions seront supprimées quand ils expireront dans les quatre minutes. Voir http://en.wikipedia.org/wiki/Transmission_Control_Protocol pour plus de détails.
Fondamentalement, les états "WAIT" signifient qu'un côté a fermé la connexion mais que la confirmation finale de la fermeture est en attente.
Voir par exemple ce diagramme de TCP indique les détails:
TIME_WAIT signifie attendre suffisamment de temps pour être sûr que TCP distant a reçu l'ACK de sa demande FIN. Voir en.wikipedia.org/wiki/Transmission_Control_Protocol (ainsi que RFC 793)