2014-01-09 4 views
0

На одном из наших серверов многие соединения находятся в CLOSE_WAIT. Я понимаю, что это означает, что другая сторона соединения закрыта, и теперь сервер пересылает FIN и меняет состояние на LAS_ACK и закрывает соединение.Состояние CLOSE_WAIT на сервере

Мои вопросы: 1. Что делать, если клиент отправляет RST, когда сервер находится в состоянии CLOSE_WAIT? 2. После того как клиент отправит FIN, и если сервер все еще хочет отправить больше данных, каково будет состояние сервера в этом случае?

Заранее благодарим за помощь.

ответ

1

Что делать, если клиент отправляет RST, когда сервер находится в состоянии CLOSE_WAIT?

На сервере все еще будет открыто гнездо, поэтому состояние не изменится. CLOSE_WAIT означает, что локальный TCP ожидает, что локальное приложение закроет сокет.

После того, как клиент отправил FIN, и если сервер все еще хочет отправить больше данных, каково будет состояние сервера в этом случае?

FIN означает, что клиент прекратил отправку. Это не означает, что клиент не может получить. Если сервер пытается отправить, либо:

  1. Это будет успешным, это означает, что клиент только сделал остановку для вывода, или

  2. Это спровоцирует RST от клиента, который означает, что клиент закрыт гнездо. Вероятно, RST не произойдет при первом отправке, но на следующем, из-за буферизации TCP.

+0

Благодарим вас за ответ. Итак, если клиент закрыл соединение, а сервер получил FIN, и если на сервере все еще есть данные для отправки, каково будет состояние TCP-сервера на сервере? – ahamed101

+0

CLOSE_WAIT конечно. – EJP

+0

Благодарим вас за быстрый ответ. – ahamed101

Смежные вопросы