Если сервер Windows имеет несколько тысяч открытых портов LAST_ACK
(как показывает netstat), что это может означать? Это потому, что одна конечная точка ожидает ответа другой?
Если сервер Windows имеет несколько тысяч открытых портов LAST_ACK
(как показывает netstat), что это может означать? Это потому, что одна конечная точка ожидает ответа другой?
Ответы:
Состояние last_ack (если я правильно помню мой стек TCP) - это состояние, когда вы получили сообщение FIN, чтобы закрыть соединение от вашего соседа, но вам все равно нужно сбросить и закрыть соединение. Вы отправляете финальный FIN самостоятельно и ждете подтверждения.
Обычно зависание в last_ack означает, что ваше приложение сохраняет сокет открытым, даже когда другой конец завершил отправку данных. Это может произойти по нескольким причинам. Там может быть брандмауэр или другой балансировщик нагрузки, который теряет последний ACK от клиента и оставляет вас застрявшим в состоянии last_ack. Если время соединения не истекло через несколько минут (10 или около того), возможно, у вас ошибка.
Посмотрите на диаграмму состояний по адресу http://tangentsoft.net/wskfaq/articles/debugging-tcp.html
LAST_ACK - последнее состояние перед закрытием соединения TCP.
LAST_ACK означает, что ваш конец получил FIN от однорангового узла, отправил ACK, отправил FIN и ожидает окончательного ACK от однорангового узла. На данный момент приложение ничего не может сделать: сокет закрыт. Приложение может даже выйти. Начиная с этого момента, TCP может повторно отправлять FIN до тех пор, пока не получит окончательный ACK или не истечет время ожидания. Как администратор, вы мало что можете сделать, кроме как исследовать сеть.
Я считаю, что @lmo правильно сказал, что это «последнее состояние перед закрытием TCP-соединения», но в дополнение к этому, основываясь на моем чтении страницы википедии, стоит отметить, что это не является частью « Механизм «Активное закрытие», который (в моем понимании) является окончанием большинства хорошо управляемых соединений, а скорее частью последовательности «Пассивное закрытие», которая предположительно связана с плохим случаем.
(FWIW, я - языки, а не сети. Я был бы рад получить разъяснения от сетевого человека.)