QoS概述
QOS:服务质量。针对各种应用的不同需求,提供不同的服务质量。
影响QoS的因素:带宽、延迟、时延抖动、丢包率、可用性。
QoS服务模型:
- Best-Effort service(尽力而为服务模型):应用程序可以在任何时候发出任何数量的报文。网络尽力发送报文。
- Integrated service(综合服务模型,简称IntServ):在发送报文前,会向网络申请特定的服务。
- Differentiated service(区分服务模型,简称DiffServ):把网络中的流量分成多个类,根据类定义处理行为,使其拥有不同的优先转发、丢包率等。 用的最多
区分服务模型分为:
流量限速(流量监管和流量整形):通过监督进入网络的流量速率,来限制流量和资源的使用。
拥塞避免:通过调整网络的流量来解除网络的过载。
拥塞管理:通过调整报文的调度次序来满足时延敏感业务高QoS服务。
令牌桶
使用令牌桶对流量进行评估,是否满足报文转发的条件。所有报文、流量都需要经过令牌桶,拿到令牌之后经过
单速单桶
C桶
CBS(承诺突发尺寸):该桶的总容量大小。单位为byte
CIR(承诺信息速率):表示向桶中注入令牌的速率。单位kbps
当一个报文转发过来后,拿到对应的令牌进行通过,拿不到就进行丢弃。
该报文称为B
令牌剩余数量称为TC
当B>TC时,为红色,默认丢弃
当B<=TC时,为绿色,默认放行
单速双桶(华为没有)
E桶
即使没有报文从C桶通过,令牌仍然会持续注入,当超过CBS的容量时,会溢出。溢出的令牌会被注入到E桶中
EBS(峰值突发尺寸):定义每次突发所允许的最大流量尺寸。 单位为byte
E桶令牌剩余数量称为TE
当B<=TC时,为绿色,被放行
当B>TC时,拿不到C桶的令牌,那么就去E桶去拿令牌,如果B<=TE,为绿色,默认放行,但是会被降低优先级。如果B>TE,为红色,默认丢弃。
双速双桶
P桶 C桶
PIR (峰值信息速率)注入速率 单位kpbs
PBS (峰值突发尺寸)桶的容量大小 单位byte
P桶必须大于等于C桶
当有报文通过时,先去P桶拿令牌,没有拿到令牌为红色,默认丢弃。拿到令牌后还要再去C桶再拿令牌,两个桶都拿到令牌后,为绿色,默认通过,如果在C桶没有拿到令牌,就是黄色的,黄色一般是降权转发。
流量限速技术
作用:
- 在网络边缘,监控网络流量
- 对于进出的不同流量规定带宽占用比例,让不同的业务有不同的流量边界
流量监管
流量监管采用CAR(承诺访问速率)来对流量进行控制。CAR利用令牌桶来衡量每个数据报文是超过还是遵守所规定的报文速率。
CAR主要有两个功能:
- 流量速率限制:通过使用令牌桶对流经端口的报文进行度量,使得在特定时间内只有得到令牌的流量通过,从而实现限速功能。
- 流分类:通过令牌桶算法对流量进行测量,根据测量结果给报文打上不同的流分类内部标记(包括服务等级与丢弃优先级)
CAR处理流程:
- 当报文到来时,首先检查端口的匹配规则,如果匹配上了,则进行速率控制,报文进入令牌桶中进行流量速率评估。
- 令牌桶评估后,报文被标记为红、黄、绿三种颜色。红色表示报文速率过大,不符合规定;黄色表示虽然不符合规定但允许临时的突发,绿色表示符合规定。
- 报文标为红色的直接丢弃,黄色则重新标记后转发,绿色则直接转发。
对进入设备的特定流量的规格进行监管。通常作用在入方向。当流量超出规格时,会采取限制或惩罚措施。
削锋不填谷
该模型丢包率相比增大了,但时延降低了。可以用在视频,语言等业务。
如图所示,该图为流量速率模型。当有一条带宽为100的链路,当有流量通过时,可能会超出100M,那么对于超出的那些流量应该为丢弃。对于怎么知道哪些是超出的流量,是取决于令牌。
流量整形
GTS(通用流量整形)
为了使报文速率与下游设备相匹配。当从高速链路向低速链路传输数据,或发生突发流量时,带宽会在低速链路出口处出现瓶颈,导致数据丢失严重。这时,需要在进入高速链路的设备出口处进行流量整形。
削锋填谷
用到了双速双桶
该模型对于丢包率下降了,但是时延高了,对于时延要求不高的,可以使用该模型。比如下载数据,传文件。
入方向不能配置流量整形,因为没有缓存。
相比于流量监管,流量整形把超出的部分流量放入缓存中,放入低谷中,这样就可以不用丢弃超出的流量了。
虽然即使超出带宽的部分流量也会进行转发,但不会超出多少都会转发,会有一个界限,比如120M,当流量在100M-120M之间,也就是黄色部分,会放入缓存进行转发,不过会降低优先级,类似于在P桶没拿到令牌,在C桶拿到了。
超出120M的就会被丢弃了
分类打标
依据一定的匹配规则识别出对象,是有区别的实施服务的前提,通常作用接口入方向。
流量分类和标记是QoS的基础,是有区别的实施服务的前提。
把数据包分为不同的类别,称为流分类;把数据包设置为不同的优先级称为标记。
简单流分类:
VLAN报文:802.1P
MPLS报文:MPLS Exp
IP报文:DSCP
复杂流分类:采用复杂的规则,如五元组对报文进行精细的分类(源目IP,源目端口号,协议号)
- 配置流分类:traffic classifler <name> if-match <value>
- 配置流行为:traffic behavior <name> remark <value>
- 配置流量策略:traffic policy <name> classifler <name> behavior
- 应用流量策略:int g0/0/0 traffic-policy <name> <>
拥塞管理
拥塞管理是网络在发生拥塞时,针对不同类型的业务流量,进行管理和控制。
处理方式是:使用队列技术。
队列:指在缓存中对报文进行排序的逻辑。
队列调度算法:
- 先进先出 FIFO:单个队列报文采用FIFO。先进的报文先出,后进的报文后出。优点:实现简单且处理快。缺点:不能有差别的对待优先级不同的报文。
- 严格优先级 SP:严格按照队列优先级的高地顺序进行调度。优点:对高优先级的报文提供了优先转发。缺点:低优先级队列可能出现“饿死”现象。即:拥塞发生时,如果较高优先级队列中长时间有报文存在,那么低优先级队列中的报文就会得不到调度机会。
- 加权公平队列 WFQ:按队列权重来分配每个流占有出口的带宽。优点:公平。缺点:无法实现用户自定义分类规则。
队列技术:将从一个接口发出的所有报文放入多个队列中,按照队列优先级进行处理。不同队列使用调度算法用来解决不同问题,并产生不同效果。
队列调度技术:
RR(轮循):优点:公平。缺点:由于公平造成的VIP级别客户和普通客户没有区别。
DRR:基于权重轮循算法。每调度一个报文就减1,权重级别大的报文转发的越多。
WRR:基于带宽权重算法。根据队列权重进行转发,带有带宽。当数据带宽大于队列带宽时,队列带宽变为负,不可转发数据。等带宽大于等于0时,才可以再次转发数据。
PQ:不看低优先级队列。如果高优先级被清空了发完了,才去看低优先级队列
WFQ:根据报文的五元组 以及大小选择是否进入到该队列。唯一一个基于流控制队列的
CBQ:用的最多的调度技术。需要人为引入到规定好的四个队列中 _LLQ EF AF BF
调度算法:
先进先出FIFO 没有什么队列算法,谁先进来的谁出去
严格优先级SP
加权公平队列
WRED:早期检测随机丢弃
拥塞避免
过度拥塞会对网络资源造成损害,拥塞避免监督网络资源的使用情况,当发现拥塞有加剧的趋势时,采取主动丢弃报文的策略,通过调整流量来解除网络的过载,通常用在出方向。
丢弃策略:
- 尾丢弃 - 传统处理方式:当队列长度达到最大值后,所有新入队列的报文(缓存在队列尾部)都会被丢弃。 缺点:TCP问题;无法对流量进行区分丢弃;
- RED(早期随机监测):随机丢弃数据报文。
- WRED(加权随机先期检测):通过对不同优先级数据包或队列设置相应的丢弃策略,以实现对不同流量进行区分丢弃。