TCP 端来链接为什么一定要等2MSL

我们知道tcp 传输中需要三次握手和四次挥手

2MSL 发生在挥手阶段

原因

  • 保证可靠的TCP通讯安全的断开
  • 保证旧的的消息在网络消失
安全断开
  • 我们知道一个IP 包最大的声明周期是 1 MSL
  • 理论上只要等一个周期就可以结束了。。。
  • 但是如果正好在此时这个关键的 ACK 丢了...
    • 就无法确认到底是FIN 是没收到
    • 还是对方应答 ACK 丢了
  • 为了保险就 1MSL 就重发 FIN 在没收到就直接端掉 不等了
  • 双方都是如此 就可以安全断开了
旧的消息安全的消失
  • IP 四元组确定 但是基本短时间内
    • 双方的IP固定
    • 服务的端口是固定的
  • 唯一的变量就是客户端的端口 在2MSL 打死不能复用
    • 就可以保证 不同链接消息安全的消失在分组路由中
posted @ 2022-10-27 11:36  vx_guanchaoguo0  阅读(33)  评论(0编辑  收藏  举报