TCP中的重要概念


Author: yifei / Created: May 29, 2017, 7:47 p.m. / Modified: May 29, 2017, 7:50 p.m. / Edit

MSS 最长报文长度, 由两端的较短值决定, 在以太网中的典型值为1460, 是以太网的 MTU(1500)减去 IP 的头部40B 得到的

TIME_WAIT 状态

首先是另一个概念 MSL, 最长报文生命周期,在 BSD 系统上一般设定为30s, 不过可以长到2min, 然后还有一个假设就是 假如有一个包,具有 IP 头部中的 hop limit 也就是 Ping 中常见的 TTL 字段最大值(255), 那么这个包在网络中的生存时间不会超过 MSL. TIME_WAIT状态的时间设定为2MSL

TIME_WAIT 是主动关闭端进入的状态, 发送完最后一个 ACK 之后进入 TIME_WAIT 状态等待2MSL 才进入 CLOSED 状态

TIME_WAIT 状态存在的两个理由:

  1. 可靠地实现 TCP 全双工链接的终止; 加入对方没能收到最后一个 ACK, 那么他将会重新发送 FIN, 这时候如果客户端已经关闭了显然不能再次回复 ACK 了.
  2. 保证上一个相同连接的数据包已经在网络上消失; 如果一个新的链接建立在了同一个端口上, 那么他将可能收到上一个进程的数据包, 这是我们为老连接保留了2MSL 的 TIME_WAIT 值,那么就可以保证原有的链接都不存在网络上了.

评论区