17 votos

¿Qué significa LAST_ACK, como valor del Estado en netstat?

Si un servidor Windows tiene varios miles de puertos abiertos en LAST_ACK estado (como lo muestra netstat), ¿qué podría significar esto? ¿Es porque un punto final está esperando que el otro responda?

12voto

pehrs Puntos 6831

El estado last_ack (si recuerdo correctamente mi pila TCP) es el estado en el que has recibido tu mensaje FIN para cerrar la conexión de tu vecino, pero todavía tienes que limpiar y cerrar tu conexión. Envías el FIN final tú mismo y esperas un ACK.

Normalmente, colgar en last_ack significa que tu aplicación mantiene un socket abierto incluso cuando el otro extremo ha terminado de enviar datos. Esto puede ocurrir por múltiples razones. Puede haber un cortafuegos u otro equilibrador de carga que pierda el último ACK del cliente, y lo deje atascado en el estado last_ack. Si las conexiones no se agotan después de unos minutos (10 más o menos) es probable que tengas un error.

Echa un vistazo al diagrama de estado en http://tangentsoft.net/wskfaq/articles/debugging-tcp.html

5 votos

No es correcto. Estás describiendo CLOSE_WAIT.

6voto

EJP Puntos 638

LAST_ACK significa que tu extremo ha recibido un FIN del peer, ha enviado un ACK, ha enviado un FIN, y está esperando el ACK final del peer. En este punto no hay nada más que la aplicación pueda hacer: el socket está cerrado. La aplicación puede incluso haber salido. A partir de aquí, depende de TCP volver a enviar el FIN hasta que obtenga el ACK final, o que se agote el tiempo de espera. No hay mucho que puedas hacer como administrador, excepto investigar la red.

4voto

Imo Puntos 711

LAST_ACK es el último estado justo antes de cerrar la conexión TCP.

2 votos

Gracias, ¿qué puede hacer que un puerto se cuelgue en este estado?

0 votos

¿Es un servidor web IIS (u otro servicio) en el que estás viendo esto, o, tu propia aplicación?

0 votos

La aplicación implementa el cliente XML-RPC "Cook Computing" (de Asp.Net, ejecutado a través de IIS), y está hablando con un servidor Java XML-RPC.

0voto

TheAbsurd Puntos 26

Creo que @lmo tiene razón al decir que es "el último estado justo antes de cerrar la conexión TCP", pero además de esto, basándome en mi lectura de la página de la wikipedia, vale la pena señalar que esto no es parte del mecanismo de "Cierre Activo" que (a mi entender) es el final de la mayoría de las conexiones de buen comportamiento, sino más bien parte de la secuencia de "Cierre Pasivo", que presumiblemente se asocia con Bad Stuff Happening.

(Por cierto, soy de idiomas, no de redes. Estaría encantado de que una persona de redes me lo aclarara).

1 votos

No tiene razón al decir eso, y no hay nada malo en un cierre pasivo. Sólo significa que el compañero cerró antes que tú.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X