TCP拥塞控制

TCP拥塞控制

为了了解TCP-BBR是怎么回事,得先了解一下TCP拥塞控制是啥。
TCP拥塞控制就是用来防止向网络中注入过多的数据,致使网络中的路由器过载。
当出现拥塞时,端点是不知道发生了拥塞的,端点看到的是通讯时延的增长(就是这个数据等了很久才来,或者干等也不来)。web

TCP如何进行拥塞控制

进行拥塞控制的方法就是定义了四个算法(TCP Reno)算法

  1. 慢开始 TCP刚刚链接好的时候,先令cwnd=1,每次收到一个确认就对cwnd加1.逐渐增大cwnd 。 (当A向B发送数据,A的拥塞窗口为2 ,A能够收到两个确认,因而cwnd就增长2,就变成了4,以此类推。每次通过一个RTT,cwnd就会加倍。一直增大到阙值,进行下一步拥塞避免)
  2. 拥塞避免 在拥塞避免阶段,作法是每次通过一个RTT,不加倍!!咱们加1。使cwnd缓慢增长,即加法增大。
  3. 快重传 若是在前两个阶段,监测到了计时器超时,就要把阙值变为原来的一半。当发送方连续收到了三个重复的ACK报文时,就执行快速重传算法,(这个时候就认为是丢了包,意味着网络可能出现了拥塞)直接从新传对方没有收到的报文段,不用等待报文段设置的计时器超时。
  4. 快恢复 当发送到收到三个重复确认时,就执行乘法减少算法,把门限值改成出现拥塞时的阙值的一半,cwnd=减半后的阙值。而后开始执行拥塞避免,即加法增大算法。