LAST_ACK 是什么意思,作为 netstat 中的状态值?

Nic*_*ton 16 tcp

如果 Windows 服务器有数千个端口处于打开LAST_ACK状态(如 netstat 所示),这意味着什么?是因为一个端点正在等待另一个端点响应吗?

peh*_*hrs 11

last_ack 状态(如果我没记错我的 TCP 堆栈)是当您收到 FIN 消息以关闭来自邻居的连接时的状态,但您仍然需要刷新并关闭您的连接。您自己发送最终的 FIN 并等待 ACK。

通常挂在 last_ack 意味着您的应用程序保持套接字打开,即使另一端已完成发送数据。这可能有多种原因。可能有防火墙或其他负载均衡器丢失了来自客户端的最后一个 ACK​​,并使您陷入 last_ack 状态。如果连接在几分钟(10 左右)后没有超时,您可能有错误。

http://tangentsoft.net/wskfaq/articles/debugging-tcp.html查看状态图

  • 不正确。您正在描述 CLOSE_WAIT。 (5认同)

use*_*421 6

LAST_ACK 表示你端已经收到对端的 FIN,发送了一个 ACK​​,发送了一个 FIN,正在等待来自对端的最终 ACK。此时,应用程序无能为力:套接字已关闭。应用程序甚至可能已经退出。从这里开始,由 TCP 重新发送 FIN,直到它获得最终的 ACK,或者超时。除了调查网络之外,您作为管理员无能为力。


Imo*_*Imo 4

LAST_ACK 是关闭 TCP 连接之前的最后一个状态。

  • 谢谢,什么会导致端口挂起在这种状态? (2认同)
  • 它不会“向客户端发送 LAST_ACK”。它发送 FIN 并目前正在等待 ACK,已经收到 FIN 并发送了 ACK。这是关闭连接*之后*的最后一个状态。 (2认同)