Qos技术

前言

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 超出延迟高]

主动调整流的输出速率的流量控制措施,用来使流量适配下游设备可供给的网络资源,避免不必要的报文丢弃 ,通常作用在接口出方向

  1. 首先通过流分类对各种业务进行识别和区分,它是后续各种动作的基础
  2. 通过各种动作对特定的业务进行处理。这些动作需要和流分类关联起来才有意义。具体采取何种动作,与所处的阶段以及网络当前的负载状况有关。例如,当报文进入网络时进行流量监管;流出节点之前进行流量整形;拥塞时对队列进行拥塞管理;拥塞加剧时采取拥塞避免措施等.

技术

分类与标记

根据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来说,对用户送入网络的流量控制是十分必要的
  • 对于企业网,对某些应用的流量进行控制也是一个有力的控制网络状况的工具
  • 监督进入网络的某一个流量的规格,把他限制在一个合理的范围之内,或者对超出的部分流量惩罚,以保护网络资源和运营商的利益
流量监管 丢包,没有延迟
流量整形 缓存,增加延迟
  1. 单桶单速

cir (committed infotmation rate) 承诺信息速率 [令牌进令牌桶的速度] cbs (committed burst size) 承诺突发尺寸 [存放令牌的令牌桶的容量]
单桶单速 c桶
一个令牌桶,容量是CBS一个填充令牌的速率CIR。当有B字节的报文传过来的时候,根据桶的当前容量来对这个报文进行处理 超出丢弃 未超出转发

  1. 双桶单速

双桶单速 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字节的报文传过来的时候,根据两个桶的当前容量来对这个报文进行处理。

  1. 双桶双速

双速双桶 c桶 p桶 PIR (peak information rate) 峰值信息速率 [最高速率是多少] 先p桶后c桶 pbs (peak burst size) 峰值突发尺寸
两个令牌桶,一个的容量是CBS,一个的容量是PBS。这两个令牌桶分别使用两个填充令牌的速率,一个填充速率是CIR,一个填充速率是PIR。当有B字节的报文传过来得时候,根据两个桶的当前容量来对这个报文进行处理。

--- 双速双桶 单速双桶
--- 先p桶后c桶 先c桶后e桶
绿灯 两桶都拿 只拿c桶
黄灯 只拿p桶 只拿e桶
红灯 都没拿 都没拿
  1. 应用场景
  • 只限速,用单桶单速
  • 限速+区分突发量,用单速双桶
  • 限速+区分突发量+区分带宽是否超出峰值,用双速双桶

配置命令

csharp 复制代码
# 创建流行为
[Switch]traffic behavior behavior_1 <Name of behavior>          
[Switch-behavior-behavior_1]car cir 8 cbs 512 ebs 65536                    // 限速8kbps 最高通行65536kbps大小的数据

拥塞与管理

  • 需要发送的数据流量大于设备发送接口的发送能力时,会产生拥塞。
  • 拥塞管理是指在网络发生拥塞时,进行管理和控制合理分配资源。通常采用队列技术实现。
  • 报文按一定的策略缓存到队列中,然后再按一定的调度策略把报文从队列中取出,在接口上发送出去。
相关推荐
ZVAyIVqt0UFji2 小时前
云舟观测:基于eBPF监控主机的TCP网络连接
网络·网络协议·tcp/ip·web安全·php
熊的猫3 小时前
如何封装一个可取消的 HTTP 请求?
前端·javascript·vue.js·网络协议·http·webpack·node.js
AI原吾3 小时前
构建灵活、高效的HTTP/1.1应用:探索h11库
网络·python·网络协议·http·ai·h11
码出钞能力3 小时前
UDP组播测试
网络·网络协议·udp
不甘平凡的蜜蜂3 小时前
第三十三篇:TCP协议如何避免/减少网络拥塞,TCP系列八
运维·网络·网络协议·tcp/ip·计算机网络·智能路由器
小龙4 小时前
【Python爬虫实战】网络爬虫完整指南:网络协议OSI模型
爬虫·python·网络协议
阿华的代码王国5 小时前
【网络原理】——图解HTTPS如何加密(通俗简单易懂)
网络协议·http·https·非对称加密·对称加密·htttps加密传输·证书加密
Likelong~6 小时前
动态代理:面向接口编程,屏蔽RPC处理过程
网络协议·rpc
GGBondlctrl7 小时前
【JavaEE初阶】网络原理—关于TCP协议值滑动窗口与流量控制,进来看看吧!!!
网络·网络协议·tcp/ip·滑动窗口·流量控制·拥塞控制·tcp协议特性
Hi~952710 小时前
SELS-SSL/TLS
linux·运维·网络协议·ssl