QoS基本原理
- QoS技术概述
- 1. 什么是QoS
- (1)传统网络——“尽力而为”、没有服务质量保证
- (2)QoS(服务质量):
- 2. QoS服务模型
- (1)Best-Effort-Service:尽力而为服务模型(缺省,适用绝大多数网络应用)
- (2)Integrated service:综合服务模型,简称Intserv
- (3)Differentiated service:区分服务模型,简称DiffServ(多服务模型,目前被广泛使用)
- QoS流分类和流标记
- 1. 概述
- (1)依据一定的匹配规则识别出对象,是有区别地实施服务的前提,通常作用在接口入方向
- (2) 将数据包分为不同的类别,称为流分类,流分类并不修改原来的数据包
- (3)将数据包设置为不同的优先级称为标记,而标记会修改原来的数据包
- (4)标记分类:
- 2. 简单流分类
- (1)简单流分类是指采用简单的规则,对报文进行粗略的分类,以识别出具有不同优先级或服务等级特征的流量,实现外部优先级和内部优先级的映射
- (2)外部优先级
- (3)服务等级(即队列)——内部优先级
- (4)Color——丢弃优先级
- (5)映射
- 3. 复杂流分类
- (1)复杂流分类是指采用复杂的规则,对报文进行精细的分类,一般在DS边界入方向部署
- (2)模板化的QoS:配置流分类、配置流行为、配置流量策略、应用流量策略
- (3)流量分类全过程
- (4)配置复杂流分类(命令略)
- 流量限速技术
- 1. 流量限速
- (1)QoS数据处理流程
- (2)流量限速技术:令牌桶技术
- 2. 令牌桶
- (1)单桶单速双色(绿、红)标记法(C桶)
- (2)双桶单速三色标记法(C、E桶)
- (3)双桶双速三色标记法
- 3. 流量监管TP(Traffic Policing)
- (1)什么是流量监管
- (2)承诺访问速率(CAR)
- (3)使用场景
- (4)配置命令(略)
- 4. 流量整形
- (2)流量整形的实现
- (3)使用场景
- (4)配置命令(略)
- 拥塞避免技术
- 1. 概述
- (1)拥塞避免:
- (2)拥塞经常发生的情况:
- (3)拥塞的影响:
- (4)对策:
- 2. 拥塞避免技术——丢弃策略:尾丢弃、RED、WRED
- (1)尾丢弃(Tail Drop)——传统处理方式
- (2)随机检测(RED,Random Early Detection)——随机地丢弃数据报文
- (3)加权随机嫌弃检测(WRED,Weighted Random Early Detection)——通过对不同优先级数据包或队列设置相应的丢弃策略,以实现对不同流量进行区分丢弃。
- 3. 拥塞避免的应用:接口出方向
- 4. 配置命令(略)
- 拥塞管理技术
- 1. 概述
- 2. 什么是队列
- 3. 队列调度算法
- 4. 端口队列调度方式
- 5. 拥塞管理的应用:接口出方向
- 6. 配置命令(略)
- HQoS介绍
- 1. 概述
- 2. HQoS队列
- (1)Level3流队列
- (2)Level2用户队列
- (3)Level1接口队列
- 3. HQoS队列调度
- 4. HQoS流量整形
- 5. HQoS丢弃器
- 6. HQoS应用
- 7. HQoS配置思路
QoS技术概述
1. 什么是QoS
(1)传统网络——“尽力而为”、没有服务质量保证
新应用不断出现、客户要求越来越高、网络提供有质量保证的服务是大势所趋
(2)QoS(服务质量):
针对各种应用的不同需求,为其提供不同的服务质量
影响QoS的因素:带宽、时延、抖动、丢包率、可用性
2. QoS服务模型
(1)Best-Effort-Service:尽力而为服务模型(缺省,适用绝大多数网络应用)
无区别对待、先入先出
网络尽最大的可能性来发送报文
缺点:对时延、可靠性等性能不提供任何保证
(2)Integrated service:综合服务模型,简称Intserv
应用程序在发送报文前,需要向未来申请特定的服务
网络在收到应用程序的资源请求后,通过交换RSVP信令信息,为每个信息预留资源
缺点:实现复杂、资源浪费、要求端到端所有节点设备都支持并运行RSVP协议
(3)Differentiated service:区分服务模型,简称DiffServ(多服务模型,目前被广泛使用)
将网络中的流量分成多个类,不同的类采用不同的处理
常用技术:流量限速、拥塞避免、拥塞管理
处理流程:流量分类和标记、流量监管、拥塞避免、拥塞管理、流量整形
QoS流分类和流标记
1. 概述
(1)依据一定的匹配规则识别出对象,是有区别地实施服务的前提,通常作用在接口入方向
(2) 将数据包分为不同的类别,称为流分类,流分类并不修改原来的数据包
(3)将数据包设置为不同的优先级称为标记,而标记会修改原来的数据包
(4)标记分类:
内部标记:标记报文在设备内部处理的服务等级(Service-class)与丢弃优先级,让匹配的报文能够直接进入指定服务等级的队列
丢弃优先级也叫着色(color),指在相同服务等级的时候,入同一个队列,当此队列快拥塞的时候,可以通过color在进行差分服务
外部标记:设置/改写(重标记-remark)报文的优先级字段,用于向下一台设备传递差分服务的QoS信息
2. 简单流分类
(1)简单流分类是指采用简单的规则,对报文进行粗略的分类,以识别出具有不同优先级或服务等级特征的流量,实现外部优先级和内部优先级的映射
(2)外部优先级
VLAN报文:802.1P——VLAN TAG中优先级PRI为外部优先级,取值范围0-7
MPLS报文:EXP——标签信息中的EXP域作为外部优先级,取值范围0-7
IP报文:ToS字段(IPP/DSCP)
IP-Precedence:取值范围0-7
DSCP:取值范围0-63(对IPP的扩充)
(3)服务等级(即队列)——内部优先级
取值:CS7、CS6、 EF、AF4、AF3、AF2、AF1、BE(PQ调度优先级由高到低)
调度算法:PQ(严格优先级调度模式)、WFQ(加权公平调度模式)
优先级:BE配置为PQ调度,其它7种配置WFQ调度,BE优先级比其余7个都高
都配WFQ调度,无优先级高低之分
(4)Color——丢弃优先级
取值:Green(绿)、Yellow(黄)、Red(红) //低 --->高
优先级高低取决于对应参数的配置
(5)映射
将QoS优先级映射到服务等级和颜色是在报文上行方向进行
服务等级和颜色映射为QoS优先级则是在下行方向进行
3. 复杂流分类
(1)复杂流分类是指采用复杂的规则,对报文进行精细的分类,一般在DS边界入方向部署
(2)模板化的QoS:配置流分类、配置流行为、配置流量策略、应用流量策略
需要用到Traffice Policy工具
(3)流量分类全过程
(4)配置复杂流分类(命令略)
流量限速技术
1. 流量限速
(1)QoS数据处理流程
流量监管:对进入设备的流量进行监控,确保其没有滥用网络资源
流量整形:对输出报文的速率进行控制,使报文以均匀的速率发送出去
作用:
在网络边缘,监控网络流量
对于进出的不同流量规定带宽占用比例,让不同的业务由不同的流量边界
(2)流量限速技术:令牌桶技术
令牌桶:使用令牌桶对流量进行评估,是否满足报文转发的条件
2. 令牌桶
(1)单桶单速双色(绿、红)标记法(C桶)
CIR:承诺信息速率,单位是kbps,表示向令牌桶中投放令牌的速率
CBS:承诺突发尺寸,单位是byte,用来定义在部分流量超过CIR之前的最大突发流量,即令牌桶的容量
不允许突发流量,只有承诺流量
令牌初始数量Tc=CBS
到达的数据大小B<Tc,Tc=Tc-B,标记为绿色,转发;B>=Tc,Tc不变,标记为红色,丢弃
(2)双桶单速三色标记法(C、E桶)
EBS:峰值突发尺寸,单位byte,用来定义每次突发所允许的最大的流量尺寸
允许短暂的突发流量
规则:
令牌初始数量:C桶:Tc=CBS、E桶:Te=EBS
到达的数据大小B<Tc,Tc=Tc-B,标记为绿色,转发;
Tc<B<Te,Te=Te-B,标记为黄色,转发
B>Te>Tc,Tc、Te不变,标记为红色,丢弃
(3)双桶双速三色标记法
PIR:峰值信息速率,单位为kbps,表示端口允许的突发流量的最大速率,大于CIR
PBS:峰值突发尺寸,单位为byte,用来定义每次突发所允许的最大的流量尺寸,大于CBS
允许长期的突发流量
规则:
令牌初始数量:C桶:Tc=CBS、P桶:Tp=PBS
到达的数据大小B>Tp,标记为红色,Tc和Tp保持不变
Tc<B<Tp,标记为黄色,Tp=Tp-B
B<Tc,标记为绿色,Tp=Tp-B,Tc=Tc-B
3. 流量监管TP(Traffic Policing)
(1)什么是流量监管
通过监控进入网络的某一流量的规格,限制它在一个允许的范围之内,
若某个连接的报文流量过大,就丢弃报文,或重新设置该报文的优先级,以保护网络资源不受损害
流量监管可配置在设备的接口进出方向
流量监管的实现:采用承诺访问速率CAR来对流量进行控制
流量监管的特点:
丢弃超额流量或将超额流量重标记为低优先级量
不需要额外的内存资源,不会带来延迟和抖动
丢包可能引发重传
可以重标记流
(2)承诺访问速率(CAR)
CAR利用令牌桶来衡量每个数据报文是超过还是遵守所规定的报文速率
CAR主要有两个功能:流量速率限制、流分类
CAR处理流程:
当报文到来时,首先检查端口的匹配规则,如果匹配上了,则进行速率控制,报文进入令牌桶中进行流量速率评估
令牌桶评估后,报文被标记为红、黄、绿三种颜色
报文标为红色的直接丢弃,黄色则重新标记后转发,绿色则直接转发
可使用令牌桶类型:单桶单速、双桶单速、双桶双速
(3)使用场景
基于接口的流量监管:指对进入该接口的所有流量进行控制,而不区分具体报文的类型
基于类的流量监管:指对进入该接口的满足特定条件的某一类或几类报文进行流量控制,而非所有报文
(4)配置命令(略)
4. 流量整形
(1)什么是流量整形
流量整形TS:是一种主动调整流量输出速率的措施,通过在上游设备的接口出方向配置流量整形,
将上游不规整的流量进行削峰填谷,输出一条比较平整的流量,从而解决下游设备的瞬时拥塞问题
实现:通常使用缓冲区和令牌桶来完成
令牌桶类型:单速单桶
评估结果:符合(Green)、超标(Red)
特点:
缓存超出策略/协定SLA规定的超额流量
需要内存去缓存超额流量,可能会带来延迟和抖动
较少的丢包,因而较少导致重传
不能重标记
(2)流量整形的实现
队列流量整形:对接口的每个队列进行流量整形,区分优先级
步骤:在出队的时候,不需要整形的报文,直接转发;对于需要进行整形的报文,则先进行令牌桶评估:
如果数据包速率符合要求,标记为绿色,并转发。
如果数据包速率超标:正在出队的数据包仍然转发出去,将超标的报文所在的队列的状态改为不可调度,等空闲再调度此队列。
接口流量整形:限制接口发送的所有报文的总速率,是对整个出接口进行流量整形,不区分优先级
步骤:在出队的时候,对所有队列的数据包总和进行令牌桶评估:
如果数据包总速率符合要求,标记为绿色,并转发。
如果数据包总速率超标,标记为红色,接口暂停调度,等令牌足够时再继续调度。
(3)使用场景
一般用于接口出方向,多用于流量限速,对于丢包敏感流量(如:上网、下载等),推荐使用
(4)配置命令(略)
拥塞避免技术
1. 概述
(1)拥塞避免:
过度的拥塞会对网络资源造成损害,拥塞避免监督网络资源的使用情况,
当发现拥塞有加剧的趋势时采取主动丢弃报文的策略,
通过调整流量来解除网络的过载,通常作用在接口出方向。
拥塞是在共享网络上多个用户竞争相同的资源(带宽、缓冲区等)时发生的问题。
(2)拥塞经常发生的情况:
速率不匹配:分组从高速链路进入设备,再由低速链路转发出去。
汇聚问题:分组从多个接口同时进入设备,由一个没有足够带宽的接口转发出去。
(3)拥塞的影响:
拥塞增加了报文传输的延迟和延迟抖动。
过高的延迟会引起报文重传。
拥塞使网络的有效吞吐率降低,造成网络资源的损害。
拥塞加剧会耗费大量的网络资源(特别是存储资源),不合理的资源分配甚至可能导致系统陷入资源死锁而崩溃。
(4)对策:
拥塞管理:指网络在发生拥塞时,如何进行管理和控制。
拥塞避免:通过监视网络资源的使用情况,在拥塞有加剧的趋势时,主动丢弃报文,通过调整网络的流量来解除网络过载的一种流量控制机制。
拥塞避免用于防止因为线路拥塞而使设备的队列溢出。
2. 拥塞避免技术——丢弃策略:尾丢弃、RED、WRED
(1)尾丢弃(Tail Drop)——传统处理方式
当队列的长度达到最大值后,所有新入队列的报文(缓存在队列尾部)都将被丢弃。
缺点:
1)TCP全局同步现象
对于TCP报文,如果大量的报文被丢弃,将造成TCP超时,从而引发TCP慢启动,使得TCP减少报文的发送。
当队列同时丢弃多个TCP连接的报文时,将造成多个TCP连接同时进入拥塞避免和慢启动状态以调整并降低流量,这就被称为TCP全局同步现象。
这样多个TCP连接发往队列的报文将同时减少,而后又会在某个时间同时出现流量高峰,如此反复,使网络资源利用率低。
2)无差别丢弃
尾丢弃很可能导致大量非关键数据被转发,而大量关键数据被丢弃,原因:尾丢弃无法对流量进行区分
(2)随机检测(RED,Random Early Detection)——随机地丢弃数据报文
RED为每个队列的长度都设定了阈值门限,并规定:
1)当队列的长度小于低门限时,不丢弃报文。
2)当队列的长度大于高门限时,丢弃所有收到的报文。
3)当队列的长度在低门限和高门限之间时,开始随机丢弃到来的报文。
方法是为每个到来的报文赋予一个随机数,并用该随机数与当前队列的丢弃概率比较,
如果大于丢弃概率则报文被丢弃。队列越长,报文被丢弃的概率越高。
RED可以缓解TCP全局同步现象:仍有可能出现,但链路利用率已大大增加;
缺点:RED也无法对流量进行区分
(3)加权随机嫌弃检测(WRED,Weighted Random Early Detection)——通过对不同优先级数据包或队列设置相应的丢弃策略,以实现对不同流量进行区分丢弃。
流队列支持基于DSCP或IP优先级进行WRED丢弃。
优点:
打乱TCP滑动窗口的调整时间,避免TCP全局同步现象
基于权重,实现了不同流量的区分丢弃
WRED丢弃优先级:Color
丢弃概率曲线
实际应用:
1)WRED低门限百分比建议从50%开始取值,根据不同颜色的丢弃优先级逐级调整。
2)一般推荐绿色报文设置的丢弃概率比较小,高、低门限值比较大;
黄色报文次之;红色报文设置的丢弃概率最大,高、低门限值最小。
3)在网络趋近拥塞时,红色报文由于设置的低门限值比较小,丢弃概率比较大,
红色报文最先开始被丢弃;随着队列的长度逐渐增长,最后才开始丢弃绿色报文。
4)如果队列长度达到相应颜色的最大门限,这种颜色的报文开始实行尾丢弃。
3. 拥塞避免的应用:接口出方向
4. 配置命令(略)
拥塞管理技术
拥塞管理:是必须采取的解决资源竞争的措施,将报文放入队列中缓存,
并采取某种调度算法安排报文的转发次序,通常作用在接口出方向。
1. 概述
拥塞管理的中心内容是当拥塞发生时如何制定一个策略,用于决定报文转发的处理次序和丢弃原则,一般采用队列技术。
管理的内容包括:报文离开队列的时间、顺序,以及各个队列之间报文离开的相互关系则由队列调度算法决定。
队列技术:
将从一个接口发出的所有报文放入多个队列,按照各个队列的优先级进行处理。不同的队列调度算法用来解决不同的问题,并产生不同的效果。
2. 什么是队列
队列指在缓存中对报文进行排序的逻辑。当流量的速率超过接口带宽或超过为该流量设置的带宽时,报文就以队列的形式暂存在缓存中。
每个端口上都有8个下行队列,称为CQ(Class Queue)队列,也叫端口队列(Port-queue)
分别为BE、AF1、AF2、AF3、AF4、EF、CS6和CS7。
3. 队列调度算法
(1)先进先出FIFO(First In First Out)——不对报文进行分类、单个队列的报文采用FIFO原则入队和出队
特点:
优点:实现机制简单且处理速度快
缺点:不能有差别地对待优先级不同的报文
(2)严格优先级SP(Strict Priority)——严格按照队列优先级的高低顺序进行调度
特点:
优点:对高优先级的报文提供了优先转发。
缺点:低优先级队列可能出现“饿死”现象。
(3)加权公平队列WFQ(Weighted Fair Queuing)——按队列权重来分配每个流占有出口的带宽
WFQ以bit为单位进行调度,是bit-by-bit调度模型。
Bit-by-bit调度模型只是理想化的模型,实际上,NE40E实现的WFQ是按照一定的粒度,
例如256B、1KB,或其他粒度,具体按何种粒度,与单板类型相关。
在报文出队的时候:
首先让高优先队列中的报文出队并发送,直到高优先队列中的报文发送完,
然后发送中优先队列中的报文,直到发送完,接着是低优先队列。
在调度低优先级队列时,如果高优先级队列又有报文到来,则会优先调度高优先级队列。
这样,较高优先级队列的报文将会得到优先发送,而较低优先级的报文后发送。
特点:
优点:
不同的队列获得公平的调度机会,从总体上均衡各个流的延迟。
短报文和长报文获得公平的调度:如果不同队列间同时存在多个长报文和短报文等待发送,
让短报文优先获得调度,从而在总体上减少各个流的报文间的抖动。
从统计上看,权重越小,所分得的带宽越少。权重越大,所分得的带宽越多。
缺点:低时延业务仍得不到及时调度;无法实现用户自定义分类规则。
4. 端口队列调度方式
(1)每个接口有8个端口队列,用户可以为其都配置成SP调度,或者是基于权重的调度
(2)根据队列调度算法,8个端口队列可以分为三组:
1)PQ队列:采用SP调度算法
缺点:报文饿死现象,如果不对高优先级的报文带宽加限制,会造成低优先级报文得不到带宽,可能得不到调度机会。
通常情况下,只时延敏感的业务入PQ队列。
2)WFQ队列:
WFQ队列是按权重进行调度的,调度算法可以是WFQ调度算法,按权重进行剩余带宽的分配。
3)LPQ队列
LPQ队列是在高速链路(以太网)接口上实现的队列调度机制。低速链路(如Serial、MP-Group)上不支持LPQ队列。
LPQ队列之间的调度方式与PQ队列一样,也采用SP调度。
不同在于拥塞时PQ可以抢占WFQ的带宽,而LPQ不可以抢占WFQ的带宽。
在PQ和WFQ队列调度结束后,如果还有剩余带宽则分配给LPQ。
实际应用中,可以将BE流用LPQ进行调度。这样,在网络负载较重时,BE流可以完全被限制,优先满足其它业务。
(3)端口队列调度顺序:
PQ、WFQ、LPQ之间采用SP调度算法,优先调度PQ队列,再调度WFQ队列,最后调度LPQ队列。
(4)队列间的调度流程:
在调度出队的时候,若PQ队列中有报文,则总是优先发送PQ队列中的报文,
直到PQ队列中没有报文时才调度发送WFQ队列中的报文。
只要PQ队列中有报文,系统就会优先发送PQ队列中的报文。
若PQ队列中没有报文时,则调度WFQ队列。如果在调度WFQ队列过程中,
PQ队列又有报文到来,则会优先调度PQ队列。
直到WFQ中的报文被发送完毕,才调度LPQ队列中的报文。
(5)调度结果:
首先保证PQ队列的PIR带宽,剩余带宽在各WFQ队列间按权重分配。
当满足所有WFQ队列的PIR带宽后,如果此时还有剩余带宽,则分配给LPQ。
5. 拥塞管理的应用:接口出方向
6. 配置命令(略)
HQoS介绍
1. 概述
由于传统QoS只能将流分成8个队列进行调度控制,因此在多租户的场景下限制很大。
HQoS基于多级队列实现层次化调度,不仅区分了业务,也区分了用户,实现了精细化的QoS服务。
2. HQoS队列
(1)Level3流队列
每个用户的同类业务可以被认为是一个业务流,HQoS能够针对每个用户的不同业务流进行队列调度。流队列一般与业务类型相对应,包括EF、AF、BE等,用户可以配置流队列的调度方式。
(2)Level2用户队列
来自同一用户的所有业务可以被认为是一个用户队列,HQoS可以使该用户队列下的所有业务共享一个用户队列的带宽。
(3)Level1接口队列
每个接口(子接口,Tunnel口等)一个队列,接口队列之间进行轮询调度(RR),用户仅可以配置基于接口的流量整形,且其调度方式不可配置。
3. HQoS队列调度
流队列调度器和用户队列调度器都支持PQ、WFQ、PQ+WFQ调度。
接口队列调度器使用轮询调度RR(Round Robin)方式。
4. HQoS流量整形
整形器实现报文的缓存及限速功能。
设备支持三级整形器,即流队列整形器、用户队列整形器和接口队列整形器。
报文进入设备后先缓存到队列,再限速从队列发送报文,整形器配合限速算法可以保证承诺速率并限制最大速率。
5. HQoS丢弃器
丢弃器在报文入队列之前将根据丢弃策略丢弃报文。
HQoS支持的3种队列支持不同的丢弃方式:
接口队列:尾部丢弃
用户队列:尾部丢弃
流队列:尾部丢弃和WRED
6. HQoS应用
7. HQoS配置思路
HQoS配置较为复杂,在配置时一般使用MQC方式。
配置HQoS时会使用策略嵌套的配置方式:
父策略区分用户,子策略区分流量。
父策略下可以有多个子策略。
父策略应用于接口。