当前位置:网站首页>QoS服务质量五QoS边界行为之流量整形
QoS服务质量五QoS边界行为之流量整形
2022-07-29 09:29:00 【0与1之旅】
3、流量整形
流量整形TS(Traffic Shaping)是一种主动调整流量输出速率的措施,其作用是限制流量与突发,使这类报文以比较均匀的速率向外发送。流量整形通常使用缓冲区和令牌桶来完成,当报文的发送速度过快时,首先在缓冲区进行缓存,在令牌桶的控制下,再均匀地发送这些被缓冲的报文。
单速率双色单桶,缺点是上一秒令牌未用完,则下一秒将会被清空;单速率三色双桶,有两个令牌桶。可以有积存机制,解决超发问题;双速率三色双桶,整形红色流量进行缓存,等待下次获得令牌通过,未被丢弃。一般适用于高带宽向低带宽发送数据。
流量整形通常使用缓冲区或队列和令牌桶来完成,当报文的发送速度过快时,首先在缓冲区或队列进行缓存,在令牌桶的控制下,在均匀的发送这些缓存的报文。缓冲区的空间是有限的,如果缓冲区空间不足,则被延迟发送的报文会被丢弃。
流量监管和流量整形的比较:
名称 | 流量监管 | 流量整形 |
---|---|---|
流量方向差异 | 应用于端口入方向 | 应用于端口出方向 |
超额流量差异 | 丢弃超额流量或将超额流量重标记为低优先级 | 缓存超额流量 |
内存使用差异 | 不需要额外的内存资源,不会带来延迟和抖动 | 需要缓存超额流量,可能会带来延迟和抖动 |
丢包率的差异 | 丢包可能引发重传 | 较少的丢包,因而较少导致重传 |
重标记的差异 | 可以重标记流量 | 不能重标记 |
双方共同点 | 都是监控网络流量、都是用令牌桶算法评估流量速率、用于网络边缘 | 一样 |
从上可以看出不同流量监管优点:是不需要内存,延迟小。缺点:丢包率大,抗突发能力弱;流量整形的优点:丢包率小,抗突发能力强,缺点:要内存,延迟高。两种的优点缺点互补。
从上图可以看出流量整形将上游不规整的流量进行削峰填谷,使流量输出比较平稳,从而解决下游设备的拥塞问题。
3.1、GTS的原理
GTS(Generic traffic shaping,通用流量整形)在收到报文后会先进行分类,符合GTS匹配条件的报文由GTS进行整形,不符合匹配条件的报文绕过GTS直接转发。GTS使用的令牌桶技术为单桶单速,只对出接口有作用。
解决下游设备的接口速率小于上游设备的接口速率,从而导致下游设备接口入方向丢包的问题。
GTS处理流程
GTS在收到报文后会先进行分类,使报文进入不同的队列。没有配置队列整形功能的报文绕过GTS直接转发。
符合GTS匹配条件的报文(配置队列整形功能)由GTS进行整形,GTS采用停牌桶技术对各类报文分别进行测量。
对需要流量整形的报文进行测量分为两种情况,一种是令牌桶中令牌数量足够多,也就是来的报文的符合所设置的CIR和CBS,放行此报文。
另一种情况是发送过来的报文不符合所设置的CIR和CBS,也就是令牌桶中令牌数量不足,这时报文被缓存在队列里,等待有足够令牌时再继续发送。
如果该接口和子接口同时配置了接口整形,则系统还要逐级按照子接口整形速率、接口整形速率对报文流进行速率控制。则报文全部进行流量整形。
3.2、自适应流量整形
有些场景下,下游设备的接口速率是不确定的,上游设备无法确定应该把整形参数设置为多少。此时可以配置自适应模板来实现自适应流量整形,通过在上游设备和下游设备间开启NQA检测,根据NQA检测到的下游设备丢包率动态调整整形参数。
NQA(Network Quality Analysis,网络质量分析),是设备上集成网络检测功能,不仅可以实现对网络运行情况的准确测试,输出统计信息,有效的节约成本。NQA可以检测网络上运行的各种协议的性能,时运营商能够实时采集到各种网络运行指标,例如:HTTP的总时延、TCP连接时延、DNS解析时延、文件传输时延、FTP连接时延、DNS解析错误等等。
NQA把测试两端称为客户端和目的端,并在客户端发起测试,目的端接收报文后,返回给源端相应的回应信息。根据返回的回应信息,就可以了解相应的网络状况。
自适应模板规定了:
- NQA测试例:通过此测试例检测下游设备接口入方向丢包率,根据检测结果调整整形参数。
- 整形速率范围:上游设备接口出方向的整形速率上下限,整形速率在此范围内动态调整。
- 整形速率调整步长:动态调整整形速率时,每次调整的速率大小。
- 丢包率范围:下游设备接口入方向允许的丢包率范围。当丢包率在此范围之内时,不调整整形速率;当丢包率过大,减小上游设备整形速率;当丢包率过小,且上游设备发生拥塞,增大上游设备整形速率。
- 整形速率增大的时间间隔:当丢包率在阈值附近频繁变化时,就需要频繁调整整形速率,用户可以通过设置此参数,限制增大整形速率的时间间隔,避免频繁更新。
系统根据NQA检测结果中的丢包率等调整整形速率:
自适应模板在流行为中绑定后,将流行为与流分类在流策略下进行绑定,并在接口下应用流策略,才能使自适应模板中配置的整形参数在该接口下生效。
3.3流量监管和流量整形应用场景
企业网中语音、视频和数据等多种不同的业务,报文从高速链路进入设备,再由低速链路转发出去。可能会因为带宽不足产生拥塞,需要对三种业务提供不同的保证带宽,优先保证语音业务的带宽,其次是视频业务,最后是数据业务,因此可以对不同业务进行不同的流量监督,为语音报文提供最大保证带宽,视频报文次之,数据报文保证带宽最小,从而在网络产生拥塞时,可以保证语音报文优先通过。
流量监管
流量整形
3.4、配置限速(流量监管和流量整形)
配置限速时,需要配置cir cir-value和cbs cbs-value等参数,其中cir cir-value指承诺信息速率,即保证能够通过的平均速率;cbs cbs-value指承诺突发尺寸,即瞬间能够通过的承诺突发流量。例如,用户想要配置限速4Mbit/s,则配置cir-value=4*1024 kbit/s=4096 kbit/s。cbs-value建议配置为cir-value的100–200倍,如果用户没有配置cbs-value,则设备会自动指定其为缺省值。cbs-value缺省为cir-value的125倍。
3.4.1、配置流量整形
Switch通过接口GE0/0/2与路由器互连,局域网终端发送的语音、视频、数据,这些业务可经由交换机和路由器到达用户。各终端设备与SW2构成的局域网,速率远大于由SW1和R1构成的WAN速率,这种情况下SW1出接口GE0/0/1处容易发生带宽抖动。为减少带宽抖动,为减少抖动进行以下处理:
1、基于接口的流量整形
也叫接口限速 LR(Line rate),限制接口发送的所有报文(包括紧急报文)的总速率,是对整个出接口进行流量整形,不区分优先级。缺点:不能基于业务区别对待
在SW1入口上配置限速,进入的速率限制在20000kbit/s。在SW2上配置端口整形,将端口出口速率限制在20000kbit/s。lr针对于接口下的所有流量。LR使用单速单桶。
[SW1]interface g0/0/1
[SW1-GigabitEthernet0/0/1]qos lr inbound cir 20000 cbs 2000000 //配置入方向的接口限速速率为20000kbit/s,CBS大小为2000000bit。
[SW2]interface g0/0/1
[SW2-GigabitEthernet0/0/1]qos gts cir 20000 //配置接口的发送数据的速率为20Mbps/s,对接口配置流量整形。
cbs是整形模型中使用的令牌桶的大小,cbs不是越大越好,越大则流量波动就越大:反之,流量波动就较小,但cbs一定要大于1500。cbs-value缺省为cir-value的125倍。
注意:
cbs、pbs的大小可以不用配置,系统会根据定义的cir和pir的值自动计算。
2、基于队列的流量整形
华为设备默认支持0-7共八个队列(很老的队列技术,类似于管道),可以基于每种队列定义不同的整形技术,以及队列调度技术,丢弃技术,默认八个队列的调度技术为公平WFQ,无差异行为。
为保证各类业务带宽要求,携带的802.1p优先级分别为5、4、2,现设置如下:
流量类型 | CIR(kbps) | PIR(kbps) |
---|---|---|
语音 | 8000kbit/s | 峰值带宽为12000kbit/s |
视频 | 10000kbit/s | 峰值带宽为20000kbit/s |
数据 | 2000kbit/s | 峰值带宽为3000kbit/s |
在Switch上配置端口队列整形。shaping使用双速双桶,shaping可以针对于队列
[SW2]qos queue-profile gts //创建队列模板,名为gts
[SW2-qos-queue-profile-gts] queue 2 to 5 gts cir 20000 //配置队列2到5使用gts整形,速率为20000bit/s
[SW2-qos-queue-profile-gts] queue 0 to 5 length bytes 10000 //配置队列2到5的长度为10000bit
[SW2-qos-queue-profile-gts]quit
[SW2-GigabitEthernet0/0/1] qos queue 5 shaping cir 8000 pir 12000 //在ge0/0/1上配置队列5,队列5整形6整形的为8000bit/s,峰值信息速率12000
[SW2-GigabitEthernet0/0/1] qos queue 4 shaping cir 10000 pir 20000 //在ge0/0/1上配置队列4,队列4整形为10000bit/s。
[SW2-GigabitEthernet0/0/1] qos queue 2 shaping cir 2000 pir 3000 //在ge0/0/1上配置队列2,队列2整形为2000bit/s。
缺点:方案复杂,配置端口复杂
3.4.2、基于流分类MQC的流量监管
条件如上前面图示,为了减少网络拥塞的发生,需要对SW2进行流量监管,限速到20000kbit/s,在SW1入方向配置基于MQC的流量监管,SW1为三层交换机与后面的路由器构成一个DS域,此DS域设备内部优先级以DSCP优先级用于内部资源分配和调度使用的值。
流量类型 | CIR(kbps) | PIR(kbps) | DSCP优先级 |
---|---|---|---|
语音 | 8000kbit/s | 峰值带宽为12000kbit/s | 将DSCP优先级标记为46,保证后续设备优先转发。 |
视频 | 10000kbit/s | 峰值带宽为20000kbit/s | 将DSCP优先级标记为30。 |
数据 | 2000kbit/s | 峰值带宽为3000kbit/s | 将DSCP优先级标记为14。 |
(1)、创建VLAN,并配置各接口
<HUAWEI> system-view
[HUAWEI] sysname SW1
[SW1] vlan batch 10 20 30 40
# 将接口GE0/0/2、GE0/0/2、GE0/0/4的接入类型分别配置为trunk,并将接口GE0/0/2、GE0/0/3、GE0/0/4加入VLAN 10、20、30。
[SW2] interface GigabitEthernet0/0/1
[SW2-GigabitEthernet0/0/1] port link-type trunk
[SW2-GigabitEthernet0/0/1] port trunk allow-pass vlan 2 to 100
[SW2] interface gigabitethernet 0/0/2
[SW2-GigabitEthernet0/0/2] port link-type trunk
[SW2-GigabitEthernet0/0/2] port trunk allow-pass vlan 20
[SW2] interface gigabitethernet 0/0/3
[SW2-GigabitEthernet0/0/3] port link-type trunk
[SW2-GigabitEthernet0/0/3] port trunk allow-pass vlan 30
[SW2] interface gigabitethernet 0/0/4
[SW2-GigabitEthernet0/0/4] port link-type trunk
[SW2-GigabitEthernet0/0/4] port trunk allow-pass vlan 40
(2)、入方向配置MQC的流量监管
基础配置
[SW1]interface GigabitEthernet0/0/1
[SW1-GigabitEthernet0/0/1] trust dscp
[SW1-GigabitEthernet0/0/1] port link-type trunk
[SW1-GigabitEthernet0/0/1] port trunk allow-pass vlan 2 to 100
1、配置流分类,设备根据报文VLAN进行分类。
[SW1] traffic classifier voice operator and
[SW1-classifier-voice] if-match vlan-id 20
[SW1-classifier-voice] quit
[SW1] traffic classifier video operator and
[SW1-classifier-video] if-match vlan-id 30
[SW1h-classifier-video] quit
[SW1] traffic classifier data operator and
[SW1-classifier-Data] if-match vlan-id 40
[SW1-classifier-Data] quit
2、创建流行为,配置流量监管参数,并标记优先级
[SW1] traffic behavior voice
[SW1-behavior-voice] car cir 8000 pir 12000 //配置语音业务限速带宽
[SW1-behavior-voice] remark dscp 46 //标记语音报文DSCP为46
[SW1-behavior-voice] statistic enable //用于验证配置结果
[SW1-behavior-voice] quit
[SW1] traffic behavior video
[SW1-behavior-video] car cir 10000 pir 20000 //配置视频业务限速带宽
[SW1-behavior-video] remark dscp 30 //标记视频报文DSCP为30
[SW1-behavior-video] statistic enable
[SW1-behavior-video] quit
[SW1] traffic behavior Data
[SW1-behavior-Data] car cir 2000 //配置数据业务限速带宽
[SW1-behavior-Data] remark dscp 14 //标记数据报文DSCP为14
[SW1-behavior-Data] statistic enable
[SW1-behavior-Data] quit
注意:
cbs、pbs的大小可以不用配置,系统会根据定义的cir和pir的值自动计算。
3、配置流策略,并在接口GE0/0/1入方向应用。
[SW1] traffic policy p1
[SW1-trafficpolicy-p1] classifier voice behavior voice
[SW1-trafficpolicy-p1] classifier video behavior video
[SW1-trafficpolicy-p1] classifier Data behavior Data
[SW1-trafficpolicy-p1] quit
[SW1] interface gigabitethernet 0/0/1
[SW1-GigabitEthernet0/0/20] traffic-policy p1 inbound
[SW1-GigabitEthernet0/0/20] quit
3.4.3、自适应流量整形
采用基于流的拥塞管理来实现语音、视频和数据报文的不同处理。
NQA客户端RA配置:
- 配置配置Jitter类型的NQA测试例;
- 配置流分类,实现对数据、视频、语音报文的区分;
- 配置流行为,针对数据、视频、语音报文,指定不同的拥塞管理动作;
- 配置自适应整形模板并应用到接口GE1/0/0。
1、配置NQA测试例
配置NQA服务器服务器端
<Huawei> system-view
[Huawei] sysname RB
[RB] nqa-server udpecho 192.168.2.2 9000 //服务器端采用UDP端口9000进行NQA回复
NQA客户端,配置Jitter类型的NQA测试例。
<Huawei> system-view
[Huawei] sysname RA
[RA] nqa test-instance admin jitter1 //配置NQA管理员名称admin和实例名称jitter1
[RA-nqa-admin-jitter1] test-type jitter //测试类型为抖动
[RouterA-nqa-admin-jitter1] destination-address ipv4 192.168.2.2 //测试server端地址
[RA-nqa-admin-jitter1] destination-port 9000 //测试server端口号
[RA-nqa-admin-jitter1] start now //开始时间为总是
[RA-nqa-admin-jitter1] quit
2、在RA上配置自适应整形模板
[RA] qos adaptation-profile gts1 //定制自适应模板为gts1
#配置整形速率范围下限为128,上限为512
[RA-qos-adaptation-profile-gts1] rate-range low-threshold 128 high-threshold 512
[RA-qos-adaptation-profile-gts1] rate-adjust step 32 //配置整形速率调整步长
[RA-qos-adaptation-profile-gts1] rate-adjust loss low-threshold 20 high-threshold 30 //配置丢包率最低20最高30
[RA-qos-adaptation-profile-gts1] track nqa admin jitter1 //绑定名称admin和实例名称jitter1的nqa
[RA-qos-adaptation-profile-gts1] quit
3、在RA的接口GE1/0/0上应用自适应整形模板
[RA] interface gigabitethernet 1/0/0
[RA-GigabitEthernet1/0/0] qos gts adaptation-profile gts1 //应用自适应整形模板gts1
[RA-GigabitEthernet1/0/0] quit
4、在RouterA上配置流分类,区分出数据、视频和语音业务
[RA] traffic classifier data //创建名称为data的流分类
[RA-classifier-data] if-match dscp af11 //匹配DSCP优先级af11数据
[RA-classifier-data] quit
[RA] traffic classifier video
[RA-classifier-video] if-match dscp af21 //匹配DSCP优先级af21视频
[RA-classifier-video] quit
[RA] traffic classifier voice
[RA-classifier-voice] if-match dscp ef //匹配DSCP优先级ef视频
[RA-classifier-voice] quit
5、配置流行为,配置匹配分类规则的报文进入指定队列并为其分配带宽
[RA] traffic behavior data //创建名称为data的流行为
[RA-behavior-data] queue af bandwidth pct 30 //定义data行为进入af队列可确保的最小带宽为30%
[RA-behavior-data] quit
[RA] traffic behavior video
[RA-behavior-video] queue af bandwidth pct 60 //定义video行为进入af队列可确保的最小带宽为60%
[RA-behavior-video] quit
[RouterA] traffic behavior voice
[RA-behavior-voice] queue llq bandwidth pct 5 //定义voice行为进入LLQ队列配置允许的最大带宽为5%
[RA-behavior-voice] quit
6、创建流策略,将流分类和对应流行为关联起来
[RA] traffic policy p1
[RA-trafficpolicy-p1] classifier voice behavior voice
[RA-trafficpolicy-p1] classifier video behavior video
[RA-trafficpolicy-p1] classifier data behavior data
[RA-trafficpolicy-p1] quit
7、在RA上将流策略应用到接口GE1/0/0上
[RA] interface gigabitethernet 1/0/0
[RA-GigabitEthernet1/0/0] ip address 192.168.1.2 24
[RA-GigabitEthernet1/0/0] traffic-policy p1 outbound
[RA-GigabitEthernet1/0/0] quit
边栏推荐
- Network security (6)
- 如何为OpenHarmony做贡献
- 当 update 修改数据与原数据相同时会被更新吗?
- Flowable UI production flow chart
- User identity identification and account system practice
- 数仓项目踩坑记录与解决方法总结
- Senparc.Weixin.Sample.MP源码剖析
- How to query express logistics and filter out no information doc No. to delete or copy
- C # use restsharp library to realize post request
- 用户身份标识与账号体系实践
猜你喜欢
mysql将部分表名统一转换为大写
文件重命名后,怎样将新旧文件名及所在位置导出到excel
存算一体与存内计算计算杂谈
mysql怎么换成中文
Use cpolar to publish raspberry pie web pages (improvement of cpolar tunnel)
VS2015采用loadlibrary方式调用dll库
Nucleic acid scanning code registration experience (how to improve the correct character recognition rate of OCR)
【Unity入门计划】C#与Unity-了解类和对象
On the charm of code language
[machine learning] naive Bayesian code practice
随机推荐
Opencv introductory basic learning
Unity3d hodgepodge
On contract testing
redis可视化工具读取数据乱码问题解决
Network security (6)
redis命令[逐渐完善]
乱打日志的男孩运气怎么样我不知道,加班肯定很多
Flowable UI制作流程图
Outlook tutorial, how to create an electronic signature in outlook?
Discussion on the integration of storage and calculation and the calculation in storage
Flowable 基础篇2
如何介绍自己的项目经验?
The gold content of PMP certificate has been increased again and included in the scope of Beijing work residence permit
【机器学习】朴素贝叶斯代码练习
Flowable 基础篇1
[machine learning] naive Bayesian code practice
Briefly describe the difference between heap and stack
VS2015采用loadlibrary方式调用dll库
The use and Simulation of string function, character function and memory function
pytest+allure生成测试报告