三层交换机之QoS特性

概述

QoS(Quality of Service)是为了解决网络拥塞、时延、抖动、丢包等问题的一种技术。

传统的QoS基于端口进行流量调度,HQoS(Hierarchical QoS)指层次化QoS,是一种既能控制某端口下更细粒度的用户流量,又能同时根据用户内业务的优先级进行调度的QoS技术。

队列调度算法

队列调度算法的公平性、分组排队时延等性能是影响QoS特性的重要因素。

1、RR(Round-Robin)轮询

RR轮询调度通过给每个业务流队列分配时间片,通过时间片轮转使所有业务流队列轮流进行报文转发。

RR调度给每条队列分配相同的时间片,这样的调度方式对等长队列(指报文个数)是公平的,但是通常业务流队列是由不定长分组流(指报文大小)构成的,因此不同队列就可能具有不同的分组长度,分组长度大的队列会接收更多的服务需求,这是队列之间不公平性的缘起。此外,RR调度无法满足高时延业务的要求。

为了改善RR算法的时延特性和其在变长分组环境下的不公平性,出现了一些改进算法:

1.1、WRR(Weight RR)加权轮询

WRR算法为每个队列分配一个权值,当轮询到某个队列时,根据权值大小决定其可转发的分组报文个数。

WRR算法的缺点是,当分组报文大小不等时,不能公平的分配带宽。

1.2、DRR(Defict RR)差额轮询

DRR算法规定,每个调度轮询中各队列可接收的服务量(指总报文字节数)定额为Q。每一轮循环中,业务流中超过Q的分组将不再处理,累积到下一轮。

DRR算法提高了变长分组环境中算法的公平性,但是在时延特性上有明显地缺陷,即每一轮询中中,队列的服务顺序是静态指定的,不能根据业务的属性进行动态调整。

1.3、URR(Urgency-based RR)紧急轮询

URR算法是为了改善RR算法的时延特性而产生的,在每一轮循环前,URR算法为每个队列分配U值,然后按照U值大小顺序为各队列提供服务。

URR算法在公平性上仍然存在问题。

2、PQ(Strict-Priority Queue)调度

PQ调度即严格优先级调度,共有4个优先级队列——High、Medium、Normal、Low。根据协议类型、报文大小、协议端口号等,划分不同优先级队列。

PQ调度按照优先级入不同的队列,如果队列满,则报文丢弃。严格按照队列优先级调度,当高优先级队列中有报文时,低优先级队列得不到调度。

PQ调度特别适合于对延迟、延迟抖动敏感的业务,采用PQ调度,可以让关键业务如ERP、视频业务的报文进入最高优先级队列,保证在拥塞时总是有限获得转发服务。

应用场景分析

实际使用中,单纯采用PQ调度时,低优先级队列长期得不到调度;而单纯采用DRR调度,高时延要求业务(如语音)得不到优先调度。因此通常要使用PQ+DRR结合调度模式。用户可以指定其中几组队列进行PQ调度,其他队列进行DRR调度。

如图所示,设备首先按照PQ调度Queue 5~7队列中的业务流,只有当这些队列中的报文转发完毕之后,才开始以DRR方式调度Queue 0~4队列中的业务流。

posted on 2020-01-17 10:38  者旨於陽  阅读(2053)  评论(0编辑  收藏  举报

导航