Nick Bolton Asked: 2010-04-01 07:10:59 +0800 CST2010-04-01 07:10:59 +0800 CST 2010-04-01 07:10:59 +0800 CST 作为 netstat 中的状态值,LAST_ACK 是什么意思? 772 如果 Windows 服务器有数千个端口处于打开LAST_ACK状态(如 netstat 所示),这意味着什么?是因为一个端点正在等待另一个端点响应吗? tcp 4 个回答 Voted pehrs 2010-04-01T08:09:02+08:002010-04-01T08:09:02+08:00 last_ack 状态(如果我没记错的话)是您收到 FIN 消息以关闭来自邻居的连接时的状态,但您仍然需要刷新并关闭连接。您自己发送最终的 FIN 并等待 ACK。 通常挂在 last_ack 中意味着你的应用程序保持一个套接字打开,即使另一端已经完成发送数据。这可能有多种原因。可能有防火墙或其他负载均衡器丢失了来自客户端的最后一个 ACK,并让您停留在 last_ack 状态。如果连接在几分钟(大约 10 分钟)后没有超时,则您可能有错误。 查看http://tangentsoft.net/wskfaq/articles/debugging-tcp.html上的状态图 user207421 2014-06-17T21:36:12+08:002014-06-17T21:36:12+08:00 LAST_ACK 表示你端已经收到对端的 FIN,发送了 ACK,发送了 FIN,正在等待对端的最终 ACK。此时应用程序无能为力:套接字已关闭。应用程序甚至可能已经退出。从这里开始,由 TCP 重新发送 FIN 直到它得到最终的 ACK,或者这样做超时。作为管理员,除了调查网络之外,您无能为力。 Imo 2010-04-01T07:20:19+08:002010-04-01T07:20:19+08:00 LAST_ACK 是关闭 TCP 连接之前的最后一个状态。 John Clements 2017-10-06T08:54:20+08:002017-10-06T08:54:20+08:00 我相信@lmo 说它是“关闭 TCP 连接之前的最后一个状态”是正确的,但除此之外,根据我对维基百科页面的阅读,值得注意的是,这不是“主动关闭”机制(在我的理解中)是大多数行为良好的连接的结束,而是“被动关闭”序列的一部分,这可能与发生坏事有关。 (FWIW,我是语言,而不是网络。我很乐意从网络人员那里得到澄清。)
last_ack 状态(如果我没记错的话)是您收到 FIN 消息以关闭来自邻居的连接时的状态,但您仍然需要刷新并关闭连接。您自己发送最终的 FIN 并等待 ACK。
通常挂在 last_ack 中意味着你的应用程序保持一个套接字打开,即使另一端已经完成发送数据。这可能有多种原因。可能有防火墙或其他负载均衡器丢失了来自客户端的最后一个 ACK,并让您停留在 last_ack 状态。如果连接在几分钟(大约 10 分钟)后没有超时,则您可能有错误。
查看http://tangentsoft.net/wskfaq/articles/debugging-tcp.html上的状态图
LAST_ACK 表示你端已经收到对端的 FIN,发送了 ACK,发送了 FIN,正在等待对端的最终 ACK。此时应用程序无能为力:套接字已关闭。应用程序甚至可能已经退出。从这里开始,由 TCP 重新发送 FIN 直到它得到最终的 ACK,或者这样做超时。作为管理员,除了调查网络之外,您无能为力。
LAST_ACK 是关闭 TCP 连接之前的最后一个状态。
我相信@lmo 说它是“关闭 TCP 连接之前的最后一个状态”是正确的,但除此之外,根据我对维基百科页面的阅读,值得注意的是,这不是“主动关闭”机制(在我的理解中)是大多数行为良好的连接的结束,而是“被动关闭”序列的一部分,这可能与发生坏事有关。
(FWIW,我是语言,而不是网络。我很乐意从网络人员那里得到澄清。)