八、QOS队列调度与报文丢弃

—————————————————

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、拥塞避免应用场景

拥塞避免可以在网络产生拥塞、或者拥塞加剧时,主动丢弃优先级较低的报文,调整网络流量,缓解网络压力,以保证高优先级报文正常通过。

当两个局域网用户需要通过广域网进行通信时,由于广域网带宽小于局域网的带宽,位于广域网和局域网之间的边缘交换机将发生拥塞,此时可以通过配置拥塞避免,主动丢弃优先级较低的报文(比如数据报文等),减少网络的拥塞,保证高优先级业务正常运行。

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
没有QoS(Quality of Service,服务质量)数据包调度程序意味着网络中的数据包无法按照特定的优先级进行调度和处理。这会导致一些问题。首先,网络上的数据包可能会竞争有限的带宽资源,这可能导致高优先级的数据包被延迟、丢失或拥塞,从而降低了网络的性能。其次,对于实时和敏感的应用程序(如语音通话或视频流),缺乏QoS调度程序可能导致数据包的延迟、抖动和不稳定性,影响用户的体验和服务质量。 缺乏QoS调度程序还可能导致网络上的数据包选择性地受到不公平的待遇。对于使用网络的不同用户或应用程序,缺乏QoS调度程序可能会导致某些用户或应用程序能够优先获得网络资源,而其他用户或应用程序则经常受到限制和不稳定的网络连接。 另外,缺乏QoS调度程序还意味着网络管理员无法对网络流量进行细粒度的管理和控制。网络管理员通常希望能够根据业务需求和用户优先级来配置网络,以确保重要的流量能够得到高质量的服务。然而,如果没有QoS调度程序,网络管理员将无法根据需要规划和分配网络资源,这使得网络管理变得更加困难。 总之,没有QoS数据包调度程序将导致网络的服务质量下降,影响到用户的体验和网络性能,同时也给网络管理员带来了管理上的困扰。因此,QoS数据包调度程序在网络中的部署非常必要。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值