3.5 QoS技术
3.5.1 QoS的基本概念
微视频4 QoS基本概念及模型
在任何时间、任何地点和任何人实现任何媒介信息的交流是人类在通信领域的永恒需求,在IP技术成熟以前,所有的网络都是单一业务网络,如PSTN只能开电话业务,有线电视网只能承载电视业务,X.25网只能承载数据业务等。网络的分离造成业务的分离,降低了沟通的效率。
由于互联网的流行,IP应用日益广泛,IP网络已经渗入各种传统的通信范围,基于IP构建一个多业务网络成为可能。三网合一是大势所趋。即视频、语音、数据同时以分组交换的方式传送。但是,不同的业务对网络的要求是不同的,如何在分组化的IP网络实现多种实时和非实时业务成为一个重要话题,由此人们提出了IP QoS的概念。
IP QoS是指IP网络的一种能力,即在跨越多种底层网络技术(FR、ATM、Ethernet、SDH等)的IP网络上,为特定的业务提供其所需要的服务。
QoS包括多个方面的内容,如带宽、时延、时延抖动等,每种业务都对QoS有特定的要求,有些可能对其中的某些指标要求高一些,有些则可能对另外一些指标要求高一些。特别是对三网合一后的视频和语音的数据,对相关指标要求也特别严格。这就要求能够提供相应的QoS保证,来保证质量地交付这些应用。
QoS需要完成以下的工作:
·避免并管理IP网络拥塞。
·减少IP报文的丢包率。
·调控IP网络的流量。
·为特定用户或特定业务提供专用带宽。
·支撑IP网络上的实时业务。
QoS指标实际上是业务质量的技术化描述,对于不同的业务,QoS缺乏保障时,所呈现出来的业务表象是不同的。一般而言,QoS包括以下几个技术指标。
(1)可用带宽
可用带宽指网络的两个节点之间特定应用业务流的平均速率,主要衡量用户从网络取得业务数据的能力,所有的实时业务对带宽都有一定的要求,如对于视频业务,当可用带宽低于视频源的编码速率时,图像质量就无法保证。
(2)时延
时延指数据包在网络的两个节点之间传送的平均往返时间,所有实时性业务都对时延有一定要求,如VoIP业务,时延一大,通话就会变得让人难以忍受。
(3)丢包率
丢包率指在网络传输过程中丢失报文的百分比,用来衡量网络正确转发用户数据的能力。不同业务对丢包的敏感性不同,在多媒体业务中,丢包是导致图像质量恶化的最根本原因,少量的丢包就可能使图像出现马赛克现象。
(4)时延抖动
时延抖动指时延的变化,有些业务(如流媒体业务)可以通过适当的缓存来减少时延抖动对业务的影响;而有些业务则对时延抖动非常敏感,如语音业务,稍许的时延抖动就会导致语音质量迅速下降。
(5)误码率
误码率指在网络传输过程中报文出现错误的百分比。误码率对一些加密类的数据业务影响尤其大。
此外,QoS还可能包含其他一些指标,如网络可用性等。业务的服务质量不仅包括上述提到的QoS指标,还包括链路质量、终端设备性能等,所有这些,都影响到用户对业务的使用。所以,只有实现网络系统和业务系统的结合,才能保障各种业务的质量。
3.5.2 QoS的模型
目前QoS有两种主要的解决模型,综合服务型(Integrated Service,简称IntServ)和区分服务模型(Differentiated Service,简称DiffServ)。
IntServ是一种端到端基于流的QoS技术。网络中所有节点为特定的流承诺一致的服务。终端在发送数据之前,需要根据业务类型向网络提出QoS要求。网络根据一定的接纳策略,判断是否接纳该业务的请求。若接纳,预留资源以承诺满足该请求。通常网络通过带外的RSVP(Resource Reservation Protocol,资源预留协议)信令建立端到端的通信路径。RSVP只是在网络节点之间传递QoS请求,它本身并不完成这些QoS的要求。也可以通过其他技术如PQ、CQ、WFQ等来满足这些QoS要求。
DiffServ即差分服务模型,是基于DSCP的QoS解决方案,网络中的每一节点自定义服务类别,可以满足用户不同的QoS需求,易于扩展。与IntServ不同,它不需要信令,逐跳转发,即在一个业务发出报文前,不需要通知路由器。在网络入口处根据服务要求对业务进行分类、流量控制,同时设置报文的DSCP域。
DSCP称为差分服务代码点(Differentiated Services Code Point),其作用主要是为了保证通信的QoS,在每个数据包IP头部的服务类别TOS标识字节中,利用6bit(取值为0~63)来划分不同服务类别,区分服务的优先级。每一个DSCP编码值都被映射到一个已定义的PHB(Per-Hop-Behavior)标识码。
在网络中,可以根据QoS机制和分组的DSCP值来区分每一类通信,包括资源分配、队列调度、分组丢弃策略等,统称为PHB。当网络出现拥塞时,根据业务的不同服务等级约定,有差别地进行流量控制和转发来解决拥塞问题。
RFC定义了四类标准的PHB,分别是尽力转发、加速型转发、确保型转发、兼容IP优先级的类型选择型,每类PHB都对应一组DSCP。PHB这样的分类依据是那些可见的服务特征,如时延、抖动或丢包率。
1)尽力转发(Best Effort,BE)。没有质量保证,一般对应于传统的IP分组投递服务,只关注可达性,其他方面不做任何要求。IP网络中,默认的PHB就是BE。任何路由器都必须支持BE PHB。
2)加速型转发(Expedited Forwarding,EF)。低时延、低抖动、低丢包率,对应于实际应用中的视频、语音、会议电视等实时业务。
3)确保型转发(Assured Forward,AF)。代表带宽有保证、时延可控的服务,适用于视频、语音、企业VPN等业务。
4)兼容IP优先级的类型选择型(Class Selecter,CS)。因为现网有些存量设备不支持差分服务,只解析DSCP前3位,为了后向兼容,标准预留了所有格式为XXX000的DSCP值,这类值就对应为CS PHB。
大家经常看到的是,AF是带有后缀的,比如AF11、AF21等,CS也有CS6、CS7等,而BE、EF都不带后缀。这是怎么回事呢?那是因为,BE和EF对应的只有唯一的一个DSCP值,CS和AF有多个DSCP值与之对应。例如,AF被细分为4个等级,且每个等级有3个丢弃优先级,其表达形式为:AF1x~AF4x(x代表丢弃优先级,取值为1~3)。
举例说明AF的用法。假设有4个小区的网络,接入ISP的同一台边缘路由器。如果某个小区发送了大量的FTP数据,可能导致拥塞,干扰其他小区的FTP传输。为了公平,约定每个小区FTP总速率不能超过500Mbit/s。但有时它们可随意发送,甚至会超过1Gbit/s。怎么办呢?可以在每个入接口上(用CAR)监测FTP速率,并重标记报文的DSCP。如果速率小于等于500Mbit/s,标记为AF11;如果速率在500M~1Gbit/s之间,标记为AF12;如果速率超过1Gbit/s,标记为AF13。当拥塞发生时,优先丢弃AF13,其次是AF12,AF11就会在最后被丢弃。
3.5.3 报文的分类和标记
如图3-18所示,报文的分类就是指对待转发的数据包进行入队的操作。实现DiffServ差分服务模型就是根据不同的队列设置不同的服务类型,这就需要用到报文的分类。
图3-18 报文的分类
网络管理者可以设置报文分类的策略,这个策略可以包括:物理接口、源地址、目的地址、MAC地址、IP、应用程序的端口号。
一般的分类算法都局限在IP报文的头部,包括链路层(Layer 2)、网络层(Layer 3)、传输层(Layer 4),很少使用报文内容作为分类标准。
分类的结果没有范围限制,它可以是一个由五元组(源地址、源端口号、协议号码、目的地址、目的端口号)确定的流,也可以是到某个网段的所有报文。
报文分类使用如下技术:
·基于访问控制列表ACL。
·基于IP优先级。
一般在网络的边界,使用ACL来进行报文的分类,同时对分类后的数据进行标记;在网络内部,节点就根据标记进行服务的分类。
3.5.4 流量管理
流量管理是基于网络的流量现状和流量管控策略,对数据流进行识别分类,并实施流量控制、优化和对关键业务应用进行保障的相关技术。
令牌桶是控制接口速率的一个常用算法,令牌桶的参数包括如下内容。
CIR:承诺信息速率。
PIR:峰值信息速率。
Bc:承诺突发量,网络允许用户以CIR速率在Tc时间间隔传送的数据量。
Be:最大突发量,网络允许用户在Tc时间间隔内传送的超过Bc的数据量。
Tc:抽样间隔时间,每隔Tc时间间隔对虚电路上的数据流量进行监视和控制,即Tc=Bc/CIR。
首先,根据预先设置的匹配规则来对报文进行分类。如果是没有规定流量特性的报文,就直接继续发送,并不需要经过令牌桶的处理;如果是需要进行流量控制的报文,则会进入令牌桶中进行处理。如果令牌桶中有足够的令牌可以用来发送报文,则允许报文通过,报文可以被继续发送下去;如果令牌桶中的令牌不满足报文的发送条件,则报文被丢弃。这样,就可以对某类报文的流量进行控制。
令牌桶按用户设定的速度向桶中放置令牌,并且用户可以设置令牌桶的容量,当桶中令牌的量超出桶的容量的时候,令牌的量不再增加。当报文被令牌桶处理时,如果令牌桶中有足够的令牌可以用来发送报文,则报文可以通过,同时,令牌桶中的令牌量根据报文的长度做相应的减少。当令牌桶中的令牌少到报文不能再发送时,报文被丢弃。
令牌桶是一个很好的控制数据流量的工具。当令牌桶中充满令牌的时候,桶中所有的令牌代表的报文都可以被发送,这样可以允许数据的突发性传输。当令牌桶中没有令牌的时候,报文将不能被发送,只有等到桶中生成了新的令牌,报文才可以被发送,这使得报文的流量只能小于等于令牌生成的速度,达到限制流量的目的。
在Tc内,参数的解释如下:
·当用户数据传送量≤Bc时,继续传送收到的帧。
·当用户数据传送量>Bc但≤Bc+Be时,若网络未发生严重拥塞,则继续传送,否则将这些帧丢弃。
·当用户数据传送量>Bc+Be时,将超过范围的帧丢弃。
举例来说,如果约定一个队列的CIR=128kbit/s,Bc=128kbit,Be=64kbit,则Tc=Bc/CIR=1s。在这一段时间内,用户可以传送的突发数据量可达到Bc+Be=192kbit,传送数据的平均速率为192kbit/s,其中,正常情况下,Bc范围内的128kbit的帧在拥塞情况下,这些帧也会被送达终点用户,若发生了严重拥塞,这些帧会被丢弃。
我们可以也对Be范围内的64kbit的帧采取标记,在网络未发生拥塞的时候,继续发送这些标记的报文;而在网络发生拥塞的时候,优先丢弃这些标记的报文。
流量监管的典型作用是限制进入某一网络的某一连接的流量与突发。在报文满足一定条件时,如果某个连接的报文流量过大,流量监管就可以对该报文采取不同的处理动作,如丢弃报文、重新设置报文的优先级等。通常的用法是使用CAR(Committed Access Rate,承诺接入速率)来限制某类报文的流量,例如限制FTP报文不能占用超过40%的网络带宽。CAR是利用令牌桶进行流量控制的。
3.5.5 拥塞管理
随着业务的增加,网络面临更大的压力。局部可能出现拥塞的情况。比如多个链路向一个链路突发、流量过大、高速链路向低速链路传送等。在拥塞发生的时候,设备默认采取尾丢弃策略。如果不加以控制,有些应用会因为丢弃而重传,造成下一个周期的拥塞,引起网络的恶性循环。
另外,在拥塞发生的时候,有时导致拥塞的是非关键的业务,比如FTP。相对而言,语音和视频需要更高的服务要求。实际上,在现代的生产中,语音和视频可能比FTP更为关键。所以,就有必要对服务质量控制,在拥塞发生时,牺牲非关键业务来保证网络对关键业务的服务质量。没有这些服务质量控制,不太重要的应用可能会很快将网络资源用尽,其代价是那些更重要的应用不能使用网络资源,从而浪费用户的投资。
拥塞管理处理的方法是使用队列技术。将所有要从一个接口发出的报文通过一定的规则导入到多个队列,按照各个队列的服务级别进行处理,如图3-19所示。
不同队列的算法用来解决不同的问题,并产生不同的效果。常用的队列有FIFO、PQ、CQ、WFQ等。
拥塞管理的特点可以概括为:
·网络拥塞时,保证不同类别的报文得到不同的服务。
·将不同类别的报文放入不同的队列,不同队列将得到不同的调度优先级、概率或带宽保证。
·拥塞管理常用的算法包括FIFO(First In First Out)、PQ(Priority Queue)、CQ(Custom Queue)、WFQ(Weighted Fair Queuing)。
图3-19 拥塞管理示意图
3.5.6 QoS功能
(1)流量分类
支持基于端口及2层、3层、4层数据包头内容的分类,包括物理接口、源地址、目的地址、MAC地址、IP或应用程序的端口号。
(2)流量策略
·支持流量监管功能,采用ACL(Access Control List)实现流分类,基于流实现承诺信息速率(CIR)、承诺突发长度(CBS)和超额信息速率(EIR)、超额突发长度(EBS),支持双令牌桶。
·对于超合约速率流量支持丢弃、标记颜色等策略动作。
·支持入口和出口的流量监管。
(3)拥塞避免
拥塞避免主要完成业务缓冲和丢弃处理,在网络节点发生拥塞时可以有选择有区别地丢弃少量数据包,对网络拥塞情况进行缓解。
支持基于流的带宽控制。
·支持避免包头阻塞功能。
·支持自适应阈值管理。
·支持以太网业务的约定访问速率(CAR)。
·每端口支持最少8个优先级队列,每队列支持最小或最大带宽管理。
·支持尾部丢弃和加权随机早期检测(WRED)的拥塞避免。
·支持基于差分服务(DiffServ)的QoS调度。
(4)队列调度
支持根据不同种类的业务采用混合灵活的队列调度。
·支持每端口8个等级的队列的业务调度。
·每队列支持最小/最大带宽管理。
·支持严格优先级(SP)、加权轮询(WRR)、赤字加权轮询(DWRR)和SP+DWRR混合方式的队列调度。
(5)流量整形(Shaping)
支持基于优先级队列的流量整形功能和基于端口的流量整形功能。