近年来,随着Internet用户数量的迅速增加和各种新型业务对网络服务质量提出的严峻挑战,越来越严重的网络拥塞问题逐渐暴露出来,拥塞控制已经成为网络技术领域的重要研究课题之一。目前Internet上广泛使用的拥塞控制协议是Tahoe TCP,改进协议主要有Reno TCP、NewReno TCP以及SACK TCP协议等。深入研究以上几种协议可以看到:这些协议本质上都是使用诸如确认、超时及重复确认等隐含信号推断网络状态,并利用反馈修正数据源的发送窗口,控制注入网络的业务量以缓解网络拥塞。其中一直存在的问题是:网络拥塞的检测和控制不是由发生拥塞的网络节点及时和主动地进行,而是在端到端的基础上由源端通过各种隐含信号推测出来。这不但延缓了对网络拥塞的检测和控制,还可能造成更严重的网络拥塞。上述改进协议在这一问题上都未能提出较好的解决方案。
因此,在路由器中引入拥寒控制已显得非常必要。这依赖于路由器的计算能力。多协议标签交换MPLS(Multi-protocol Label Switching)顺应了这种要求。它在无连接的IP网络引入面向连接的机制,形成MPLS域,标签边缘路由器LER(Label Edge Router)具有计算能力,完成分类、调度和QoS映射等处理。标签交换器由器LSR(Label Switch Router)完成简单转发,即“边缘智能,交换”。本文利用MPLS的这种特性,将反馈拥塞算法从端点引入到网络边缘节点,并设定低等级业务接入门限,可以有效缩短拥塞反馈时延,提高业务吞吐量。通过仿真证明该算法具有较好的性能。
1 综合拥塞策略的基本思想
本文提出的拥塞控制策略正是在MPLS网络中由路由器参与拥塞控制的主动式流程拥塞控制机制。在基于反馈的拥塞控制系统中,链路瓶颈的拥塞持续时间与带宽时延符积直接相关。网络端到端的时延越大,端点能够检测到网络发生拥塞的时间就越长;网络带宽越大,在端点检测到网络拥塞之前,端点发送到拥塞网络中的数据量就越大,导致网络拥塞进一步恶化。因此,在网络带宽一定的情况下,减少时延时减少拥塞的一个重要因素。
基于这样的考虑,笔者把传统TCP的反馈拥塞计算从端点引入到网络边缘节点。为缩短拥塞反馈时延,利用路由器LSR监视队列长度的功能,认为缓存队列达到某一长度阈值,即表明有拥塞的可能,由该路由器向边缘路由器LER发送拥塞警信息,由边缘路由器对预警信息做出反应,进行流量接入控制;同时,通知端点降低发送速率,进入Slow Start状态,从而及时地预测和缓解拥塞状况。
同时考虑到大多数研究中,对高等级业务的服务质量比较关注,只对高等级业务做出相应的处理和控制,让高等级业务优先占用资源,而对尽力而为的低等级业务则采取等待或者在资源不够的时候优先丢弃或者舍弃的策略;完全不关心网络中大量普遍存在的、未提出任何要求的低等级业务的服务质量,只是在满足高等级业务的前提下对其进行简单的处理。这种处理在网络的承载量不是很大时作用是明显的,但是在网络承载的业务量较大时就不是很合理了。在网络业务承载较大时,由于尽力而为业务是只要网络有资源容纳就进入,因此就出现了这样的现象:大量尽力而为业务刚刚被接入网络进行传输,此时如果又有一个新的高等级业务到达,而剩余的网络资源不够的话,由于高等级业务将优先占用网络资源,因此刚刚被接入的尽力传输业务将被丢弃。这样尽力传输业务的传输时延和丢失率将随着业务到达率的增加而大大增加,从而损害了尽力传输业务的性能,而且还将造成网络资源的无畏浪费,降低全网的性能。
鉴于以上考虑,在综合策略中设定了一个低等级业务的接入门限,只有在网络较空闲的情况下,尽力而为业务才被接入。这种操作在网络负载不高时,效果不明显,但是在网络负载较高时效果非常明显。其原理是:虽然通过接入少量低等级业务使得低等级业务的吞吐量下降,但是,在网络负载较高时,这避免了已接入低等级业务在中间节点的大量无谓的丢弃,提高了低等级业务的实际传输效率和资源的有效使用率。同时,也大大降低了网络转发节点的处理复杂度,可以在不改变原有高等级业务的处理和性能下,有效地提高低等级业务和性能,并且提高全网的吞吐量。
在尾丢弃策略上,采用随机早检测RED算法和优先级相结合的策略。RED算法将决定丢弃是否发生,优先级将决定那个分组被丢弃。
2 综合的MPLS流量工程拥塞控制策略
如前所述,采用路由器LSR对队列长度进行监测,并取队列长度的70%作为拥塞预警值,即低等级业务的准入门限,同时把进入网络的数据流进行缓存分类,分为高等级业务和尽力而为业务,而且高等级业务队列还按优先级排队,高的优先级排在前面,从而建立了一种综合的MPLS流量工程的拥塞控制策略ICC(Integrated Congestion Control Strategy for MPLS Traffic Engineering)。在该策略中,当队列流量没有超出预警值时,路由器下常转发缓存队列的数据,不进行流量控制;当任一LSR检测到自己的缓存队列超出预警值,便向其边缘入口LER发送预警信息,入口LER收到预警信息启动队列管理机制,对尽力传输型业务限制接入,同时边界MPLS LER通知数据发送源端降低数据发送速率。在每个路由器内部,采用随机早检测RED算法和优先级相结合的策略。当分组到来时,考察队列长度q,若队列长度介于队列容量/2和队列容量之间,把分组按优先级进行排队,然后以概率P丢弃队尾数据包。若队列已满,则直接丢弃数据包。其中,p=(q-minth)/(maxth-minth),minth为队列容量/2,maxth为队列容量。丢弃数据包的顺序是从队列尾部开妈,因此队列是按优先级排队的。这样就保证了高等级业务的优先服务,同时这种丢弃策略也使网络拥塞得到缓解。
3 仿真实例
仿真中采用的拓扑结构。端节点client TOSi和server TOSi之间建立连接,链路的带宽为1Mbps,发送端采用TCP(Reno)协议,报文平均长度为1000byte,网络中共有60个TCP源,其输入模型为FTP模型。路由器router A和router B之间构成瓶颈链路,链路带宽为2.048Mbps,传输延迟为20ms~100ms,此范围对应于从局域网平均迟延到广域网的链路平均迟延,在仿真中通过改变此链路迟延就可改变链路的带宽迟延积。路由器中的缓冲区多可容纳350个报文。
解决拥塞的终目的是为了提高吞吐量,所有的吞吐量都是按照目的端收到的有用包来计算的。随着链路时延的增加,即带宽时延积的增加,瓶颈链路的吞吐量。由于ICC和TCP都依赖于网络节点和端点的反馈通信,因此两者的性能都随着带宽时延积的增大而下降。但由于ICC利用中间节点进行反馈,这主要是因为链路时延增加后,数据包的RTT时间增加,TCP协议的定时器长度也随之增加,造成了用户终端对网络拥塞进行检测和控制时间物延长。此外,由于TCP协议至少需要经一个RTT时间才能发现网络拥塞,在此之前端终将继续发送大量的数据包。这样就有可能造成拥塞节点情况的进一步恶化,造成数据包的大量丢失,从而也影响瓶颈链路的吞吐量。
采用ICC和传统TCP方法对照情况下的高、低等级业务的吞吐量图。网络延迟为50ms。可以看出:在网络资源较空闲的情况下,采取适当的低等级业务接入门限,可以有效提高低等级业务吞吐量,从而使网络的吞吐量得到提高。
随着互联网业务的膨胀和新业务的增加,单一的TCP拥塞控制已不能完全满足拥塞控制的要求,必须使路由器参与到主动的拥塞控制中。本文在分析了相关的拥塞控制策略的基础上,将反馈拥塞算法从端点引入到了网络边缘节点,并设定低等级业务接入门限。理论分析和仿真结果表明在网络中瓶颈链路延迟较大时不仅可提高高等级业务的吞吐量,也照顾了低等级业务的吞吐量。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。