CN1801778A - 一种网络数据流的多维队列调度与管理系统 - Google Patents
一种网络数据流的多维队列调度与管理系统 Download PDFInfo
- Publication number
- CN1801778A CN1801778A CNA200510121085XA CN200510121085A CN1801778A CN 1801778 A CN1801778 A CN 1801778A CN A200510121085X A CNA200510121085X A CN A200510121085XA CN 200510121085 A CN200510121085 A CN 200510121085A CN 1801778 A CN1801778 A CN 1801778A
- Authority
- CN
- China
- Prior art keywords
- queue
- packet
- queues
- formation
- attribute
- 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.)
- Granted
Links
Images
Abstract
本发明提供一种网络数据流的多维队列调度与管理系统,用于对具有多属性且每个属性具有多个取值的网络数据流进行调度和管理。该系统设置有与网络数据包的属性个数相等的N个队列组,且每个队列组i设置有与属性i取值个数相等的Mi个队列,到达该系统的网络数据包按属性和属性值分类在具体的队列里排队进行调度和管理,以提供不同的服务。本发明最大只需要NM个队列就可以实现细粒度的分类排队控制,与现有的队列调度技术(最大需要(M+1) N-1个队列)相比,简化了系统实现的复杂性。可实现多种应用系统,例如QoS保证、有区分的服务、带宽共享、分类速率控制和过滤、网络入侵防御、异常流过滤等,适用面广。
Description
技术领域
本发明属于网络技术领域,特别是涉及一种对网络中的数据包进行多维的分类排队服务的技术。
技术背景
常用的队列调度策略,其核心问题是如何实现公平的带宽分配和动态的带宽共享,且避免不正常业务的影响。所谓公平地分配带宽,就是每个业务类型获得相同的带宽,或者一些业务类型按照管理者的意图获得比其他业务类型更多的带宽。所谓合理地共享带宽,就是将分配给一种业务类型的剩余带宽,给其它业务类型共享。所谓避免不正常业务类型的影响,就是在某些业务类型表现不正常的时候,保证其他业务类型得到正常的服务。
现有的常用队列调度策略有:FIFO(先进先出)、PQ(优先级队列)、FQ(公平队列)、WRR(加权循环)、WFQ(加权公平队列)、DRR(赤字循环)等。
FIFO是一种最基本也是目前使用最多的队列调度策略。FIFO按照数据包的到达顺序入队,又按照这个顺序对每个包进行无区别的服务。数据包的最大时延是由队列的长度决定的,因此可以通过调整队列缓冲区的大小使得时延被控制在允许的范围内。
在PQ调度算法中,每个类型的数据包对应于一个优先级队列。同一优先级队列中的数据包按照FIFO服务。但在调度过程中,高优先级的队列总是在低优先级队列之前被服务。其特点是关键的业务可以得到保证。它包括绝对优先级队列(Strict priority queuing)和速率限制优先级队列(Rate-controlled priority queuing)两种应用。在前一应用中,某一队列只有在比其优先级高的队列为空的情况下才被调度。其缺点是在高优先级队列流量较大的情况下,较低优先级的队列会长时间的处于饥饿(starvation)状态。在后一应用中,高优先级队列被加上一个带宽限制,一旦高优先级队列消耗的带宽超过此限制,则转到下一个低优先级队列。
FQ对各个队列循环服务,每一队列在一次循环中只传送一个数据包。其特点是防止突发流对网络资源的强占,使各个队列享有完全相同的输出带宽。它缺点是当一个队列中的数据包明显大于其他队列中的数据包时,这个队列就会占有比其他队列更多的带宽,所以它并不能真正实现带宽的公平分配。
WFQ作为对FQ的一种改进,它通过给各个队列分配不同的权重来满足不同业务对于带宽的不同要求。
在WRR队列调度算法中,每个业务类型对应一个队列,每个队列被分配一定的资源和优先级,采用轮询的方式服务这些队列。一次循环当中,每个队列至少可以发送一个数据包,根据权重的不同获得不同的带宽。
DRR(赤字循环)给各队列分配不同的定额(quantum)——它决定该队列所占的带宽。调度器轮询每个非空的队列,在将赤字计数器的值加上该队列的定额以后,若此队列队首数据包的大小不大于赤字计数器的值,则对其进行服务,同时相应减少赤字计数器的值;如此对该队列服务,直到队列为空或队首数据包的大小大于计数器的值。其特点是算法简单、各个队列可真正得到和权重相当的带宽、各队列间互不影响、可按需要给各个队列分配不同带宽等。其改进调度策略MDRR在Cisco 12000系列的路由器中被采用。
目前常用的队列管理方法,其队列管理机制可以分为两大类:被动式队列管理(Passive Queue Management,PQM)和主动式队列管理(Active Queue Management,AQM)。
传统的被动式队列管理一般采用“丢尾”(DropTail)策略,即当缓冲区满时,丢弃新到达的数据包。它的局限性是将拥塞控制的责任推给端用户,不能处罚恶意流;在某些情况下,会让某个流或者少数几个流独占队列空间,阻止其他流的包进入队列;会使得队列在相当长时间内处于充满(或几乎充满)的状态。
主动式队列管理机制就是要求网络本身参与资源的管理和控制。它的不同之处在于:通过采用特定的数据包丢弃技术,维护缓冲区的占用量(即队列的长度)在一定的范围内。即,在网络轻度拥塞的时候就按照预定的规则来丢弃少量的数据包,从而使得某些源端降低发送速率,减少了数据包因为在缓冲区中的时间过长而导致的超时重传,并且防止了拥塞的进一步恶化,降低了丢包率,同时还具有容纳突发流量的能力。典型的主动式队列管理机制包括RED、BLUE、ARED、PDPC等。
RED算法,即随机早期检测算法有两个和队列长度相关的阈值:minth和maxth。当有数据包到达路由器时,RED计算出平均队长avg,当平均队列长度avg小于预先设定的阈值minth时接收所有数据包;当avg大于minth并小于maxth时按照一定的概率P丢弃新到数据包;当avg大于maxth时到达的数据包全部被丢弃。RED在计算平均队长avg时,采用了滑动平均的方法。丢包概率P不仅和avg有关,还和从上一次丢包到现在连续进入队列的包的数量count有关。随着count的增加,下一个包被丢弃的可能性也在缓慢增加,以便均匀地、避免连续地丢包。
BLUE算法与RED最大的区别在于,BLUE使用实际队列长度来反映拥塞状况,并且使用丢包事件和链路空闲事件来管理拥塞。BLUE动态地改变丢包概率P值:链路空闲和队列空时减小P值,队列溢出导致连续丢包则增加P值。在最小时间间隔freeze-time时间内,概率P只能改变一次。参数d1决定了当队列溢出时P增加的量,d2决定了当链路空闲时P减少的量。当d1比d2大很多时,丢包事件被赋予更大的比重,因而能够对流量的快速增加作出快速反应。
ARED(Adaptive RED)算法的基本思想就是通过检查平均队长的变化来决定RED是应更激进还是更保守,从而尽量保持平均队长在minth和maxth之间。它根据流量的变化来自动配置参数maxp。如果avg是在minth附近振荡,说明拥塞控制太激进了,所以减小maxp;如果avg在maxth附近振荡,说明拥塞控制太保守了,那么就增大maxp。ARED是对RED改动很小的一种算法,它保留了RED的基本结构,但消除了RED的队列延时问题和参数敏感性问题。
PDPC(Packet Discard Prevention Counter)算法对队列的实际长度进行监测:当队列长度小于minth时接收新到达的数据包;当队长大于maxth时丢弃该数据包;当队长介于minth和maxth之间时,将该数据包丢弃,并将计算器counter置为n,然后在队长不超过maxth的情况下接收接下来的n个数据包。PDPC的特点是通过丢弃单个数据包来表明拥塞,接收接下来的n个数据包可以减小从TCP同一个发送窗口丢弃多个数据包的可能性。算法简单,易于实现,对无线网络的变化反应速度快,提供了不同流之间的公平性。其缺点是:当网络用户数大大增加的时候,它的性能会很快下降,各项参数缺乏足够的自适应性。
从前述队列调度策略可以看到,现有的技术都是按照数据包的某一种属性,例如流、业务类型等对它们进行区分,然后送入相应的队列排队等待服务。这种区分方法,不适用于多属性的情况。假如一个数据包最多有N个属性,每个属性最多有M个值,则用现有的分类排队方法,最大需要(M+1)N-1个队列,才能够实现分类排队控制!例如,如果我们将网络中的IP数据报按照它的protocol字段、port字段、长度等属性进行区分,则由下表表示的日本到美国的主干线上的实际统计数据可以看到:
表1 MAWI 2005年03月20日14:00-14:15分的统计结果
protocol | packets |
tcp | 80.13% |
udp | 12.17% |
icmp | 3.75% |
ip6 | 0.03% |
ipsec | 0.00% |
other | 3.91% |
Packet Size | packets |
16-31 | 0.33% |
32-63 | 41.25% |
64-127 | 23.49% |
128-255 | 4.41% |
256-511 | 3.17% |
512-1023 | 5.42% |
1024-1518 | 21.93% |
port | packets | port | packets | port | packets |
http(s)(tcp) | 19.20% | icecast(tcp) | 0.22% | realaud(tcp&udp) | 0.04% |
http(c)(tcp) | 12.95% | ftp(tcp) | 0.20% | nntp(tcp) | 0.00% |
dns(tcp&udp) | 10.14% | squid(tcp) | 0.17% | telnet(tcp) | 0.00% |
smtp(tcp) | 2.51% | pop3(tcp) | 0.10% | bgp(tcp) | 0.00% |
ssh(tep) | 2.47% | napster(tcp) | 0.05% | everque(udp) | 0.00% |
rtsp(tcp) | 0.38% | imap(tcp) | 0.04% | quake(udp) | 0.00% |
other | 51.54% |
按protocol进行分类,至少分为6种;
按数据报长度进行区分,可以分成7个段;
按port进行分类,至少可以分成19个;
在一个属性内可以被区分开的二个包,在另一个属性内又可能被合在一起。例如,按protocol区分为tcp和upd的二个包,它们的port可能都是53(dns),包长度可能都在128-255之间。
所以当我们通过全部这三个属性来对数据报进行分类时,将需要分成24(协议:端口)×7(长度段)=168个队列。
在有些情况下,例如在对网络运行情况进行监控的时候,系统需要通过队列调度和管理,将网络中各分量所占的比例限制在正常范围内,如上表所示,以避免某些分量的异常增高对网络造成的危害。某些分量异常增高的典型例子是泛洪攻击,例如攻击者向被害服务器发送大量的TCP SYN分组、HTTP GET请求、DNS查询、超长包、或者端口扫描包等。如果采用现有的队列调度与管理技术,对于上述例子,系统将需要建立168个并列的队列,对到达的数据包进行分类排队控制。如果采用串行队列调度与管理的方式,则在各属性之间人为引入了先后顺序。某些具有较多属性的包,在串行队列中可能遇到瓶颈,有可能被丢弃;某些具有较少属性的包在串行队列中走的路径短,因而得以快速通过。由此可见,采用现有技术进行串行队列调度与管理,失去了并行队列的优先权和权重控制、同一队列内的先进先出排队服务等重要特征。因此,现有的队列调度与管理技术,不适用于多属性(或多维)排队控制的情况。
发明内容
本发明的目的在于克服现有技术的不足,提供一种网络数据流的多维队列调度与管理系统。利用该技术使得网络可以用比现有队列调度技术更有效的方式,对不同的数据包进行有区别的控制,例如业务质量控制、安全控制等。
为了实现发明目的,采用的技术方案如下:
一种网络数据流的多维队列调度与管理系统,用于对具有多属性且每个属性具有多个取值的网络数据流进行管理,它设置有与网络数据包的属性个数相等的N个队列组,且每个队列组i设置有与属性i取值个数相等的Mi个队列,然后将网络数据包按属性和属性值分类在具体的队列里排队进行调度和管理,以提供不同的服务。
具体的多属性排队方式如下:
设数据包i有Ci个属性:
其中aij为属性Aij的取值;
将数据包i的标识i分别送入与属性Ai1,Ai2,...,AiCi对应的队列组Qi1,Qi2...,QiCi内,所述标识i可采用指针或数据包的存储地址;
在每个队列组Qij内,将i送入与属性值aij对应的队列qij内。
通过上述多维队列对数据包进行多属性分类排队后,具有相同属性值aij的数据包在队列qij中进行FIFO排队。
本发明还包括队列组调度策略,所述队列组调度策略包括预调度操作、实际调度操作和队列组之间的轮询操作:
所述预调度操作是对一个队列组内的队列的调度操作,可采用现有的适用于该队列组所对应的属性特点的队列调度策略,例如优先级队列PQ、或公平队列FQ、或加权循环WRR、或加权公平队列WFQ、或赤字循环DRR等。当一个队列组被轮询到且非空时,则运行该队列组的队列调度策略,直到一个正在排队的项(不妨设数据包标识i)能够离开其所在的队列qij;将该标识i从队列qij中取出;记录下刚刚被轮询的队列号qij,以备下次运行该队列组的队列调度策略时,从下一状态,即队列qij+1开始;然后结束这一次预调度操作。
所述实际调度操作是将得到一次预调度操作的数据包i的属性计数器Gi减1,并检查是否Ci=0;如果Ci≠0,则结束这一次实际调度操作;如果Ci=0,则完成对该数据包的最后调度操作,即将数据包i实际调离全部的队列组和队列,并提供预设的服务(例如发送出去、或处理其请求等);完成预设的服务将需要一段时间,完成后结束这一次实际调度操作。
所述的队列组之间的轮询操作,具体如下:
(a)按照公平轮询或加权轮询的方式轮询所有的队列组;
(b)如果是空队列组,则转到下一个队列组;
(c)如果是非空队列组,则进行预调度操作,再进行实际的调度操作,然后转到下一个队列组。
与上述的多属性排队方法和队列组调度策略相对应,本发明还提供多维队列管理算法,所述多维队列管理算法设置一个队列管理主模块,且为每个队列设置一个管理子模块。但队列管理子模块并不直接进行队列的操作,只是为队列管理主模块提供参数,即丢弃数据包的概率;由队列管理主模块真正执行对所有队列的管理和操作。
所述多维队列管理算法具体如下:
当数据包i到达时,所述多属性排队方式将对其进行属性匹配,并按照其属性和属性值选择队列组和每个组内的一个队列,设有Ci个属性,并设这些队列分别为qi1,qi2,...,qiCi;
每个队列所对应的管理子模块按照设定的队列管理算法进行队列管理,从而得出每个队列qij丢弃一个新到达数据包的概率pij;
以概率
决定丢弃该数据包还是让它参加排队;如果允许它排队,则将它的标识i同时加入到qi1,qi2,...,qiCi队列内;否则丢弃该数据包。
所述管理子模块根据队列长分布、时延分布、到达过程、丢弃率、服务时间分布的一种或多种结合来决定丢弃数据包的概率。每个管理子模块都采用适合于自身特点的队列管理算法,它可以是现有的任何队列管理算法,包括RED算法、或BLUE算法、或ARED算法、或PDPC算法,且每个管理子模块采用的队列管理算法可以不同。
本发明通过N个队列组对应数据包的N个属性,每个队列组设置最多M个队列,每个队列对应一个属性值。通过本发明提供的队列调度策略和队列管理算法,最大只需要NM个队列就可以实现分类排队控制。而且本发明可应用于对网络中的数据包进行细粒度的控制,可实现多种应用系统,例如QoS保证、有区分的服务、带宽共享、分类速率控制和过滤、网络入侵防御、异常流过滤等,适用面广。
附图说明
图1为本发明的一个实施例的系统结构图;
图2为本发明的队列调度原理示意图;
图3为本发明的队列管理原理示意图。
具体实施方式
下面结合附图对本发明做进一步的说明。
本发明的系统结构如附图1所示,首先将系统感兴趣的有关各协议层的各字段的特征值存入属性特征库,以备多属性匹配时使用。当一个数据包到达时,系统将它存入存储区内,并记下其所在地址或本地标识。然后开始对该数据包进行多属性匹配。将这些属性和所对应的属性值记录下来。按照这些属性找到多维队列管理模块中的多个对应的队列组,再按照属性值找到每个队列组中的一个队列,由此得到每个队列丢弃该数据包的概率。再由所有这些丢弃概率得到总的平均丢弃概率。总的平均丢弃概率就决定了是丢弃还是接纳该数据包。如果决定丢弃,则将该数据包从存储中清除,并清空其它有关该数据包的记录;如果决定接纳,则将该数据包的标识或者地址送入多维队列调度模块进行排队服务。所进的队列就是该数据包的各属性所对应的队列组中与属性值对应的队列。当该数据包在所进各队列组均获得服务权以后,该数据包就可以离开多维队列调度模块,也即,将该数据包的标识或存储地址送给分类服务模块,由它从存储中取出该数据包,并提供分类服务。分类服务策略可以依据应用系统的不同而不同。例如,最简单的服务方式就是将该数据包发送出去。这种方式借助于前述队列调度和队列管理策略,可以保证网络中的各分量所占比例在一定范围内,避免某些分量异常增高,因而可以应用于保证业务质量、保证各业务公平共享网络带宽、保证网络谐调运行、化解攻击流等各种应用系统。较为复杂的服务方式是对具有某些属性的数据包提供有区别的服务。这种方式除了具有前述的保证网络谐调运行的特点以外,还可以实现对数据包的细粒度的控制,发现可能存在的异常现象或者已知的或新型的攻击。例如从高溢出率的队列的组合模式可以发现被丢弃的数据包的共同特征,由此可以采取对应的策略防御,防止攻击并减少对正常数据包的丢弃。
队列调度原理如附图2所示。首先要确定系统的队列组数目和每个队列组内的队列的个数。如果系统感兴趣的属性有N个,则需要N个队列组。如果各属性分别有M1,M2,...,MN个值,则各队列组分别需要M1,M2,...,MN个队列。在确定队列组数目和每个队列组内的队列的个数以后,需要根据各属性的特点,分别确定各队列组的队列调度策略。它们不必采用相同的队列调度策略,可以是现有队列调度策略中的任意一种,例如PQ、FQ、WRR、WFQ、DRR等,只要它适合于队列组所对应的属性的特点。各队列组调度策略之间也不必相互谐调,它们可以各自独立运行。
在确定各队列组的队列调度策略以后,需要确定各队列的最大长度,它应该保证排队项的平均等待时间和丢弃概率在一定范围内。这里需要注意的是,在计算平均等待时间和丢弃概率的时候,服务时间与被服务的数据包的长度没有直接关系,这是因为每个队列组只完成预调度,刚被预调度出该队列组的项,不一定立即得到服务,它可能还需要等待其它的队列组完成对该数据包的预调度,才可以获得后续的服务。所以从一个给定的队列组看来,在它预调度出队列的两个项之间,有可能有未参加该队列组排队的数据包得到服务并造成这两个项目之间的时延。
当一个数据包到达并完成属性匹配以后,设有Ci个属性:
其中aij是属性Aij的值,该数据包的标识i,或指针或数据包的存储地址被模块复制成Ci份,并分别送入与属性Ai1,Ai2,...,AiCi对应的队列组集合的子集Qi1,Qi2,...,QiC1内。
在每个队列组Qi内,按值分类模块将数据包标识i送入与属性值aij对应的队列qij内。所以,具有相同属性值aij的数据包,会在相同的队列qij内进行FIFO排队。
对于一个给定的队列组Qij,预调度模块可以采用任何预定的队列调度策略,例如PQ、FQ、WRR、WFQ、DRR中的一种。如果该队列组非空,则运行给定的队列调度策略,直到一个正在排队的项,例如数据包标识i能够离开队列。将该标识i从队列中取出,并记录下当前的状态,以备下次运行该队列组的队列调度策略时,从下一状态开始。在完成这些操作以后,即完成了一次预调度以后,进行下一步的实际调度操作。
实际调度操作首先将刚刚得到一次预调度操作的数据包i的属性计数器Ci减1。然后检查Ci是否等于0,即该数据包是否得到了它所加入的所有队列组的预调度服务。如果Ci≠0,则说明该数据包仍然在某些队列组中排队等待服务;如果Ci=0,则说明可以完成对该数据包的最后调度操作,即将数据包i的有关记录从全部的队列组和队列中清除,然后从缓冲区中取出,送入后续的分类服务模块。完成后续的分类服务将需要一段时间。在此期间,所有队列组停止预调度操作,仅仅进行新到数据包的入队操作。在完成对数据包i的服务后,将控制权交回给轮询模块。
由轮询模块执行队列组之间的轮询操作。它负责轮询所有的队列组。如果是空队列组,则不做任何操作,转到下一个队列组;如果是非空队列组,则进行预调度操作,然后进行实调度操作。除了正在被轮询到的那个队列组执行所述的预调度操作以外,其它队列组不能进行预调度操作,但可以进行新到项目的入队操作以及队列管理操作。
队列管理原理如附图3所示。首先确定每个队列组每个队列的队列管理算法,例如:RED、BLUE、ARED、PDPC等,这里统称为AQMn,m,其中AQM代表主动队列管理算法,n代表第几个队列组,m代表该队列组中的第几个队列。每个队列的队列管理算法都由一个管理子模块来执行。每个管理子模块都独立运行,采用各自的队列管理算法进行队列管理。但这些队列管理子模块并不直接进行队列的操作,例如丢弃溢出的数据包等,它们只是根据队列长分布、时延分布、到达过程、丢弃率、服务时间分布等,采用它们中的部分或全部参数,这些决定于队列管理算法,来决定丢弃数据包的概率。以队列管理算法RED为例,当队列qij的平均队列长小于minth时,丢弃新到达数据包的概率为0;当平均队列长大于maxth时,丢弃新到达数据包的概率为1;当平均队列长处于minth和maxth之间时,丢弃新到达数据包的概率为动态决定的pij。所以,各队列管理子模块仅仅为队列管理主模块的决策提供所需的参数。队列管理主模块真正执行对所有队列的管理和操作,包括丢弃溢出的数据包等。
当数据包i到达并完成属性匹配之后,开始进行队列管理。按照该数据包的属性和属性值,设该数据包拟加入的队列分别为qi1,qi2,...,qiCi,每个队列都按照自己的队列管理算法由各自的队列管理子模块进行队列管理。设队列qij丢弃一个新到达数据包的概率为pij,则数据包i被正要加入的所有队列都丢弃的平均概率p为在计算了平均丢弃概率p以后,按照(0,1)区间上的均匀分布产生一个随机数R。根据R大于p否,决定是丢弃该数据包还是让它参加排队。如果R大于p则允许它排队,即将它的标识i送给后续的队列调度模块,使得该数据包的标识i可以同时加入到队列qi1,qi2,...,qiCi内;否则丢弃该数据包,即将它从缓冲区内清除,并清空与该数据包有关的全部记录。
Claims (7)
1、一种网络数据流的多维队列调度与管理系统,用于对具有多属性且每个属性具有多个取值的网络数据流进行调度和管理,其特征在于设置与网络数据包的属性个数相等的N个队列组,且每个队列组i设置与属性i取值个数相等的Mi个队列,然后将到达的网络数据包按属性和属性值分类在具体的队列里排队进行调度和管理。
2、根据权利要求1所述的网络数据流的多维队列调度与管理系统,其特征在于所述的排队方式如下:
当数据包i到达时,进行属性匹配,设数据包i有Ci个属性: 其中aij为属性Aij的取值;
将数据包i的标识i分别送入与属性Ai1,Ai2,…,AiCi对应的队列组Qi1,Qi2…,QiCi内,所述标识i可采用指针或数据包的存储地址;
在每个队列组Qij内,将i送入与属性值aij对应的队列qij内。
3、根据权利要求2所述的网络数据流的多维队列调度与管理系统,其特征在于具有相同属性值aij的数据包在队列qij中进行FIFO排队。
4、根据权利要求1或2或3所述的网络数据流的多维队列调度与管理系统,其特征在于还包括队列组调度策略,所述队列组调度策略包括预调度操作、实际调度操作和队列组之间的轮询操作;
所述预调度操作是当一个队列组被轮询到并且非空时,运行该队列组的队列调度策略,直到任一个正在排队的数据包标识能够离开其所在队列;将该标识从所在队列中取出;记录下刚刚被轮询的队列号,使得下次运行该队列组的队列调度策略时,知道从下一个队列开始;结束这一次预调度操作;
所述实际调度操作是将得到一次预调度操作的数据包i的属性计数器Ci减1;检查是否Ci=0,如果Ci≠0,则结束这一次实际调度操作;如果Ci=0,则将数据包i实际调离全部的队列组和队列,并提供预设的服务;在完成对数据包i的服务以后,结束这一次实际调度操作;
所述队列组之间的轮询操作采用如下方式:
(a)采用公平轮询或加权轮询的方式轮询所有的队列组;
(b)如果是空队列组,则转到下一个队列组;
(c)如果是非空队列组,则进行预调度操作,再进行实际的调度操作;然后转到下一个队列组。
5、根据权利要求4所述的网络数据流的多维队列调度与管理系统,其特征在于所述的队列组调度策略的预调度操作采用的队列调度策略可以采用任何一种适合于该队列组属性特点的队列调度策略,包括优先级队列PQ、或公平队列FQ、或加权循环WRR、或加权公平队列WFQ、或赤字循环DRR,且各队列组的队列调度策略可以不同。
6、根据权利要求1和2所述的网络数据流的多维队列调度与管理系统,其特征在于还包括多维队列管理算法,所述多维队列管理算法设置一个队列管理主模块,且为每个队列设置一个管理子模块;
所述多维队列管理算法具体如下:
设数据包i有Ci个属性,且按照其属性和属性值选择的队列分别为qi1,qi2,…,qiCi;
每个队列所对应的管理子模块都按照设定的队列管理算法进行队列管理,从而得出每个队列qij丢弃一个新到达数据包的概率pij;
以概率
决定丢弃该数据包还是让它参加排队;如果允许它排队,则将它的标识i同时加入到qi1,qi2,…,qiCi队列内;否则丢弃该数据包。
7、根据权利要求6所述的网络数据流的多维队列调度与管理系统,其特征在于所述管理子模块根据队列长分布、时延分布、到达过程、丢弃率、服务时间分布的一种或多种结合来决定丢弃数据包的概率,所述管理子模块采用的队列管理算法可以是现有的任何适用的队列管理算法,包括RED算法、或BLUE算法、或ARED算法、或PDPC算法,且各管理子模块采用的队列管理算法可以不同,各自独立运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200510121085XA CN100463451C (zh) | 2005-12-29 | 2005-12-29 | 一种网络数据流的多维队列调度与管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200510121085XA CN100463451C (zh) | 2005-12-29 | 2005-12-29 | 一种网络数据流的多维队列调度与管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1801778A true CN1801778A (zh) | 2006-07-12 |
CN100463451C CN100463451C (zh) | 2009-02-18 |
Family
ID=36811544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200510121085XA Expired - Fee Related CN100463451C (zh) | 2005-12-29 | 2005-12-29 | 一种网络数据流的多维队列调度与管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100463451C (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179486B (zh) * | 2006-11-10 | 2010-07-14 | 中兴通讯股份有限公司 | 一种计算机网络数据包转发的car队列管理方法 |
CN101447943B (zh) * | 2008-12-26 | 2011-05-11 | 杭州华三通信技术有限公司 | 队列调度系统及方法 |
CN102073539A (zh) * | 2010-12-02 | 2011-05-25 | 华为技术有限公司 | 队列请求处理方法和装置 |
CN101557340B (zh) * | 2009-05-07 | 2011-09-21 | 中兴通讯股份有限公司 | 一种数据网络中实现多级队列调度的方法及装置 |
CN102461093A (zh) * | 2009-06-29 | 2012-05-16 | 阿尔卡特朗讯公司 | 管理业务负荷的方法 |
CN102594663A (zh) * | 2012-02-01 | 2012-07-18 | 中兴通讯股份有限公司 | 队列调度方法及装置 |
CN103281257A (zh) * | 2013-06-05 | 2013-09-04 | 杭州华三通信技术有限公司 | 一种协议报文处理方法和设备 |
CN104012048A (zh) * | 2012-12-21 | 2014-08-27 | 华为技术有限公司 | 用于在分组交换网络中提供随机早期检测的装置和方法 |
CN105471859A (zh) * | 2015-11-20 | 2016-04-06 | 中铁工程装备集团有限公司 | 一种基于流粒度的访问控制方法 |
CN105610733A (zh) * | 2016-02-17 | 2016-05-25 | 京信通信技术(广州)有限公司 | 队列调度处理方法和系统 |
CN104012048B (zh) * | 2012-12-21 | 2016-11-30 | 华为技术有限公司 | 用于在分组交换网络中提供随机早期检测的装置和方法 |
TWI560609B (en) * | 2015-10-14 | 2016-12-01 | Realtek Semiconductor Corp | Data output dispatching device and method |
CN103731238B (zh) * | 2013-12-11 | 2017-04-05 | 福建星网锐捷网络有限公司 | 数据发送方法及装置 |
CN107645455A (zh) * | 2017-09-12 | 2018-01-30 | 天津津航计算技术研究所 | 一种can总线的消息传输调度方法 |
US9940471B2 (en) | 2013-07-31 | 2018-04-10 | Zte Corporation | Virtual output queue authorization management method and device, and computer storage medium |
CN108259382A (zh) * | 2017-12-06 | 2018-07-06 | 中国航空工业集团公司西安航空计算技术研究所 | 3×256优先级调度电路 |
CN109408483A (zh) * | 2018-09-14 | 2019-03-01 | 厦门天锐科技股份有限公司 | 基于squid代理服务器的数据存储方法 |
CN109586947A (zh) * | 2018-10-11 | 2019-04-05 | 上海交通大学 | 分布式设备信息采集系统和方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9189433B2 (en) | 2012-12-18 | 2015-11-17 | International Business Machines Corporation | Tracking a relative arrival order of events being stored in multiple queues using a counter |
US9575822B2 (en) | 2014-08-01 | 2017-02-21 | Globalfoundries Inc. | Tracking a relative arrival order of events being stored in multiple queues using a counter using most significant bit values |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7170900B2 (en) * | 2001-07-13 | 2007-01-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for scheduling message processing |
CA2393373A1 (en) * | 2002-07-15 | 2004-01-15 | Anthony Gerkis | Apparatus, system and method for the transmission of data with different qos attributes. |
US7426209B2 (en) * | 2002-12-13 | 2008-09-16 | Telefonaktiebolaget L M Ericsson (Publ) | System for content based message processing |
-
2005
- 2005-12-29 CN CNB200510121085XA patent/CN100463451C/zh not_active Expired - Fee Related
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179486B (zh) * | 2006-11-10 | 2010-07-14 | 中兴通讯股份有限公司 | 一种计算机网络数据包转发的car队列管理方法 |
CN101447943B (zh) * | 2008-12-26 | 2011-05-11 | 杭州华三通信技术有限公司 | 队列调度系统及方法 |
CN101557340B (zh) * | 2009-05-07 | 2011-09-21 | 中兴通讯股份有限公司 | 一种数据网络中实现多级队列调度的方法及装置 |
CN102461093A (zh) * | 2009-06-29 | 2012-05-16 | 阿尔卡特朗讯公司 | 管理业务负荷的方法 |
CN102461093B (zh) * | 2009-06-29 | 2014-09-10 | 阿尔卡特朗讯公司 | 管理业务负荷的方法 |
CN102073539A (zh) * | 2010-12-02 | 2011-05-25 | 华为技术有限公司 | 队列请求处理方法和装置 |
CN102073539B (zh) * | 2010-12-02 | 2013-10-09 | 华为技术有限公司 | 队列请求处理方法和装置 |
CN102594663A (zh) * | 2012-02-01 | 2012-07-18 | 中兴通讯股份有限公司 | 队列调度方法及装置 |
CN104012048B (zh) * | 2012-12-21 | 2016-11-30 | 华为技术有限公司 | 用于在分组交换网络中提供随机早期检测的装置和方法 |
CN104012048A (zh) * | 2012-12-21 | 2014-08-27 | 华为技术有限公司 | 用于在分组交换网络中提供随机早期检测的装置和方法 |
CN103281257B (zh) * | 2013-06-05 | 2016-06-08 | 杭州华三通信技术有限公司 | 一种协议报文处理方法和设备 |
CN103281257A (zh) * | 2013-06-05 | 2013-09-04 | 杭州华三通信技术有限公司 | 一种协议报文处理方法和设备 |
US9940471B2 (en) | 2013-07-31 | 2018-04-10 | Zte Corporation | Virtual output queue authorization management method and device, and computer storage medium |
CN103731238B (zh) * | 2013-12-11 | 2017-04-05 | 福建星网锐捷网络有限公司 | 数据发送方法及装置 |
TWI560609B (en) * | 2015-10-14 | 2016-12-01 | Realtek Semiconductor Corp | Data output dispatching device and method |
CN105471859A (zh) * | 2015-11-20 | 2016-04-06 | 中铁工程装备集团有限公司 | 一种基于流粒度的访问控制方法 |
CN105471859B (zh) * | 2015-11-20 | 2019-02-26 | 中铁工程装备集团有限公司 | 一种基于流粒度的访问控制方法 |
CN105610733A (zh) * | 2016-02-17 | 2016-05-25 | 京信通信技术(广州)有限公司 | 队列调度处理方法和系统 |
CN105610733B (zh) * | 2016-02-17 | 2019-03-05 | 京信通信系统(中国)有限公司 | 队列调度处理方法和系统 |
CN107645455A (zh) * | 2017-09-12 | 2018-01-30 | 天津津航计算技术研究所 | 一种can总线的消息传输调度方法 |
CN108259382A (zh) * | 2017-12-06 | 2018-07-06 | 中国航空工业集团公司西安航空计算技术研究所 | 3×256优先级调度电路 |
CN108259382B (zh) * | 2017-12-06 | 2021-10-15 | 中国航空工业集团公司西安航空计算技术研究所 | 3×256优先级调度电路 |
CN109408483A (zh) * | 2018-09-14 | 2019-03-01 | 厦门天锐科技股份有限公司 | 基于squid代理服务器的数据存储方法 |
CN109586947A (zh) * | 2018-10-11 | 2019-04-05 | 上海交通大学 | 分布式设备信息采集系统和方法 |
CN109586947B (zh) * | 2018-10-11 | 2020-12-22 | 上海交通大学 | 分布式设备信息采集系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100463451C (zh) | 2009-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1801778A (zh) | 一种网络数据流的多维队列调度与管理系统 | |
US20220200923A1 (en) | Dynamic buffer management in data-driven intelligent network | |
US6788697B1 (en) | Buffer management scheme employing dynamic thresholds | |
US6104700A (en) | Policy based quality of service | |
US6859438B2 (en) | Policy based quality of service | |
US8467295B2 (en) | System and methods for distributed quality of service enforcement | |
CN101834790B (zh) | 一种基于多核处理器的流量控制方法和多核处理器 | |
CN1716914A (zh) | 用于业务混合的公平加权随机早期检测 | |
US20040151184A1 (en) | Class-based rate control using multi-threshold leaky bucket | |
US20090010165A1 (en) | Apparatus and method for limiting packet transmission rate in communication system | |
US8547846B1 (en) | Method and apparatus providing precedence drop quality of service (PDQoS) with class-based latency differentiation | |
US20120155271A1 (en) | Scalable resource management in distributed environment | |
WO2000008811A1 (en) | A link-level flow control method for an atm server | |
US6985442B1 (en) | Technique for bandwidth sharing in internet and other router networks without per flow state record keeping | |
US8203956B1 (en) | Method and apparatus providing a precedence drop quality of service (PDQoS) | |
NZ531355A (en) | Distributed transmission of traffic flows in communication networks | |
CN1518296A (zh) | 一种支持多业务的综合队列调度的实现方法 | |
Baker et al. | On Queuing, Marking, and Dropping | |
CN1134136C (zh) | 分级指导随机提早丢弃队列管理器 | |
Astuti | Packet handling | |
US20230022037A1 (en) | Flow-based management of shared buffer resources | |
Mohanty et al. | On fair scheduling in heterogeneous link aggregated services | |
Pan et al. | Approximate fair allocation of link bandwidth | |
Xu | Adaptive flow admission control in a software-defined network | |
Li et al. | Network fair bandwidth share using hash rate estimation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090218 Termination date: 20141229 |
|
EXPY | Termination of patent right or utility model |