拥塞

拥塞是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿,即出现死锁现象。这种现象跟公路网中经常所见的交通拥挤一样,当节假日公路网中车辆大量增加时,各种走向的车流相互干扰,使每辆车到达目的地的时间都相对增加(即延迟增加),甚至有时在某段公路上车辆因堵塞而无法开动(即发生局部死锁)。
- 中文名 拥塞
- 应用科学 通信工程
- 危 害 影响网络通信业务
基本概念
注意读音:yōng sè
Congestion 拥塞: 每个通过网络发送的包由于网络中充塞着包而经历极长延迟的情况。除非协议软件能检测拥塞和减少包的发送率,否则网络就会因拥塞而瘫痪。
拥塞现象是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿即出现死锁现象。
拥塞是一种持续过载的网络状态,此时用户对网络资源(包括链路带宽、存储空间和处理器处理能力等)的需求超过了固有的容量。就Internet的体系结构而言,拥塞的发生是其固有的属性。因为在事先没有任何协商和请求许可机制的资源共享网络中,几个IP分组同时到达路由器,并期望经同一个输出端口转发的可能性是存在的,显然,不是所有分组可以同时接受处理,必须有一个服务顺序,中间节点上的缓存为等候服务的分组提供一定保护。然而,如果此状况具有一定的持续性,当缓存空间被耗尽时,路由器只有丢弃分组。在这种持续过载的状态下,网络性能会急剧下降。
路由器作为网络中不同流量汇聚的节点,面对网络流量的急剧增长,其承担的压力也越来越大;而传统的尽力而为(Besteffort)的服务模式早已不能满足用户对服务质量的要求,网络拥塞的问题也越来越严重。
产生原因
网络发生拥塞的根本原因在于用户产生的网络负载大于网络资源容量和处理能力。导致拥塞产生的直接原因可以分为以下几点。
存储空间不足
当几个数据流需要从同一个端口输出时,该端口需要建立一个队列来排队处理。如果该端口没有足够的存储空间,数据分组就会被丢弃,特别是针对突发数据流。增加数据存储空间可从一定程度上缓解这一矛盾,但如果路由器有无限的存储空间,反而只会使拥塞问题变得更严重,因为数据包在队列中经过长时间的排队才被转发出去时,它们早已经超时,源端会认为它们已被丢弃,重新发送它们,但这些数据包实际上还会继续沿下一个路由器转发,从而导致网络资源的浪费,加重网络的拥塞。
带宽容量不足
网络中的低速链路是网络中的"带宽瓶颈",当它不能满足所有通过它的源端的带宽要求时,网络就会产生拥塞,影响网络的性能。
处理器的能力不足也会造成网络拥塞。
如果路由器处理器处理排队,更新路由表等操作时,速度跟不上高速链路,就会发生网络拥塞。
防止方法
(1)传输层可采用:重传策略、乱序缓存策略、确认策略、流控制策略和确定超时策略。
(2)网络层可采用:子网内部的虚电路与数据报策略、分组排队和服务策略、分组丢弃策略、路由算法和分组生存管理。
(3)数据链路层可采用:重传策略、乱序缓存策略、确认策略和流控制策略。
拥塞控制策略
TCP基于窗口的端到到的拥塞控制策略对于Internet的鲁棒性和稳定性具有关键作用。然而,由于Internet的迅速发展,其网络规模越来越大,结构日趋复杂,紧紧依靠基于端主机的拥塞控制是不够的。而且网络的应用也越来越多,有些应用本身缺乏有效的拥塞控制策略。这就要求网络也参与到资源的控制中。基于通信子网的拥塞控制
策略通常位于IP层,主要包括路由器的队列调度算法和队列管理策略,而队列管理策略是主要的研究方向。队列调度策略通过数据流如何排队(但对列或多队列)决定哪些包可以传输来分配带宽;而队列管理策略根据队列长度来控制数据包丢弃率或标记率来分配缓存。
队列调度算法
数据流的排队可以分为单队列方式和多队列方式。单队列排队是指将所有到同一个输出口的数据流无区别地排成一个队列,采取先进先出(FIFO)的方式传输队列中的数据包,其中涉及到如何对数据包丢弃或标记的问题,我们放在队列缓存管理部分叙述。多队列排队根据一定的规则把输入数据流对应到不同的队列。队列调度算法性能的评价指标主要包括队列延时、公平性、复杂性等。
队列管理策略
队列管理通常是指用特定的分组丢弃策略来维护队列长度的大小,实现网络的控制。同时,丢包的信息可以反馈到端主机的上层进行拥塞控制。