目录
一、QoS大纲思维导图
二、Qos概述
Quality of Service,服务质量
影响网络质量的因素主要是:时延、抖动、带宽、丢包率
2.1、QOS三种服务模型:
- 尽力而为服务模型
- 综合服务模型
- 区分服务模型(差分服务模型)
优点 | 缺点 | |
尽力而为服务模型 | 实现机制简单 | 对不同业务流不能进行区分对待 |
综合服务模型 | 可提供端到端Qos服务,并保证带宽,延迟 | 需要跟踪和记录每个数据流的状态,实现较为复杂,且扩展性较差,带宽利用率较低 |
区分服务模型 | 不需跟踪每个数据流状态,资源占用少,扩展性较强,且能实现对不同业务流提供不同的服务质量 | 需要在端到端每个节点都进行手工部署,对人员能力要求较高 |
2.1.1、尽力而为服务模型
- 有多大带宽就用多大带宽
- 在尽力而为的服务模型的网络模型上可以通过增大网络带宽,升级网络设备等方式来提升网络通信质量。
2.1.2、综合服务模型(现实网络中并不多见)
- 相当于做带宽预留,但是资源利用率较低
- 实现复杂,要配置RSVP资源预留协议
2.1.3、区分服务模型(目前最常用)
- 为解决综合服务模型的协议实现复杂性及带宽利用率等问题,在网络中可部署DiffServ区分服务模型来保证关键业务的通信质量
LP :Local priority 本地优先级
三、分类和标记——分类(2种)
1、简单流分类:IP电话——(自带标记报文)——Router 在路由器上将流量定义为voice流量,只根据报文COS、IPP、EXP等进行分类。不参考IP地址mac地址 vlan端口等信息。
2、复杂流分类:可以基于IP、MAC、vlan、端口等信息对流量进行分类。
3.1、分类和标记——标记
标记的作用:标记是为了避免重复分类,上游设备标记,下游多个设备直接调用标记提供差分服务即可。
3.1.1、简单流分类:
①COS 服务类别(classify of service)——L2 层 : 802.1P(vlan封装的那个802.1q中的三个bit,优先等级可以为0-7,一共8个优先级) MPLS里也有个 EXP位
②TOS 服务类型(Type of service)——L3 层: IPP DSCP (IPv6: Flow label 流标签 16bit) 2‘16次方
PHB 与DSCP 优先级映射关系
3.2、分类和标记
两种配置分类和标记的工具:
1、MQC :remark
2、QOS-map
①MQC: 通过MQC的remark对流进行分类和标记
MQC: Modular Qos Command-line(模块化的QOS命令行)
MQC包含三个要素:
- 流分类(traffic classifier)
- 流行为(traffic behavior)
- 和流策略(traffic policy)
实验:
- 配置流分类:按照一定规则对报文进行分类,是提供差分服务的基础。
- 配置流行为:为符合流分类规则的报文指定流量控制或资源分配动作。
- 配置流策略:将指定的流分类和指定的流行为绑定,形成完整的策略。
- 应用流策略:将流策略应用到接口或子接口。
配置前:DSCP位默认为0
配置后:DSCP位变成了AF12
[R1]traffic classifier AA //traffic classifier流分类
[R1-classifier-aa]if-match acl 2000
[R1]acl 2000
[R1-acl-basic-2000]rule 5 permit //抓取所有流量
[R1]traffic behavior BB //traffic behavior 流行为
[R1-behavior-bb]remark dscp af12 //将流标记为af12
[R1]traffic policy CC //traffic policy流策略
[R1-trafficpolicy-cc]classifier AA behavior BB
[R1]int GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0]traffic-policy CC inbound //调用策略CC在0/0/0的入方向
②QOS-map: QOS映射(用的少)
如:QOS map-table dot1p-dscp input 3 output 18
DiffServ中的重要概念:
PHB(Per-Hop Behaviors)逐条行为,PHB是DS节点作用于数据流的行为,网络管理员可以配置DSCP到PHB的映射关系,如果DS节点收到一个报文,检查其DSCP,发现未定义到PHB的映射,则DS节点 将选择采用缺省PHB(即Best-Effort,DSCP=000000)进行转发处理,每个DS节点必须支持该缺省PHB。
PHB的分类,IETF DiffServ工作组目前定义了四种PHB:
- Default PHB
- Class-Selector PHB
- Expedited Forwarding PHB
- Assured Forwarding PHB
PHB 优先级映射关系
四、拥塞管理与拥塞避免
4.1、拥塞管理
拥塞现象的产生
- 当通信流量超出吞吐带宽是,会发送拥塞
拥塞管理通过队列机制来实现:
- 将准备从一个接口发出的所有报文放入不同的缓存队列中;
- 根据各队列间的调度机制实现不同报文的差分转发。
1、入队列:(拥塞管理实现的第一步)
LP(本地优先级,又称为内部优先级):优先级映射实现从数据原始携带的Qos优先级到内部优先级或从内部优先级到Qos优先级的映射。
- 对于进入设备的报文,设备将报文携带的优先级或端口优先级映射为内部优先级,然后根据内部优先级与队列之间的映射关系确定报文进入的队列。
优先级映射表
2、调度:(拥塞管理实现的第二步)
4.2、拥塞管理配置:
有两种配置拥塞管理的方法,实现各种队列调度机制:
1、queue-profile: (queue:队列)
可以支持PQ、WRR、WFQ等。华为PQ只能和(wfq或WRR或DRR)组合,每个接口固定8个队列。
[R2]qos queue-profile aa //固定8个队列 0-7
[R2-qos-queue-profile-aa]schedule wfq 0 to 4 pq 5 to 7 //队列5-7为 PQ算法,0-4为WFQ算法 [R2]int GigabitEthernet 0/0/1
[R2-GigabitEthernet0/0/1]qos queue-profile aa //出方向调用
[R2]dis qos queue-profile aa
Queue-profile: aa Queue Schedule Weight Length(Bytes/Packets) GTS(CIR/CBS)
-----------------------------------------------------------------
0 WFQ 10 -/- -/-
1 WFQ 10 -/- -/-
2 WFQ 10 -/- -/-
3 WFQ 10 -/- -/-
4 WFQ 10 -/- -/-
5 PQ - -/- -/-
6 PQ - -/- -/-
7 PQ - -/- -/-
[R2]qos queue-profile aaa
[R2-qos-queue-profile-aaa]queue 4 weight 25 //修改队列4权重为25
[R2]dis qos queue-profile aa
Queue-profile: aa Queue Schedule Weight Length(Bytes/Packets) GTS(CIR/CBS)
-----------------------------------------------------------------
0 WFQ 10 -/- -/-
1 WFQ 10 -/- -/-
2 WFQ 10 -/- -/-
3 WFQ 10 -/- -/-
4 WFQ 25 -/- -/-
5 PQ - -/- -/-
6 PQ - -/- -/-
7 PQ - -/- -/-
2、CBQ(class-base-queue)使用MQC工具模型来配置queue就是CBQ
CBQ基于类的加权公平队列是对WFQ功能的拓展,为用户提供了自定义类的支持,CBQ首先根据traffic classifier来对报文进行分类,然后让不同类别的报文进入不同的队列,对于不匹配任何类别的报文,会送入系统定义的缺省类。
四类队列:
- LLQ队列(使用PQ调度) 是一种特殊的EF队列,比EF队列时延更低,适用于Voip业务
- EF队列(使用PQ调度)满足低时延的业务,先发送
- AF队列(使用RR调度)满足需要低时延保证的关键数据业务
- BE队列(使用WFQ调度)满足不需要严格QOS保证的尽力发送的业务
4.2、队列调度算法:
- FIFO
- PQ
- WRR
- WFQ
- CBQ
4.2.1、FIFO(first in first out)先进先出
- 优点:实现机制简单且处理速度快
- 缺点:不能有差别地对待优先级不同的报文
4.2.2、PQ(Prioroty Queuing) 优先队列
- 优点:对高优先级的报文提供优先转发,按照优先级,先调取7号队列在调取其他优先级
- 缺点:低优先级队列可能出现“饿死现象”(如果七号高优先级数据持续进入,会持续调取高优先级的,低优先级的永远得不到转发)
4.2.3、WRR(Weighted Round Robin) 加权轮询调度(权重大的多调取一点,权重小的少调取)
- 优点:避免了PQ调度的饿死现象
- 缺点:基于报文个数来调度,容易出现包长尺寸不同的报文出现不平等调度(大报文划算),低时延业务得不到及时调度。
4.2.4、WFQ(Weighted Fair Queuing) 加权公平队列
- 优点:根据权重分配带宽(而不是想WRR根据包数量分配),自动分类,配置简单。
- 缺点:低时延业务仍得不到及时调度,无法实现用户自定义规则。
4.2.5、PQ+WFQ 最常用方案
- 优点:可保证低时延业务得到及时调度,实现按权重分配带宽等(优先级最高的使用PQ,其余使用WFQ根据带宽分配)
- 缺点:无法实现根据用户自定义灵活分类报文的需求
4.2.6、CBQ (class-based Quenueing) CBQ要结合MQC来做
- 优点:支持自定义分类,可为不同的业务定义不同的调度策略
- 缺点:由于涉及到复杂的流分类,故启用CBQ会耗费一定的系统资源
CBQ提供三类队列:
- LLQ队列(使用PQ调度) 是一种特殊的EF队列,比EF队列时延更低,适用于Voip业务
- EF队列(使用PQ调度)满足低时延的业务,先发送
- AF队列(使用RR调度)满足需要低时延保证的关键数据业务
- BE队列(使用WFQ调度)满足不需要严格QOS保证的尽力发送的业务
4.3、拥塞避免
当软件队列满了之后,再来报文就要丢弃了,此时就要使用拥塞避免技术。
- 尾丢弃(Tail-Drop)
- WRED丢弃算法(Weighted Random Early Detection)
4.3.1、尾丢弃:
当队列的长度达到最大值后,所有新入队列的报文(缓存在队列尾部)都将被丢弃。
缺点:
- 无差别丢弃
- TCP全局同步
- TCP流量饿死(竞争不过UDP)
这种丢弃策略会引发TCP全局同步现象,导致TCP连接始终无法建立。所谓TCP全局同步现象如图,三种颜色表示三条TCP连接,当同时丢弃多个TCP连接的报文时,将造成多个TCP连接同时进入拥塞避免和慢启动状态而导致流量降低,之后又会在某个时间同时出现流量高峰,如此反复,使网络流量忽大忽小。
4.3.2、WRED丢弃算法 (Weighted Random Early Detection)
为避免TCP全局同步现象,出现了RED(Random Early Detection)技术。RED通过随机地丢弃数据报文,让多个TCP连接不同时降低发送速度,从而避免了TCP的全局同步现象。使TCP速率及网络流量都趋于稳定。
基于RED技术,设备实现了WRED(Weighted Random Early Detection)。流队列支持基于DSCP或IP优先级进行WRED丢弃。每一种优先级都可以独立设置报文丢包的上下门限及丢包率,报文到达下限时,开始丢包,随着门限的增高,丢包率不断增加,最高丢包率不超过设置的丢包率,直至到达高门限,报文全部丢弃,这样按照一定的丢弃概率主动丢弃队列中的报文,从而一定的程度上避免拥塞问题。
- RED:解决TCP全局同步和TCP流量饿死,但不能解决无差别丢弃
- WRED:解决TCP全局同步和TCP流量饿死,同时解决无差别丢弃
WRED技术可以通过对不同优先级数据包或队列设置相应的丢弃策略,以实现对不同流量进行区分丢弃。
弥补了尾丢弃的三个缺点,且大大提高了链路带宽利用率。
4.4、拥塞避免配置:
配置:drop-profile里面定义不同流量的丢弃比例,最小门限,最高门限,然后将drop-profile可以调用在CBQ(即MQC工具)里面,也可以被调用在queus-profile里面
[R2]drop-profile D
[R2-drop-profile-D]wred dscp //wred配置
[R2-drop-profile-D]dscp af11 low-limit 30 high-limit 90 discard-percentage 40//针对于AF11流量 低门限30% 高门限90% 尾丢弃比例40%
[R2-drop-profile-D]dscp af12 low-limit 40 high-limit 95 discard-percentage 20 在queue-profile里面调用: 基于队列模板
[R2]qos queue-profile AA
[R2-qos-queue-profile-AA]schedule wfq 0 to 4
[R2-qos-queue-profile-AA]queue 0 to 4 drop-profile D //注意PQ不能调用drop-profile 在CBQ里面调用: 基于流策略
[R2]traffic behavior XX
[R2-behavior-XX]queue wfq
[R2-behavior-XX]drop-profile D //注意EF和LLQ队列不能调用drop-profile
五、流量整形与流量监管
5.1、流量监管 TP(Traffic Policing)
流量监管就是对流量进行控制,通过监督进入网络的流量速率,对超出部分的流量进行惩罚,使进入的流量被限制在一个合理的范围之内,从而保护网络资源和用户的利益
特点:入方向 出方向都可以
惩罚机制(对超出的流量直接丢弃) 造成较高丢包率 链路空闲时带宽得不到充分利用
配置方式有两种:
- 基于接口CAR
- 在MQC模型里面配置(traffic-behavior里面)
A配置方式:基于接口 int g0/0/1 qos car inbound cir 8 //car(Committed information rate承诺速率)8(Unit: Kbps) B配置方式:基于MQC traffic behavior AA car cir 8
5.2、流量整形 TS(Traffic shaping)
流量整形是一种应用于接口、子接口或队列的流量控制技术,可以对从接口上经过的所有报文或某类报文进行速率限制。当下游设备的入接口速率小于上游设备的出接口速率或发生突发流量时,下游设备入接口处可能出现流量拥塞的情况,此时用书可以通过在上游设备的接口出方向配置流量整形,将下游不规整的流量进行消峰填谷,输出一条比较平整的流量,从而解决下游设备的拥塞问题。
特点:只能用于出方向 缓存机制(对超出流量缓存) 较少丢弃报文,充分利用带宽,引入额外时延和抖动需要高缓存。
流量整形处理流程:
- 当报文到来的时候,首先对报文进行分类,使报文进入不同的队列。
- 若报文进入的队列没有配置队列整形功能,则直接发送该队列的报文;否则,进入下一步处理。
- 按用户设定的队列整形速率向令牌桶中放置令牌:
- 如果令牌桶中有足够的令牌可以用来发送报文,则报文直接被发送,在报文被发送的同时,令牌做相应的减少。
- 如果令牌桶中没有足够的令牌,则将报文放入缓存队列,如果报文放入缓存队列时,缓存队列已满,则丢弃报文。
- 缓存队列中有报文的时候,系统按一定的周期从缓存队列中取出报文进行发送,每次发送都会与令牌桶中的令牌数作比较,直到令牌桶中的令牌数减少到缓存队列中的报文不能再发送或缓存队列中的报文全部发送完毕为止。
根据配置方式不同可以分为如下:
1、GTS(Generic Traffic Shaping)通用流量整形
- 基于接口GTS(针对接口下所有流量)
- 基于队列GTS(queue-Profile里面 针对某个队列流量)
- 基于MQC GTS,用MQC模型配置TS traffic-behavir里面 针对关联的traffice-classifier的流量)
方法1 基于接口 [R2]int GigabitEthernet 0/0/1 [R2-GigabitEthernet0/0/1]qos gts cir 8 (8kbps) 方法2 基于queue-profile(基于队列) [R2]qos queue-profile BB [R2-qos-queue-profile-BB]queue 3 gts cir 8 方法3 基于MQC [R2]traffic behavior FF [R2-behavior-FF]gts cir 8
2、FRTS:仅基于接口(帧中继TS,不大用了不做具体描述)
流量整形与流量监管的主要区别在于
在进行报文流量控制时,流量监管是对超过流量限制的报文进行丢弃,而流量整形则将超过流量限制的报文缓存在队列中,等待链路空闲时候在发送。流量整形对原本要丢弃的报文进行缓存,当令牌桶有足够的令牌时,在均匀的向外发送这些被缓存的报文。流量整形与流量监管的另一区别是,整形可能会增加延迟,而监管几乎不引入额外的延迟。
5.3、LR:Line Rate 限速(只能基于接口,配置简单,思科没有LR只有TS与TP)
LR在交换机与路由器功能不一样:
在交换机上:
- 出方向:整形
- 入方向:限速(TP)
在路由器上:
- 出方向:限速
LR:只能基于接口,配置简单 inte g0/0/1 qos lr pct 33 //百分比
六、令牌筒技术(测速算法)
6.1、令牌筒定义
令牌桶可以看作是一个存放一定数量令牌的容器。系统按设定的速度向桶中放置令牌,当桶中令牌满时,多出的令牌溢出,桶中令牌不再增加。
在使用令牌桶对流量进行评估时,是以令牌桶中的令牌数量是否足够满足报文的转发为依据的。如果桶中存在足够的令牌可以用来转发报文,称流量遵守或符合约定值,否则称为流量超标或不符合约定值。
关于令牌桶处理报文的方式,RFC中定义了两种标记算法:
- 单速率三色标记(single rate three color marker,srTCM,或称为单速双桶算法)算法,主要关注报文尺寸的突发。
- 双速率三色标记(two rate three color marker,trTCM,或称为双速双桶算法)算法,主要关注报文速率的突发。
两种算法的评估结果都是为报文打上红、黄、绿三种颜色的标记,所以称为“三色标记”。QoS会根据报文的颜色做相应的处理,两种算法都可以工作于色盲模式(默认是色盲模式)和色敏模式下。以下以色盲模式为例对标记算法进行详细介绍。
流量整形: 平滑 缓存下来 消峰填谷 仅单速单筒
令牌筒(测速算法)
CIR(Committed Information Rate)承诺信息速率
CBS(Committed Burst Size) 承诺突发尺寸
EBS (Extended Burst Size) 超额突发尺寸
PIR(Peak Information Rate) 表示峰值信息速率
PBS(Peak Burst Size)表示峰值突发尺寸、
CIR=CBS /△T
CBS:令牌桶的大小(该桶最多可以放多少令牌)
△T:时间周期 一个△T周期内将令牌桶填满
TC:Time CBS 当前时间内令牌桶(C桶)中令牌的数量
TE:当前时刻
6.1.1单速单桶:
- 不允许突发
- 只有两种颜色绿色和红色,标记不精确
- 用于TS(流量整形)红色流量缓存起来
流量<TC
流量>TC
6.1.2、单速双桶:令牌以CIR速度放入第一个令牌桶,满了后像第二个桶放
- 突发不可控(有时突发100有时突发80,E桶大小不可控),流量不稳定
- 染色不精确,如果TE(E桶当前令牌)始终是0,那么大于TC得流量将一直是红色,即(黄色流量不稳定)
6.1.3、双速双桶:
两个桶相互独立,突发相对可控 流量监管(TP)用该机制比较多
双速双桶的配置要配置两个数据:PIR峰值信息速率、CIR 承诺信息速率
6.2、色敏模式
色敏模式下,如果到达的报文本身已经被标记为红、黄、或者绿等颜色,令牌桶对流量的评估会参考报文已标记颜色,即报文本身已携带颜色会影响令牌桶的评估结果,评估机制简单的来说遵循以下原则:
- 如果报文已被标记为绿色,则令牌桶的评估机制与色盲模式保持一致。
- 如果报文已被标记为黄色,则令牌桶根据报文长度和令牌数的大小,为符合流量规定的报文标记为黄色,为不符合的报文标记为红色。
- 如果报文已被标记为红色,则令牌桶直接将到达报文标记为红色。
文章出处登录后可见!