文章目录
Qos产生的背景
传统端到端网络通信存在的问题
传统的IP网络无区别对待所有报文,网络设备处理报文采用的策略是先进先出FIFO,它依据报文到达时间的先后顺序分配转发所需要的资源。所有报文共享网络和设备的带宽等资源。
所以这样就会导致网络发生拥塞时,一些关键业务的通信质量就得不到保障,进而影响客户体验。
影响网络通信质量的因素
流量类型 | 带宽 | 时延 | 抖动 | 丢包率 |
---|---|---|---|---|
语音 | 低 | 高 | 高 | 低 |
视频 | 高 | 高 | 高 | 低 |
FTP | 中,高 | 低 | 低 | 高 |
电子邮件、http网页浏览 | 低 | 低 | 低 | 中、高 |
1.网络带宽
单位时间内能传输的数据量
2.网络时延
一个报文从网络的一端传送到另一端所需要的时间
单个网络设备的时延包括:
- 传输时延:一个数据位从发送方到达接收方所需要的时间。该时延取决于传输距离和传输介质,与带宽无关。
- 串行化时延:指发送节点在传输链路上开始发送报文的第一个比特至发完该报文的最后一个比特所需的时间。该时延取决于链路带宽以及报文大小。
- 处理时延:指路由器把报文从入接口放到出接口队列需要的时间。它的大小跟路由器的处理性能有关。
- 队列时延:指报文在队列中等待的时间。它的大小跟队列中报文的大小和数量、带宽以及队列机制有关。
3.抖动
由于每个报文的端到端时延不一样,就会导致这些报文不能等间隔到达目的端。这种现象就叫做抖动。
抖动的大小跟时延的大小直接相关,时延小则抖动的范围也小。
4.丢包率
在网络传输过程中丢失报文占传输报文的百分比。
丢包可用于衡量网络的可靠性
服务类型
尽力而为服务类型
- Best-Effort是一个单- -的服务模型,也是最简单的服务模型。应用程序可以在任何时候,发出任意数量的报文,而且不需要事先获得批准,也不需要通知网络。
- 应用Best-Effort服务模型的网络尽最大的可能性来发送报文,但对时延、可靠性等性能不提供任何保证,但它适用于绝大多数网络应用,如FTP、E-Mail等。
- Best-Effort服务是现在Internet的缺省服务模型,它是通过先入先出( FIFO )队列来实现的。
综合服务类型
IntServ是一种最为复杂的服务模型,它需要用到RSVP ( Resource Reservation Protocol )协议。该服务模型在发送报文前需要向网络申请特定的服务。这个请求是通过信令( signal )来完成的,应用程序首先通知网络它自己的流量参数和所需的特定服务质量的请求,包括带宽、时延等。应用程序-般在收到网络的确认信息后。即认为网络已经为这个应用程序的报文发送预留了资源,然后立即发送报文。
IntServ模型要求端到端网络的所有节点都支持RSVP协议,且每个节点都需要周期性地同相邻节点交换状态信息,这样就会加大协议报文导致的开销。更关键的是,所有网络节点都需要为每个数据流保存状态信息,而当前在Internet骨干网上有着成千上万条数据流,因此IntSer模型在Internet骨干网上无法得到广泛应用。
区分服务类型
MQC(Modular Qos Command-line Interface,模块化Qos命令行接口)
MQC将具有某类共同特征的报文划分为一类,并为同一类报文提供相同的服务,也可以对不同类的报文提供不同的服务。
MQC三要素
流分类(traffic classifier)、流行为(traffic behavior)、流策略(traffic policy)
流分类
流分类用来定义一组流量匹配规则,用于对报文进行分类
配置流分类:
- 流分类的名称
- 流分类的分类规则
- 当流分类中有多条分类规则时,各规则之间的关系
流分类规则可以分为二层规则、三层规则、基本ACL6规则、高级ACL6规则和自定义ACL规则。
类别 | 分类规则 |
---|---|
二层规则 | 目的MAC地址 源MAC地址 VLAN报文外层Tag的VLAN ID VLAN报文外层Tag的802.1p优先级 VLAN报文内层Tag的VLAN IDVLAN 报文内层Tag的802.1p优先级 基于二层封装的协议字段:目前支持的二层封装协议包括ARP、IP、MPLS、RARP等。 ACL 4000~4999匹配的字段:基于二层ACL进行分类。 丢弃报文:匹配被丢弃的报文,可以对该类报文进行流量统计或镜像等动作,从而分析该类报文。 所有报文:当需要对所有的数据报文作统一的处理时,可以基于所有数据报文进行分类。入接口出接口 |
三层规则 | IP报文的DSCP优先级 IP报文的IP优先级IP协议类型(IPv4协议或IPv6协议) TCP报文的TCP-Flag标志 ACL 2000~3999匹配的字段 VXLAN内层报文的VNI ID |
基本ACL6规则 | ACL6 2000~2999匹配的字段 |
高级ACL6规则 | ACL6 3000~3999匹配的字段 |
自定义ACL规则 | ACL 5000~5999匹配的字段(自定义ACL) |
流分类中各规则之间的关系分为:or或and,缺省情况下的关系为or。
- or:报文只要匹配了流分类中的一个规则,设备就认为报文属于此类。
- and:当流分类中包含ACL规则时,报文必须匹配其中一条ACL规则以及所有非ACL规则才属于该类;当流分类中没有ACL规则时,报文必须匹配所有非ACL规则才属于该类。
以流分类c1为例。流分类c1包括如下规则:
- ACL规则:
- 匹配ACL 3000
- 匹配ACL 3001
- 非ACL规则:
- 匹配VLAN ID为10的报文
- 匹配入接口为GE0/0/1的报文
若流分类c1各规则之间的关系为or:只要报文的VLAN ID为10,或报文的入接口为GE0/0/1,或报文匹配ACL 3000,或报文匹配ACL 3001,报文就属于流分类c1。
若流分类c1各规则之间的关系为and:只有报文的VLAN ID为10,入接口为GE0/0/1,且报文匹配ACL 3000或ACL 3001时,报文才属于流分类c1。
1.执行命令system-view,进入系统视图。
2.执行命令traffic classifier classifier-name [ operator { and | or } ],创建一个流分类并进入流分类视图,或进入已存在的流分类视图。
流行为
流行为用来定义针对某类报文所做的动作。需要确定如下两点:
- 流行为的名称。
- 流行为中的动作。
MQC流行为动作有:
- 报文过滤
- 重标记优先级
- 重定向
- 流量监管
- 流量统计
如果在一个流行为中定义了多个动作且这些动作互不冲突,那么这些动作都能配置成功且同时生效。如果在一个流行为中定义的多个动作产生冲突,将出现以下情况之一:
- 在流行为视图定义冲突的动作时,系统提示错误,命令无法执行。
- 应用流策略时,系统提示错误,流策略应用失败。
执行命令traffic behavior behavior-name,创建一个流行为并进入流行为视图,或进入已存在的流行为视图。
流策略
流策略用来将指定的流分类和流行为绑定,对分类后的报文执行对应流行为中定义的动作。
配置流策略和应用流策略时,需要确定如下四点:
- 流策略的名称。
- 流分类和流行为的对应关系,即需要对匹配指定流分类的报文执行的动作。
- 应用流策略的视图。如接口视图、VLAN视图或系统视图。
- 应用流策略的方向。QoS业务既可以应用于设备接收的报文(即入方向报文),也可以应用于设备发送的报文(即出方向报文)。用户可以在应用流策略时,通过指定inbound或outbound参数,对入方向或出方向报文实施策略控制。
执行命令traffic policy policy-name,创建一个流策略并进入流策略视图
执行命令classifier classifier-name behavior behavior-name[precedence precedence-value]
Qos令牌桶算法
当数据流到达设备时首先会根据数据的大小从令牌桶中取出与数据大小相当的令牌数量来传输数据。也就是说要使数据被传输必须保证令牌桶里有足够多的令牌,如果令牌数量不够,则数据会被丢弃或缓存。这就可以限制报文的流量只能小于等于令牌生成的速度达到限制流量的目的。
单速率令牌桶
单速率令牌桶参数
- CIR(Committed Information Rate):承诺信息速率,单位是bit/s,表示向令牌桶中投放令牌的速率。
- CBS(Committed Burst Size):承诺突发尺寸,单位bit,用来定义在部分流量超过CIR之前的最大突发流量,即令牌桶的容量(深度)。承诺突发尺寸必须大于报文的最大长度(最大时一个分组可以领取桶中的全部令牌)。
CBS越大,表示允许的突发量越大
- EBS(Extended burst size):超额突发尺寸,用来定义在所有流量超过CIR之前的最大突发量。