У меня есть веб-приложение, работающее на Tomcat 6.0.44 и после запуска в течение некоторого времени, оно оставляет много соединений CLOSE_WAIT. После проверки дампов сети я обнаружил, что закрытие соединения, инициированное с сервера, работает нормально с Normal Close Sequence в соответствии с RFC 793 (закрытие в четырех направлениях, если я не ошибаюсь). Но когда закрытие соединения инициируется клиентом (браузером Chrome), последовательность закрытия соединения не заканчивается. И это, кажется, причина для соединений CLOSE_WAIT. Вот сетевой дамп для одного из соединений, которые не закрыты должным образом. Клиент сделал POST для сервера, а затем попросил закрыть соединение, прежде чем сервер отправил ответ. Сервер отправил ACK и отправил ответ с перенаправлением. Здесь связь в полузакрытом состоянии, если я правильно понимаю. И в спецификации сказано, что в этом случае сервер все еще может отправлять данные, но клиент не может ответить. И сервер должен был отправить FIN ACK после отправки данных. Поэтому вопрос в том, почему клиент (браузер) закрыл соединение до того, как сервер отправил FIN ACK?