拥塞定义
在计算机网络中的链路容量(即带宽)、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏,这种情况就叫做拥塞。
∑对资源的需求>可用资源
拥塞控制方法
常见的有:慢开始、拥塞避免、快重传、快恢复。
发送方维持一个拥塞窗口,拥塞窗口的大小取决于网络的拥塞程度,并且动态的变化。发送方让自己的发送窗口等于拥塞窗口。如果考虑到接收方的接收能力,那么发送窗口还可能小于拥塞窗口。
发送方控制拥塞窗口的原则是:只要网络没有出现拥塞,拥塞窗口就再增大些,一以便把更多的分组发送出去。但只要网络出现拥塞,拥塞窗口就减小一些,以减小注入到网络中的分组数。
慢开始:由小到大逐渐增大发送窗口,每经过一个传输轮次(RTT),拥塞窗口就加倍。
拥塞避免:让拥塞窗口缓慢增大,每经过一次RTT,拥塞窗口(cwnd)加1,而不是加倍。
两种算法配合使用称为AIMD算法(加法增大乘法减小)
快重传:该算法要求接收方每收到一个失序的报文段后就立即发出重复确认(为的是使发送方及早知道有报文段没有到达对方)而不要等待自己发送数据时才进行捎带确认。
快恢复:该算法过程有如下两个特点:
1、当发送方收到三个重复确认时,就执行“乘法减小”算法,把慢开始门限ssthresh减半。这是为了预防网络发生拥塞。注:接下去不执行慢开始算法。
2、由于发送方现在认为网络很可能没有发生拥塞(如果发生了严重的拥塞,就不会一连好几个报文段连续到达接收方,就不会导致接收方连续发送重复确认),因此与慢开始不同之处是现在不执行慢开始算法(即拥塞窗口不设置为1),而是把cwnd值设置为慢开始门限ssthresh减半后的数值,然后开始执行拥塞避免算法(“加法增大”),是拥塞窗口缓慢线性增大。