前言
QoS(Quality of Service),服务质量指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术。QoS的保证对于容量有限的网络来说是十分重要的,特别是对于流多媒体应用,例如VoIP和IPTV等,因为这些应用常常需要固定的传输率,对延时也比较敏感。
衡量网络质量的四个指标
带宽 bandwidth
是连路上单位时间所能通过的最大数据流量 其单位为bps(bit per second) 在一条端到端的链路中,最大可用带宽等于路径上带宽最低的链路的带宽
延迟 delay
是标识数据包穿越网络所用时间的指标
- 交换延迟 设备收到一个数据要进行处理 (查询路由表或者路由策略)
- 排队延迟 平时不排队 当数据阻塞处理不过来需要排队
- 设备发送电信号和光信号为串行化延迟
- 数据在传输为传输延迟
- 端到端延迟等于所有图中链路和设备造成的延时的总和
抖动 Jitter
抖动是指数据标穿越网络时延迟的变化,是衡量网络延迟稳定性的指标
抖动是由于延迟的随机性造成的,主要原因是数据包排队延迟的不确定性
丢包 packet loss
丢包是指数包在传输过程中的丢失,是衡量网络可靠性的重要指标
丢包的主要原因
- 网络拥塞时,当队列满了后,后续的报文将由于无法入队而被丢弃
- 流量超过限制时 设备对其进行丢包 (acl等)
丢包 以丢包率作为衡量指标
丢包率=被丢弃的报文数量/全部报文数量
Qos模型
Best-Effort 尽力而为服务 (默认)
网络尽最大的可能性来发送报文,但对时间、可靠性等性能不供任何保证 ,是internet的缺省服务模型 。它适用于绝大多数网络应用,如FTP E-mail,他通过FIFO(first in first out)队列 来实现 所有数据进入同一队列,按先进先出的原则调度,队列满后,后续报文被丢弃
Integrated Service 集成服务
使用RSVP(资源预留协议)要求用户要事先申请声明想要什么样的服务。在资源满足的情况下,预留资源以满足该需求
Differentiated Service差分服务
先对流量进行分类,然后把类别标记在报文头中,网络各节点只需要简单地识别报文中的这些标记,进行相应的处理,即将网络中的流量分为多个类,不同的类采用不同的处理方式
Qos技术分类
分类与标记 [进行流量区分 打标签]
根据一定的匹配规则识别出对象 ,是对网络业务进行区分服务的前提和基础,通常作用在接口入方向
拥塞管理 [设置流量转发优先级]
当拥塞发生时,制定一个资源的调度策略,以决定报文转发的处理次序 ,通常作用在接口出方向
拥塞避免
监管网络资源的使用情况,当发现拥塞有加剧的趋势,采取主动丢弃报文 策略,通过调整队列长度 来解除网络的过载,通常作用在接口出方向
流量监管 [进行流量限速 例如接口流量限速20M 超出丢包]
对进入或流出设备的特定流量进行监管,当流量超出设定值 时,可以采取限制或惩罚措施 ,以保护网络资源不受损害,可以作用在接口入方向 和出方向
流量整形 [进行流量限速 例如接口流量限速18M 超出延迟高]
主动调整流的输出速率的流量控制措施,用来使流量适配下游设备可供给的网络资源,避免不必要的报文丢弃 ,通常作用在接口出方向
- 首先通过流分类对各种业务进行识别和区分,它是后续各种动作的基础
- 通过各种动作对特定的业务进行处理。这些动作需要和流分类关联起来才有意义。具体采取何种动作,与所处的阶段以及网络当前的负载状况有关。例如,当报文进入网络时进行流量监管;流出节点之前进行流量整形;拥塞时对队列进行拥塞管理;拥塞加剧时采取拥塞避免措施等.
技术
分类与标记
根据acl或者报文自身信息等对流量进行分类
基于DSCP/IP Precedence/ 802.1p/mpls exp等信息对报文进行标记
PHB
Per Hop Behavior ,每跳行为,即设备对报文的处理,根据那些可见的服务特征,如时延、抖动或丢包率,分为以下几类:
第三层标记[ip优先级,DSCP]
DSCP前三位为CE1-7 ip优先级 前六位为DSCP 后两位为预留位
第二层标记[802.1p]
数字越大 优先级越高
qos流量统计[华三模拟器不支持qos]
csharp
# 创建流分类
[Switch]traffic classifier classifier_1 <Name of classifier>
[Switch-classifier-classifier_1]if-match dscp default // 创建匹配原则
# 创建流行为
[Switch]traffic behavior behavior_1 <Name of behavior>
[Switch-behavior-behavior_1]accounting packet // 流量统计
# 创建流策略
[Switch]qos policy policy <Policy name>
[Switch-qospolicy-policy]classifier classifier_1 behavior behavior_1 // 流分类关联流行为
# 应用流策略
[Switch-GigabitEthernet1/0/1]qos apply policy policy inbound
# 查看配置后流量统计的情况
[Switch] display qos policy interface gigabitethernet 1/0/1
Interface: GigabitEthernet1/0/1
Direction: Inbound
Policy: policy
Classifier: classifier_1
Operator: AND
Rule(s) :
If-match dscp default
Behavior: behavior_1
Accounting enable:
28529 (Packets)
流量监管car与流量整形gts/lr
- 对于ISP来说,对用户送入网络的流量控制是十分必要的
- 对于企业网,对某些应用的流量进行控制也是一个有力的控制网络状况的工具
- 监督进入网络的某一个流量的规格,把他限制在一个合理的范围之内,或者对超出的部分流量惩罚,以保护网络资源和运营商的利益
流量监管 | 丢包,没有延迟 |
---|---|
流量整形 | 缓存,增加延迟 |
- 单桶单速
cir (committed infotmation rate) 承诺信息速率 [令牌进令牌桶的速度] cbs (committed burst size) 承诺突发尺寸 [存放令牌的令牌桶的容量]
单桶单速 c桶
一个令牌桶,容量是CBS一个填充令牌的速率CIR。当有B字节的报文传过来的时候,根据桶的当前容量来对这个报文进行处理 超出丢弃 未超出转发
- 双桶单速
双桶单速 e桶 e桶>c桶 取令牌 优先c桶 c桶不够再e桶 ebs (extended burst size) 超额突发尺寸
设备执行car的时候 流量是逐包转发的
- 经验公式
- CIR<=100Mbps时,CBS(Bytes)=CIR(kbps)x1.5(s)/8
- CIR>100Mbps时,CBS(Bytes)=100,000(kbps)x1.5(s)/8
两个令牌桶,一个的容量是CBS一个的容量是EBS ,一个填充令牌的速率CIR,两个令牌桶使用同一个填充速率。当有B字节的报文传过来的时候,根据两个桶的当前容量来对这个报文进行处理。
- 双桶双速
双速双桶 c桶 p桶 PIR (peak information rate) 峰值信息速率 [最高速率是多少] 先p桶后c桶 pbs (peak burst size) 峰值突发尺寸
两个令牌桶,一个的容量是CBS,一个的容量是PBS。这两个令牌桶分别使用两个填充令牌的速率,一个填充速率是CIR,一个填充速率是PIR。当有B字节的报文传过来得时候,根据两个桶的当前容量来对这个报文进行处理。
--- | 双速双桶 | 单速双桶 |
---|---|---|
--- | 先p桶后c桶 | 先c桶后e桶 |
绿灯 | 两桶都拿 | 只拿c桶 |
黄灯 | 只拿p桶 | 只拿e桶 |
红灯 | 都没拿 | 都没拿 |
- 应用场景
- 只限速,用单桶单速
- 限速+区分突发量,用单速双桶
- 限速+区分突发量+区分带宽是否超出峰值,用双速双桶
配置命令
csharp
# 创建流行为
[Switch]traffic behavior behavior_1 <Name of behavior>
[Switch-behavior-behavior_1]car cir 8 cbs 512 ebs 65536 // 限速8kbps 最高通行65536kbps大小的数据
拥塞与管理
- 需要发送的数据流量大于设备发送接口的发送能力时,会产生拥塞。
- 拥塞管理是指在网络发生拥塞时,进行管理和控制合理分配资源。通常采用队列技术实现。
- 报文按一定的策略缓存到队列中,然后再按一定的调度策略把报文从队列中取出,在接口上发送出去。