在4次握手中,我们有以下内容:
FIN ------->
<------- ACK
<---x--- FIN (what if this packet is lost?)
ACK ------->
如果第三个数据包丢失会发生什么情况,会重新传输吗?请注意,在发送第三个数据包时,程序可能已经破坏了套接字,因此它不能再发送任何内容了!
答案 0 :(得分:3)
FIN之前和之后的所有段都将被重传,直到被确认为止。
来源:https://tools.ietf.org/html/rfc793
您可以使用操作系统工具查看打开的TCP套接字及其状态。在TCP完成期间,套接字首先打开以进行双向通信,然后每一方都关闭其方向,并且必须在操作系统中释放资源之前确认每个FIN。
为了重新传输FIN数据包,必须仍然在操作系统中表示连接,直到FIN被激活或超时为止。