为什么TIME_WAIT的时间是2MSL?
理由1很容易理解。主要是理由2,客户端回复最后一个ACK之后,感觉一个MSL就可以所有分组消失了啊,为什么还要2MSL所有分组才消失呢?我的理解是:
假设客户端发送ACK刚刚过了一个MSL时间,而服务端在收到这个ACK之前一瞬间刚好启动超时重传FIN,所以要等这个FIN也消失,就是2MSL了。文中所指的另一个方向的应答应该就是这个超时重传的FIN吧。
参考来源:《UNIX 网络编程 卷1》第3版)