计算机网络(5.12)运输层- 拥塞控制的一般原理
链路容量、交换结点中的缓存和处理机等被统称为网络资源。 在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。这种现象称为拥塞(congestion)。
若网络中有许多资源同时产生拥塞,网络的性能就要明显变坏,整个网络的吞吐量将随输入负荷的增大而下降。
出现拥塞的原因:
增加资源能解决拥塞吗?
不能。这是因为网络拥塞是一个非常复杂的问题。 简单地采用上述做法,在许多情况下,不但不能解决拥塞问题,而且还可能使网络的性能更坏。
网络拥塞往往是由许多因素引起的。例如: 增大缓存,但未提高输出链路的容量和处理机的速度, 排队等待时间将会大大增加,引起大量超时重传,解决不了网络拥塞;提高处理机处理的速率会会将瓶颈转移到其他地方;
如果一个路由器没有足够的缓存空间,它就会丢弃一些新到的分组。但当分组被丢弃时,发送这一分组的源点就会重传这一分组,甚至可能还要重传多次。这样会引起更多的分组流入网络和被网络中的路由器丢弃。
可见拥塞引起的重传并不会缓解网络的拥塞,反而会加剧网络的拥塞。
拥塞控制与流量控制的区别
拥塞控制就是防止过多的数据注入到网络中,使网络中的路由器或链路不致过载。 拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。 拥塞控制是一个全局性的过程,涉及到所有的主机、 所有的路由器,以及与降低网络传输性能有关的所有因素。
流量控制往往指点对点通信量的控制,是个端到端的问题(接收端控制发送端)。流量控制所要做的就是抑制发送端发送数据的速率, 以便使接收端来得及接收。
拥塞控制和流量控制之所以常常被弄混,是因为某些拥塞控制算法是向发送端发送控制报文,并告诉发送端,网络已出现麻烦,必须放慢发送速率。这点又和流量控制是很相似的。
拥塞控制的一般原理
实践证明,拥塞控制是很难设计的,因为它是一个动态的(而不是静态的)问题。
当前网络正朝着高速化的方向发展,这很容易出现缓存不够大而造成分组的丢失。但分组的丢失是网络发生拥塞的征兆而不是原因。 在许多情况下,甚至正是拥塞控制本身成为引起网络性能恶化甚至发生死锁的原因。这点应特别引起重视。
开环控制方法就是在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞。
闭环控制方法是基于反馈环路的概念。属于闭环控制的有以下几种措施: (1) 监测网络系统以便检测到拥塞在何时、何处发生。 (2) 将拥塞发生的信息传送到可采取行动的地方。 (3) 调整网络系统的运行以解决出现的问题。
监测网络的拥塞的指标
主要指标有:
- 由于缺少缓存空间而被丢弃的分组的百分数;
- 平均队列长度;
- 超时重传的分组数;
- 平均分组时延;
- 分组时延的标准差,等等。
上述这些指标的上升都标志着拥塞的增长。 方法一:监测拥塞发生时,通知拥塞发生的分组同样会使网络更加拥塞。方法二:在转发分组中增加相应字段表示网络拥塞状态或周期性地发出探测分组。