CN102624625A - 大用户量的QoS公平调度方法 - Google Patents
大用户量的QoS公平调度方法 Download PDFInfo
- Publication number
- CN102624625A CN102624625A CN2012100646077A CN201210064607A CN102624625A CN 102624625 A CN102624625 A CN 102624625A CN 2012100646077 A CN2012100646077 A CN 2012100646077A CN 201210064607 A CN201210064607 A CN 201210064607A CN 102624625 A CN102624625 A CN 102624625A
- Authority
- CN
- China
- Prior art keywords
- user
- message
- bandwidth
- formation
- chained list
- 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
本发明涉及大用户量的QoS公平调度方法,每个用户构造一个队列,目前用户以IP为唯一标志,用户需要发送的报文均入队列,用户队列以HASH链表方式存储;在端口发送报文时,轮循每个队列进行发送,使公平调度、分享带宽,当同时上线的用户较少时,每个用户获取大的带宽,随着上线的用户逐渐增多,每个用户获取的带宽逐渐减少;同时实现带宽上限功能,引入一个活动链表概念,链表记录当前所有可发送的用户,轮循链表发送报文,每个用户按照令牌桶算法决定是否已超过带宽上限,若超过则移出活动链表,等待一段时间后再加入活动链表等待发送。提出大用户量的QoS公平调度算法,极大的提高、QoS设备的带宽限制性能。
Description
技术领域
本发明涉及一种大用户量的QoS公平调度方法,属于网络安全技术领域。
背景技术
随着Internet网络的越来越盛行,网络应用越来越多,网络带宽与需求的矛盾越来越突出,一方面每个上网的人员都想要无穷大的带宽和最小的延迟,另一方面网络的总带宽是有限的,而且网络处理总会带来时间延迟。目前多种操作系统,包括Unix(linux)、网络操作系统(CISCO IOS)等等,都提供了QoS实现,主要包括出入端口的流量限速和整形、出端口的队列调度,这些功能一般只能匹配若干个对象,包括IP、MAC、端口等等。
实际应用中经常有如下场景,同一个局域网内,所有用户共享100M带宽,用户总数最多可能有500个,为防止某用户使用P2P工具占用带宽,在通用QoS设备中必须下发500条规则来限制所有人的带宽占用,每个人的带宽上限为200K,而且如此配置下某个用户的带宽无法动态调整,比如当前仅有10个人在线,该用户也只能使用200K,无法使用剩余的带宽。即通用QoS设备需要下发大量的规则,会导致性能显著下降,同时又无法使用剩余的带宽。
发明内容
本发明的目的是克服现有技术存在的不足,提供一种大用户量的QoS公平调度方法,使用户享受剩余的带宽,同时下发的规则也相当少,对系统性能的影响也很小。
本发明的目的通过以下技术方案来实现:
大用户量的QoS公平调度方法 ,特点是:每个用户构造一个队列,目前用户以IP为唯一标志,用户需要发送的报文均入队列,用户队列以HASH链表方式存储;在端口发送报文时,轮循每个队列进行发送,使公平调度、分享带宽,当同时上线的用户较少时,每个用户获取大的带宽,随着上线的用户逐渐增多,每个用户获取的带宽逐渐减少;同时实现带宽上限功能,引入一个活动链表概念,链表记录当前所有可发送的用户,轮循链表发送报文,每个用户按照令牌桶算法决定是否已超过带宽上限,若超过则移出活动链表,等待一段时间后再加入活动链表等待发送。
进一步地,上述的大用户量的QoS公平调度方法,报文入队列,输入为出端口的报文,首先按照报文的IP获取对应的用户队列,如果获取不到则新建一个用户队列,将报文入队列;如果用户队列不属于活跃链表,且仅有一个本次处理的报文,则将用户队列加入到活跃链表;
报文出队列,首先获取活跃链表中的当前用户队列,同时标记当前用户队列的下一个结点,作为下一次轮循的当前用户队列;当前用户队列的队头报文为需要发送的报文,查看报文发送是否超过带宽上限,如果超过则不允许发送,计算需要延期等待的时间,如果不超过则直接发送报文。
本发明技术方案突出的实质性特点和显著的进步主要体现在:
本发明确保设定范围内的用户公平调度,平均分享带宽,获取几乎相同的时间延迟,还可以设置这些用户的上限带宽;为每个用户构造一个队列,目前用户以IP为唯一标志,该用户需要发送的报文均入此队列;用户队列以HASH链表方式存储,可以适用于相当大的规模;在端口发送报文时,轮循每个队列进行发送,达到公平调度、分享带宽的效果,当同时上线的用户较少时,每个用户可以获取大的带宽,随着上线的用户逐渐增多,每个用户获取的带宽逐渐减少;同时为实现带宽上限功能,引入一个活动链表概念,该链表记录当前所有可以发送的用户,轮循该链表发送报文,每个用户按照令牌桶算法决定是否已超过带宽上限,若超过则移出活动链表,等待一段时间后再加入活动链表等待发送;本发明可以任意设定范围内的用户,可以使用网络地址范围、MAC地址集合、部门等等,有极强的应用性;提出QoS公平调度算法,极大的改善了网络环境和网络质量,具有丰富的实用场景。
附图说明
下面结合附图对本发明技术方案作进一步说明:
图1:入队列流程示意图;
图2:出队列流程示意图。
具体实施方式
大用户量的QoS公平调度方法,为每个用户构造一个队列,目前用户以IP为唯一标志,该用户需要发送的报文均入队列;用户队列以HASH链表方式存储,当前的HASH表长度为256,适用于相当大的规模;为实现带宽上限功能,引入一个活动链表概念,该链表记录当前所有可以发送的用户,轮循该链表发送报文;在端口发送报文时,轮循活跃链表的用户队列进行发送,达到公平调度、分享带宽的效果,当同时上线的用户较少时,每个用户可获取大的带宽,随着上线的用户逐渐增多,每个用户获取的带宽逐渐减少;同时每个用户按照令牌桶算法决定是否已超过带宽上限,若超过则移出活动链表,等待一段时间后再加入活动链表等待发送。
调度的数据结构,所有的用户队列按照HASH队列存储,同时有一个动态变化的活跃链表(active),该链表内的所有用户队列都可发送报文(没有被限速)而且都可以发送报文(队列中有报文需要发送),当前用户链表(cur)指向下一个待发送的用户队列;
每个用户队列存储所有待发送的报文,同时还存储了两个定时器,一个是超时定时器,当该用户队列在固定设置的时间段内一直没有报文来时触发,触发时删除用户队列并释放资源;另一个是超时定时器,当该用户队列在发送某个报文时超过带宽上限时启动超时定时器,超时时间通过上限带宽和当前带宽的计算获得,当超时时间满足后触发定时器,触发时将该用户队列加入到活跃链表,并重新调度。
如图1所示,报文入队列, 首先查找报文属于的用户队列,如果找不到则新建一个用户队列并插入活跃链表;如果找到则更新超时定时器,如果用户队列存储的报文过长则丢弃,否则添加到用户队列,如果该用户队列不在活跃链表且原先存储的报文个数为0,则添加该用户队列到活跃链表中。这一操作主要是因为没有报文的用户队列会从活跃链表中移除,因此当有报文到来时必须添加到活跃链表,只有活跃链表中的用户队列才会被调度,才有可能发送报文。
如图2所示,报文出队列,首先获取当前用户队列的队头报文,再判断是否设置带宽上限,如果设置则需要使用令牌桶算法决定是否发送此报文,超过带宽上限则不能发送报文并移出活跃链表,启动限流定时器,超时时间通过上限带宽和当前带宽的计算获得,当超时时间满足后触发限流定时器,触发时将该用户队列加入到活跃链表,并重新调度;再查看当前用户队列的报文数,如果为0,则移出活跃队列;最后更新当前用户队列以供下次轮循调度。
目前本方法按照报文个数来进行调度,在现实情况下已经可基本满足需求,将该算法变换后,按照报文长度来进行调度,则可以达到非常精确的公平状态。
本方法可以存在多个活动单元,在设备的同一个物理接口可以同时设置多个调度机制,同时为不同的用户群设置不同的带宽上限进行公平调度、带宽共享。在设置时只要将需要调度的报文进入调度结构即可,在Linux上可以利用netfilter 实现,举例来说,匹配设定的IP地址段,这段IP地址的所有报文进行公平调度且设置一个带宽上限,如此可以设置多个IP地址段满足不同的调度需求。
本方法还可以和其他调度机制进行配合使用,比如和Linux的HTB调度机制配合,可以为设定IP段设置总带宽限制,并且该IP段内的所有用户公平调度、分享带宽,还可以设置每个用户的带宽上限。
另外,在应用时还要查看具体场景,本发明应用在一个相对平均的环境,即该环境下的所有用户都是同等对待的,如果某环境下的用户需要严格区别对待,则需要使用其他调度机制。
综上所述,本发明提出了大用户量的QoS公平调度算法,极大的提高了QoS设备的带宽限制性能,适用于相当大的规模,使用一条规则实现设定范围内的用户带宽上限,传统的QoS设备可能需要上百条规则;充分利用了剩余带宽,实现了分享带宽的效果;并且可以和其他调度机制配合使用,相当方便灵活,可以充分满足需求。
需要理解到的是:以上所述仅是本发明的优选实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (2)
1.大用户量的QoS公平调度方法 ,其特征在于:每个用户构造一个队列,目前用户以IP为唯一标志,用户需要发送的报文均入队列,用户队列以HASH链表方式存储;在端口发送报文时,轮循每个队列进行发送,使公平调度、分享带宽,当同时上线的用户较少时,每个用户获取大的带宽,随着上线的用户逐渐增多,每个用户获取的带宽逐渐减少;同时实现带宽上限功能,引入一个活动链表概念,链表记录当前所有可发送的用户,轮循链表发送报文,每个用户按照令牌桶算法决定是否已超过带宽上限,若超过则移出活动链表,等待一段时间后再加入活动链表等待发送。
2.根据权利要求1所述的大用户量的QoS公平调度方法,其特征在于:报文入队列,输入为出端口的报文,首先按照报文的IP获取对应的用户队列,如果获取不到则新建一个用户队列,将报文入队列;如果用户队列不属于活跃链表,且仅有一个本次处理的报文,则将用户队列加入到活跃链表;
报文出队列,首先获取活跃链表中的当前用户队列,同时标记当前用户队列的下一个结点,作为下一次轮循的当前用户队列;当前用户队列的队头报文为需要发送的报文,查看报文发送是否超过带宽上限,如果超过则不允许发送,计算需要延期等待的时间,如果不超过则直接发送报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100646077A CN102624625A (zh) | 2012-03-13 | 2012-03-13 | 大用户量的QoS公平调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100646077A CN102624625A (zh) | 2012-03-13 | 2012-03-13 | 大用户量的QoS公平调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102624625A true CN102624625A (zh) | 2012-08-01 |
Family
ID=46564316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012100646077A Pending CN102624625A (zh) | 2012-03-13 | 2012-03-13 | 大用户量的QoS公平调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102624625A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103346976A (zh) * | 2013-07-10 | 2013-10-09 | 深圳市磊科实业有限公司 | 一种基于htb的带宽公平控制方法及其实现系统 |
CN105992375A (zh) * | 2015-02-12 | 2016-10-05 | 普天信息技术有限公司 | 一种专网无线通信系统中用户调度方法和装置 |
CN106375130A (zh) * | 2016-09-28 | 2017-02-01 | 苏州迈科网络安全技术股份有限公司 | 基于Linux的智能带宽管理方法及系统 |
CN113938439A (zh) * | 2021-10-25 | 2022-01-14 | 深圳市风云实业有限公司 | 一种基于定时器的端口队列调度方法及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050175014A1 (en) * | 2000-09-25 | 2005-08-11 | Patrick Michael W. | Hierarchical prioritized round robin (HPRR) scheduling |
CN101217499A (zh) * | 2008-01-21 | 2008-07-09 | 中兴通讯股份有限公司 | 队列调度方法 |
CN101714947A (zh) * | 2009-10-30 | 2010-05-26 | 清华大学 | 一种可扩展的全流优先级调度方法 |
CN101964758A (zh) * | 2010-11-05 | 2011-02-02 | 南京邮电大学 | 一种基于区分服务的队列调度方法 |
-
2012
- 2012-03-13 CN CN2012100646077A patent/CN102624625A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050175014A1 (en) * | 2000-09-25 | 2005-08-11 | Patrick Michael W. | Hierarchical prioritized round robin (HPRR) scheduling |
CN101217499A (zh) * | 2008-01-21 | 2008-07-09 | 中兴通讯股份有限公司 | 队列调度方法 |
CN101714947A (zh) * | 2009-10-30 | 2010-05-26 | 清华大学 | 一种可扩展的全流优先级调度方法 |
CN101964758A (zh) * | 2010-11-05 | 2011-02-02 | 南京邮电大学 | 一种基于区分服务的队列调度方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103346976A (zh) * | 2013-07-10 | 2013-10-09 | 深圳市磊科实业有限公司 | 一种基于htb的带宽公平控制方法及其实现系统 |
CN103346976B (zh) * | 2013-07-10 | 2016-08-17 | 深圳市磊科实业有限公司 | 一种基于分层令牌桶的带宽公平控制方法 |
CN105992375A (zh) * | 2015-02-12 | 2016-10-05 | 普天信息技术有限公司 | 一种专网无线通信系统中用户调度方法和装置 |
CN106375130A (zh) * | 2016-09-28 | 2017-02-01 | 苏州迈科网络安全技术股份有限公司 | 基于Linux的智能带宽管理方法及系统 |
CN113938439A (zh) * | 2021-10-25 | 2022-01-14 | 深圳市风云实业有限公司 | 一种基于定时器的端口队列调度方法及电子设备 |
CN113938439B (zh) * | 2021-10-25 | 2023-12-15 | 深圳市风云实业有限公司 | 一种基于定时器的端口队列调度方法及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10205604B2 (en) | Multicast to unicast conversion technique | |
CN103823780B (zh) | 一种实时现场总线控制调度方法 | |
EP2702730B1 (en) | Effective circuits in packet-switched networks | |
CN101640896B (zh) | 一种无线局域网中服务质量的控制方法及设备 | |
Kumar et al. | A delay optimal MAC and packet scheduler for heterogeneous M2M uplink | |
CN101286949A (zh) | 基于IEEE802.16d标准的无线Mesh网MAC层资源调度策略 | |
CN103534978B (zh) | 一种信息群发方法及设备 | |
RU2007132451A (ru) | СПОСОБ И УСТРОЙСТВО ДЛЯ ВЗАИМОДЕЙСТВИЯ МЕЖДУ СИСТЕМОЙ Push-to-Talk (РОС) И СИСТЕМОЙ МГНОВЕННЫХ СООБЩЕНИЙ (IM) В СЕТИ СОТОВОЙ СВЯЗИ | |
CN101692648A (zh) | 一种队列调度方法及系统 | |
CN102624625A (zh) | 大用户量的QoS公平调度方法 | |
CN102082765A (zh) | 一种Linux环境下基于用户和业务的QoS系统 | |
CN105764091B (zh) | 一种有效利用无线带宽的方法 | |
CN1905518B (zh) | 保证数据交换可靠传输的方法 | |
van de Ven et al. | Insensitivity and stability of random-access networks | |
EP2888842A1 (en) | Congestion notification in a network | |
Georgiadis et al. | Minimal evacuation times and stability | |
CN108234350B (zh) | 一种调度方法及客户驻地设备 | |
CN102281202A (zh) | 一种调度方法、服务器及系统 | |
Hong et al. | Adaptive bandwidth binning for bandwidth management | |
JP5307745B2 (ja) | トラヒック制御システムと方法およびプログラムならびに通信中継装置 | |
CN110958184A (zh) | 带宽调节方法及装置 | |
Xiao et al. | Analysis of multi-server round robin scheduling disciplines | |
JP2011182115A (ja) | 通信方法、通信システム及びサーバ | |
CN113810305B (zh) | 报文转发方法、装置、转发节点以及计算机可读存储介质 | |
CN103107955B (zh) | 分组传送网队列调度方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120801 |