合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
![](https://img.kancloud.cn/1f/90/1f90131744455a73e437fdbd025d0667_656x732.png) ## TCP 协议 * 面向连接的 (三次握手后,客户端和服务端都会有一个 队列,用来存储连接的数据) * 可靠的 (通过三次握手,保证数据准确传输 ack) * 传输控制协议 ### TCP 三次握手过程中,client 挂了,那么服务端等待的时间是多长 * Linux下默认会进行**5次重发SYN-ACK包** * 重试的间隔时间从1s开始,下次的重试间隔时间是前一次的**双倍**,5次的重试时间间隔为1s, 2s, 4s, 8s, 16s,总共31s * 第5次发出后还要等32s都知道第5次也超时了,总共需要 1s + 2s + 4s+ 8s+ 16s + 32s = 63s,TCP才会把断开这个连接。 ### TCP 四次挥手中, 为什么client 需要等待 2msl **2MSL**: 是任何报文在网络上的**存在的最长时间**,超过这个时间报文将被丢弃。这里的2MSL是时间等待计时器设置的。 * 因为client 不确定 最后一次挥手的 ack 是否到达 server 端,他就会等 2msl,直到 server 端再次发送新的 FIN, client再发送 ack 消息。 * client 等待 2msl 可以丢弃一部分报文,防止旧报文在新的链接建立时,再发送过来