Co to są stany CLOSE_WAIT i TIME_WAIT?
Kiedy robię netstat -a
na moim komputerze z systemem Windows, otrzymuję listę portów z jednym z czterech stanów:
- LISTENING
- CLOSE_WAIT
- TIME_WAIT
- ESTABLISHED
Co oznaczają CLOSE_WAIT
i TIME_WAIT
?
Kiedy robię netstat -a
na moim komputerze z systemem Windows, otrzymuję listę portów z jednym z czterech stanów:
- LISTENING
- CLOSE_WAIT
- TIME_WAIT
- ESTABLISHED
Co oznaczają CLOSE_WAIT
i TIME_WAIT
?
Ze względu na sposób działania TCP/IP, połączenia nie mogą być natychmiast zamykane. Po zamknięciu połączenia, pakiety mogą pojawić się nieporządane lub być retransmitowane. CLOSE_WAIT oznacza, że zdalny punkt końcowy (druga strona połączenia) zamknął połączenie. TIME_WAIT wskazuje, że lokalny punkt końcowy (po tej stronie) zamknął połączenie. Połączenie jest utrzymywane w pobliżu, dzięki czemu wszelkie opóźnione pakiety mogą być dopasowane do połączenia i odpowiednio obsługiwane. Połączenia zostaną usunięte po upływie czterech minut. Więcej szczegółów można znaleźć w http://en.wikipedia.org/wiki/Transmission\_Control_Protokół .
Zasadniczo stany “WAIT” oznaczają, że jedna strona zamknęła połączenie, ale ostateczne potwierdzenie zamknięcia jest w toku.
Zobacz np. ten diagram stanów TCP po szczegóły: http://www.jxos.org/Projects/TCP/tcpstate.html
TIME_WAIT oznacza oczekiwanie na wystarczająco dużo czasu, aby mieć pewność, że zdalny TCP otrzymał ACK swojego żądania FIN. Patrz en.wikipedia.org/wiki/Transmisja_Control_Protokół (a także RFC 793)