慢启动
原理
默认,TCP连接,都是慢启动,也可以关闭。因为还不了解网络的带宽,不了解服务器能接受的最大窗口。所以,第一个数据包,一般是1个或者2个MSS那么大,这也就是CWND,拥塞窗口的大小。如果发过去,收到了一个ACK的确认包,发送方就以指数来增长CWND,如果上一次是1次,那下一次就是2的1次方。又收到了ACK,那下一次就是2的2次方,这样来增长CWND。
1)正常的停止:如果直到达到预设的慢启动阈值(ssthresh)了,那就不再增长CWND。发送方不再使用指数增长,而是进行线性增长,每个RTT周期,我就增加一个MSS,这样又可以继续缓慢试探对方能承受的数据大小,也不至于一下子拥塞了网络;
2)非正常的停止:如果在慢启动过程中,检测到网络拥塞了(比如检测到超时或者连续3次没有收到ACK了),CWND将重置为初始值(一般为1个MSS),并且ssthresh也会设置为当前CWND的一半。然后继续进入慢启动。
优点
1)避免网络一开始就会拥塞;
2)动态适应网络的变化,逐步增加 、减慢发送速度。
缺点
1)一开始增长比较慢,可能会导致传输延迟;
2)在高带宽、低延迟网络中,慢启动可能会使得访问变慢。
标签:启动,ACK,网络,TCP,拥塞,机制,CWND From: https://www.cnblogs.com/1234roro/p/18304867