QoS基本原理
传统IP网络:尽力而为的交付,只管发不管收,没有服务质量的保证。
存在的问题:
- 没有服务质量的保证,只能保证业务发出,无法保证业务流量能不能到、什么时候到、到了多少;
- 随着网络用户的激增,过多的流量会产生拥塞,导致转发延时增加,用户体验差,设备压力大;
- IP扩展业务如IP电话电子商务、视频电话、远程电话等对网络的质量要求高,拥塞的解决最直接的方法是增加带宽,但运营、维护的成本高。
一、QoS技术概述
(一)影响服务质量的要素:
1、带宽/吞吐量(bandwidth)
固定时间内(1s)端到端最小带宽,单位bit/s
上行速率:文件上传的速率
下行速率:文件下载的速率
2、延时(Latency)
一个报文端到端传输所需要的时间,延时越短,网络质量越优,体验感也最佳
固定延时:报文经过设备处理与链路上传输的时间,无法避免,一般时间短
3、延时抖动(Jitter)
不固定延时:业务流中分组排队等待设备处理的等候时间不同导致,当带宽远大于业务流时候,可以避免
如遭遇侵略流量,带宽就会被完全占用,其他业务无法转发导致高延时甚至丢包
4、丢包率(Loss)
不重要流量的丢包对业务影响不大,丢包率是指在网络传输过程中丢失报文占传输报文的百分比。
(二)QOS服务模型
1、尽力而为模型(best effort)
没有区分、没有保障、默认行为
2、集成服务模型(RSVP)
优点:有区分、有保障
缺点:点到点之间的设备需要QOS参数的一致性,不适合互联网;并且实现复杂、浪费资源
3、差分服务模型(differ service)
1、定义
差分服务:将进入的流量分为不同的类型,并将各种类型的流量进行统一管理,对每一种类型分别进行处理
- DS节点:能够实现差分服务功能的网络节点
- DS边界节点:负责连接另一个DS域或者连接一个没有DS功能的域的节点。DS边界节点负责将进入此DS域的业务流进行分类和可能的流量调整。
- DS内部节点:用于在同一个DS域中连接DS边界节点和其他内部节点。DS内部节点仅需基于DSCP值进行简单的流分类以及对相应的流实施流量控制。
- DS域(DS Domain):一组采用相同的服务提供策略和实现了相同PHB(Per Hop Behaviors)的相连DS节点组成。一个DS域由相同管理部门的一个或多个网络组成,如一个DS域可以是一个ISP,也可以是一个企业的内部网。
2、DSCP与PHB
DSCP:ipv4报文中DS字节的低6位(0-5)用于区分服务,DSCP中的低3位(0-2)是类选择代码点,用于标示同一类DSCP,差分服务模型中的各个设备依据DSCP值选择相应的转发行为。
PHB:逐跳行为,描述了DS节点对具有相同DSCP的分组采用的外部可见的转发行为
四种标准的PHB:
类选择码CS(Class Selector)
加速转发EF(Expedited Forwarding)
确保转发AF(Assured Forwarding)
尽力而为BE(Best-Effort)默认
(三)QOS工具
1、lagcy CLI 传统命令行
优点:简单
缺点:不适合大型网络
2、MQC:模块化的QOS命令行
华为 | 思科 | |
---|---|---|
流分类 | traffic-classifier A if-match acl 2000 |
class-map A match assess-group 10 |
流行为 | traffic-behavior A gts cir 1000 |
|
流策略 | traffic-policy A class fitter A behavior A |
policy-map A class A shape cir 1000 |
流调用 | interface g0/0/0 traffic policy outbound/inbound A |
interface g0/0/0 service-policy output A |
3、auto QOS
厂商预设QOS模板,自动下发
(四)QoS数据处理流程
二、QoS流分类和流标记
问题:为什么需要流分类和流标记?
流分类是对进入查分服务模型的业务进行分类,识别出不同优先级特征的流量,或根据源地址、目的地址、MAC地址、IP协议或应用程序的端口号等信息对流进行分类。
流分类
简单流分类
采用简单的规则,如只根据IP报文的IP优先级或DSCP值、IPv6报文的TC值、MPLS报文的EXP域值、VLAN报文的802.1p值,对报文进行粗略的分类,以识别出具有不同优先级或服务等级特征的流量,实现外部优先级和内部优先级之间的映射。
1、外部优先级,报文头优先级:不同报文使用不同的QOS优先级。
2、内部优先级,service class报文在设备内部的服务等级。在报文进入设备时,需要将报文携带的QOS优先级统一映射到设备内部的服务等级和丢弃优先级。在设备内部,根据报文的服务等级进行拥塞管理,根据报文的颜色进行拥塞避免。
在VLAN头部使用Pri位(802.1P)标记QoS优先级。 |
---|
在MPLS头部使用EXP位标记QoS优先级。 |
在IP头部使用ToS位(DSCP,IP-Precedence)标记QoS优先级。 |
3、丢弃优先级,color,报文在设备内部的丢弃优先级。在报文出设备时,需要将内部的服务等级和color映射为QOS优先级,以便于后续网络设备能够根据QOS优先级镜像响应的服务质量
外部优先级对之间的对应关系:
服务等级 service class————队列
报文在设备内部的服务等级:支持8种取值,优先级从高到低依次为CS7、CS6、EF、AF4、AF3、AF2、AF1、BE
颜色color ---------丢弃优先级
color支持三种取值:绿黄红(优先级从低到高)
复杂流分类
采用复杂的规则对报文进行精细化的分类,如五元组(原地址、源端口、协议号、目的地址、目的端口)
三、 流量限速技术
流量限速====>测速===>令牌桶:token bucket
CAR:承诺访问速率
功能:流量速率限制、流分类
(一)桶的种类
1、单桶单速双色——不允许突发流量
术语:
1、CIR:承诺信息速率,单位:kbps,表示向令牌桶中投放令牌的速率
2、CBS:承诺突发尺寸,单位byte,表示令牌桶的容量、
3、Tc:信息时间,表示将令牌桶投放满需要的时间,单位s
以上任意两种可算出第三者:公式Tc=CBS*8/CIR
颜色标记:
if 到达的数据B大小大于令牌桶的容量,数据包标为红色,直接丢弃,令牌桶容量不变
if 到达的数据B大小小于令牌桶的容量,书记包标为绿色,默认转发,令牌桶容量=CBS-B
2、双桶单速三色——允许短暂的突发流量
新增术语:
EBS:峰值突发尺寸,用来定义每次突发所允许的最大流量尺寸,单位:byte
颜色标记:
if 到达的数据B小于C桶的容量,数据包标为绿色,默认转发,令牌桶容量=CBS-B
if 到达的数据B大于C桶的容量,且小于E桶的容量,数据包标为黄色,默认转发,令牌桶容量=EBS-B
if 到达的数据B大于C桶的容量,且大于E桶的容量,数据包标为红色,默认丢弃,令牌容量不变
3、双桶双速三色标记法——允许长期的突发流量
新增术语:
1、PIR:峰值信息速率,单位:bkps,表示端口允许的突发流量的最大速率,向P桶投放令牌的速率,大于CIR
2、PBS:峰值突发尺寸,单位:byte,表示突发允许的最大的流量尺寸,P桶的令牌容量,大于CBS
颜色标记:
if 到达的数据B大于P桶的容量,数据包标为红色,默认丢弃,令牌桶容量不变
if 到达的数据B小于P桶的容量,且大于C桶的容量,数据包标为黄色,默认转发,令牌桶容量=PBS-B
if 到达的数据B小于P桶的容量,且小于C桶的容量,数据包标为绿色,默认转发,令牌桶容量=CBS-B
(二)流量监管TP(traffic policing)
定义:监控进入网络的流量规格,限制他在某一个允许的范围;如果流量过大,就丢弃报文,或者重新设置报文的优先级,可以用在设备的进出接口
动作:丢弃/重标记
实现:采用CAR(承诺访问速率)来对流量进行控制,超过限速的报文可能被丢弃或者降低优先级
特点:
丢弃超额流量或将超额流量重标记为低优先级量
不需要额外的内存资源,不会带来延迟和抖动
丢包可能引发重传
可以重标记流
(三)流量整形TS(Traffic Shaping)
定义:是一种主动调整流量输出速率的措施,通过在上游设备的接口出方向配置流量整形,将上游不规整的流量进行削峰填谷,输出一条比较平整的流量,从而解决下游设备的瞬时拥塞问题。
实现:使用缓冲区和令牌桶来完成
特点:
缓存超出策略/协定SLA规定的超额流量
需要内存去缓存超额流量,可能会带来延迟和抖动
较少的丢包,因而较少导致重传
不能重标记
GTS:Generic Traffic Shaping 通用流量整形
当从高速链路向低速链路传输数据,或发生突发流量时,带宽会在低速链路出口处出现瓶颈,导致数据丢失严重。这种情况下,需要在进入高速链路的设备出口处进行流量整形。
当报文的发送速度过快时,首先在缓冲区进行缓存,在令牌桶的控制下再均匀地发送这些被缓冲的报文。
四、拥塞避免技术
拥塞的产生:
1、带宽不匹配,分组从高速链路进入设备,再由低速链路转发出去
2、汇聚问题,分组从多个接口同时进入设备,由一个没有足够带宽的接口转发出去
拥塞的影响:
1、增加了报文传输的延迟和延迟抖动
2、过高的延迟会引起报文重传
3、拥塞使网络的有效吞吐率降低,造成网络资源的损害
定义:拥塞避免是指通过监视网络资源(如队列或内存缓冲区)的使用情况,在拥塞有加剧的趋势时,主动丢弃报文,通过调整网络的流量来解除网络过载的一种流控机制
策略1:尾丢弃(Tail Drop)
当队列的长度达到最大值后,所有新入队列的报文(缓存在队列尾部)都将被丢弃。
缺点:
1、如果大量报文被丢弃,会引发TCP慢启动,报文发送减少
2、无差别丢弃,可能会丢弃关键流量,无法对流量进行区分丢弃
策略2:早期随机检测 (RED)
RED(Random Early Detection)随机地丢弃数据报文
过程:
1.当队列小于低门限时,不丢弃报文
2.当队列长度在高门限和低门限之间时,开始随机丢弃新到来的报文,且队列越长,丢弃概率越大
3.当队列长度超过高门限时,丢弃所有新到来的报文,即尾丢弃
优点:
缓解TCP全局同步的现象
策略3:加权随机先期检测 (WRED)
WRED(Weighted Random Early Detection)通过对不同优先级数据包或队列设置相应的丢弃策略,以实现对不同流量进行区分丢弃。
优点:
1.打乱TCP滑动窗口的调整时间,避免TCP全局同步现象
2.基于权重,实现了不同流量的区分丢弃
五、拥塞管理技术
拥塞管理:网络在发生拥塞时,针对不同类型的业务流量,如何进行管理和控制。
处理的方法:队列技术。
队列调度算法:
1.先进先出,FIFO(First In First Out)
优点:实现机制简单且处理速度快。
缺点:不能有差别地对待优先级不同的报文
2.严格优先级,SP(Strict Priority)
优点:对高优先级的报文提供了优先转发。
缺点:低优先级队列可能出现“饿死”现象。即:拥塞发生时,如果较高优先级队列中长时间有报文存在,那么低优先级队列中的报文就会得不到调度机会
3.加权公平队列,WFQ(Weighted Fair Queuing)
优点:
▪不同的队列获得公平的调度机会,从总体上均衡各个流的延迟。
▪短报文和长报文获得公平的调度:如果不同队列间同时存在多个长报文和短报文等待发送,让短报文优先获得调度,从而在总体上减少各个流的报文间的抖动。
▪从统计上看,权重越小,所分得的带宽越少。权重越大,所分得的带宽越多。
缺点:低时延业务仍得不到及时调度;无法实现用户自定义分类规则。
缺点:低优先级队列可能出现“饿死”现象。即:拥塞发生时,如果较高优先级队列中长时间有报文存在,那么低优先级队列中的报文就会得不到调度机会
3.加权公平队列,WFQ(Weighted Fair Queuing)
优点:
▪不同的队列获得公平的调度机会,从总体上均衡各个流的延迟。
▪短报文和长报文获得公平的调度:如果不同队列间同时存在多个长报文和短报文等待发送,让短报文优先获得调度,从而在总体上减少各个流的报文间的抖动。
▪从统计上看,权重越小,所分得的带宽越少。权重越大,所分得的带宽越多。
缺点:低时延业务仍得不到及时调度;无法实现用户自定义分类规则。