QOS
影响/衡量网络质量的几个因素?
最大带宽:端到端的通信中,报文所经过链路的最小带宽为端到端的最大带宽
时延:传输时延、串行化时延,处理时延,队列时延
传输时延:取决于传输介质,介质有双绞线,铜缆,光纤,无线电。更换成本高
串行化时延:取决于接口类型,更换高带宽的接口或接口类型
处理时延:取决于设备性能和对报文所做的处理行为 加解密/压缩/解压/NAT
以上3个时延,一般需要使用财力来解决。
队列时延:队列的繁忙程度/以及队列的调度机制。
- 1 -
抖动:端到端通信,报文出发到达目的地所需要的时间不一致。带宽/时延问题,抖动就能改善。
丢包率:线路质量问题/电磁干扰/电信号冲突/队列缓存不足/CPU过载/设备质量问题/QOS丢包机制(red,wred,shaping整形,police监管)
一般拥塞是丢包的主要原因,一般拥塞就意味着带宽不足导致。解决带宽/时延,丢包率能改善。
QOS服务模型
1、尽力而为 设备默认的服务类型
2、综合服务(集成服务):通过RSVP(资源预留协议)协议 基于流做QOS服务保证。
①提供端到端的服务保证,沿途路由器会为定义好的流预留网络资源
②设备需要维护RSVP协议,维护流信息,设备资源开销大
③基于流的QOS保证,颗粒度太细,很难大面积部署
④业务类型能力差
流的定义:SIP+DIP+TCP/UDP+SPORT+DPORT
- 2 -
3、差分服务模式:无信令开销
① 可以根据管理员进行业务分类,基于类做区分服务。
② 设备无需运行信令协议,设备开销小
③ 本质是静态方式,需要端到端路径上所有设备都要进行相关配置。
对网络管理人员要求高
- 3 -
GTS的类型(需要去看)
4、 差分服务的技术
① 分类:差分服务就是提供有区别的服务,所以分类是实现差分服务的前提。
- 4 -
@简单流分类:根据报文的标记来分类,缺点:报文分类依据比较单一,无法精确区分业务流量。因为不同业务可能拥有相同的标记,而我们希望给这些相同标记的不同业务要提供区分服务时,就无法很好的支持。
简单流分类适合在DS域内部实施,方便QOS策略的部署,在DS域内提供统一的
- 5 -
QOS策略。
3层标记:IPP,DSCP, 由于是在IP协议的报文字段,报文转发时可以端到端携带,不容易丢失
2层标记:802.1P,EXP 由于802.1p在以太网由802.1Q中携带,容易丢失,EXP在Lable中携带,容易丢失。
@复杂流分类:
根据报文的2层字段或者3层字段或者传输层字段的灵活组合进行分类,精细度更高。
提供区分服务能力更强,缺点:配置比较繁琐。
复杂流分类适合在DS域的边缘实施,并结合标记技术,对业务进行统筹管理。
- 6 -
- 7 -
DSCP关键字表达式(总共21个关键字BE(CS0)+7个CS+12个AF+1个EF)
CS 类别服务,用于实现和IPP(IP 优先级)做兼容 CS0-CS7---IPP 0 – 7
000 XXX --IPP 0
- 8 -
001 XXX --IP 1
EF 快速转发,一般用于提供低延时,低抖动的业务。同时带宽需要被监管,常用于标识语音流量。
AF 确保转发,一般用于提供带宽保证服务的业务。
AF1 AF11 AF12 AF13
AF2 AF21 AF22 AF23
AF3 AF31 AF32 AF33
AF4 AF41 AF42 AF43
- 9 -
AF转十进制方式:
AFxy=8x+2y
比如AF22=8*2+2*2=20
- 10 -
CS6和CS7及对应的6和7一般是协议使用,比如telnet,ospf,rip,
BE 尽力而为,不做任何服务保证 CS0
- 11 -
②标记
@DS边界(信任边界)执行复杂流分类,实现业务区分,如果DS域内的设备都要实施复杂流分类,DS模型部署会比较繁琐复杂。那么在边界对业务分类后,给每类业务流量打上标记信息,那么DS域内的设备就只需要根据标记实施简单分类,方便DS内统一的QOS策略的实施。
信任边界:DS域边缘设备构成,就是将进入DS域的流量进行业务分类和根据业务规划进行标记,DS域内的设备根据标记
DS域内的标记方式要统一,比如都使用DSCP方式。
- 12 -
使用traffic classifier、traffic behavior、traffic policy方式配置的QOS,称为基于MQC(模块化的QOS)的命令行模式。
优势:可读性强,可移植性强,可编辑能力强。
④ 拥塞管理:队列技术,每个出接口都拥有4或8个队列(根据设备型号决定),以队列索引号进行标识,队列索引号分别为0-7。设备根据本地优先级和队列之间的映射关系,自动将分类后的报文流送入各队列,然后按照各种队列调度机制进行调度。
- 13 -
什么是队列呢?
分为软件队列和硬件队列,通常只有硬件队列满了即发生拥塞,这时软件队列就开始工作了。
硬件队列系统总是使用FIFO队列,软件队列系统能够选择和配置,依赖于设备的型号和版本。
软件队列的3个组成要素:
1、 分类机制 决定报文进入哪个队列
2、 插入机制 尾丢弃/WRED
3、 调度机制
- 14 -
设备如何识别发生了拥塞?
当出口报文缓存队列满了,即认为产生拥塞了。
CBQ目前使用最多的。
- 15 -
为何要使用优先级映射呢?比如上图,如果不做优先级转化,那么进来的是exp标记的,出去的是dscp,那么怎么来保证进来的exp是5出去的也是五呢?
- 16 -
如上图所示:交换机SW1使用单臂路由连接AR2和AR1,在AR2使用ping或者telnetAR3的loop0地址时,在AR1上的G0/0/1口上默认收到的外层标记为帧头中的802.1p并且默认值都是0(虽然数据帧中还有报头中的ip优先级标记,但是默认首先查看的是帧头中的802.1p)。
当ping或者telnet从AR1出去时,帧头中将不携带802.1p字段(因为802.1p携带在vlan或trunk的tag中),而是使用的是ip优先级/dscp,因此需要将802.1p转换为dscp或ip优先级。
可以使用两种方式进行转换:
1、使用trust命令,在AR1的G0/0/1接口上使用trust dscp ovrewide,然后再使用qos map 802.1p-dscp命令,将进来的802.1p优先级修改为dscp优先级。
2、使用MQC的方式,先定义好流分类、流行为、流策略,然后在接口上引用,可以做到更精细的修改,(trust方式只能将802.1p中的0全部修改为dscp中的一个值,无法做到ping和telnet的区分)
- 17 -
注意:接口上只能使用以上两种方式中的一种,不能同时使用,有冲突。
注意trust后面的三种信任模式的意思是,在此接口上必须受到的包中携带这种模式,比如上图中我们想将802.1p修改为dscp,那么就需要使用trust 802.1p overwide。
Display qos que interface XX查看队列。
- 18 -
如果不配置dscp-lp映射,那么报文将进入到默认映射队列6中,不会修改为22对应的队列2中。
队列调度方式:
1、FIFO(first in first out)默认队列调度方式,硬件队列和软件队列默认都是FIFO
优点:实现机制简单且处理速度快。
缺点:不能有差别地对待优先级不同的报文。
2、PQ调度
- 19 -
PQ提供快速转发服务,适合实时型的业务,比如语音,视频,直播等。
缺点:如果高优先级队列业务把带宽用完,那么低优先级队列可能没有带宽可以使用。
PQ做不到带宽保证服务。什么是带宽保证?就是量化
3、WRR,加权轮询队列
循环调度RR(round robin)每个队列都能得到带宽,不会“饿死”带来延时和抖动。在带宽分配上没有体现出区分服务的特点。也做不到带宽保证服务。
- 20 -
WRR是基于报的调度方式,无法做到精细化调度。如上图所示,有1-4共4个队列,比如队列1要调度5000byte的包,而前3个包加起来是4499byte,那么他会把第4个包也会调度。这样带宽就超的多了。
4、DRR(deficit round robin)赤字轮询队列。
- 21 -
PQ,WRR,DRR 根据报文的优先级分类,进入相应的队列。
5、WFQ加权的公平队列
WFQ分类机制:一是基于流的分类(SIP+DIP+SPORT+DPORT+TCP/UDP+TOS)进行哈希计算,hash值就是队列号,并将报文放入到该队列。
WFQ的调度方式如上图所示:首先
队列 优先级 分子计算方式 带宽计算方式(分母=分子之和)
- 22 -
1 3 3+1=4 4/23
2 4 4+1=5 5/23
3 3 3+1=4 4/23
4 5 5+1=6 6/23
5 0 0+1=1 1/23
6 2 2+1=3 3/23
那么为何分子要加1呢?这是因为避免分子=0时分不到带宽(0/23=0)
那么什么样的报文进什么队列呢?其实队列号是和本地优先级相对应的,所以,我们需要在设备上查看qos map的映射关系,比如进来的是dscp的那么就查看dscp-ip的映射关系。
注意这些是PQ,WRR,DRR,WFQ基于优先级方式的进入队列的方式。
- 23 -
- 24 -
以下拓扑实验为基于优先级的队列调度方式,具体配置分析如下:
意思就是比如PC1去往AR2的ping包,首先ping包的802.1p值是0,802.1p值为0时对应的LP优先级手工改成了7,所以ping包会进入7号队列,(而不是根据dscp值46对应的LP优先级5而进入5号队列)。然后AR1在将报文发出时,会把报文的dscp值(默认0)修改为46发送出去。
可以使用 reset qos queue statistics interface g0/0/1清空接口上的统计。
前面一种是简单流分类,将ping包统一改为了DSCP 46。
- 25 -
第二种方法是使用复杂流分类,将1.1.1.1访问3.3.3.3的ping包改为dscp 10,将2.2.2.2访问3.3.3.3的ping包改为dscp 40
那么现在有个疑问,那就是使用方式一已经将ping包改为了dscp 46,那么继续又使用了复杂流分类,将ping包分别改为了af11和cs5,那么哪种方式优先呢?答:第二种方式直接配置到接口的MQC优先。
我们在AR1上完成标记后,可以在AR2上进行队列设置、队列调度方式以及WRED。
- 26 -
⑤ 拥塞避免:red,wred
拥塞避免是一种拥塞预防的方式,就是尽量避免拥塞。
拥塞管理是已经发生拥塞了,然后怎么去调度。
- 27 -
- 28 -
- 29 -
- 30 -
- 31 -
5、监管/整形
流量监管和整形主要用来进行限速的。
SLA 客户希望有10M广域网带宽,但是线路带宽达到了1000M。
- 32 -
- 33 -
- 34 -
Bc的计算公式(思科):
注意这里的000为K。
监管配置的两种方式:
- 35 -
华为路由器上流量整形的配置方法:
- 36 -
- 37 -