我们知道tcp 传输中需要三次握手和四次挥手
2MSL 发生在挥手阶段
原因
- 保证可靠的TCP通讯安全的断开
- 保证旧的的消息在网络消失
安全断开
- 我们知道一个IP 包最大的声明周期是 1 MSL
- 理论上只要等一个周期就可以结束了。。。
- 但是如果正好在此时这个关键的 ACK 丢了...
- 就无法确认到底是FIN 是没收到
- 还是对方应答 ACK 丢了
- 为了保险就 1MSL 就重发 FIN 在没收到就直接端掉 不等了
- 双方都是如此 就可以安全断开了
旧的消息安全的消失
- IP 四元组确定 但是基本短时间内
- 双方的IP固定
- 服务的端口是固定的
- 唯一的变量就是客户端的端口 在2MSL 打死不能复用
- 就可以保证 不同链接消息安全的消失在分组路由中