拥塞控制方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
拥名词解释及概况
1.名词解释:
拥塞现象是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿,即出现死锁现象。这种现象跟公路网中经常所见的交通拥挤一样,当节假日公路网中车辆大量增加时,各种走向的车流相互干扰,使每辆车到达目的地的时间都相对增加(即延迟增加),甚至有时在某段公路上车辆因堵塞而无法开动(即发生局部死锁)。
网络的吞吐量与通信子网负荷(即通信子网中正在传输的分组数)有着密切的关系。当通信子网负荷比较小时,网络的吞吐量(分组数/秒)随网络负荷(每个节点中分组的平均数)的增加而线性增加。当网络负荷增加到某一值后,若网络吞吐量反而下降,则表征网络中出现了拥塞现象。在一个出现拥塞现象的网络中,到达某个节点的分组将会遇到无缓冲区可用的情况,从而使这些分组不得不由前一节点重传,或者需要由源节点或源端系统重传。当拥塞比较严重时,通信子网中相当多的传输能力和节点缓冲器都用于这种无谓的重传,从而使通信子网的有效吞吐量下降。由此引起恶性循环,使通信子网的局部甚至全部处于死锁状态,最终导致网络有效吞吐量接近为零。
2.造成拥塞的原因
1.多条流入线路有分组到达,并需要同一输出线路,此时,如果路由器没有足够的内存来存放所有这些分组,那么有的分组就会丢失。
2.路由器的慢带处理器的缘故,以至于难以完成必要的处理工作,如缓冲区排队、更新路由表等。
3.防止拥塞的策略:
(1)在传输层可采用:重传策略、乱序缓存策略、确认策略、流控制策略和确定超时策略。
(2)在网络层可采用:子网内部的虚电路与数据报策略、分组排队和服务策略、分组丢弃策略、路由算法和分组生存管理。
(3)在数据链路层可采用:重传策略、乱序缓存策略、确认策略和流控制策略。
4.拥堵控制的一般方法:
1)缓冲区预分配法
该法用于虚电路分组交换网中。在建立虚电路时,让呼叫请求分组途经的节点为虚电路预先分配一个或多个数据缓冲区。若某个节点缓冲器已被占满,则呼叫请求分组另择路由,或者返回一个"忙"信号给呼叫者。这样,通过途经的各节点为每条虚电路开设的永久性缓冲区(直到虚电路拆除),就总能有空间来接纳并转送经过的分组。此时的分组交换跟电路交换很相似。当节点收到一个分组并将它转发出去之后,该节点向发送节点返回一个确认信息。该确认一方面表示接收节点已正确收到分组,另一方面告诉发送节点,该节点已空出缓冲区以备接收下一个分组。上面是"停一等"协议下的情况,若节点之间的协议允许多个未处理的分组存在,则为了完全消除拥塞的可能性,每个节点要为每条虚电路保留等价于窗口大小数量的缓冲区。这种方法不管有没有通信量,都有可观的资源(线路容量或存储空间)被某个连接占有,因此网络资源的有效利用率不高。这种控制方法主要用于要求高带宽和低延迟的场合,例如传送数字化语音信息的虚电路。
2)分组丢弃法
该法不必预先保留缓冲区,当缓冲区占满时,将到来的分组丢弃。若通信子网提供的是数据报服务,则用分组丢弃法来防止拥塞发生不会引起大的影响。但若通信子网提供的是虚电路服务,则必须在某处保存被丢弃分组的备份,以便拥塞解决后能重新传送。有两种解决被丢弃分组重发的方法,一种是让发送被丢弃分组的节点超时,并重新发送分组直至分组被收到;另一种是让发送被丢弃分组的节点在尝试一定次数后放弃发送,并迫使数据源节点超时而重新开始发送。但是不加分辨地随意丢弃分组也不妥,因为一个包含确认信息的分组可以释放节点的缓冲区,若因节点元空余缓冲区来接收含确认信息的分组,这便使节点缓冲区失去了一次释放的机会。解决这个问题的方法可以为每条输入链路永久地保留一块缓冲区,以用于接纳并检测所有进入的分组,对于捎带确认信息的分组,在利用了所捎带的确认释放缓冲区后,再将该分组丢弃或将该捎带好消息的分组保存在刚空出的缓冲区中。
3)定额控制法
这种方法在通信子网中设置适当数量的称做"许可证"的特殊信息,一部分许可证在通信子网开始工作前预先以某种策略分配给各个源节点,另一部分则在子网开始工作后在网中四处环游。当源节点要发送来自源端系统的分组时,它必须首先拥有许可证,并且每发送一个分组注销一张许可证。目的节点方则每收到一个分组并将其递交给目的端系统后,便生成一张许可证。这样便可确保子网中分组数不会超过许可证的数量,从而防止了拥塞的发生。
拥塞控制算法研究
当网络中存在过多的分组时,网络的性能就会下降,这种现象称为拥塞。在最初的 T C P协议中,只有流控机制(Flow Contro1),接收端使用TCP报头的窗口值将自己的接收能力通知发送端,这样的机制只考虑接收端的接收能力,而不考虑网络的承受能力,不可避免地导致了早期一些网络崩溃的现象。随着
internet技术的发展,越来越多不同系统,不同速率的网络正在接入,Internet 网络拥塞现象也越来越严重。拥塞控制理论和算法研究因此成为Internet研究中的一个热点。
拥塞现象发生的原因,总的来说是Internet网络中的需求大于供给,即网络的资源(缓冲、链路带宽和网关处理能力等)是有限的,这些有限资源要在网络用户之间共享使用,必然存在竞争关系,随着网络用户的数量和基于Interne t 的应用的数量不断增长,如果不使用某种机制在多个用户之间协调资源的用,出现网络拥塞是不可避免的。从控制的角度看,拥塞控制具有开环控制和闭环控制两种基本的控制形式,闭环控制要在通信进程中的发送端和接收端之间建立一个适当的握手算法,尽管可以达到较高的链路容量的效用,但是也要为握手付出更大的传输时延,导致系统信息有效性降低,开环控制又称预防控制,实现起来比较简单可以根据已有网络的流量及其特性预先将设计好的控制策略加入网络中。保证不会发生拥塞,但对网络的突变应对能力较差。拥塞控制一般发生在网络传输的分组数量开始接近网络对分组的处理能力时。不同网络层次对控制机制有不同的目标。数据链路层虽然靠近拥塞的发生点,但是数据链路层的目标只是将帧从线的一端传送到另一端,所以在数据链路层控制对拥塞有快速反应,但是只能对近期拥塞现象进行控制;拥塞现象持续时间越长,实现控制的层次就越高,所以拥塞控制一般在网络层或传输层实现。拥塞控制的目标是控制进入网络的数据流量,确定一个最佳发送速率,确保网络不会被数据阻塞,不至于引起塞,又能充分利用带宽资源。
目前拥塞控制机制以基于窗口的端对端拥塞控制为主,因此,从拥塞控制使用的层次来看。可以分为链路算法和源算法;随着 Internet规模和复杂性的不断增加,网络参与资源控制的源端拥塞控制、多播方式的拥塞控制机制也在不断地引入。
1.点对点拥塞控制
1.1源算法
1.1. 1 TCP Tahoe和 Reno
Tahoe是早期Internet广泛采用的拥塞控制算法,包括慢启动、拥塞避免和快速重传三个部分。此算法的基本思想是:源端通过线性增加速率来探测网络中的空闲容量,而当检测到拥塞时,则以指数递减它的速率,拥塞时在源端检测到丢包时被确认。当一个连接开始建立,窗口的大小确认为包的大小,源端每收到一个确认帧,就将窗口加1,窗口的大小在每个RFT (排队时延)内加倍,此过程称为慢启动;当拥塞发生时,即检测到一个丢包,则将窗口减半,重传丢失的包,将窗口重置为1,重新进入慢启动。避免拥塞阶段中不断调整窗口的大小,并保持在设置的门限上。Reno算法的基本思想和Tahoe相同.但是有了两个改