层次化QOSHQOS.docx

上传人:b****0 文档编号:962097 上传时间:2022-10-14 格式:DOCX 页数:28 大小:694.40KB
下载 相关 举报
层次化QOSHQOS.docx_第1页
第1页 / 共28页
层次化QOSHQOS.docx_第2页
第2页 / 共28页
层次化QOSHQOS.docx_第3页
第3页 / 共28页
层次化QOSHQOS.docx_第4页
第4页 / 共28页
层次化QOSHQOS.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

层次化QOSHQOS.docx

《层次化QOSHQOS.docx》由会员分享,可在线阅读,更多相关《层次化QOSHQOS.docx(28页珍藏版)》请在冰豆网上搜索。

层次化QOSHQOS.docx

层次化QOSHQOS

层次化QOS(HQOS)

 

 

———————————————————————————————— 作者:

————————————————————————————————日期:

 

HQoS

HQoS

HQoS即层次化QoS(Hierarchical Qualityof Service),是一种通过多级队列调度机制,解决Diffserv模型下多用户多业务带宽保证的技术。

传统的QoS采用一级调度,单个端口只能区分业务优先级,无法区分用户。

只要属于同一优先级的流量,使用同一个端口队列,不同用户的流量彼此之间竞争同一个队列资源,无法对端口上单个用户的单个流量进行区分服务。

HQoS采用多级调度的方式,可以精细区分不同用户和不同业务的流量,提供区分的带宽管理。

基本调度模型

调度模型分为两部分:

∙调度器:

对多个队列进行调度。

调度器执行某种调度算法,决定各个队列之间报文发送的先后顺序。

调度算法包括按优先级调度SP(StrictPriority),或按权重调度(DRR、WRR、DWRR、WFQ算法的其中一种)。

调度算法详细介绍请参见“队列及拥塞管理”。

调度器就一个动作:

选择队列。

队列被调度器选中时,队列最前面的报文被发送。

∙被调度对象:

即队列。

报文根据一定的映射关系进入不同的队列。

队列被赋予3种属性:

1)根据调度算法,队列被赋予优先级或权重。

2)队列整形速率PIR。

3)报文丢弃策略,包括尾丢弃(Tail-drop)或WRED。

队列有两个动作:

1)入队:

当系统收到报文时,根据报文丢弃策略决定是否丢弃报文。

如果报文未被丢弃,则报文入队尾。

2)出队:

队列被调度器选中时,队列最前面的报文出队。

出队时,先执行队列整形,之后报文被发送。

HQoS层次化调度模型

为了实现分层调度,HQoS采用树状结构的层次化调度模型,如图1。

树状结构有三种节点:

∙叶子节点:

处于最底层,表示一个队列。

叶子节点是被调度对象,而且只能被调度。

∙中间节点:

处于中间层,既是调度器又是被调度对象。

当作为被调度对象时,一个中间节点可以看成一个虚队列。

所谓虚队列,是指仅作为调度结构中的一个层次,不是实际占用缓存的队列。

∙根节点:

处于最高层,表示最高级别的调度器。

根节点只是调度器,不是调度对象。

根节点通常被赋予PIR属性,用于限制输出总带宽。

图1层次化调度模型ﻫ

调度器可以对多个队列进行调度,也可以对多个调度器进行调度。

其中,调度器可以看成父节点,被调度的队列/调度器看成子节点。

父节点是多个子节点的流量汇聚点。

每个节点可以指定分类规则和控制参数,对流量进行一次分类和控制。

不同层次的节点,其分类规则可以面向不同的分类需求(如用户、业务类型等),并且在不同的节点上可以对流量做不同的控制动作,从而实现了对流量进行多层次、多用户、多业务的管理。

HQoS的层次划分

HQoS层次化调度中,可以只有一层中间节点,实现三层调度结构;也可以有多层中间节点,实现多层调度结构。

甚至可以将两个或多个层次化调度模型叠加,通过制定映射规则,将一个调度模型输出的报文映射到另一个调度模型的叶子节点,如图2,从而实现更加灵活的调度需求。

图2 灵活的调度层次划分 ﻫ

不同厂家、不同芯片,实现的调度层次不同。

华为路由器的调度结构

在华为路由器上,没有配置HQoS的情况下,只有类队列CQ(ClassQueue)和Port调度器,其调度结构如图3。

图3没有配置HQoS时的队列调度结构 ﻫ

CQ队列的属性包括:

∙队列优先级、队列权重

∙队列整形速率PIR

∙报文丢弃策略,尾丢弃(Tail-drop)或WRED

Port调度器可以是按优先级调度SP(StrictPriority),或按权重调度(WRR、DWRR、WFQ算法的其中一种)。

说明:

WRR、DWRR、WFQ都是按权重调度,为方便,本文将按权重的调度统称为WFQ。

在配置HQoS的情况下,路由器另外划分缓存,用于缓存需要层次化调度的业务流队列,并对这些流队列先进行一轮多层次调度,再将HQoS流与非HQoS流统一入CQ队列,进行统一调度,如图4。

图4HQoS流队列调度 ﻫ

∙叶子节点:

FQ(FlowQueue)队列

用于暂存一个用户各个优先级中的一个优先级的数据流。

每个用户的数据流都可以划分为1~8个优先级,即每个用户可以使用1~8个FQ。

不同用户之间不能共享FQ。

每个FQ可以配置shaping值来限制该队列的最大带宽。

FQ队列与CQ队列具有相同属性:

▪队列优先级、队列权重

▪队列整形速率PIR

▪报文丢弃策略,尾丢弃(Tail-drop)或WRED

∙中间节点:

SQ(SubscriberQueue)

一个SQ代表一个用户(例如,一个VLAN,或一个LSP,或一个PVC),每个SQ可定义其CIR和PIR。

每个SQ固定对应8种FQ业务优先级,这1~8个FQ共享该SQ的带宽。

如果哪个FQ空闲,则其他FQ可以占用空闲出来的带宽,但是受限于FQ自己的PIR,最大不能超过FQ自己的PIR。

SQ既是调度器,又是虚队列作为被调度对象。

▪作为调度器:

对多个FQ队列进行调度。

FQ队列可以配置为PQ、WFQ和LPQ。

优先级为EF、CS6和CS7的FQ队列默认采用SP调度算法;优先级为BE、AF1、AF2、AF3、AF4的流队列默认采用WFQ调度算法,调度权重为10:

10:

10:

15:

15。

▪作为被调度对象的虚队列:

被赋予了两个属性,CIR和PIR。

通过流量测速(Metering),将输入流量分流成“<=CIR”与“>CIR”两部分;“<=CIR”的部分是指用户付费的部分,“>CIR”的那部分流量称为EIR,EIR=PIR-CIR。

EIR是指突发量,允许用户流量突发至最大值PIR。

∙根节点:

GQ(Group Queue)

为了简便处理,可以把多个用户定义为一个用户组GQ,类似于在配置BGP对等体时把多个具有共同特点的对等体配置为一个组。

例如,可以把相同总带宽需求的用户归为一个GQ,或把所有金牌级用户归为一个GQ。

一个GQ可以绑定多个SQ,但一个SQ最多只能绑定到一个GQ内。

GQ作为调度器,对多个SQ队列进行调度。

先采用DRR算法在SQ之间调度小于CIR的那部分流量,不同SQ之间采用DRR调度。

如果有剩余带宽,再采用DRR算法调度超过CIR但小于PIR的那部分流量(即EIR)。

CIR和EIR之间采用SP调度算法,优先保证CIR的带宽;超过PIR的流量会被丢弃。

因此,如果GQ能获得PIR带宽,则GQ下每个SQ的CIR带宽都可以得到保证,且SQ最大可以获得PIR带宽。

此外,GQ作为根节点,可以赋予最大带宽PIR属性,用于对多个用户的流量进行整体限速。

该GQ下的所有用户都受限于这个最大带宽。

GQ的PIR值只是用于整体限速,并不用来保证带宽,GQ的PIR值建议不小于GQ中所有SQ的CIR之和,否则单个用户(SQ)的流量无法得到保证。

说明:

对GQ的PIR的补充说明:

当设备支持SQ动态调整带宽特性时,

▪如果所有SQ的CIR之和超过GQ带宽,按CIR:

CIR的比例分配带宽。

如果所有SQ的PIR之和超过GQ带宽时,先满足各SQ的CIR带宽,再按EIR:

EIR的比例分配剩余带宽(EIR=PIR-CIR)。

▪如果所有SQ的CIR之和超过GQ带宽,按CIR:

CIR的比例分配带宽。

例如,SQ1的CIR =100Mbps,SQ2的CIR=50Mbps,而GQ带宽只有100Mbps,则最终SQ1和SQ2按照100M:

50M的比例输出。

▪如果所有SQ的PIR之和超过GQ带宽,先满足各SQ的CIR带宽,再按EIR:

EIR的比例分配剩余带宽。

例如,SQ1的CIR=100Mbps,PIR =150Mbps;SQ2的CIR=0Mbps,PIR=100Mbps;GQ带宽是200Mbps。

首先,SQ1获得100M的CIR,剩余100M带宽按SQ1、SQ2的EIR比例分配。

SQ1的EIR=50M;SQ2的EIR =100M,两者会近似按照1:

2的比例分剩余的100M。

最终,SQ1获得133Mbps,SQ2获得66Mbps。

为了帮助理解,下面举例说明FQ、SQ、GQ及其关系。

假设一栋楼有20个家庭,每个家庭购买的带宽是20M,则只需要为每个家庭创建一个SQ,设置CIR和PIR均为20M即可,满足了保证每个家庭20M带宽的要求,同时这里的PIR也是限定用户最大可使用的带宽为20M。

但随着VoIP、IPTV业务的开通,加上已有的个人上网HSI业务,运营商实时推出了新的带宽套餐,带宽仍然为20M,其中包含了VoIP,IPTV等增值业务。

这样,每个家庭可以使用VoIP电话,机顶盒看电视(IPTV),同时还使用电脑上网冲浪(HSI)。

此需求的HQoS配置方法是:

∙配置3个FQ,对应3种业务(VoIP、IPTV、HSI);

∙配置20个SQ,分别对应20个家庭用户。

每个SQ配置CIR和PIR,CIR保证带宽,PIR限定最大带宽。

∙配置1个GQ对应一栋楼,将20个用户的带宽汇总,将20个用户视为“用户组”,整合20个用户的总带宽作为GQ的PIR,让这20个用户实现带宽共享。

20个用户相对独立,但是总带宽又受到GQ的限制。

分层模型为:

∙FQ用于对用户的各种业务进行细分,控制用户的业务类型和带宽在各个业务之间的分配;

∙SQ用于区分用户,对每个用户的带宽进行限速;

∙GQ用于区分用户组,对5个SQ的流量进行整体限速。

FQ的作用是保证各类业务的带宽分配关系;SQ的作用是将每一个用户单独标识出来;而GQ的作用是使得各个用户之间的CIR能够得到保证,同时又达到带宽共享的目的。

超过CIR部分的带宽是不保证的,这是合理的,因为超过CIR部分的带宽实际上是用户并未付费的部分,是属于额外的。

而重要的是,必须保证CIR,因为CIR的带宽是客户购买的。

按照图4的SQ调度可以看到,用户的CIR总是可以保证的,因为用户的CIR是被单独标识出来优先被调度的,因此不会被其它用户超过CIR部分的流量抢占。

华为路由器上,HQoS可实现上、下行方向的调度,且上、下行的调度结构不同。

HQoS上行队列调度

图5HQoS上行调度结构ﻫ

HQoS的上行队列调度,HQoS流经过FQ->SQ->GQ的调度之后,与非HQoS流会合,统一进行如下两层调度:

∙目的板TB(TargetBlade)调度

TB调度也称为VOQ(VirtualOutput Queue)调度。

TB调度的作用可以借用比喻来理解:

如下图为一个十字路口,A路口来了3辆车(汽车、铲车和卡车),分别去往B、C、D。

如果此时B路口堵车,则汽车不能动,由于它排在前面,后面的铲车和卡车也不能动,尽管C、D路口是畅通的。

如果在A路口针对目的地B、C、D路口分别设立三条车道,则上面的问题就可以解决了。

同理,对于路由器的交换网板,上面的A、B、C、D路口相当于不同的单板。

如果每块单板都为去往的不同目的单板的报文分配队列,这种队列称为VOQ,可以预防因某块目的单板拥塞而影响去往其他目的单板的报文。

VOQ是设备自动划分的,用户无法更改VOQ队列属性和调度器属性。

说明:

 

组播报文上行还没有复制,还不确定去往哪个目的单板,所以组播报文单独一个VOQ队列。

对于单播,有多少个目的单板,就有多少个单播VOQ队列。

VOQ调度中,先在单播VOQ队列之间进行DRR调度,再在单播和组播两者之间进行DRR调度。

∙类队列CQ(Class Queue)调度

对于上行调度,有4个CQ队列,分别叫做COS0(对应CS7、CS6和EF)、COS1(对应AF4和AF3)、COS2(对应AF2和A

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 预防医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1