摘 要
本文介绍了Qos 工作原理与相关技术细节。
缩略语
QoS:Quality of Service 服务质量
CoS:Class of Service 服务等级
ToS:Terms of Service 服务条款
VPN:Virtual Private Network 虚拟专用网络
VOIP:Voice Over Internet Protocol 模拟声音讯号数字化
CAR:Committed Access Rate 承诺访问速率
FIFO:First In First Out 先进先出
FR:Frame Relay 帧中继
RSVP:Resource Reservation Protocol 资源预留协议
WRED:Weighted Random Early Detection 加权随机先期检测
EF:Expedited Forwarding 无阻塞(快速)转发服务
GTS:Generic Traffic Shaping 通用流量整形
DSCP:Differentiated Services Code Point 差分服务代码点
ACL:Access Control List 访问控制列表
关键词
QoS,Cos,Tos,令牌桶,尾丢包,拥塞,吞吐量,延迟
1.概述
1.1 产生背景
QoS(Quality of Service),服务质量是指允许用户在吞吐量、延迟抖动、延迟,丢包率等方面获得可预期的服务水平的一系列技术的集合。
传统 IP 网络中,所有的报文都无区别的对待,报文的带宽、延迟、延迟抖动、丢包率不能预期。人们希望报文的带宽、延迟、延迟抖动、丢包率能得到一定的保证,既能满足VoIP,VPN,电子商务等的要求,又能满足像email 这样对时间延迟不敏感的应用的需求。为此,QoS 功能应运而生。
1.2 技术优点
① 支持为用户提供专用带宽
② 减少报文的丢失率
③ 避免和管理网络拥塞
④ 流量整形
⑤ 设置报文的优先级
2.QoS 介绍
2.1 QoS 关键指标
QoS 关键指标主要包括:可用性、吞吐量、时延、时延变化(包括抖动和漂移)和丢失
2.1.1可用性
当用户需要时网络即能工作的时间百分比。可用性主要是设备可靠性和网络存活性相结合的结果。对它起作用的还有一些其他因素,包括软件稳定性以及网络演进或升级时不中断服务的能力。
2.1.2吞吐量
在一定时间段内对网上流量(或带宽)的度量。对IP 网而言可以从帧中继网借用一些概念。根据应用和服务类型,服务水平协议(SLA)可以规定承诺信息速率(CIR)、突发信息速率(BIR)和最大突发信号长度。承诺信息速率是应该予以严格保证的,对突发信息速率可以有所限定,以在容纳预定长度突发信号的同时容纳从话音到视像以及一般数据的各种服务。一般讲,吞吐量越大越好
2.1.3时延
时延即一项服务从网络入口到出口的平均经过时间。许多服务,特别是话音和视像等实时服务都是高度不能容忍时延的。当时延超过200-250 毫秒时,交互式会话是非常麻烦的。为了提供高质量话音和会议电视,网络设备必须能保证低的时延。
产生时延的因素很多,包括分组时延、排队时延、交换时延和传播时延。传播时延是信息通过铜线、光纤或无线链路所需的时间。
2.1.4时延变化
同一业务流中不同分组所呈现的时延不同。高频率的时延变化称作抖动,而低频率的时延变化称作漂移。抖动主要是由于业务流中相继分组的排队等候时间不同引起的,是对服务质量影响最大的一个问题。某些业务类型,特别是话音和视像等实时业务是极不容忍抖动的。分组到达时间的差异将在话音或视像中造成断续。所有传送系统都有抖动,只要抖动落在规定容差之内就不会影响服务质量。利用缓存可以克服过量的抖动,但这将增加时延,造成其他问题。漂移是任何同步传输系统都有的一个问题。在SDH 系统中是通过严格的全网分级定时来克服漂移的。在异步系统中,漂移一般不是问题。漂移会造成基群失帧,使服务质量的要求不能满足。
2.1.5丢失
不管是比特丢失还是分组丢失,对分组数据业务的影响比对实时业务的影响都大。在通话期间,丢失一个比特或一个分组的信息往往用户注意不到。在视像广播期间,这在屏幕上可能造成瞬间的波形干扰,然后视像很快恢复如初。即便是用传输控制协议(TCP)传送数据也能处理丢失,因为传输控制协议允许丢失的信息重发。事实上,一种叫做随机早丢(RED)的拥塞控制机制在故意丢失分组,其目的是在流量达到设定门限时抑制TCP 传输速率,减少拥塞,同时还使TCP流失去同步,以防止因速率窗口的闭合引起吞吐量摆动。但分组丢失多了,会影响传输质量。所以,要保持统计数字,当超过预定门限时就向网络管理人员告警。
2.2 QoS 服务模型
服务模型是指一组端到端的Qos 功能,QoS 服务模型包括:
① Best-Effort service,尽力而为服务模型;
② Integrated service(Intserv),综合服务模型;
③ Differentiated service(Diffserv),区分服务模型
2.2.1 Best-Effort service
Best-Effort 是单一的服务模型,也是最简单的服务模型。应用程序可任意发送任意报文,不需要事先得到批准或通知网络,网络尽最大可能发送这些报文,但对时延、可靠性等性能不提供任保障。
Best-Effort service 是目前 Internet 的缺省服务模型,主要实技术是先进先出队列,业务量尽快传送,没有明确的时间和可靠性保障。
2.2.2 Integrated service
Integrated service 是一个综合服务模型,它可以满足多种 Qos 需求。这种服务模型在发送报文前,需要向网络申请特定服务。请求是通过信令 (signal)来完成的。则只要报文控制在流量参数描述的范围内,网络将承诺满足应用程序的 QoS 需求,并将为每个流维护一个状态,并基于这个状态执行报文的分类、流量监管(policing)、排队及其调度,来满足对应用程序的承诺,主要实现技术是RSVP(资源预留协议)。
2.2.3 Differentiated service
Diffserv 是一个多服务模型,可以满足不同的 Qos 需求。应用程序在发出报文前,不需要通知路由器,而且网络不需要为每个流维护状态,它根据每个报文指定的QoS,来提供特定的服务,包括进行报文的分类、流量整形、流量监管和排队。主要实现技术包括CAR、队列技术。
2.3 相关术语
2.3.1 IP优先级
在IPv4 的报文头中,TOS 字段是1 字节,如下图所示。根据RFC1122 的定义,IP 优先级(IP Precedence)使用最高3 比特(第0~3 比特)。
+++++++++++++
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
+++++++++++++
IP 优先级3 比特可以定义8 个等级,8 个优先级的定义如下:
表1 ToS 字段与IP 优先级映射关系
优先级6 和7 一般保留给网络控制数据使用,比如路由;优先级5 推荐给语音数据使用;优先级4 由视频会议和视频流使用;优先级3 给语音控制数据使用;优先级1 和2 给数据业务使用;优先级0 为缺省标记值。在标记数据时,既可以使用数值,也可以使用名称(英文名称)。
2.3.2拥塞与拥塞管理
拥塞现象是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃到整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿即出现死锁现象。
图1 拥塞情况(1)
图2 拥塞情况(2)
拥塞管理是指网络发生拥塞时,如何进行管理和控制,处理的方法是使用队列技术。拥塞管理的处理包括队列的创建,报文的分类,将报文送入不同队列,队列调度等 。采用排队技术,使得报文在路由器中按一定的策略暂时排队,然后再按一定的调度策略把报文从队列中取出,在接口上发送出去。根据排队和出队的策略的不同,拥塞管理技术分为以下几种:
FIFO(First In First Out):先进先出队列
PQ(Priority Queue):优先级队列
CQ(Custom Queue):定制队列
WFQ(Weighted Fair Queue):加权公平队列
CBWFQ(Class Based WFQ):基于类的加权公平队列
A .FIFO 先进先出队列
最简单的排队方式,不提供QoS 多级服务。FIFO 不对报文进行分类,当报文进入接口的速度大于接口能发送的速度时,FIFO 按报文到达接口的先后顺序让报文进入队列,同时FIFO 在队列的出口让报文按进队的顺序出队,先进的报文将先出队,后进的报文将后出队。
B .PQ 优先级队列
PQ 共分成4 个队列:High、Medium、Normal、Low,PQ 队列的主要特点是能够保证高优先级队列的带宽和时延且报文入队列的规则可配置。
图3 PQ 队列
C .CQ 定制队列
CQ 定制队列,用户可配置队列间占用的带宽比例关系,报文入队列规则可配置。CQ 共分成17 个队列:0 号队列为系统队列,优先调度;1-16 号队列为用户队列,根据带宽配额轮询调度。CQ 队列两个重要参数是队列长度和每次轮循发送的字节数。
图4 CQ 队列
CQ 队列举例如下:
队列3 每次发送字节数为1000bytes,发送的报文大小为2000bytes;
第一次发送,发送报文2000bytes, 欠债1000bytes;
第二次发送,发送报文0bytes,还债1000bytes。
D.WFQ 加权公平队列
WFQ 即加权公平队列,它是一个复杂的排队过程,只需要很少的配置,它可以动态检测应用间的通信流并自动为这些流管理独立包。WFQ 队列数目范围是16-4096,它采用HASH 算法,尽量将不同的流分入不同的队列,用户无法配置,分流标准是源地址、目的地址、端口号、协议号和Tos 值。
在保证公平(带宽、延迟)的基础上,体现权值依赖于IP 报文头中携带的IP 优先级,例如某接口上每个优先级都有且只有一个流, 则设总带宽为每个优先级+1 之和, 即1+2+3+4+5+6+7+8=36,那么每个流占有的带宽为 (优先级+1)/总带宽,例如优先级为7 的流占有带宽为(7+1)/36。
图5 WFQ 队列
E.CBWFQ 基于类的加权公平队列
CBWFQ,基于类的加权公平队列,分类数目配置范围是1-64,报文流根据用户配置的规则进入相应的队列,用户可配置队列占用的带宽;不匹配任何规则的数据流进入缺省队列,缺省队列采用WFQ 调度机制或FIFO 调度算法保证队列获得预约的带宽。
图6 CBWFQ 队列
表1 拥塞管理技术比较
队列名称 | 队列数 | 优点 | 缺点 |
FIFO | 1 | (1)不需要配置,易于使用 (2)处理简单,处理延迟小 | (1)所有报文同等对待,报文到来的次序决定了可占用的带宽、报文延时、报文丢失 (2)对时间敏感的实时应用(如VOIP)的延迟得不到保证 |
PQ | 4 | 可对不同的业务数据提供绝对的优先,对时间敏感的实时应用(如VOIP)的延迟可以得到保证。对优先业务的报文的带宽占用可以优先绝对优先 | (1)需要配置、处理速度慢 (2)如果不对高优先级的报文带宽加以限制,会造成低优先级的报文饿死。 |
CQ | 17 | (1)可对不通业务报文按照比例分配带宽 (2)当没有某些类别的报文时,能自动增加现存类别的报文的可占用带宽 | 需要配置,处理速度慢 |
WFQ | 用户决定 | (1)配置容易 (2)可以保护配合的数据源(如TCP报文发送)的带宽 (3)可以使延迟的抖动减少 (4)可以减少数据量的交互式应用的延迟 (5)可以为不同优先级的流分配不同的带宽 (6)当流的数目减少时,能自动增加现存流可占用的带宽 | 处理速度比FIFO要慢,但比PQ、CQ要快。 |
CBWFQ | 用户决定 | (1)对报文进行分类,为每类报文提供 |
2.3.3拥塞避免
当缓冲区满时的丢包策略,最常用的方法是采用尾丢包的方式,而尾丢包的方式和TCP/IP协议的慢启动管理策略会导致全局同步化,给网络带来不良影响,线路利用率不高。拥塞避免的主要技术是WRED (Weighted Random Early Detection),即加权随机先期检测。WRED 随机地丢弃数据包,将避免使多个TCP 连接同时降低发送速度,从而避免了TCP 的全局同步现象。当某个TCP 连接的数据包被丢弃,开始减速发送的时候,其他的TCP 连接仍然有较高的发送速度。这样,无论什么时候,总有TCP 连接在进行较快的发送,提高了线路带宽的利用率。
WRED 丢包机制如下:
WRED 基于在接口上排队的包数目随机地丢掉包,用户可以设定队列的低限和高限。①当队列的长度小于低限时,不丢弃报文;②当队列的长度在低限和高限之间时,WRED 开始随机丢弃数据包。具体程度依赖于当时平均队列深度和标记概率分母的值。并且,队列的长度越长,丢弃的概率越高;③当队列的长度大于高限时,丢弃所有的数据包。
2.3.4 DSCP
DSCP,差分服务代码点(Differentiated Services Code Point),IETF 于1998 年12 月发布了Diff-Serv(Differentiated Service)的QoS 分类标准。它重新命名了IPv4 报头中TOS 使用的那1 字节和IPv6 报头中数据类(Traffic Class)那1 字节,新的名字称为DS 字段(Differentiated Services Field)。该字段的作用没有变,仍然被QoS 工具用来标记数据。不同的是IPv4 使用3 比特,而DSCP 使用6 比特,最低2 比特不用。RFC2474 定义最高3 比特为级别/类别选择代码(Class Selector Codepoints,CS),其意义和IPv4 报头中IP 优先级的定义是相同的,CS0~CS7 的级别相等于IP 优先级0~7。但它并没有定义第3 到第5 比特的具体含义以及使用规则。DSCP 使用6 比特,可以定义64 个优先级(0-63)。
DSCP 值举例如下:
CS = 6 网间控制(Internetwork Control),DSCP = 48 (110000)
CS = 7 网内控制 (Intranetwork Control),DSCP = 56 (111000)
2.3.5流量整形和速率约定
A .令牌桶
令牌桶是一个控制数据流量的很好的工具,允许数据的突发性传输,Linerate,CAR,GTS均是基于令牌桶机制的。
令牌桶的三个参数如下:
①Meanrate(Meanrate=带宽)单位时间内令牌的注入量②Burst Size令牌桶的大小(Burst Size = Normal burst size +Excess burst size)③Time interval令牌注满令牌桶所需要的时间
令牌桶工作方式:
①放置令牌:令牌桶按用户设定的速度恒定的向桶中放置令牌,并且令牌桶有用户设定的容量。当桶中令牌的量超出桶的容量的时候,令牌的量不再增加。
②发送报文:当令牌桶中充满令牌的时候,桶中所有的令牌代表的报文都可以被发送;当令牌桶中没有令牌的时候,报文将不能被发送,只有等到桶中生成了新的令牌,报文才可以发送。
B .物理限速
物理限速的功能是限制物理接口的速率 (带宽 ),它的三个数值如下:
①平均速率 (Average rate):长期的平均传送速率,流量低于该数值均可以得到满足;②正常突发缓冲区的大小 (Normal burst size):在一些通信量受制与"超出活动"(exceed action)之前所允许突发数据缓冲区字节数;③超额突发缓冲区的大小 (Excess burst size):在所有通信遭受超出活动之前,所允许的突发缓冲字节数。
C .速率约定
CAR ,Committed Access Rate 承诺访问速率。对于ISP(互联网服务提供商)来说,对用户送入网络中的流量进行控制是十分必要的。对于企业网,对某些应用的流量进行控制也是一个有力的控制网络状况的工具。网络管理者可以使用约定访问速度(以后简称CAR)来对流量进行控制。
CAR 的功能:
①控制网络的负载;
②对报文进行分类,mark 和remark
实现方式:令牌桶
D.流量整形
GTS(Generic Traffic Shaping),流量整形,对报文的流量进行限制,并对超出流量约定的报文进行缓冲,并在合适的时候将缓冲的报文发送出去,从而起到流量整形的目的。
实现方式:令牌桶、队列缓存
CAR GTS
可应用在入接口和出接口上 只能应用在出接口上没有缓存有缓存,从而起到流量整形作用可标记报文 不能标记报文,可应用多重策略 不支持多重策略
在normal burst 和extended burst 参数之间提供可控的丢弃策略 不提供可控的丢弃策略支持基于ToS/Mac 的ACL 以及扩展ACL 只支持扩展ACL
3.参考文献
RFC1884
RFC791
RFC 2460
RFC 2205
RFC 2373
RFC 2374
RFC1122
RFC2474
RFC2597
RFC2598
IEEE802.1p
IEEE802.3x