当前位置:网站首页>八、QOS队列调度与报文丢弃
八、QOS队列调度与报文丢弃
2022-07-28 19:41:00 【SEVENBUS】
—————————————————
QOS队列调度与报文丢弃
前面的优先级映射或MQC对报文进行分类和标记,分类之后要做什么?就是根据分类的结果对报文进行流量控制处理。拥塞管理和拥塞避免就是两种流量控制手段。
如下:当LSW1上行流量大于接口带宽时,那么在出方向就有可能发生网络拥塞,此时就需要配置拥塞管理和拥塞避免。
——————————————————————————————————————————————————
1、拥塞管理
当网络硬件设备能力无法承载各种应用对带宽的需求时,网络拥塞无法避免。拥塞管理就是在网络发生拥塞时,通过队列技术对流量进行管理和控制,优先保证某类报文的时延等QOS服务质量。
队列就好比我们平时去银行办理业务时需要排队,假设银行只提供一个窗口服务,当出现VIP,VIP的业务被优先处理,当VIP办理完毕,普通用户才能继续办理业务。
——————————————————————————————————
2、拥塞管理技术
拥塞管理技术的基础是队列技术,交换机上每个出接口都有8个列队,分别为0-7,每个列队可以缓存一定的报文数量。当网络发生拥塞时,报文会根据本地优先级与队列之间的映射关系,自动将报文流送入不同的队列。不同的拥塞管理技术就可以根据各自的调度算法,实现对队列流量按照优先级发送。
下面介绍常用的两种调度方式。PQ调度、WRR调度。
——————————————————————————————————
2.1、PQ调度
优先队列PQ(Priority Queuing)调度。严格按照队列优先级的高低顺序进行调度。只有高优先级队列报文全部调度完毕,低优先级才有调度机会。配置PQ调度后,按照7-0的优先级依次进行调度,发送报文。
假设银行只有一个窗口服务,用户根据自己银行卡的额度取号排队时,分为A、B、C三种号,按照级别规定优先级A>B>C。即A号段的顾客优先服务,当没有A,B号段的顾客获得服务,依次进行。这种方式缺点也很明显,B和C号段的用户可能因为长时间得不到服务而产生强烈不满。
如图:队列优先级1>2>3,报文出队的时候,首先让高优先级中的报文发送,直到高优先级报文发送完,然后发送中等优先级报文,直到发送完,在发送低优先级列队。
如果中级优先级在等待过程中,高优先级队列还有报文不停的进入队列,则中优先级始终处于等待状态。
如果高优先级发送完毕,中优先级队列中报文4、5已经发送完毕,在报文6被发送之前,高优先级队列又有报文进入队列,则优先处理高优先级报文。
——————————————————————————————————
2.2、WRR调度
加权轮询调度WRR(Weight Round Robin)在队列之间进行轮流调度,根据每个队列的权重来调度各队列中的报文流。
如果银行有3个窗口工作且采用WRR调度方式,三个窗口权重比例:50、25、25,按照业务熟练程度,VIP窗口处理2位客户时,另外两个窗口分别处理一个客户,这样保证所有窗口的客户都可以得到服务,但是VIP客户排队时间更短。
交换机根据每个队列的权值进行轮询调度。调度一轮计数器减1,计数器减到0的队列不参加调度。当所有队列的计数器减到0时,开始新一轮调度。详细过程如下:
首先计数器初始化:Count [1] =2,Count [2] =1 ,Conut [3] =1。
第一次轮询:
从队列1取出报文1发送,Count [1] =1;从队列2取出报文5发送,Count [2] =0,从队列3取出报文8发送,Conut [3] =0。
第二次轮询:
从队列1取出报文2发送,Count [1] =0;由于Count [2] =0,Conut [3] =0。队列2和队列3不参与次轮调度。
此时,Count [1] =0;由于Count [2] =0,Conut [3] =0,计数器重新初始化:Count [1] =2,Count [2] =1 ,Conut [3] =1。
第三次轮询:
从队列1取出报文3发送,Count [1] =1;从队列2取出报文6发送,Count [2] =0,从队列3取出报文9发送,Conut [3] =0。
第四个轮询:
从队列1取出报文4发送,Count [1] =0,由于Count [2] =0,Conut [3] =0。队列2和3不参与次轮调度。
此时,Count [1] =0,Count [2] =0,Conut [3] =0。将计数器重新初始化:Count [1] =2,Count [2] =1 ,Conut [3] =1。
从以上统计看,各队列中的报文被调度的次数与该队列的权值成正比,权值越大被调度的次数相对越多。如果该端口带宽为100Mbit/s,则可以保证最低权重的队列至少获得25Mbit/s带宽,避免了采用PQ调度时,低优先级中的报文可能很长时间得不到服务的缺点。但是WRR调度无法保证对时延要求高的业务报文优先发送。
PQ调度和WRR调度各有优缺点,WRR调度可以根据相对公平的调度机制,保证各业务都能得到一定的服务,但是对低时延业务无法保证及时调度。PQ调度可以保证低时延业务及时调度,但是存在低优先级业务一直无法被调度情况。因此,实际组网中通常使用PQ WRR混合调度方式来实现拥塞管理。通常将对时延要求较高的业务流量进入的队列配置PQ调度,其他队列配置为WRR调度。当PQ队列有流量时,优先处理。PQ队列没有流量在按照WRR队列进行调度。
对于盒式交换机,如果配置PQ WRR混合调度,只需要将配置PQ调度的队列权重配置为0即可。
假设需要配置队列1为PQ调度,队列2和队列5为WRR调度。以S5720EI为例。
[LSW1] interface GigabitEthernet 0/0/3
[LSW1-GigabitEthernet0/0/3] qos wrr
[LSW1-GigabitEthernet0/0/3] qos queue 1 wrr weight 0 //配置队列1为PQ调度
[LSW1-GigabitEthernet0/0/3] qos queue 2 wrr weight 40
[LSW1-GigabitEthernet0/0/3] qos queue 5 wrr weight 60
对于框式交换机,如果要配置PQ WRR混合调度,只需要将对应的队列设置为PQ调度。
[LSW1] interface GigabitEthernet 1/0/3
[LSW1-GigabitEthernet1/0/3] qos pq 1 //配置队列1为PQ调度
[LSW1-GigabitEthernet1/0/3] qos queue 2 wrr weight 40
[LSW1-GigabitEthernet1/0/3] qos queue 5 wrr weight 60
除了上述调度,交换机还支持DRR、WFQ等多种拥塞管理方法。
——————————————————————————————————
2.3、DRR调度
DRR(Deficit Round Robin)调度也是循环调度,但是相对于WRR只考虑报文个数的问题。DRR同时考虑报文的大小,在调度过程中考虑包长因素以达到调度速率公平性。DRR调度中,Deficit表示队列的带宽赤子,初始值为0。每次调度前,系统按权重为各队列分配带宽,计算Deficit值,如果队列的Deficit值大于0。则不参与调度。
假如我们规定银行3个窗口根据现金额度来办理业务,按照2:1:1权重为VIP窗口和两个普通窗口分配现金,现在每轮为VIP客户分配5000元现金,为普通窗口分配2500元现金。
第一轮:VIP客户提取10000元,但是2个普通用户分别提取2000元,则VIP窗口在办完第一轮业务后剩余额度为-5000,普通窗口额度分别为500元。
第二轮:VIP窗口分配5000元,额度为0,普通分配2500元额度为3000。因此在第二轮VIP窗口不办理业务,普通窗口办理业务。
如此循环调度的话,DRR调度还是没能解决WRR调度中低延时需求业务得不到及时调度的问题。
单采用DRR调度的话,对于时延需求的业务如语音视频,得不到优先调度,如果将两种方式结合起来PQ+WDRR调度,不仅能发挥两种调度优势,还能克服两种调度的各自缺点。
和PQ+WRR调度一样,接口上的8个队列可以分为两组,用户可以指定其中的某几组队列进行PQ调度,其他进行WDRR调度。
在调度时,首先按照PQ优先调度7-5队列,等全部调度完毕,才开始以DRR调度4-0。
——————————————————————————————————
2.4、WFQ调度
公平队列FQ(Fair Queuing)的目的是尽可能公平的分项网络资源,使所有流的延迟和抖动达到最优。
不同的队列获得公平的调度机会,总体上均衡各个流的延迟。短报文和长报文获得公平调度,如果不同队列间同时存在多个长报文和短报文等待发送。让短报文优先获得调度,总体上减少各个流的报文间的抖动。
与FQ相比,WFQ(Weighted Fair Queue)在计算报文调度次序时增加了优先权方面的考虑,从统计上,WFQ使高优先权的报文获得优先调度的机会多于低优先级的报文。
WFQ调度在报文入队列之前,先对流量进行分类,两种方式分类:
1、按流的会话信息分类
根据报文的协议类型、源和目的TCP或UDP端口号、源和目的IP地址,ToS域中的优先级位等自动进行分类,并且尽可能多的提供队列,以将每个流均匀的放入不同的队列中,从而在总体上均衡各个流的延迟,在出队列时,WFQ按流的优先级来分配每个流应占有的带宽。优先级越小,获得带宽越少,反之。这种方式只有CBQ的Default-class支持。
2、按优先级分类
通过优先级映射把流量标记为本地优先级,每个本地优先级对应一个队列号,每个接口预分配8个队列,报文根据队列号进入队列。默认,队列的WFQ权重相同,流量平均分配接口带宽。用户可以修改权重,高优先权和低优先权按权重比例分配带宽。
WFQ调度图
PQ+WFQ调度和PQ+WRR相似,采用PQ,低优先列队中报文长期得不到带宽,而单纯采用WFQ调度时对时延需求业务语音得不到优先调度。
PQ+WFQ调度
在调度时,首先按照PQ方式优先调度7-5队列中报文流,只有这些队列报文全部调度完毕,才开始以WFQ方式调度4-0队列中的报文流。4-0队列包含自己的权值。
——————————————————————————————————
3、拥塞管理应用场景
拥塞管理可以实现对不同的业务按照不同的优先级进行调度,在QOS方案部署中比较常用。
在企业网络中,当共享同一网络的多种业务竞争相同的资源时,可能会产生拥塞,高优先级业务无法得到保证,此时用户可以为语音、视频和数据等多种不同业务标记不同的优先级,报文根据不同优先级进入不同队列的调度算法,实现业务的差分服务。
——————————————————————————————————
4、拥塞避免
拥塞避免(Congestion Avoidance)是指通过监视网络资源(如队列或内存缓冲区)的使用情况,在拥塞发生或有加剧的趋势时主动丢弃报文,通过调整网络的流量来解除网络过载的一种流控机制。
两种丢弃报文方式:尾部丢包策略和WRED
1、传统的尾部丢包策略
传统的丢包策略采用尾部丢弃(Tail-Drop)的方法。当队列的长度达到最大值后,所有新入队列的报文(缓存在队列尾部)都将被丢弃。
这种丢弃策略会引发TCP全局同步现象,导致TCP连接始终无法建立。所谓TCP全局同步现象如图,三种颜色表示三条TCP连接,当同时丢弃多个TCP连接的报文时,将造成多个TCP连接同时进入拥塞避免和慢启动状态而导致流量降低,之后又会在某个时间同时出现流量高峰,如此反复,使网络流量忽大忽小。
2、WRED
为避免TCP全局同步现象,出现了RED(Random Early Detection)技术。RED通过随机地丢弃数据报文,让多个TCP连接不同时降低发送速度,从而避免了TCP的全局同步现象。使TCP速率及网络流量都趋于稳定。
流队列支持基于DSCP或IP优先级进行WRED丢弃。每一种优先级都可以独立设置报文丢包的上下门限及丢包率。当队列中报文的总长度达到丢弃的下限时,开始丢包。随着队列中报文总长度的增加,丢包率不断增加,最高丢包率不超过设置的丢包率。直至队列中报文的总长度达到丢弃的上限,报文全部丢弃。这样按照一定的丢弃概率主动丢弃队列中的报文,从而在一定程度上避免拥塞问题。
——————————————————————————————————
5、拥塞避免应用场景
拥塞避免可以在网络产生拥塞、或者拥塞加剧时,主动丢弃优先级较低的报文,调整网络流量,缓解网络压力,以保证高优先级报文正常通过。
当两个局域网用户需要通过广域网进行通信时,由于广域网带宽小于局域网的带宽,位于广域网和局域网之间的边缘交换机将发生拥塞,此时可以通过配置拥塞避免,主动丢弃优先级较低的报文(比如数据报文等),减少网络的拥塞,保证高优先级业务正常运行。
边栏推荐
- Redis cache avalanche, cache penetration, cache breakdown
- Database -- use of explain
- MySQL sorts out the review content -- with mind map
- DLL decompile (decompile encrypted DLL)
- Introduction to blue team: efficiency tools
- Sharkteam completes the safety audit of flow ecological NFT market matrixmarket
- Capture video by buffering
- Unity - script lifecycle
- BUUCTF做题Upload-Labs记录pass-01~pass-10
- What functions does MySQL have? Don't look everywhere. Just look at this.
猜你喜欢
怎么理解数据网格(Data Mesh)
How NPM switches Taobao source images
4.2 Virtual Member Functions
Basic operations of unity3d scene production
Lazada店铺如何产号高效补单?(测评自养号技术详解篇)
58岁安徽人,干出瑞士今年最大IPO 投资界
(turn) bubble sorting and optimization details
Meaning of disk status of EMC DataDomain
The development of smart home industry pays close attention to edge computing and applet container technology
SharkTeam完成Flow生态NFT市场MatrixMarket的安全审计
随机推荐
4.2 Virtual Member Functions
Guanghetong & Qualcomm Internet of things technology open day successfully held
Backup and recovery of SQL Server database
npm如何切换淘宝源镜像
1945. 字符串转化后的各位数字之和
职场高薪 |「中高级测试」面试题
4.1 Member的各种调用方式
Invalid prompt object name in SQL Server
(PMIC) full and half bridge drive csd95481rwj PDF specification
Lazada店铺如何产号高效补单?(测评自养号技术详解篇)
ZCMU--5066: 黑暗长廊
Bug of Dom4j
Unit editor details
Moco V2: further upgrade of Moco series
ctfshow 网络迷踪做题记录(1)
35 道 MySQL 面试必问题图解,这样也太好理解了吧
Efficientformer: lightweight vit backbone
How to build a foreign environment for the self-supporting number of express evaluation? How much does it cost?
DELTA热金属检测器维修V5G-JC-R1激光测量传感器/检测仪原理分析
The development of smart home industry pays close attention to edge computing and applet container technology