TCP拥塞控制
如果拥塞不进行控制,实际上网络吞吐量会变为0。网络就会无法正常工作,就像交通一样,如果不交警干预,大规模的堵车就基本无法疏通。
下面是四种拥塞控制方法;
慢开始:在慢开始之前,我们首先要了解一下拥塞窗口,发送方需要维护一个叫做拥塞窗口cwnd的状态变量,其值取决于网络的拥塞程度,并且会动态变化。他的维护原则是只要网络上没有出现拥塞,拥塞窗口的值就再加大一点,一旦出现拥塞,窗口的值就减小一点。
至于发送方是怎么发现拥塞的呢?发送方一旦没有按时收到应该到达的确认报文,就会超时重传。就是发送方每发送一个报文就会开启一个计时器,一旦计时器时间到,却没有收到确认报文,就会发生超时重传。发生超时重传,发送方就认为当前的网络处于拥塞的状态。
发送方还要维护一个发送窗口的变量swnd其值等于拥塞窗口的值及swnd = cwnd
同时还有一个慢开始门限值ssthresh的状态变量。拥塞窗口小于这个门限值时使用慢开始算法,快速启动,当拥塞窗口大于慢开始门限值时,使用拥塞控制算法,缓慢加速。就也想开车一样,当你前面没车的时候,可以地板油,当你前面都是车的时候,加速也要一点点的加速!