2014-01-09 63 views
0

在我们的一台服务器中,有很多连接在CLOSE_WAIT中。我知道这意味着连接的另一端已关闭,现在由服务器发送FIN并将状态更改为LAS_ACK并关闭连接。服务器中的CLOSE_WAIT状态

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

在此先感谢您的帮助。

回答

1

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

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

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

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

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

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

+0

感谢您的回复。因此,如果客户端已关闭连接并且服务器收到FIN,并且如果服务器仍有数据要发送,那么服务器的TCP状态是什么? – ahamed101

+0

当然CLOSE_WAIT。 – EJP

+0

感谢您的及时回应。 – ahamed101