附件下载
H3C SR8800 分层QoS技术白皮书.pdf(947.53 KB)
分层QoS技术白皮书
关键词:分层QoS 、HQoS、多级调度 、WFQ 、WRED 、GTS
摘 要:分层QoS(Hierarchical QoS)技术是一项通过分层调度解决在Diff-Serv模型下多用户多业务的带宽保证技术。本文介绍了分层QoS的发展历程,关键技术及其典型应用。
缩略语清单:
缩略语 | 英文全名 | 中文解释 |
QoS | Quality of Service | 服务质量 |
HQoS | Hierarchical QoS | 分层QoS |
SLA | Service Level Agreement | 服务等级约定 |
WFQ | Weighted Fair Queue | 加强公平队列 |
CBWFQ | Class-Based Weighted Fair Queue | 基于类的加权公平队列 |
ACL | Access Control List | 存取控制列表 |
WRED | Weighted Radom Early Drop | 加权随机早期检测 |
TM | Traffic Management | 流量管理 |
PHB | Per Hop Behavior | 每一跳行为 |
DSCP | Diff. Service Code Point | 区分服务点 |
NP | Network Processor | 网络处理器 |
Diff-Serv | Differentiated Service | 差分服务 |
Inter-Serv | Integrated Services | 集成服务 |
MQC | Modular QoS Commandline | 模块化QoS命令行 |
网络发展日新月异,随着IP网络上新应用的不断出现,对IP网络的服务质量也提出了新的要求,例如VoIP(Voice over IP,IP语音)等实时业务就对报文的传输延迟提出了较高要求,如果报文传送延时太长,将是用户所不能接受的(相对而言,E-Mail和FTP业务对时间延迟并不敏感)。为了支持具有不同服务需求的语音、视频以及数据等业务,要求网络能够区分出不同的业务,进而为之提供相应的服务。为此,QoS技术应运而生,其主要发展历程如下:
l 尽力而为:20世纪80年代,当时的Internet主要承载数据业务,网络采用尽力而为的服务、无QoS保障。
l 基于流的Inter-Serv QoS技术:到了20世纪90年代初期,由于受到VoIP等实时业务的驱动,IETF组织在1994年推出了基于RSVP的Inter-Serv解决方案,这种端到端基于流的QoS技术,在IP领域却没有获得广泛成功。
l 基于类的Diff-Serv QoS技术:为了寻求扩展性和简易性,IETF组织在1998年推出了基于DSCP的Diff-Serv解决方案,这是一种基于类的QoS技术。Diff-Serv通过将业务定义为有限的类,在Diff-Serv网络域边缘处根据服务要求对业务进行分类、流量控制,同时设置报文的DSCP;在Diff-Serv域中的所有节点都将根据分组的DSCP字段来遵守PHB。在众多的QoS技术中,IP Diff-Serv成为当前主流应用技术。
但是随着现在网络设备高速发展,单端口容量变大,接入用户多,传统的QoS在应用中遇到了新问题:
(1) 传统流量管理是基于端口带宽进行调度的,这样产生的结果就是对用户不敏感,只对服务等级敏感,适合网络侧,但不适合业务接入侧。
(2) 传统流量管理很难做到同时对多个用户的多个业务进行控制
为解决以上的问题,提供更好的QoS能力,迫切需要一种既能控制用户的流量,又能同时对用户业务的优先级进行调度的QoS技术。HQoS采用多级调度的方式,采用全新的硬件设计,使设备具有内部资源的控制策略,既能够为高级用户提供质量保证,又能够从整体上节约网络构造成本。
普通QoS调度算法是基于端口的,只对业务等级敏感,对用户不敏感,会产生混乱的抢占结果,HQoS通过多级调度来解决此问题。

图1 用户+用户业务的调度模型
上图形象的说明了HQoS解决多用户的多业务带宽保证原理,接口就像一个大的水管,每个用户从大管子中分一个小管子,大管子就能对小管子进行流量管理,而每个用户又对其自己的小管子再细分出不同的流,对不同的流进行不同的处理。
这种原理在设备上通过分级调度来实现,第一级完成对用户带宽的保证,第二级完成对每个用户各业务的带宽保证。
目前IP组网典型方案是分为接入层、汇聚层、骨干层三层结构。这种宽带网络的分层结构使网络层次清晰。接入层为不同用户提供各种接入手段,汇聚层对接入层业务流汇聚,城域网核心层保证快速转发,网络拓扑有下列显著特征:
(1) 网络拓扑结构通常是树形拓扑结构,即使有些场合,物理上的拓扑结构是环形结构,但链路层还是树形拓扑结构;
(2) 各种业务的转发路径基本固定,不会动态改变;
(3) 业务路由器是树形拓扑结构的根节点。
业务路由器下挂的LAN Switch往往只能根据报文的二层信息进行转发,其QoS处理能力较弱,不能满足业务的QoS需求。为了能够在宽带接入网上承载不同QoS需求的业务,当然可以通过更换目前的二层设备来解决,但这需要巨大的投资,而且效果也一般,HQoS技术能有效解决这个问题。HQoS处理能真实体现网络拓扑结构和业务转发路径,在业务路由器上流量汇聚点集中配置QoS功能,把下挂的各类通信设备、业务类型映射到汇聚点的不同层次节点上,节点上的QoS就直接体现出下挂设备的QoS能力。
为了更好的对流量进行管理,HQoS有着完善的流量统计功能。通过流量统计功能,使用者可以看到各种业务的带宽使用情况,并通过分析流量,合理的划分各业务的带宽分配。
DSL Forum的TR-059(TR-059 DSL Evolution – Architecture Requirements for the Support of QoS-Enabled IP Services)就层次化QoS调度提出了较为通用的模型,如图2所示。TR-101(Technical Report DSL Forum TR-101 Migration to Ethernet-Based DSL Aggregation),明确了分层模型在以太网中的应用。

图2 分层模型
在该模型中,边缘设备提供多级拥塞管理能力,避免流量在下游不具备QoS能力的设备拥塞,保障高优先级业务的开展。拥塞管理通过多级队列和调度器,采用合适的调度算法来实现。简单来说,每一级调度器都有若干报文队列,来自前级调度器的报文在此排队,等待本级调度器调度后在合适的时机发送出去。
结合接入网的带宽需求和业务的优先级,通过合理配置队列和调度器的参数,即可保证边缘设备上的业务流得到正确的调度,保证高优先级业务的开展。

图3 专用QoS引擎
网络业务的不断增加,路由器QoS的要求不断提高, QoS调度消耗路由器的大部分资源、占用大量的处理时间,成为阻碍路由器性能提升的主要因素之一。采用单一的芯片同时处理业务和QoS的传统技术已经不能满足业务发展的要求。
然而,QoS调度需求稳定、模型成熟,如果采用ASIC技术固化QoS调度功能,则可大幅提高处理性能。 另外,路由器的另外一个处理环节“表检索”功能也和QoS有类似和特点。
综合ASIC高性能和NP灵活业务扩展的特点,SR8800采用转发三引擎构架 ,即:NP业务引擎、QoS引擎和表检索引擎。其中,业务引擎采用NP技术,可实现业务的灵活扩展和升级;QoS引擎和表检索引擎采用ASIC技术,实现QoS处理和表项查找的高性能。
在分层调度模型中,共包括端口层、用户组层、用户层、用户业务层共四个层次。HQoS处理引擎完成拥塞避免、多级调度、流量限速、流量统计等功能。

图4 分层调度模型
(1) 用户业务调度器
用户业务调度器用于对用户的各种基本业务报文流的处理。SR8800对每个用户支持4种业务类型,每个用户的报文流按照业务类型分类进入不同的硬件队列,业务级调度器负责从这些队列中取出报文,调度后发往后级调度器。
业务层调度器使用绝对优先权(SP)和加权公平调度算法(WFQ)。SP算法是指如果高优先级队列中有报文,那么低优先级队列就不能调度;只有当比本队列优先级高的队列中都没有报文需要发送时,本队列中的报文才有机会被发送。WFQ算法是指在具有相同优先级的若干个队列之间,根据配置的权重来公平分配发送报文的机会。通常SP用于保证高优先级的业务流,WFQ则通过权重的比例来调整多个业务流的带宽。
调度器一直监视队列缓存的使用情况,在拥塞有加剧的趋势时,主动丢弃报文,通过调整网络的流量来解除网络过载。该层基于报文的丢弃优先级采用WRED(Weighted Random Early Detection,加权随机早期检测)为每个队列都设定上限和下限,根据配置随机丢弃超限报文,避免了流量拥塞引发的系列问题。
业务级调度可以配置队列的WFQ参数、WRED参数。
(2) 用户调度器
用户调度器用于对用户的所有业务报文流流量整形处理,并负责从队列中取出用户的报文,处理后发往后级调度器。
流量整形的处理是采用令牌桶对流量的规格进行评估,并削峰填谷,将峰值流量缓存到队列内部,保证报文不丢失,实现对用户及其业务的SLA管理。在实现上,支持不同类型的整形算法,包括RFC SrTCM和TrTCM算法,支持CIR、PIR、CBS和EBS参数的配置。
该层调度器流量整形发送速率的范围是128Kbps到10Gbps,步长为1Kbps。
(3) 用户组调度器
用户组调度器s用于对用户类型分组或逻辑子接口的报文流处理。发往用户组或不同子接口的报文进入不同的队列,调度器负责从这些队列中取出报文,调度后发往后级调度器。
调度器采用加权公平算法(WFQ/CBWFQ)对队列进行调度,可以对不同用户组分配不同的权值。支持流量整形(Shaping),发送速率的范围是128Kbps到10Gbps,步长为1Kbps。
(4) 端口层调度器
该层用于对接口板物理接口的报文流处理,支持流量整形和统计。
SR8800中发往不同物理接口的报文进入不同的Port队列,端口层调度器负责从这些队列中取出报文,从相应的物理接口发出。SR8800的Port级调度器采用加权公平队列算法调度(WFQ/CBWFQ),比如某子卡支持10个GE接口,那么Port级调度器对10个Port队列循环调度。流量整形速率可配置,从10Mbps到10Gbps,步长为10Mbps。
调度器的层次主要影响到HQoS是否可以应用到拓扑结构更复杂的场合,层次越多,可以应用的场合越多,(一般分四个层次描述,分别称为用户业务队列->用户->用户组->端口),体现为支持业务类型的丰富性和用户个数。
队列主要用于实现丰富的QoS功能,例如流量限速、拥塞避免、流量整形和队列调度等,用户业务队列数目决定了同时最多可以有多少流参与HQoS处理,队列的最大深度则决定了最多可以缓存的报文数目。,一般要求HQoS能够缓存200ms的报文数目(物理端口线速的情况下)。SR8800万兆核心路由器提供16K队列/NP,缓存大小为512M,完全满足网络中突发流量要求和流量整形的实施效果。
为了让高优先级业务得到高优先级QoS服务,保证“实时性”业务对时延和时延抖动的需求,路由器需要能有效识别各种业务类型。SR8800支持根据802.1P、DSCP、EXP等优先级字段或IP五元组等复杂分类条件实现业务分类。
SR8800采用了NP处理与QoS调度相分离的技术,一方面保证了业务处理与QoS调度的处理性能,同时增强了业务类型识别的丰富性。SR8800通过全局映射表配置,完成业务分类与队列映射,快速实现业务部署。
当“预知”网络要出现拥塞时,为了保证高优先级业务能够得到“实时”转发或同一层次的队列之间能够得到“公平”的调度,HQoS需要能够给调度器或队列指定优先级或配置调度权重。用户业务队列通常被划分成4个一组,每组分别对应一个调度器,4个队列分别被指定为不同优先级,采用PQ/LLQ/WFQ/CBWFQ调度算法,这样可以保证高优先级报文得到最快的转发。
为了避免路由器发出的流量超过接入网链路的承载能力或高优先级的超额流量导致低优先级的流量“饿死”,需要在每个层次进行流量整形。流量整形的处理是采用令牌桶对流量进行评估和削峰填谷,将峰值流量缓存到队列内部,延迟再发送,尽可能保证报文不丢失。
在HQoS模型中,可以在多层来配置流量整形,实现对流量带宽的精细化管理,保证用户及其业务的SLA(Service Level Agreement)。

图5 HQoS中的流量整形
拥塞避免是一种流控机制,它可以通过监视队列缓存的使用情况,在拥塞有加剧的趋势时,主动丢弃报文,通过调整网络的流量来解除网络过载。传统的丢包策略采用尾部丢弃(Tail-Drop)的方法。当队列的长度达到某一最大值后,所有新到来的报文都将被丢弃。这种丢弃策略会引发TCP全局同步现象。为避免TCP全局同步现象,可使用WRED(Weighted Random Early Detection,加权随机早期检测)。WRED基于报文的丢弃优先级为每个队列都设定上限和下限,对队列中的报文进行如下处理:
l 当队列的长度小于下限时,不丢弃报文;
l 当队列的长度超过上限时,丢弃所有到来的报文;
l 当队列的长度在上限和下限之间时,开始随机丢弃到来的报文。队列越长,丢弃概率越高,但有一个最大丢弃概率。
HQoS中只需要在对应物理队列的用户业务层配置合适的丢弃策略,实施拥塞避免就可以满足流控要求。
在HQoS处理过程中,需要能够在指定的层次统计被发送和丢弃的报文数目和字节数。同时,可以通过查看队列缓存深度、调度器、整形器的状态,从而掌握分层系统运行信息。SR8800支持分层实现了流量统计、队列深度查看等功能。
真实网络中用户和业务的QoS会根据应用和网络拓扑变化而调整。因此,要HQoS能适应这一变化。SR8800支持WRED、PQ、LLQ、WFQ、CBWFQ、Shaping、统计等所有参数的动态下发与调整,极大地方便了客户使用。
根据不同的应用需求,HQoS的实施必须进行QoS的总体规划,其规划原则如下:
第一,分析不同市场的待实施业务类型,在企业网中目前需要考虑的业务类型包括生产数据、视频监控、IP电话和OA业务;在城域网中目前可考虑的业务类型可以分为VoIP语音、视频、专线互联及互联网接入等。
第二,分析组网拓扑,合理划分网络层次,找出合适的HQoS部属点,把HQoS模型中不同分层节点映射到实际的网络中。
第三,根据用户、业务类型制定相应的QoS策略,保证SLA顺利实施。

图6 HQoS应用组网图
表1 HQoS应用业务需求与规划表
项目 | 需求与规划内容 |
业务需求与规划 | 用户的业务类型基本一致,不同用户进行不同的流量管理。 PE路由器(SR8800)出端口限速155Mbps 用户组1 总流量要求:CIR为75Mbps,PIR为100Mbps 用户1生产业务所属网段10.1.1.0/24 优先级5; 用户1电话业务所属网段10.1.2.0/24 优先级4 用户1监控业务所属网段10.1.3.0/24 优先级3 用户1OA业务所属网段10.1.4.0/24 优先级0 其他用户所属网段不一一列出。 |
l 对不同用户的业务进行不同的队列调度,在转发组中实现。
l 将不同用户组分为相应的Group类型转发组,由于配置结构相同,使用实例化操作实现。
l 对用户组和用户各种业务根据流分类Remark动作来实现转发类映射。对每个用户标识不同的QoS-Local-ID,业务与转发类fc绑定,最终完成流量与队列的映射;
(1) 配置用户组的转发策略,以用户组1为例(CIR=75Mbps PIR=100Mbps)
[SR8800] qos forwarding-profile UserGroup_1
[sr8800-fp-UserGroup_1] gts cir 75000 pir 100000
(2) 配置不同用户的转发策略,以用户组1的用户1为例(CIR=15Mbps PIR=20Mbps)
[SR8800] qos forwarding-profile UserGroup_1_user1
[SR8800-fp- UserGroup_1_user1] gts cir 15000 pir 20000
(3) 配置第一层转发组(嵌套转发组),以用户组1下包含两个用户(用户1、用户n)为例
[SR8800] qos forwarding-group UserGroup_1
[SR8800-fg-UserGroup_1]forwarding-group UserGroup_1_user1 profile UserGroup_1_user1
[SR8800-fg-UserGroup_1]forwarding-group UserGroup_1_user1 profile UserGroup_1_usern
(4) 配置分层调度策略并实例化,完成整个分层拓扑的配置
首先定义调度策略为HQoS_Demo
[SR8800] qos scheduler-policy HQoS_Demo
配置用户组对应的转发组节点,这里以用户组1为例
[SR8800-sp- HQoS_Demo]qos forwarding-group UserGroup_1 profile UserGroup_1
定义分层拓扑,这里定义第一层的转发组节点
[SR8800-sp- HQoS_Demo] layer 1
[SR8800-sp- HQoS_Demo -layer1] qos forwarding-group UserGroup_1 group
[SR8800-sp- HQoS_Demo -layer1] qos forwarding-group UserGroup_n group
定义分层拓扑,这里定义第二层的转发组节点,并将用户与QoS-Local-ID绑定
[SR8800-sp- HQoS_Demo -layer1] layer 2
[SR8800-sp- HQoS_Demo -layer2]qos forwarding-group UserGroup_1_user1 match qos-local-id 1
[SR8800-sp- HQoS_Demo -layer2]qos forwarding-group UserGroup_1_user2 match extended qos-local-id 2 to 99
[SR8800-sp- HQoS_Demo -layer2]qos forwarding-group UserGroup_n_user1 match extended qos-local-id 100 to 199
(5) 在接口应用调度策略
[SR8800-G1/1/1] qos apply scheduler-policy HQoS_Demo outbound
(6) 配置MQC策略(MQC_HQoS_Demo),包括配置流分类进行业务、用户识别,并完成与分层调度策略中已经分配QoS-Local-ID、fc的映射
略;
(7) 在接口应用MQC策略
[SR8800-G1/1/1] qos apply policy MQC_HQoS_Demo outbound
随着未来电话、监控、办公网、生产网的多网融合,数据设备越来越多的用于承载语音、视频等一些实时、时延敏感业务,HQoS可以有效地解决了多用户的多业务的不同优先级QoS保证,为用户构建精品数据网络,HQoS已经成为路由器的必备技术。
H3C SR8800万兆核心路由器所实施的HQoS能够扩展到数千个业务,且每个槽位更有几万队列。这些队列可以动态地分配到业务中去,调度器支持动态配置,用户可以根据实际需要,设置调度器之间的层次关系,上级调度器控制一组下级调度器的总带宽,上级调度器根据下级调度器的级别和权重合理分配下级调度器的承诺带宽和峰值带宽,真正实现了控制多业务的服务质量。
[1] Technical Report DSL Forum TR-059 DSL Evolution – Architecture Requirements for the Support of QoS-Enabled IP Services
[2] Technical Report DSL Forum TR-101 Migration to Ethernet-Based DSL Aggregation
Copyright ©2008杭州华三通信技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
本文档中的信息可能变动,恕不另行通知。
H3C SR8800 分层QoS技术白皮书.pdf(947.53 KB)