为什么TIME_WAIT等待连接上所有的分组消失的时间是2MSL而不是MSL?

为什么TIME_WAIT的时间是2MSL?

理由1很容易理解。主要是理由2,客户端回复最后一个ACK之后,感觉一个MSL就可以所有分组消失了啊,为什么还要2MSL所有分组才消失呢?我的理解是:

假设客户端发送ACK刚刚过了一个MSL时间,而服务端在收到这个ACK之前一瞬间刚好启动超时重传FIN,所以要等这个FIN也消失,就是2MSL了。文中所指的另一个方向的应答应该就是这个超时重传的FIN吧。

参考来源:《UNIX 网络编程 卷1》第3版)

猜你喜欢

转载自blog.csdn.net/a3192048/article/details/85414502