Каково состояние сокета TCP после удаленного закрытия? - PullRequest
0 голосов
/ 15 декабря 2008

Скажем, я принял () соединение с моим сервером (который работает на Solaris), и клиент закрыл соединение. Каково состояние сокета (в категориях netstat) сокета на стороне сервера, прежде чем я закрою () его на стороне сервера? Это ОБЯЗАТЕЛЬНО?

Ответы [ 5 ]

7 голосов
/ 15 декабря 2008

Это будет CLOSE_WAIT, см. Диаграмму состояния tcp, например на http://en.wikipedia.org/wiki/File:Tcp_state_diagram_new.svg

1 голос
/ 16 декабря 2008

В этом случае сокет на клиенте будет в TIME_WAIT, а сокет на сервере будет проходить через CLOSE_WAIT и довольно быстро перейдет в CLOSED, так что вы можете не поймать его в netstat, пока он полностью не исчезнет из списка.

0 голосов
/ 13 июня 2016

CLOSE_WAIT

Вы можете проверить по:

ps auxf

lsof -a -p [server_process_id]

вы получите: носок 0,8

состояние 8: TCP_CLOSE

0 голосов
/ 20 апреля 2011

Это должно быть CLOSE_WAIT, так как конец, который начинает FIN, переходит к TIME_WAIT ---> CLOSED первым.

В этом клиент инициирует первым. Таким образом, сервер перейдет на CLOSE_WAIT.

0 голосов
/ 15 декабря 2008

Полагаю, TIME_WAIT.

Вы можете проверить это с помощью "netstat" в Linux, не знаю, как это сделать в Solaris.

...