服务器中的CLOSE_WAIT状态

时间:2014-01-09 23:08:13

标签: tcp proxy tcpclient tcpserver

在我们的某个服务器中,许多连接都在CLOSE_WAIT中。据我所知,这意味着连接的另一端已关闭,现在由服务器发送FIN并将状态更改为LAS_ACK并关闭连接。

我的问题是 1.如果客户端在服务器处于CLOSE_WAIT状态时发送RST怎么办? 2.客户端发送FIN后,如果服务器仍想发送更多数据,那么在这种情况下服务器的状态是什么?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

  

如果客户端在服务器处于CLOSE_WAIT状态时发送RST怎么办?

服务器仍然会打开套接字,因此状态不会改变。 CLOSE_WAIT表示本地TCP正在等待本地应用程序关闭套接字。

  

客户端发送FIN后,如果服务器仍想发送更多数据,那么在这种情况下服务器的状态是什么?

FIN表示客户端已停止发送。这并不意味着客户端无法接收。如果服务器尝试发送,则:

  1. 它会成功,这意味着客户端只关闭输出,或

  2. 它会从客户端激发RST,这意味着客户端关闭了套接字。由于TCP缓冲,RST可能不会在第一次发送时发生,而是在后续发送时发生。