FIN包保证到货吗?

时间:2015-06-03 09:28:26

标签: sockets networking tcp winsock

在4次握手中,我们有以下内容:

FIN ------->
<------- ACK
<---x--- FIN (what if this packet is lost?)
ACK ------->

如果第三个数据包丢失会发生什么情况,会重新传输吗?请注意,在发送第三个数据包时,程序可能已经破坏了套接字,因此它不能再发送任何内容了!

1 个答案:

答案 0 :(得分:3)

TCP协议

  

FIN之前和之后的所有段都将被重传,直到被确认为止。

来源:https://tools.ietf.org/html/rfc793

插槽

您可以使用操作系统工具查看打开的TCP套接字及其状态。在TCP完成期间,套接字首先打开以进行双向通信,然后每一方都关闭其方向,并且必须在操作系统中释放资源之前确认每个FIN。

为了重新传输FIN数据包,必须仍然在操作系统中表示连接,直到FIN被激活或超时为止。