QoS介绍

QoSQuality of Service)即“服务质量”。它是指网络为特定流量提供更高优先服务的同时控制抖动和延迟的能力,并且能够降低数据传输丢包率。当网络过载或拥塞时,QoS能够确保重要业务流量的正常传输。QoS是网络中管理数据流的可用带宽、延迟、抖动以及分组丢失的技术集合。所有的QoS机制的目的就是影响这些特征中的至少一个,某些情况下甚至是全部。

通常来讲,实现QoS管理功能的工具包括:

下图为QoS的体系结构:

如上图所示,数据包通过入接口进入系统后,首先会被分类和标记。在这一过程中,系统会通过管制机制丢弃一些数据包。然后,根据标记结果,数据包会被再次分类。系统会通过拥塞管理(Congestion Management)机制和拥塞避免(Congestion Avoidence)机制对数据包进行管理,为数据包排列优先次序并且在发生拥塞时保证高优先级数据包的顺利通过。最后,系统会将经过QoS管理的数据包通过出接口发送出去。

分类和标记

分类和标记的过程就是识别出需进行不同处理(优先或者区分)的流量的过程。分类和标记是执行QoS管理的第一步。分类和标记应该在和源主机尽量接近的地方进行。

通常来讲,分类工具依据封装报文的头部信息对流量进行分类。为做出分类决定,分类工具需要对头部信息进行逐层深入检查。下图显示出头部信息的分类字段:

下表列出不同字段的分类标准:

Layer 标准描述
Layer 1 物理接口和子接口
Layer 2 MAC地址、802.1Q/p服务类别(CoS)位串和VLAN标识
Layer 3 IP优先权(IP Precedence)、DiffServ代码点(DSCP)和源/目的IP地址组
Layer 4 端口号(TCP或者UDP)
Layer 7 应用类型(Application Type)或者应用签名(Application Signature)

可携带标记的字段如下:

通过设置802.1Q头的802.1p用户优先级位(CoS)来标记以太网帧。在以太网第2层以太网帧中只有8种服务类别(07)可以标记。参数的分配请参阅下表:

CoS值/IP优先权级 应用类型
7
预留(Reserved)
6
预留(Reserved)
5
语音(Voice)
4
视频会议(Video Conference)
3
呼叫信号(Call Signaling)
2
高优先级数据(High-priority Data)
1
中优先级数据(Medium-priority Data)
0
尽力服务数据(Best-effort Data)

IP优先权与CoS相同,有8种服务(07)可以标记,请参考上表。

DSCPDiffServ Code Point)是区分服务代码点。DSCP提供6位字段用于QoS标记,这6位字段是与IP优先权相同的3位,再加上接下来的ToS字段的3位。因此,DSCP值的范围是063。下图为DSCPIP优先权位示意图:

DSCP值有两种表达方法,数字形式和关键字形式。关键字形式的DSCP值称为逐跳行为(PHB)。目前有三类已定义的PHB,分别是尽力服务(BE或者DSCP 0)、确保转发(AFxy)和加速转发(EF)。具体信息请参考RFC254725973246DSCP值将在后面的QoS处理中起到关键性的作用。

管制和整形

QoS管理提供管制和整形功能。管制和整形的作用是识别流量违约并做出响应。管制和整形使用同样的算法识别流量违约,但是做出的响应不同。
管制工具对流量违约进行即时检查,发现违约后立即采取设定的动作进行处理。例如,管制工具可以确定负载是否超出了定义的流量速率,然后对超出部分的流量进行重新标记或者直接丢弃。流量的出方向和入方向都可以通过管制工具进行控制。

整形工具是一个与排队机制一起工作的流量平滑工具。整形的目的是将所有的流量发送到同一个接口,并且控制流量永远不超出指定的速率,使流量平滑地通过该接口发送出去。管制工具通常应用在流量的出方向。

管制与整形相比较,具有以下区别,参见下表:

管制 整形
由于包被丢弃,引起TCP重传 通常延迟流量,很少引起TCP重传
不灵活和不可适应 通过排队机制来适应网络拥塞
入接口和出接口工具 出接口工具
没有缓存和速率限制 有缓存的速率限制

安全网关通过使用令牌桶算法评估流量是否违约。令牌桶是一个存放令牌的容器,它有一定的容量。系统按设定的速度向桶中放置令牌,当桶中令牌满时,多出的令牌溢出,桶中令牌不再增加。在用令牌桶评估流量时,是以令牌桶中的令牌数量是否足够满足数据包的转发为依据的。如果桶中存在足够的令牌可以用来转发数据包(通常一个令牌拥有一个比特的转发权限),称流量符合(conform)这个规格,否则称为超标(excess)。评估流量时令牌桶的参数设置包括:

下图为双令牌桶算法示意图:

如上图所示,B=数据包的大小;Tc=CBS中令牌的数量;Te=EBS中令牌的数量。当CBS中的令牌数大于数据包的大小时,则该数据包符合规格(Conform),系统将根据配置进行操作;当CBS中的令牌数小于数据包的大小,系统将检查EBS中令牌的数量,如果EBS中令牌数量大于数据包的大小,则该数据包超出(Exceed),系统根据配置进行操作,如果EBS中的令牌数也小于数据包的大小,则该数据包违约,系统再根据配置进行操作。

拥塞管理

拥塞管理工具是QoS工具中最重要的一个。拥塞管理工具即排队工具,应用在产生拥塞的接口上。由于网络之间的速率不匹配,在广域网或者局域网中都有可能出现拥塞。只有当接口发生拥塞时,排队工具才会被启用。安全网关支持加权公平队列(CBWFQ)和低延迟队列(LLQ)。