您好,欢迎来到飒榕旅游知识分享网。
搜索
您的当前位置:首页QOS各种队列详解(FIFO,FQ,CBWFQ,PQ)

QOS各种队列详解(FIFO,FQ,CBWFQ,PQ)

来源:飒榕旅游知识分享网


QOS各种队列详解(FIFO,FQ,CBWFQ,PQ)

对于拥塞管理,一般采用队列技术,使用一个队列算法对流量进行分类,之后用某种优先级别算法将这些流量发送出去。每种队列算法都是用以解决特定的网络流量问题,并对带宽资源的分配、延迟、抖动等有着十分重要的影响。

这里介绍几种常用的队列调度机制。

1. FIFO(先入先出队列,First In First Out Queuing)

图9 先入先出队列示意图

如上图所示,FIFO按照时间到达的先后决定分组的转发次序。用户的业务流在某个设备能够获得的资源取决于分组的到达时机及当时的负载情况。Best-Effort报文转发方式采用的就是FIFO的排队策略。

如果设备的每个端口只有一个基于FIFO的输入或输出队列,那么恶性的应用可能会占用所有的网络资源,严重影响关键业务数据的传送。

每个队列内部报文的发送(次序)关系缺省是FIFO。

2. PQ(优先队列,Priority Queuing)

图10 优先队列示意图

PQ队列是针对关键业务应用设计的。关键业务有一个重要的特点,即在拥塞发生时要求优先获得服务以减小响应的延迟。PQ可以根据网络协议(比如IP,IPX)、数据流入接口、报文长短、源地址/目的地址等灵活地指定优先次序。优先队列将报文分成4类,分别为高优先队列(top)、中优先队列(middle)、正常优先队列(normal)和低优先队列(bottom),它们的优先级依次降低。缺省情况下,数据流进入normal队列。

在队列调度时,PQ严格按照优先级从高到低的次序,优先发送较高优先级队列中的分组,当较高优先级队列为空时,再发送较低优先级队列中的分组。这样,将关键业务的分组放入较高优先级的队列,将非关键业务的分组放入较低优先级的队列,可以保证关键业务的分组被优先传送,非关键业务的分组在处理关键业务数据的空闲间隙被传送。

PQ的缺点是如果较高优先级队列中长时间有分组存在,那么低优先级队列中的报文将一直得不到服务。

3. CQ(定制队列,Custom Queuing)

图11 定制队列示意图

CQ按照一定的规则将分组分成16类(对应于16个队列),分组根据自己的类别按照先进先出的策略进入相应的CQ队列。

CQ的1到16号队列是用户队列,如图11所示。用户可以配置流分类的规则,指定16个用户队列占用接口或PVC带宽的比例关系。在队列调度时,系统队列中的分组被优先发送。直到系统队列为空,再采用轮询的方式按照预先配置的带宽比例依次从1到16号用户队列中取出一定数量的分组发送出去。这样,就可以使不同业务的分组获得不同的带宽,既可以保证关键业务能获得较多的带宽,又不至于使非关键业务得不到带宽。缺省情况下,数据流进入1号队列。

定制队列的另一个优点是:可根据业务的繁忙程度分配带宽,适用于对带宽有特殊需求的应用。虽然16个用户队列的调度是轮询进行的,但对每个队列不是固定地分配服务时间片——如果某个队列为空,那么马上换到下一个队列调度。因此,当没有某些类别的

报文时,CQ调度机制能自动增加现存类别的报文可占的带宽。

4. WFQ(加权公平队列,Weighted Fair Queuing)

图12 加权公平队列示意图

在介绍加权公平队列前,先要理解公平队列FQ(Fair Queuing)。FQ是为了公平地分享网络资源,尽可能使所有流的延迟和抖动达到最优而推出的。它照顾了各方面的利益,主要表现在:

l 不同的队列获得公平的调度机会,从总体上均衡各个流的延迟。

l 短报文和长报文获得公平的调度:如果不同队列间同时存在多个长报文和短报文等待发送,应当顾及短报文的利益,让短报文优先获得调度,从而在总体上减少各个流的报文间的抖动。

与FQ相比,WFQ在计算报文调度次序时增加了优先权方面的考虑。从统计上,WFQ

使高优先权的报文获得优先调度的机会多于低优先权的报文。WFQ能够按流的“会话”信息(协议类型、源和目的TCP或UDP端口号、源和目的IP地址、ToS域中的优先级位等)自动进行流分类,并且尽可能多地提供队列,以将每个流均匀地放入不同队列中,从而在总体上均衡各个流的延迟。在出队的时候,WFQ按流的优先级(precedence)来分配每个流应占有出口的带宽。优先级的数值越小,所得的带宽越少。优先级的数值越大,所得的带宽越多。

例如:接口中当前共有5个流,它们的优先级分别为0、1、2、3、4,则带宽总配额为所有(流的优先级+1)的和。即

1 + 2 + 3 + 4 + 5 = 15

每个流所占带宽比例为:(自己的优先级数 + 1)/(所有 (流的优先级 + 1) 的和)。即每个流可得的带宽分别为:1/15,2/15,3/15,4/15,5/15。

由于WFQ在拥塞发生时能均衡各个流的延迟和抖动,所以WFQ在一些特殊场合得到了有效的应用。比如在使用资源预留协议RSVP(Resource Reservation Protocol)的保证型业务中,通常就是采用WFQ作为调度策略;在流量整形TS中,也采用WFQ调度缓存的报文。

5. CBQ(基于类的队列,Class Based Queuing)

CBQ是对WFQ功能的扩展,为用户提供了定义类的支持。CBQ为每个用户定义的类分配一个单独的FIFO预留队列,用来缓冲同一类的数据。在网络拥塞时,CBQ对报文根据用户定义的类规则进行匹配,并使其进入相应的队列,在入队列之前必须进行拥塞避免

机制(尾部丢弃或WRED,Weighted Random Early Detection,加权随机早期检测)和带宽的检查。在报文出队列时,加权公平调度每个类对应的队列中的报文。

CBQ提供一个紧急队列,紧急报文入该队列,该队列采用FIFO调度,没有带宽。这样,如果CBQ加权公平对待所有类的队列,语音报文这类对延迟敏感的数据流就可能得不到及时发送。为此将PQ特性引入CBQ,称其为LLQ(Low Latency Queuing,低延迟队列),为语音报文这样的对延迟敏感的数据流提供严格优先发送服务。

LLQ将严格优先队列机制与CBQ结合起来使用,用户在定义类时可以指定其享受严格优先服务,这样的类称作优先类。所有优先类的报文将进入同一个优先队列,在入队列之前需对各类报文进行带宽的检查。报文出队列时,将首先发送优先队列中的报文,直到发送完后才发送其他类对应的队列的报文。在发送其他队列报文时将仍然按照加权公平的方式调度。

为了不让其他队列中的报文延迟时间过长,在使用LLQ时将会为每个优先类指定可用最大带宽,该带宽值用于拥塞发生时监管流量。 如果拥塞未发生,优先类允许使用超过分配的带宽。如果拥塞发生,优先类超过分配带宽的数据包将被丢弃。LLQ还可以指定Burst-size。

系统在为报文匹配规则时,规则如下:

l 先匹配优先类,然后再匹配其他类;

l 对多个优先类,按照配置顺序逐一匹配;

l 对其他类,也是按照配置顺序逐一匹配;

l 对类中多个规则,按照配置顺序逐一匹配。

6. RTP(Real-time Transport Protocol)优先队列

RTP优先队列是一种保证实时业务(包括语音与视频业务)服务质量的简单的队列技术。其原理就是将承载语音或视频的RTP报文送入高优先级队列,使其得到优先发送,保证时延和抖动降低为最低限度,从而保证了语音或视频这种对时延敏感业务的服务质量。

图13 RTP队列示意图

如上图所示,RTP优先队列将RTP报文送入一个具有较高优先级的队列。RTP报文是端口号在一定范围内为偶数的UDP报文,端口号的范围可以配置。RTP优先队列可以同任何一种队列(包括FIFO、PQ、CQ、WFQ与CBQ)结合使用,而它的优先级是最高的。但由于CBQ中的LLQ也可以保证实时业务数据的转发,所以一般不推荐将RTP优先队列与CBQ结合应用。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务