拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。
1. 慢开始
发送方维持一个拥塞窗口(cwnd)的状态量。拥塞窗口的大小取决与网络的拥塞程度,并且动态变化。发送方让自己的发送窗口等于拥塞窗口。
慢开始由小到大增大发送窗口的,与就是说由小到大增大拥塞窗口大小数值。首先设置cwnd = 1,发送第一份报文M1,然后接收到M1的确认,增大cwnd = 2,然后发送M2、M3,收到M2、M3的确认。cwnd = 4,依次类推。每经过一个传输轮次,拥塞窗口cwnd就加倍。
2.拥塞避免
拥塞避免算法的思路就是让拥塞窗口cwnd缓慢增大,每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1。拥塞窗口cwnd按线性规律缓慢增长,比慢开始算法增长速率缓慢很多。
拥塞窗口:cwnd
慢开始门限:ssthresh
慢开始门限的初始值为拥塞窗口的一半。
慢开始门限的用法如下:
当 cwnd < ssthresh时,使用慢开始。
当cwnd > ssthresh时,使用拥塞避免。
当cwnd = ssthresh时,二者皆可。