服务器中的CLOSE_WAIT状态

问题描述 投票:0回答:1

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

我的问题是:

  1. 如果服务器处于RST状态时客户端发送CLOSE_WAIT怎么办?
  2. 在客户端发送FIN之后,如果服务器仍要发送更多数据,在这种情况下服务器的状态是什么?
tcp proxy tcpclient tcpserver
1个回答
2
投票

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

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

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

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

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

  2. 它将从客户端发出RST,这意味着客户端已关闭套接字。由于TCP缓冲,RST可能不会在第一次发送时发生,而在随后的发送中发生。

© www.soinside.com 2019 - 2024. All rights reserved.