web-dev-qa-db-fra.com

Que sont les états CLOSE_WAIT et TIME_WAIT?

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?

158
Lazer

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.

169
BillThor

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:

http://www.jxos.org/Projects/TCP/tcpstate.html

28
sleske

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)

0
Denio Mariz