DiffServ模型的拥塞管理机制

2009-03-30 04:52
新媒体研究 2009年3期
关键词:报文队列优先

王 彦

[摘要]介绍DiffServ模型的体系结构,并重点研究DiffServ实现的核心机制拥塞管理机制。在实际设计队列调度算法时,应根据网络中不同的QoS要求,平衡影响调度算法设计的各种因素,进行合理的选择。

[关键词]服务质量区分服务拥塞管理队列调度

中图分类号:TP3文献标识码:A文章编号:1671—7597(2009)0210047-01

一、概述

QoS是指网络通信过程中,允许用户业务在丢包率、延迟和带宽等方面获得可预期的服务水平。更简单地说:QoS就是针对各种不同的需求,提供不同服务质量的网络服务。这就要求QoS机制能够:在网络轻载运行时,通过某种测量和监管机制,控制不同业务享受不同服务水平;在网络拥塞时,通过采取某种调度策略,保证重要业务仍然能获得持续稳定的服务保障。

IP QoS的体系结构包括综合服务模型(IntServ)和区分服务模型(DiffServ)两种。其中,DiffServ具有良好的可扩展性,适合于在大型主干网上提供QoS服务。而拥塞管理机制是保证DiffServ实现的核心机制之一,是解决多个业务竞争共享资源问题的有效手段。

二、DiffServ模型体系结构

DiffServ采用聚集传输控制模式,服务的对象是流聚集而不是单流,单流信息只在域边界保存和处理。

其具体的过程是:首先,在网络的边缘进行不同业务的分类,并打上不同的DSCP值。分类的依据可以是报文携带的四层、三层或二层的信息。如报文的源IP地址、目的IP地址、源MAC地址、目的MAC地址,TCP或UDP端口号等。然后,在网络的内部,根据DSCP值在每一跳上进行相应的转发处理,比如。对实时业务提供快速转发处理,对普通业务提供尽力而为转发处理。

三、拥塞管理机制

拥塞管理是指网络在发生拥塞时,如何进行管理和控制,包括队列的创建、报文的分类、将报文送入不同的队列、队列调度等。在一个接口没有发生拥塞的时候,报文在到达接口后立即就被发送出去,但是在报文到达的速度超过接口发送报文的速度时,接口就发生了拥塞。拥塞管理就是对这些报文进行分类,送入不同的队列,然后用队列调度对不同优先级的报文进行分别处理,优先级高的报文会得到优先处理。常用的队列调度算法有FIFO、PQ,WFQ,DWRR等,下面分别对这几种典型的算法进行分析。

(一)先进先出队列(Fi rst In Fi rst Out Gueuing,FIFO)调度算法

FIFO不对报文进行分类,当报文进入接口的速度大于接口能发送的速度时,FIFO按报文到达接口的先后顺序让报文进入队列,同时,在队列的出口让报文按进队的顺序出队,即先进的报文先出队,后进的报文后出队。

(二)优先级队列(Priority Oueuing,PQ)调度算法

PQ的4个队列分别为高优先队列(high)、中优先队列(medium)、正常优先队列(normal)和低优先队列(low)。发送报文时按照等级顺序依次发送,即先发送完所有high队列中的报文,再发送所有medium队列中的报文,然后再发送所有normal队列中的报文,最后才发送10w队列中的报文。这样较高优先级队列的报文将会得到优先发送,并且较低优先级的报文将会在发生拥塞时被较高优先级的报文抢先,使得关键业务(如视频业务)的报文能够得到优先处理。PQ能保证高优先级的业务,但是会出现低优先级业务得不到服务的情况。

(三)公平队列(Fai r Oueuing,F0)调度算法

FQ的基本原理是:分组在进入网络时被分类,每个队列对应一种流,发送报文时循环扫描队列,从每个队列取出一个分组发送。这种调度算法的问题是:大分组的队列比小分组的队列获得较多的带宽,而且不具备优先级的调度。但是在某些情况下,某些队列需要更高的优先级,例如视频流类型的队列应该比文件传输类型的队列具有更高的优先级,以获得更大的带宽和更小的延迟。

(四)加权公平队列(Weighted Fai r Queuing,WFQ)调度算法

FFQ是对FQ的一种改进的队列调度算法。它通过为每个队列施加不同的权重,来实现不同的带宽和时间约束,提高相应流的服务质量。WFQ可以保证相同优先级业务间公平,不同优先级业务间加权。它在保证公平的基础上又体现了权值,而权值的大小依赖于IP报文头中携带的IP优先级。WFQ按照流的优先级来分配每个流应占出口的带宽。优先级的数值越小,所得的带宽越少。优先级的数值越大,所得的带宽越多。

(五)加权轮询队列(Weighted Round Robin,WRR)调度算法

WRR在队列之间轮流调度,保证每个队列都能得到一定的服务时间。它可为每个队列配置一个加权值(依次为w3、w2、w1、Wo),加权值表示获取资源的比重。如一个100M的端口,配置它的WRR队列调度算法的加权值为50、30、10、10,这样可以保证最低优先级队列至少获得10Mbps的带宽,避免了采用PQ调度时低优先级队列中的报文可能长时间得不到服务的缺点。WRR还有一个优点是:虽然多个队列的调度是轮询进行的,但对每个队列不是固定地分配服务时间片,也就是说,如果某个队列为空,那么马上换到下一个队列调度,这样带宽资源可以得到充分的利用。不过当分组的大小不相同时,WRR会对分组较小的队列带来不公平性。

(六)差值加权轮询队列(Defioit Weighted Round Robin,DWRR)调度算法

为解决WRR不能支持长度不同的包而出现带宽分配不公平以及计算复杂的缺点,提出了DWRR调度算法,该算法给每一个队列分配的权值不是基于分组的个数,而是基于比特数。它结合了WFQ和WRR的优点,能够在输出端口按队列的权值为流提供相应的带宽分配,而且能够支持长度变化的流,特别是突发流,并且该算法实现较简单。

四、结束语

IP网络的QoS管理是针对不同的需求提供不同的服务质量。上面提到的几个队列调度算法有着各自的优点和缺点,孰优孰劣并不能一概而论,而应该根据网络中不同的QoS要求,平衡影响调度算法设计的各种因素,进行合理的选择。如当要求算法复杂度低,不用对数据流区别对待,以便于高速处理时,可以选择FIFO算法,但这样就不能对可靠性和传输时延提供保证;当需要为某业务提供绝对保障时,可以选择PQ算法,但低优先级业务可能得不到服务;当需要公平分配带宽,并且对某些应用要求提供较小的时延时,可以选择WFQ算法,但是它比较复杂;既要公平分配带宽,又要算法相对简单,可以选择DWRR算法。随着网络技术的发展,相信会不断涌现更多算法,从而更好地满足不同网络条件下对不同业务需求的支持。

猜你喜欢
报文队列优先
海法新港一期自动化集装箱码头电子数据交换报文系统设计与实现
基于报文类型的限速值动态调整
队列队形体育教案
负阳氧化正阴还介质优先守三关
八月备忘录
缓存淘汰算法研究
青春的头屑
理性思考严谨推理优先概念
用户设备进行组播路径追踪的方法及系统
跟踪导练(四)