是否可以保证在进程终止时发送RST数据包?
如果我有一个连接套接字的进程,并且我终止了这个过程,那么Windows将导致发送一个RST数据包。
是否保证(在某处记录)在进程终止时始终发送RST数据包,还是可以发送FIN数据包?
最佳答案:
1 个答案:
答案 0 :(得分:1)
连接关闭时,TCP不应发送RST数据包。要关闭连接,TCP将在客户端进行以下状态:
- 发送FIN数据包。此操作会将TCP状态更改为
FIN_WAIT_1
。 - 在
FIN_WAIT_1
中,TCP等待来自服务器的确认(ACK)。 - 收到确认后,TCP输入
FIN_WAIT_2
。 - 在
FIN_WAIT_2
中,TCP等待来自服务器的FIN
数据包 - 到达
FIN
后,客户端会发送ACK
并输入TIME_WAIT
-
TIME_WAIT
在一段时间后退出(通常为30秒或1分钟)。此状态的目的是使最终ACK
能够重新发送到服务器以防丢失。
醇>
任何地方都没有RST数据包。 RST用于响应意外流量,不以关闭连接。
例如,如果您将TCP数据包发送到端口80,并且服务器未运行HTTP服务器(并假设数据包一直到服务器并且未被阻止/忽略),那么RST回复是送回客户端。
本文经用户投稿或网站收集转载,如有侵权请联系本站。