目录
拥塞控制是作用于网络的,防止过多的数据注入到网络中,避免网络负载过大。目的就是为了避免发送方无节制地发送数据,从而造成网络拥堵。TCP 进行拥塞控制的过程有四个部分,分别是:慢开始、拥塞避免、快重传 和 快恢复 。大体流程为:
(1)当主机开始发送数据时,会先使用慢开始算法,由小到大逐渐增大拥塞窗口数值(指数增长1,2,4,8...);
(2)当拥塞窗口达到慢启动门限 ssthresh时,会使用拥塞避免算法,线性逐渐增大拥塞窗口。(+1 +1 +1…)
(3)当发送端收到连续三个重复的确认时,将 ssthresh 设为 cwnd/2,将 cwnd 设为初始值,然后使用拥塞避免算法,这就是快恢复。
1.慢开始
连接建立开始,发送方不了解网络的情况,如果将大量的数据字节注入网络可能会引起网络阻塞,所以由小到大逐渐增大拥塞窗口数值(cwnd = 1,收到确认后,(2,4,6,8指数增长))
2.拥塞避免
设置慢启动门限 ssthresh,当 cwnd >= ssthresh 时,进入拥塞避免,每轮只将cwnd加 1,降低拥塞窗口的增长速度。
3.快重传
接收方每收到一个失序的报文段后就立即发出重复确认,发送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段。
4.快恢复
当发送端收到连续三个重复的确认时,把慢开始门限ssthresh 减半。拥塞窗口设置为慢开始门限ssthresh 减半后的数值,然后开始执行拥塞避免算法(加1)。