首页 理论教育流量控制和预防拥塞的算法:许可证法

流量控制和预防拥塞的算法:许可证法

【摘要】:拥塞现象的发生和通信子网内传送的分组总数有关,即拥塞控制属于通信子网的全局问题,而流量控制则属于“局部”问题。下面介绍流量控制和预防拥塞的几种主要算法之一:许可证法。许可证法也称定效法方法,是一种全局性的信息流时控制法,属于进网络变量控制。前面提到流量控制发生在数据链路层、网络层和传输层。特别值得注意的是交通控制与流量控制的差异。流量控制只与发送方和接收方之间的点对点线路的通信量有关。

流量就是网络中的通信量,也就是吞吐量。当通信子网中出现了超量的包时,性能就降低,这就是所谓的“交通拥塞”了。如图3—23所示,就描绘了这种症状。

图3—23 网络拥塞

当主机发送到通信于网中的分组数目在其传输容量之内时,它们将全部到达目的地,这是一般情况;如果分组数量和容量之间的关系达到某种关系时,则通信质量是最佳的;当通信量非常高的时候,网络拥塞最后导致瘫痪。

因此,交通控制是分组交换网中的关键技术,用控制进入的分组数量,从而避免网络中出现交通拥塞。

拥塞现象的发生和通信子网内传送的分组总数有关,即拥塞控制属于通信子网的全局问题,而流量控制则属于“局部”问题。流量控制是基于平均值的控制,拥塞多是由于某处峰值流量过高而发生。

在网络中突发信息的现象经常发生,当然各条线上的流量控制得好,网络发生拥塞的概率就小;反之,网络拥塞概率就增大。

1.拥塞控制的基本原理

要处理网络的拥塞,就必须知道目前的网络情况,也就是说必须有信息反馈。基于这样的控制思想,处理拥塞的方法可以简单地分三部分进行:监视系统,了解什么时候什么位置发生了拥塞;将信息传送到控制中心;根据拥塞情况决定采取什么行动,并及时调整系统。现在已经发展了许多处理拥塞出现之后的控制方法,大致可分为开环算法闭环算法。闭环算法又可以分为显式反馈和隐式反馈。

2.拥塞控制的方法

如果子网内部采用虚电路,则采用缓冲区预分配法就可以解决拥塞问题。在建立虚电路时,“呼叫请求分组”途经子网时,边走边填表,直至到达目的地,从而确定后继数据要走的路径。然而,我们简单地修改算法,通过对整个子网内占用的全部缓冲器数目的估计,为每个“呼叫请求分组”预定一个或多个缓冲区。如果IMP—IMP协议允许多个未处理分组的存在,则各个IMP只要为每条虚电路保留等价于窗口大小数量的缓冲区,则完全可能清除拥塞。(www.chuimin.cn)

在子网采用无连接服务时,采用分组丢弃法也可以解决拥塞问题。发送端只管发送报文分组,接收端有缓冲就接收,无缓冲就丢弃。被丢弃的分组由于发送端不能获得确认而超时重发。为了能让分组进入,为每条输入电路永久地保留一个缓冲器,对进入的分组进行判断后再决定是否丢弃。如果进入的是确认分组,则可利用分组中的序号释放缓冲区;如果进入的是数据分组,也可利用其捎带应答部分释放缓冲区;对数据信息部分如果没有缓冲区存放就丢弃。通过丢弃分组,可以避免拥塞,有时还可以解除死锁。

可见前面两种方法的实质就是增加资源或降低负荷。

3.拥塞预防的方法

等到拥塞发生再采取办法,总是会造成一定的损失。如果能够预测到拥塞的发生或者降低拥塞发生的可能性,而不是任它发生,这样才能提高通信的效率。影响拥塞的原因可以有很多,涉及数据链路层、网络层和传输层,因此可以从不同级别上采取不同策略来达到预防的目的。最直接的说法就是进行流量控制,流量控制的总体目标是在分组交换中有效地动态分配网络资源,资源包括信道、节点交换机的处理机和缓冲等。

下面介绍流量控制和预防拥塞的几种主要算法之一:许可证法。

许可证法也称定效法方法,是一种全局性的信息流时控制法,属于进网络变量控制。其基本思想是使网络内流动着的报文分组数目永远小于某一固定数值,从而避免拥塞。此方法在网内设置一个固定数目的许可证,每个许可证只允许携带一个报文分组。许可证不带报文分组时为空载,带有报文分组为满载。由于许可证可在网内流动,当到达节点时,空载的许可证就可装上一个该节点要发送的报文分组。满载的许可证可在到达目的节点时,卸下该报文分组,许可证变为空载,又可再次载上报文分组。

采用许可证法,节点的报文分组只有等到空载的许可时才能发送报文,而许可证数目固定,从而避免了由于网内报文分组数目过多造成的拥塞,但却增加了额外的等待延迟(称为进场延迟)。为了减少等待延迟,可在每个节点设置一个小容量的许可证池,一方面在许可证池范围内的报文分组可立即传送,另一方面减少了许可证在网上传送的数量,从而提高了子网的带宽利用率。

前面提到流量控制发生在数据链路层、网络层和传输层。因此,其控制大致可以分为以下几个级别:段级、入口到出口级、进网级和传输级。

拥塞的极端情况是死锁。死锁防止技术旨在合理地设计网络,Merlin和Schweitzer Blazwicz等都提出了一些算法用来防止死锁的出现。

特别值得注意的是交通控制与流量控制的差异。交通控制必须确保通信子网能运送待传的数据,涉及所有的主机、所有的路由器和路由器中的存储转发处理过程,以及其他所有将导致削弱通信子网负荷功能的因素。流量控制只与发送方和接收方之间的点对点线路的通信量有关。