CN102082765A - 一种Linux环境下基于用户和业务的QoS*** - Google Patents
一种Linux环境下基于用户和业务的QoS*** Download PDFInfo
- Publication number
- CN102082765A CN102082765A CN2009101994282A CN200910199428A CN102082765A CN 102082765 A CN102082765 A CN 102082765A CN 2009101994282 A CN2009101994282 A CN 2009101994282A CN 200910199428 A CN200910199428 A CN 200910199428A CN 102082765 A CN102082765 A CN 102082765A
- Authority
- CN
- China
- Prior art keywords
- formation
- message
- llq
- user
- queue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种Linux环境下基于用户和业务的QoS***,该***包括过滤规则库、过滤器、分类规则库、分类器、队列维护模块,所述的过滤规则库与过滤器连接,所述的分类规则库与分类器连接,所述的过滤器、分类器、队列维护模块依次连接,所述的队列维护模块采用多级队列+LLQ结构,所述的队列维护模块调度发送报文时采用DWRR算法。与现有技术相比,本发明具有***实现所需资源降到最低、保证了***的稳定性等优点。
Description
技术领域
本发明涉及一种QoS***,尤其是涉及一种Linux环境下基于用户和业务的QoS***。
背景技术
目前的IP网络承载多种业务的应用,如多媒体业务、IPTV业务、VoIP业务、P2P业务,其中P2P业务尤为突出。因此,基于业务的流量控制必不可少。与此同时,一个大型局域网内部的网络用户必定会根据不同的身份或职位而分为许多等级,针对这些不同等级的用户,其网络带宽的分配也将不同。这一需求需要一种比较理想的构架来实现。
Linux内核从Kernel 2.1.105版本开始已经支持QoS,其工作机制是当网络产生拥塞时,根据用户的配置,在数据输出端针对不同的数据流建立不同的输出队列,进行不同的调度和处理,从而实现流量控制。这将从一定程度上解决由于早期IP网络采用先进先出FIFO机制而产生的网络拥塞问题。分组进入采用Linux的接收***后的处理流程如图1所示。
在Linux***中,根据***对分组进行流量控制过程中所执行的一系列操作,可以将Linux的流量控制模块分为三大元素,如图2所示。Linux***的流量控制是对以下三大对象的有机组合:
1)队列规则(Queue Discipline):控制队列中的数据包的发送过程;
2)分类(Classes):对到达网络设备的数据包根据其QoS属性(如速率、优先级等),将数据包划分为不同的类别;
3)过滤器(Filters):根据数据包的包头信息(如IP地址、ToS值、协议类型、端口等)对数据包进行分类。
QoS的调度算法有很多种。不同的调度算法根据控制目标的不同而具有不同的算法思想和算法复杂度。常见的有调度算法有以下几种:
1)先进先出队列FIFO:这是一种从实现角度而言最简单的队列调度算法,按照分组进入队列的顺序出队。
2)优先级队列PQ:分组在通过分类器后被安排进入到拥有不同优先级的队列中。调度思想是首先调度高优先级队列直到该队列中没有分组了才调度次高优先级的队列。因此也称为严格优先级队列。
3)加权公平队列WFQ:将分组按照流进行分类,每个流安排一个队列并赋一个优先级值,根据队列的优先级值进行带宽分配,使得***可以对单个业务流进行精细的控制,但同时也增加算法复杂度。
4)权值循环轮转WRR:将分组按照不同等级的业务进入到不同的队列,根据业务优先级的高低为队列分配权值,调度时轮询每个队列,保证每个队列都得到一定的服务时间。
WFQ虽然能够对网络中的报文进行基于流的精细控制,但其算法复杂度也相对增加许多,而WRR的算法执行思想比较符合本***的队列结构,算法复杂度也相对简单许多。但是WRR算法在处理等长报文时能够体现出较好的运算性能,而对于非等长报文则一筹莫展,而网络中的报文长度几乎各不相等,这就需要采用WRR的演进算法DWRR了,以克服WRR算法对变长报文的队列不能提供精确控制的缺点。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种Linux环境下基于用户和业务的QoS***。
本发明的目的可以通过以下技术方案来实现:
一种Linux环境下基于用户和业务的QoS***,其特征在于,该***包括过滤规则库、过滤器、分类规则库、分类器、队列维护模块,所述的过滤规则库与过滤器连接,所述的分类规则库与分类器连接,所述的过滤器、分类器、队列维护模块依次连接,所述的队列维护模块采用多级队列+LLQ结构,所述的队列维护模块调度发送报文时采用DWRR算法。
所述的过滤规则库包括五元组、ToS值信息。
所述的分类规则库包括类别号、队列号。
所述的多级队列+LLQ结构为在多级队列的三级队列中增加一条LLQ队列,其中该LLQ队列的优先级高于三级队列中的其他任何队列,通过令牌桶为LLQ队列分配一个最大预留带宽,若网络没有发生拥塞时,进入LLQ的报文第一时间被转发,而网络发生拥塞时,进入LLQ的报文则将被限速,对于超出规定流量的报文将被丢弃,***总是优先发送LLQ中的报文直到LLQ中没有报文时或者超过为LLQ配置的最大预留带宽时,才调度发送三级队列中其他队列的报文。
所述的DWRR算法具体步骤如下:
1)为每个队列设置一个差值计数器DC,DC的值就是调度器每次可以发送的字节总数;
2)根据队列权值的大小比例,为每个队列设置一个quantity变量,变量代表的是分配给队列的字节发送量;
3)调度器每次访问一个非空队列,如果队列头部的报文字节数大于DC,那么调度器移动到下一个队列,如果队列头部的报文字节数小于或者等于DC,那么调度器就转发该报文并将DC的值减少改报文的字节数;
4)继续这个过程,直到该队列拖布报文的字节数大于DC为止;
5)剩余的值累积到下次使用,如果队列为空,则DC设置为0,这时调度器将服务下一个非空队列。
所述的调度器位于队列维护模块中。
与现有技术相比,本发明具有以下优点:
1)队列维护模块采用了多级队列+LLQ的设计,实现了对用户和业务进行双重控制的目的,同时LLQ也保证了低延迟类业务的时延要求;
2)发送调度时采用了DWRR算法,相对公平的根据业务优先级对分组实行调度,同时还保证了最小的算法复杂度,使***实现所需资源降到最低,保证了***的稳定性。
附图说明
图1为本发明一种Linux环境下基于用户和业务的QoS***的现有技术中Linux流控过程;
图2为本发明一种Linux环境下基于用户和业务的QoS***的现有技术中Linux内核流量控制框架;
图3为本发明一种Linux环境下基于用户和业务的QoS***的结构框架图;
图4为本发明一种Linux环境下基于用户和业务的QoS***的多级队列+LLQ的结构图;
图5为本发明一种Linux环境下基于用户和业务的QoS***的DWRR算法示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
实施例
如图3所示,一种Linux环境下基于用户和业务的QoS***,其特征在于,该***包括过滤规则库d、过滤器a、分类规则库e、分类器b、队列维护模块c,所述的过滤规则库d与过滤器a连接,所述的分类规则库e与分类器b连接,所述的过滤器a、分类器b、队列维护模块c依次连接,所述的队列维护模块c采用多级队列+LLQ结构,所述的队列维护模块c调度发送报文时采用DWRR算法。所述的过滤规则库d包括五元组、ToS值信息。所述的分类规则库e包括类别号、队列号。
如图4所示,所述的队列维护模块采用多级队列+LLQ结构,假设将所有的网络用户分为三类,用户组1、组2、组3,其中用户组1为最高级别的用户,以下即称超级用户,而用户组2的级别高于用户组3,以下统称普通用户。以上的队列设计是考虑到了用户和业务双重因素。
由于超级用户是一个网络中特殊用户组,他们相对普通用户享有较高的带宽保证,因此,在设计中将他们与普通用户区别开,单独为他们开辟一条网络通道,借此保证他们的用户带宽。针对普通用户,他们将共享网络中剩余的带宽资源。在每个用户组中维护一组队列,分别表示不同类型的业务应用,这是一级队列。在单个用户组外,普通用户组内另外维护一组队列,同样表示不同应用,这是普通用户的二级队列,根据普通用户中不同用户组的级别按照不同的权重调度一级队列中的分组,实现普通用户的用户控制。超级用户则是在其内部分别维护一组一级队列和二级队列,二级队列根据其一级队列业务的级别按照不同权重进行调度,实现超级用户自身的业务控制。在所有用户组外维护一个三级队列,根据超级用户的保证带宽和普通用户不同业务的级别分别调度各自的二级队列,实现超级用户的用户控制和普通用户的业务控制。以上的设计已经实现了对用户和业务进行双重控制的目的。
本发明针对实际应用中对网络时延特性要求较高的一类应用层业务,如网络中的RTP流量(IPTV、VoIP等),提供了较好的低延迟服务,以保证这类业务的业务质量和用户满意度。在所述多级队列的第三级增加一条LLQ队列,为低延迟业务单独开辟一条网络通道,只调度超级用户和普通用户的低延迟业务。
LLQ(Low Latency Queueing,低延迟队列)是一个具有较高优先级的队列,在所述的多级队列中,它的优先级高于三级队列中的其他任何队列。***为LLQ分配一个最大预留带宽,当报文被调度出队时,若LLQ中有报文则总是优先发送LLQ中的报文直到LLQ中没有报文时或者超过为LLQ配置的最大预留带宽时,才调度发送其他三级队列中其他队列的报文。在报文进入LLQ时,若网络没有发生拥塞,则LLQ的报文能在第一时间被发送出去;而网络发生拥塞时,进入LLQ的报文则将被限速,对于超出规定流量的报文将被丢弃。这样在接口不发生拥塞的情况下可以使属于LLQ的报文能获得空闲的带宽在,而在接口拥塞的情况下又可以保证属于LLQ的报文不会占用超出规定的带宽,保护了其他报文的应得带宽。配置预留带宽可以通过在LLQ的队列前设置一个令牌桶来实现。另外由于只要LLQ中有报文***就会发送LLQ中的报文,所以LLQ中的报文被发送的延迟最多是接口发送一个最大长度报文的时间,无论是延时还是延时抖动LLQ都可以将之降低为最低限度,这为对延时敏感的应用如VoIP业务提供了良好的服务质量保证。
如图5所示,所述的队列维护模块调度发送报文时采用DWRR算法。该算法是算法复杂度和处理性能折中的算法,保证了***高速的运算性能和高效的转发性能。DWRR是WRR的一种衍生算法,它克服了WRR算法对变长报文的队列不能提供精确控制的缺点。具体算法如下:
1)为每个队列设置一个差值计数器DC,DC的值就是调度器每次可以发送的字节总数;
2)根据队列权值的大小比例,为每个队列设置一个quantity变量,变量代表的是分配给队列的字节发送量;
3)调度器每次访问一个非空队列,如果队列头部的报文字节数大于DC,那么调度器移动到下一个队列,如果队列头部的报文字节数小于或者等于DC,那么调度器就转发该报文并将DC的值减少改报文的字节数;
4)继续这个过程,直到该队列拖布报文的字节数大于DC为止;
5)剩余的值累积到下次使用,如果队列为空,则DC设置为0,这时调度器将服务下一个非空队列。
由于设置了差值计数器,虽然限制了它可以发送的字节数量,但只会影响本队列的性能,而不会影响到其他队列,实现了业务隔离。
Claims (6)
1.一种Linux环境下基于用户和业务的QoS***,其特征在于,该***包括过滤规则库、过滤器、分类规则库、分类器、队列维护模块,所述的过滤规则库与过滤器连接,所述的分类规则库与分类器连接,所述的过滤器、分类器、队列维护模块依次连接,所述的队列维护模块采用多级队列+LLQ结构,所述的队列维护模块调度发送报文时采用DWRR算法。
2.根据权利要求1所述的一种Linux环境下基于用户和业务的QoS***,其特征在于,所述的过滤规则库包括五元组、ToS值信息。
3.根据权利要求1所述的一种Linux环境下基于用户和业务的QoS***,其特征在于,所述的分类规则库包括类别号、队列号。
4.根据权利要求1所述的一种Linux环境下基于用户和业务的QoS***,其特征在于,所述的多级队列+LLQ结构为在多级队列的三级队列中增加一条LLQ队列,其中该LLQ队列的优先级高于三级队列中的其他任何队列,通过令牌桶为LLQ队列分配一个最大预留带宽,若网络没有发生拥塞时,进入LLQ的报文第一时间被转发,而网络发生拥塞时,进入LLQ的报文则将被限速,对于超出规定流量的报文将被丢弃,***总是优先发送LLQ中的报文直到LLQ中没有报文时或者超过为LLQ配置的最大预留带宽时,才调度发送三级队列中其他队列的报文。
5.根据权利要求1所述的一种Linux环境下基于用户和业务的QoS***,其特征在于,所述的DWRR算法具体步骤如下:
1)为每个队列设置一个差值计数器DC,DC的值就是调度器每次可以发送的字节总数;
2)根据队列权值的大小比例,为每个队列设置一个quantity变量,变量代表的是分配给队列的字节发送量;
3)调度器每次访问一个非空队列,如果队列头部的报文字节数大于DC,那么调度器移动到下一个队列,如果队列头部的报文字节数小于或者等于DC,那么调度器就转发该报文并将DC的值减少改报文的字节数;
4)继续这个过程,直到该队列拖布报文的字节数大于DC为止;
5)剩余的值累积到下次使用,如果队列为空,则DC设置为0,这时调度器将服务下一个非空队列。
6.根据权利要求5所述的一种Linux环境下基于用户和业务的QoS***,其特征在于,所述的调度器位于队列维护模块中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101994282A CN102082765A (zh) | 2009-11-26 | 2009-11-26 | 一种Linux环境下基于用户和业务的QoS*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101994282A CN102082765A (zh) | 2009-11-26 | 2009-11-26 | 一种Linux环境下基于用户和业务的QoS*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102082765A true CN102082765A (zh) | 2011-06-01 |
Family
ID=44088519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101994282A Pending CN102082765A (zh) | 2009-11-26 | 2009-11-26 | 一种Linux环境下基于用户和业务的QoS*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102082765A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102333026A (zh) * | 2011-06-13 | 2012-01-25 | 中兴通讯股份有限公司 | 报文转发方法及装置 |
CN102377665A (zh) * | 2011-08-12 | 2012-03-14 | 华南理工大学 | 一种基于IPv6的RFID路由器QoS方法 |
CN102571607A (zh) * | 2012-02-28 | 2012-07-11 | 大连梯耐德网络技术有限公司 | 一种网络流速分配*** |
CN102710506A (zh) * | 2012-05-17 | 2012-10-03 | 西安交大捷普网络科技有限公司 | 基于linux内核的高性能流控方法 |
CN103873383A (zh) * | 2012-12-12 | 2014-06-18 | ***通信集团上海有限公司 | 一种队列调度方法和装置 |
CN104092626A (zh) * | 2014-07-22 | 2014-10-08 | 太仓市同维电子有限公司 | 保障ip融合通信***服务质量的方法 |
CN104348751A (zh) * | 2013-07-31 | 2015-02-11 | 中兴通讯股份有限公司 | 虚拟输出队列授权管理方法及装置 |
CN105262703A (zh) * | 2015-09-25 | 2016-01-20 | 中铁工程装备集团有限公司 | 一种基于双重优先级的路由带宽分配方法 |
CN108471388A (zh) * | 2017-02-23 | 2018-08-31 | 中兴通讯股份有限公司 | 一种实现用户QoS的方法、装置及基站 |
-
2009
- 2009-11-26 CN CN2009101994282A patent/CN102082765A/zh active Pending
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012171461A1 (zh) * | 2011-06-13 | 2012-12-20 | 中兴通讯股份有限公司 | 报文转发方法及装置 |
CN102333026A (zh) * | 2011-06-13 | 2012-01-25 | 中兴通讯股份有限公司 | 报文转发方法及装置 |
CN102377665A (zh) * | 2011-08-12 | 2012-03-14 | 华南理工大学 | 一种基于IPv6的RFID路由器QoS方法 |
CN102377665B (zh) * | 2011-08-12 | 2014-04-02 | 华南理工大学 | 一种基于IPv6的RFID路由器QoS方法 |
CN102571607B (zh) * | 2012-02-28 | 2014-11-05 | 大连梯耐德网络技术有限公司 | 一种网络流速分配*** |
CN102571607A (zh) * | 2012-02-28 | 2012-07-11 | 大连梯耐德网络技术有限公司 | 一种网络流速分配*** |
CN102710506A (zh) * | 2012-05-17 | 2012-10-03 | 西安交大捷普网络科技有限公司 | 基于linux内核的高性能流控方法 |
CN102710506B (zh) * | 2012-05-17 | 2015-01-07 | 西安交大捷普网络科技有限公司 | 基于linux内核的高性能流控方法 |
CN103873383A (zh) * | 2012-12-12 | 2014-06-18 | ***通信集团上海有限公司 | 一种队列调度方法和装置 |
CN103873383B (zh) * | 2012-12-12 | 2017-07-28 | ***通信集团上海有限公司 | 一种队列调度方法和装置 |
CN104348751A (zh) * | 2013-07-31 | 2015-02-11 | 中兴通讯股份有限公司 | 虚拟输出队列授权管理方法及装置 |
CN104348751B (zh) * | 2013-07-31 | 2019-03-12 | 中兴通讯股份有限公司 | 虚拟输出队列授权管理方法及装置 |
CN104092626A (zh) * | 2014-07-22 | 2014-10-08 | 太仓市同维电子有限公司 | 保障ip融合通信***服务质量的方法 |
CN105262703A (zh) * | 2015-09-25 | 2016-01-20 | 中铁工程装备集团有限公司 | 一种基于双重优先级的路由带宽分配方法 |
CN105262703B (zh) * | 2015-09-25 | 2018-06-29 | 中铁工程装备集团有限公司 | 一种基于双重优先级的路由带宽分配方法 |
CN108471388A (zh) * | 2017-02-23 | 2018-08-31 | 中兴通讯股份有限公司 | 一种实现用户QoS的方法、装置及基站 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102082765A (zh) | 一种Linux环境下基于用户和业务的QoS*** | |
EP2862301B1 (en) | Multicast to unicast conversion technique | |
US8599870B2 (en) | Channel service manager with priority queuing | |
CN102158418A (zh) | 基于内容处理消息的*** | |
CN108616458A (zh) | 客户端设备上调度分组传输的***和方法 | |
WO2009130218A1 (en) | A traffic manager and a method for a traffic manager | |
Yang et al. | A new class of priority-based weighted fair scheduling algorithm | |
CN101834787A (zh) | 调度数据的方法和*** | |
CN107431667A (zh) | 在网络设备中调度数据包 | |
CN100466593C (zh) | 一种支持多业务的综合队列调度的实现方法 | |
CN105577563B (zh) | 流量管理方法 | |
CN107896200A (zh) | 一种兼容虚链路与分组交换机制的报文调度方法 | |
CN101557346B (zh) | 轮询式分组排队输出调度方法及分组交换节点 | |
Yaghmaee et al. | A model for differentiated service support in wireless multimedia sensor networks | |
Tong et al. | Quantum varying deficit round robin scheduling over priority queues | |
Rehman et al. | Comparative Analysis of Scheduling Algorithms in IEEE 802.16 WiMAX | |
Musa et al. | A Comparative Study of Different Queuing Scheduling Disciplines | |
Victoria et al. | Efficient bandwidth allocation for packet scheduling | |
Li et al. | Research and improvement of real-time queue scheduling algorithm | |
Jiwasurat et al. | Hierarchical shaped deficit round-robin scheduling | |
Sharmal et al. | Review of Different Queuing Disciplines in VOIP, Video Conferencing and File Transfer | |
Nandhini | Improved round robin queue management algorithm for elastic and inelastic traffic flows | |
Minagawa et al. | Double WFQ QoS scheduling based on flow number in diffserve network | |
Kim | On guaranteeing the quality of service of conformant traffic in excess bandwidth allocation for shared access networks | |
WO2022022222A1 (zh) | 发送数据包的方法及网络设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110601 |