Se um servidor Windows tiver vários milhares de portas abertas no LAST_ACK
estado (como mostrado pelo netstat), o que isso significa? É porque um terminal está esperando o outro responder?
O estado last_ack (se bem me lembro da minha pilha TCP) é o estado em que você recebeu sua mensagem FIN para fechar a conexão do seu vizinho, mas você ainda precisa liberar e desligar a conexão. Você mesmo envia a FIN final e aguarda um ACK.
Normalmente, pendurar last_ack significa que seu aplicativo mantém um soquete aberto, mesmo quando a outra extremidade termina de enviar dados. Isso pode acontecer por vários motivos. Pode haver um firewall ou outro balanceador de carga que perca a última ACK do cliente e o deixe preso no estado last_ack. Se as conexões não atingirem o tempo limite após alguns minutos (10 ou mais), você provavelmente terá um erro.
Dê uma olhada no diagrama de estado em http://tangentsoft.net/wskfaq/articles/debugging-tcp.html
LAST_ACK é o último estado antes de fechar a conexão TCP.
fonte
LAST_ACK significa que seu final recebeu um FIN do par, enviou um ACK, enviou um FIN e está aguardando o ACK final do mesmo. Neste ponto, não há mais nada que o aplicativo possa fazer: o soquete está fechado. O aplicativo pode até ter saído. Daqui em diante, cabe ao TCP reenviar o FIN até receber o ACK final ou o tempo limite para fazê-lo. Você não pode fazer muito como administrador, exceto investigar a rede.
fonte
Acredito que o @lmo está correto ao dizer que é "o último estado antes de encerrar a conexão TCP", mas além disso, com base na minha leitura da página da wikipedia, vale a pena notar que isso não faz parte do " Mecanismo de fechamento ativo "que (no meu entender) é o fim da maioria das conexões bem comportadas, mas parte da sequência" Fechamento passivo ", presumivelmente associado ao Bad Stuff Happening.
(FWIW, sou idiomas, não redes. Ficaria feliz em esclarecer com uma pessoa da rede.)
fonte