自己推算的,如果有误欢迎指正。
A为主动方,B为被动方。
假设A的第四次挥手ACK丢失,B的FIN重发次数n次,重发间隔为x,B第一次发送发FIN到达A的时间为t(t = 0为最理想情况)。
假设最极端的情况,B重发的前4次都丢失了,最后一次重发的数据经过MSL到达A。
则n * x + MSL <= 2MSL + t,x <= (MSL + t) / n,x小于这个值才能保证正常断开连接。
在x为这个值的情况下,即使重发的fin全部丢失,B能正常断开连接(因为重发完了),A也能正常断开连接(因为超过了2MSL)。
网友评论