(l)存储空间不足。当几个输入数据流共同经过同一个端口时,在这个端口处就会建立排队,如果输出端口的存储空间不足则超出存储空间的数据包就会被丢弃。一定程度上可以通过增加存储空间在缓解这一矛盾,但路由器的存储空间无线大时,拥塞情况却会变得更加严重。这是由于在网络中数据包经过长时间的排队完成发送时,它们早已超时,数据源端认为它们己经被丢弃,于是数据源端会再重发这些数据包,而已经超时的数据包还会继续向下一个路由器发送,从而造成网络资源的浪费,加重网络拥塞。
(2)带宽容量不足。当高速数据流输入低速链路时也会产生拥塞。链路带宽最大值,即信道容量C=B*log2(1+S/N)(N为信道噪声的平均功率,S为数据源的平均功率,B为链路带宽)。所有数据源发送的速率R必须小于或等于信道容量C。如果R>C,则无差错传输在理论上是不可能进行的,所以带宽瓶颈就会在网络低速链路处形成,当其带宽小于通过它的所有数据源端的带宽要求时,网络就会发生拥塞。
(3)处理器处理能力弱、速度慢也能引起拥塞。如果路由器的CPU在执行排队缓存、更新路由表等功能时,处理速度跟不上高速链路,也会产生拥塞。
另外,TCP/IP协议拥塞控制机制中的缺陷、用户的恶意攻击、以及网络系统的混沌、分叉现象等都会导致网络拥塞的产生。
传统上认为, 随着网络容量的增加,网络拥塞出现的可能性会降低。但近期研究的结果却表明, 持续增加网络容量反而会使网络拥塞控制系统的稳定性降低。当网络容量增加到一定程度时,网络拥塞控制系统将变得不稳定。源.自/优尔·论\文'网·www.youerw.com/
1.1.3 拥塞控制的研究现状
2 主动队列管理算法
主动队列管理算法是目前广泛使用的网络拥塞控制算法,采用的是队为丢弃的策略,常见的主动队列算法有RED算法,REM算法等,这些算法各有优缺点。
2.1 RED算法
RED算法的基本思想是利用平均队列长度进行拥塞控制。RED算法分为两个步骤:
(1) 利用加权方式计算平均队列长度
(2) 根据平均队列长度与队列长度最小阈值和最大阈值的关系确定丢包率
RED算法的主要缺点有,第一,对于系统参数的敏感度比较高,参数的设定比较困难;第二,由于平均队列长度是从算法开始运行时起的平均,对于短期内的队列控制效果并不理想。
2.2 REM算法
REM算法的基本思想是利用“价格”机制来探测和控制网络拥塞。价格的概念是,当前队列长度与期望队列长度的差值,数据包到达速率与链路带宽的差值,这两个差值的加权和。通过价格来控制网络的拥塞情况。