上山打老虎 发表于 2021-7-8 09:46:31

08 tcp的2MSL问题


2MSL即两倍的MSL,TCP的TIME_WAIT状态也称为2MSL等待状态
  当TCP的一端发起主动关闭,在发出最后一个ACK包后
  即第3次握 手完成后发送了第四次握手的ACK包后就进入了TIME_WAIT状态
  必须在此状态上停留两倍的MSL时间
  等待2MSL时间主要目的是怕最后一个 ACK包对方没收到
  那么对方在超时后将重发第三次握手的FIN包
  主动关闭端接到重发的FIN包后可以再发一个ACK应答包
  在TIME_WAIT状态 时两端的端口不能使用,要等到2MSL时间结束才可继续使用
  当连接处于2MSL等待阶段时任何迟到的报文段都将被丢弃
  不过在实际应用中可以通过设置 SO_REUSEADDR选项达到不必等待2MSL时间结束再使用此端口
  

  
文档来源:51CTO技术博客https://blog.51cto.com/u_15294985/2996380
页: [1]
查看完整版本: 08 tcp的2MSL问题