CN1728698B - 并行结构保序流量平衡系统及基于流分类的报文调度方法 - Google Patents
并行结构保序流量平衡系统及基于流分类的报文调度方法 Download PDFInfo
- Publication number
- CN1728698B CN1728698B CN2004100700096A CN200410070009A CN1728698B CN 1728698 B CN1728698 B CN 1728698B CN 2004100700096 A CN2004100700096 A CN 2004100700096A CN 200410070009 A CN200410070009 A CN 200410070009A CN 1728698 B CN1728698 B CN 1728698B
- Authority
- CN
- China
- Prior art keywords
- class
- message
- miniflow
- queue
- submodule
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种并行结构保序流量平衡系统及基于流分类的报文调度方法,用于将进入系统的IP报文流,按照同一业务流中的IP报文分派到同一并行处理单元和使各并行处理单元负载尽量平衡的原则分派至各并行处理单元,并在各并行处理单元负载不平衡时,对业务流在各并行处理单元的分派图样进行调整,以实现各并行处理单元的流量平衡和同一业务流中的报文保序,包括一流分类与标识子模快、一报文分派子模块和一测量子模块;本发明以解决并行结构的路由器中实现IP报文流量平衡、业务流保序、区分服务和自适应功能,降低平均时延和时延抖动,减少超时重传次数和丢包率,提高网络性能和使用率,进而为上层应用提供更好的服务质量。
Description
技术领域
本发明涉及计算机通信领域,尤其是涉及一种并行结构的高性能路由器中的具有业务流IP报文保序功能的自适应流量平衡系统及其一种基于流分类的报文调度方法。
背景技术
为提高吞吐率和效率,在高性能路由器中广泛采用了并行结构,需要使各个数据处理平面的流量尽量保持平衡。另外,为支持基于TCP的应用和基于UDP的流媒体等应用,需要由网络保证承载这些业务的IP报文能按源节点发出的顺序提交到目的节点。然而,由于并行技术的采用,同一业务流中的IP报文在通过路由节点时,不可避免地会引起IP报文失序,使这些IP报文的平均时延和时延抖动加大,造成丢包或数据报文的超时重传。由于在一个业务流持续时间相对网络拓扑变化周期相对较短的情况下,对于大多数业务流,其IP报文均走同一路径,如果能在采用并行结构的路由器中实现IP报文保序,将会极大地降低平均时延和时延抖动,减少超时重传次数和丢包率,提高网络性能和使用率,进而为上层应用提供更好的服务质量。
目前解决并行结构负载平衡及保序问题的文献中提到的解决方案均局限于并行交换结构领域,一种现有技术曾提出采用的轮转式调度算法的并行报文交换结构;还有一种现有提出三维队列缓存结构及其调度算法,解决两级交换结构保序的问题。这些方案的原理是在交换结构的输入端口流量分路时采用调度算法对定长信元进行流量平衡,在输出端口合路时使用较大容量缓存中对这些信元重新排序,以解决定长信元在通过交换结构的流量平衡和信元失序问题。
发明内容
本发明解决的问题是:提供一种通用、高效、稳定的在并行结构输入端分路时,对不定长IP数据报文进行负载平衡和保序功能的自适应流量平衡系统APOKTB(Adaptive Packet-Order-Keeping Traffic Balancer)及一种基于流分类的报文调度方法FCS(Flow C1assification-based Scheduling),以解决并行结构的路由器中实现IP报文流量平衡、业务流保序、区分服务和自适应功能,降低平均时延和时延抖动,减少超时重传次数和丢包率,提高网络性能和使用率,进而为上层应用提供更好的服务质量。
为解决上述问题,本发明采用的技术方案是:提供一种并行结构保序流量平衡系统,用于将进入系统的IP报文流,按照同一业务流中的IP报文分派到同一并行处理单元和使各并行处理单元负载尽量平衡的原则分派至各并行处理单元,并在各并行处理单元负载不平衡时,对业务流在各并行处理单元的分派图样进行调整,其中,所述分派图样,是指微流类与各并行处理单元等待队列,以实现各并行处理单元的流量平衡和同一业务流中的报文保序,包括流分类与标识子模快、报文分派子模块和测量子模块;
所述流分类与标识子模快,用于将同一业务流的IP报文分类于同一微流类,并将微流类标签附加在IP报文头部形成内部报文,将该报文发送到报文分派子模块;其中,所述微流类是具有相同的源IP主机地址、目的IP主机地址和服务质量位的IP报文类,微流类是报文分派的一个单位,是并行处理单元流量不平衡时进行分派图样调整的一个单位;
所述报文分派子模块,用于在一个报文到达时,在周期T内,按照同一微流类的报文分派到同一队列中、在分派时根据各队列负载均衡的原则将到达路由器的报文送往相应的队列中;所述的分派子模块当接收到来自测量子模块的监测通知时,依预设微流类所属的宏流类被调整的概率的大小判断是否需要对各微流类在各队列上的分派图样进行调整,若需要则调整分派图样;
所述的测量子模块,用于监测所有队列的长度和各宏流类在各队列在周期T内通过的字节数,标识出最长队列的长度和最短队列的长度,当最长队列的长度大于预设阈值,且最长队列的长度与最短队列的长度之差大于另一预设阈值时,通知报文分派子模块调整微流类在各队列上的分派图样,其中,所述宏流类具有相同源IP的网络号、目的IP的网络号和服务质量位的IP报文类,是系统监测的一个单位。
所述报文分派子模块具有临时队列,用于在某一微流类被调整期间,暂时缓存属于该微流类的IP报文。
所述流分类与标识子模块还用于将IP报文流按不同粒度分为巨流类、宏流类和微流类;
所述的巨流类具有相同服务质量位的IP报文类,服务质量位表示IP报文的不同服务质量要求;
其中,所述IP报文流按不同粒度分为巨流类、宏流类和微流类的分类规则是,
所述的巨流类服务级别分为两类,其服务级别的高低表示对同一业务流中的IP报文失序和时延抖动对上层业务影响大小,宏流类的服务质量标识决定了属于该宏流类的微流类被从一个并行单元调整到另一并行处理单元的概率;
所述的宏流类对来自同一源网络到同一目的网络具有相同服务质量要求的IP报文将分类到同一宏流类,该宏流类属于某一个巨流类;
所述的微流类具有相同源IP地址和目的IP地址且具有相同服务质量要求的IP报文将分类于同一微流类中,该微流类属于某一宏流类。
所述的测量子模块用于实时监测所有队列的长度值,并周期性地实时监测从上次流分派图样调整结束到下次流分派图样调整开始的周期内各宏流类通过队列的字节数这两类信息,并将监测结果分别加入队列长度表和周期T内的微流类流量累计表中,其中,所述队列长度表表示存放当前各队列的长度,用于在最长队列的长度超过队列长度阈值且队列长度最大差值超出队列长度差阈值时,向报文分派子模块发出调整通知;所述流量累计表中存放各宏流类在周期T内前期发生的流量累计值,以便报文分派子模块按照预设微流类所属的宏流类被调整的概率决定是否进行分派图样的调整。
所述的测量子模块用于对所有队列长度进行一次测量后,标识出最长队列的长度为MAXQ与最短队列的长度为MINQ,并计算最长队列的MAXQ与最短队列的MINQ之差为DIFFQ,然后将MAXQ和DIFFQ分别与设定的队列长度阈值和队列长度差阈值相比较,当所述最长队列的MAXQ大于设定的第j个队列长度阈值Hj且MAXQ-MINQ超过设定的第j个队列长度差阈值Dj时,该测量子模块通知报文分派子模块,以便报文分派子模块以事先设定最长队列中周期T内通过流量最大宏流类被调整的第j个概率随机决定是否进行分派图样的调整。
所述报文分派子模块用于调整微流类到各队列的分派图样,在完成调整之后,通知测量子模块将周期T内的宏流类流量累计表中的所有统计数值清零,重新开始一个统计周期T。
一种基于流分类的报文调度方法FCS-1,在报文分派子模块接收到流分类与标识子模块发送的附加微流类标识符的IP报文流按同一微流类标识符的IP报文调度至相同队列和使各并行队列负载尽量平衡的原则,按当前分派图样将IP报文调度到相应队列,其特征在于,所述方法包括以下步骤:
r.当一个报文到达时,根据该报文的微流类标识符查找分派图样表;
x.根据步骤r判断该微流类在分派图样中对应表项的队列标识符项是否为空,如果不为空,则执行步骤y,否则执行步骤z;
y.如果该微流类在分派图样中对应表项已分配了队列标识符,则将该报文加入到该队列标识符所示的队列中;
z.当该微流类在分派图样中对应表项没有分配队列标识符时,选取当前最短队列分配给当前微流类,将该队列标识符填入该微流类在分派图样中对应表项,并将该IP报文加入此队列标识符所示的队列中。
一种基于流分类的报文调度方法FCS-2,使用单独的报文分派子模块,在报文分派子模块接收到来自测量子模块的监测通知时,依事先设定微流类所属的宏流类被调整的概率,随机确定是否对分派图样进行调整,,其特征在于,所述方法包括以下步骤:
a.报文分派子模块根据接收到测量子模块发送的MAXQ超过了阈值valveHj且DIFFQ超过了阈值valveDj的调整通知时,根据所述调整通知查找微流类分派图样表,得到相应的微流类已被分派到当前最长队列QL中的宏流类集合,并从宏流类流量累计表中得到宏流类集合中具有最大通过流量累计值的宏流类标识,设该宏流类标识为X;其中,所述宏流类对来自同一源网络到同一目的网络具有相同服务质量要求的IP报文将分类到同一宏流类,该宏流类属于某一个巨流类,所述巨流类具有相同服务质量位的IP报文类,服务质量位表示IP报文的不同服务质量要求;所述微流类具有相同源IP地址和目的IP地址且具有相同服务质量要求的IP报文将分类于同一微流类中,该微流类属于某一宏流类;所述DIFFQ为最长队列的MAXQ与最短队列的MINQ之差;所述分派图样的定义就是指微流类分派到各队列的状况;所述宏流类流量统计表是用于记录测量子模块实时测量的流量;
b.若宏流类标识X的服务质量标识的右一位为’0’,则以预设微流类所属的宏流类被调整的概率P0j执行分派图样调整;若宏流类标识X的服务质量标识的左一位为’1’,则以预设微流类所属的宏流类被调整的概率P1j执行分派图样调整,若执行了分派图样调整,执行步骤c,否则执行步骤h;
c.根据所述宏流类标识X在分派图样中查找属于该宏流类并分派至最长队列QL的微流类集合,从中随机选取一个微流类Y作为被调整对象,将在分派图样中的该微流类的对应表项中的分配的队列标识符从最长队列标识QL修改为最短队列标识QS;
d.依据测量子模块提供的最长队列的长度MAXQ和最短队列的长度MINQ,按公式τ1=(MAXQ-MINQ)/报文出队列速率,计算延时时间τ1,给定时器赋初值为τ1,并启动定时器;
f.判断所述定时器是否超时,若是,执行步骤g;否则,执行步骤e;
e.对新到报文进行处理,判断所述新到的报文是否属于Y类报文,其中,Y类报文为微流类报文;若否,则将不属于Y类报文的新到报文按照权利要求7中所述基于流分类的报文调度方法进行调度;若是,则将属于Y类报文的新到报文缓冲到一个临时队列QT中,直到定时器超时;返回步骤f;
g.由报文分派子模块轮流选取原有队列中的报文流和临时队列QT中的报文流,输出到队列对应的并行处理单元;以及报文分派子模块用于从QT中输出报文的时间多于从其它队列输出报文的时间,以使QT尽快排空;在对新到的报文进行处理时,按照步骤e对所述新到的报文进行处理;
h.判断QT是否为空,若是,则执行步骤i;否则,执行步骤f;
i.报文分派子模块通知测量子模块将周期T内的宏流类流量累计表中的统计数值置零;
j.将新到的报文流按流按照权利要求7中所述基于流分类的报文调度方法进行调度。
与现有技术相比,本发明具有以下优点:
(1)通用性较好。适合于任何并行结构流量分路时使用,只需各处理单元本身不造成报文失序即可,处理单元可以是转发引擎、交换模块或其他任何处理模块;
(2)解决了不定长IP数据报文的流量平衡调度和保序问题;
(3)只需引入一个临时队列,需要存储量小;
(4)算法均可用硬件实现,流量分派图样的调整对其他业务流几乎没有什么影响,对被调整的业务流也仅在很短延时(τ1+τ2)后,开始正常向相应队列发送。因而,负载平衡和保序处理不会造成路由器处理能力下降,对IP报文时延影响极小。
附图说明
图1是并行结构保序流量平衡系统的框图;
图2是一种基于流分类的报文调度方法FCS-1的流程图;
图3是一种基于流分类的报文调度方法FCS-2的流程图。
具体实施方式
为实现保序,需要将同一业务流的IP报文分派到同一并行处理单元中,然而,由于当前通过路由器的业务流的个数较大且不固定,如果对每个流分配至各并行处理单元的分派图样(当前分配状况)进行管理将加大管理的难度,增加系统开销,因此,本发明将当前业务流分为若干微流类,进行报文分派时只需将相同微流类中的IP报文分派到同一并行处理单元,即可保证同一业务流的IP报文分配至同一并行处理单元。
为实现流量平衡,需使用调度算法按同一微流类中的IP报文分派到同一并行处理单元、使各并行处理单元负载尽量平衡的原则进行IP报文的分派,形成、使用并维护当前的分派图样。系统为了解当前各并行处理单元的负载情况,需要监测当前各并行处理单元输入队列的长度、这些队列长度的最大差别以及以往业务流的通过路由器的流量特性,如哪些业务流以往流量较大,在满足一定条件时,将分配到具有最大长度队列中的以往流量较大的微流类调整到另一并行处理单元,并同时保证被调整的微流类中的业务流仍然保序。在对以往业务流量进行监测时,考虑到从一个子网到另一子网的网络流量变化较为平缓,不会因个别业务的加入或离开造成过大抖动,另外,考虑到系统需减少测量数据数目,降低系统成本,因此,本发明按源IP的网络地址、目的IP的网络地址和业务类别将IP报文分为若干宏流类。宏流类是系统监测的一个单位,当系统发现流量不平衡时,在负载最重的(输入队列的长度最长)并行处理单元中的具有最大流量的宏流类中,随机选取一个微流类调整到负载最轻的(输入队列的长度最短)并行处理单元。
为了实现区分服务,在调整微流类到各并行处理单元的分派图样时,需根据IP报文上层承载的应用不同,按不同的概率选取微流类进行调整。对于IPv4报文,由于其没有特殊的通信量类型和流标签字段,因此,本发明采用区分IP报文承载的是传输控制协议TCP还是用户数据报文协议UDP的方法。由于传输控制协议TCP业务对保序和时延抖动的要求更高,因此,传输控制协议TCP业务的微流类被调整的概率较小,用户数据报文协议UDP业务的微流类被调整的概率较大。对于IPv6(IP协议6)报文,由于存在显式的通信量类型(traffic class)和流标签(flow label)字段,因此,本发明将没有特殊服务质量QoS要求的(其通信量类型域和其流标签域均为0)的微流类被调整的概率较大,其他微流类被调整的概率较小。根据被调整的概率大小,IP报文被分为两大类,我们称之为巨流类,在分类标识符中用一位表示,称为服务质量QoS位。
巨流类、宏流类和微流类的定义如下:
巨流类:具有相同服务质量QoS位的IP报文类。服务质量QoS位表示IP报文的不同服务质量QoS需求。本发明中分两类,0表示较高,1表示较低,这里的要求服务级别较高表示对同一业务流中的IP报文失序和时延抖动加大对上层业务影响较大,因此要求更好的服务。对于IPv4(IP协议 报文4)包,若其承载的是传输控制协议TCP包,则服务质量QoS位为0,若承载的是用户数据报文协议UDP包,则服务质量QoS位为1。对IPv6(IP协议 报文6)包,如果其通信量类型traffic class字段和其流标签flow label字段均为0,则其服务质量QoS位为1,否则,其服务质量QoS位为0。宏流类的服务质量QoS标识决定了属于该宏流类的微流类被从一个并行单元调整到另一并行处理单元的概率。
宏流类:具有相同源IP的网络地址、目的IP的网络地址和服务质量QoS位的IP报文类。宏流类是系统监测的一个单位。
微流类:具有相同源IP地址、目的IP地址和QoS位的IP报文类。微流类是报文分派的一个单位,也是在个并行处理单元流量不平衡时进行分派图样调整的一个单位。
下面结合附图和实施例对本发明作进一步详细的描述。
如图1所示,本发明所述的并行结构保序流量平衡系统,对进入系统的多个业务的IP报文流6进行分类、分派和调整,以实现多个并行单元5的流量平衡和同一业务流中的报文保序,包括:一流分类与标识子模快1、一报文分派子模块2和一测量子模块3。所述的流分类与标识子模块1将进入的IP报文分类于某一微流类中(同一流中的报文将被分在同一微流类中),微流类标签附加在该IP报文头部形成内部报文,然后,将该报文转发到报文分派子模块2。报文分派子模块2参照当前的微流类分派图样(表4),根据到达报文的类别,在一段时间T内按照同类报文分派到同一队列和尽量使各队列负载均衡的原则将某一报文送往第i(1≤i≤K,K为并行处理单元的个数)个队列;该报文分派子模块2还负责在收到监测子模块3通知时,依不同概率判断是否需要对各微流类在各队列上的分派图样进行调整,若需要则调整分派图样;所述的测量子模块3监测K个队列Qi(1≤i≤K)的长度和各宏类流在各队列在T时期通过的字节数,并适时通知报文分派子模块2调整微流类在各队列上的分派图样。为减少监测信息的数量采用了宏观监测,微观调整的策略,即监测的是宏流类,调整的是某一微流类。在报文分派子模块,在保证流量尽量均衡地调度到K个并行单元5的同时,只要保证同类报文流被分路到同一个输出流中,即可保证同一业务流通过后续模块(如,交换网络;假设后续模块本身不造成报文失序)的处理时不失序。在某一微流类被调整期间,其所属的IP报文暂时缓存在一个临时队列QT中,从而解决了微流类图样调整期间的报文失序问题,实现了同一业务流中的报文的严格保序。
为增强系统稳定性、降低系统成本、对不同业务提供不同的服务质量QoS,本发明所述的流分类和标识子模块1将通过路由器的IP报文按不同粒度分类为巨流类、宏流类和微流类。分类规则如下:
巨流类分类规则:用1个服务质量QoS位表示,服务质量QoS位为0表示要求较高的服务级别,服务质量QoS位为1表示要求较低的服务级别。在下列公式中,“+”是字符串连接运算符,char(x)表示将x变换成字符串形式,val(x)表示将x从数字字符串形式转换成相应的十进制数值,mod表示求模运算。
宏流类分类规则:其计算公式为
char{val[char(源IP网络号)+char(目的IP网络号)]mod16}+QoS位(1)
即来自同一源网络到同一目的网络具有相同服务质量QoS要求的IP报文将分类到同一宏流类,由5个二进制位表示。某一宏流类必属于某个巨流类。
微流类分类规则:其计算公式为:
char{val[char(源IP网络号)+char(目的IP网络号)]mod16}+char
{val[char(源IP主机地址)+char(目的IP主机地址)]mod8}+QoS bit(2)
即具有相同源IP和目的IP且具有相同服务质量QoS要求的IP报文将分类于同一微流类中,由8个二进制位表示。某一微流类必属于某一宏流类。
进入路由器的IP报文由流分类和标识子模块1取出报文头部信息并按公式(1)计算出微流类标识符,我们将其称为IP报文的类标符。IP报文的类标符包括8位,有三个部分组成:左4位、中间3位和右1位,这样,进入的IP报文将被分类标识为两(21)个用于实施不同服务质量QoS策略的巨流类,即右1位(QoS位)标识,32(25)个用于流量测量的宏流类,即左4位+右1位标识,256(28)个用于流分派的微流类,即全8位标识。流分类和标识子模块1负责将这种分类标识于内部报文头部,供报文分派子模块2块使用。
所述测量子模块3周期性地监测K个队列的长度值(字节数)并实时监测在周期T内各宏流类通过队列的流量(字节数)两类信息,T是从上次流分派图样调整结束到下次流分派图样调整开始的一段时间,并将监测结果分别填入队列长度表(表1)和周期T内的微流类流量累计表(表2)。
监测子模块3在对K个队列长度进行一次测量之后,标识出具有最大队列长度的队列QL和最小队列长度的队列QS。令MAXQ=length(QL)、MINQ=length(QS)、DIFFQ=MAXQ-MINQ,这里length(Q)为求队列Q长度的函数,MAXQ、DIFFQ和DIFFQ为变量,分别存储最长的队列、最短的队列和它们的差
设并行队列的个数K为16个,在某个周期T内测量子模块3的监测结果如表1、表2所示。假设此时具有最大队列长度的队列QL为队列4,具有最小队列长度的队列QS为队列2,则最长队列MAXQ=11432,最短队列MINQ=6789,两队列之差DIFFQ=11432-6789=4643。根据表3(表3的数据可根据系统需要,如队列存储单元个数、分派图样调整频繁程度等因素,由系统管理人员设定),测量子模块发现最长队列MAXQ>阈值H3=11000且最长队列与最短队列之差DIFFQ>阈值D3=1000,则将这种情况表示为消息M3报告给报文分派子模块2,以便其以一定的概率决定是否进行分派图样的调整(从表3可看出,因为当前仅超过第三个阈值,进行分派图样调整的概率设定的较低)。
表1.当前队列的长度
队列标识符 | 当前长度(bytes) |
1 | 7544 |
2 | 6789 |
3 | 8103 |
4 | 11432 |
...... | ........ |
16 | 9689 |
表2.周期T内宏流当前累计流量
宏流类标识符(左4位+右1位) | 周期T内当前累计流量(字节数) |
00000 | 463234 |
00001 | 657657 |
.......... | .......... |
11111 | 964345 |
表3.多个阈值及其对应的重新分派概率
j | 阈值H | 阈值D | P0(QoS bit=0) | P1(QoS bit=1) |
1 | 5000 | 200 | 0.05 | 0.08 |
2 | 8000 | 600 | 0.1 | 0.2 |
3 | 11000 | 1000 | 0.2 | 0.4 |
... | ...... | ...... | ...... | ...... |
8 | 100000 | 5000 | 1 | 1 |
表4.微流类分派图样
类标符(微流类标识符) | 队列标识符 |
00000000 | 6 |
00000001 | 4 |
...... | ...... |
11111101 | 4 |
11111110 | 4 |
11111111 | 1 |
所述报文分派子模块2维护一张微流类分派图样表,如表4所示。在T周期内,正常情况下它执行流分类的报文调度方法FCS-1;当它接收到来自测量子模块3的通知时执行流分类的报文调度方法FCS-2。
流分类的报文调度方法FCS-1是调度某一微流类的报文至相应队列,其流程图如图2所示,所述方法的步骤为:当一个新报文到达时,根据该报文的类标符(微流类标识符)查微流类分派图样(表4);如果对应表项已分配队列标识符m,则将该报文入m队列,否则,选取当前最短队列QS分配给当前微流类(填写表4相应表项),并将该报文入此队列。下面结合实施例具体说明:
例如一个带有类标符(微流类标识符)为00000001的IP报文将依表4被调度到队列4;如果假定该表项尚未填入任何队列标识符,QL当前值为2,则将2填入该表项的队列标识符项,并将该报文调度到队列2。
流分类的报文调度方法FCS-2在调度报文的同时,调整微流类分派图样其流程图如图3所示,所述方法为:
a.报文分派子模块2根据来自测量子模块3的调整通知查找微流类分派图样表,得出微流类集合中具有最大通过流量累计值的宏流类标识ID;
b.根据宏流类标识的不同概率判断是否需要对各微流类在各队列上的分派图样进行调整,若需要调整,执行步骤c,否则执行步骤h;
c.根据所述宏流类标识X查找符合该宏流类标识的微流类分派图样表,来执行微流类分派图样调整程序,随机选择属于该宏流类的某一当前分派在最长队列QL的微流类,将其队列标识符修改为当前的最短队列标识符QS;
d.按公式τ1=最长队列长度与最短队列长度之差DIFFQ/报文出队列速率,计算延时时间τ1,启动定时器,并给定时器赋初值为τ1;
e.对新到报文进行处理,将新到的属于被调整的微流类的IP报文放入临时队列QT中,直到定时器超时;
f.由报文分派子模块2轮流选取新到报文流和临时队列QT中的报文流,临时队列QT中的报文流比新到报文流分配更多的时间片。在对新到报文流处理时,属于被调整的微流类的报文流仍进入QT,其它报文流按算法FCS-1正常调度,直到临时队列QT为空;执行本步骤的这段时间记为τ2;
g.通知测量子模块将周期T内的宏流类流量累计表的统计数值置零;
h.将新到的报文流按流分类的报文调度方法FCS-1进行报文调度。
所述的步骤a包括以下步骤:
a1.当报文分派子模块2收到测量子模块3发出的调整通知时,最长队列MAXQ已超过了系统设定的第J个阈值valveHj,并且最长队列与最短队列之差DIFFQ也已超过了系统设定的第J个阈值valveDj,则发出查找请求;
a2.报文分派子模块2根据请求查找微流类分派图样表,得到其相应的微流类已被分派到当前最长队列QL中的宏流类集合;再查找T周期内宏流当前累计流量,得到所述宏流类集合中具有最大通过流量累计值的宏流类ID,设其为X。
所述的步骤b包括以下步骤:
b1.如果X的右一位为0,则以j为关键字查找多个阈值及其对应的重新分派概率表,以找到表项的概率P0j执行微流类分派图样调整程序,若执行该程序选择步骤c,否则选择步骤h;
b2.如果X的右一位为1,则以j为关键字查找多个阈值及其对应的重新分派概率表,以找到表项的概率P1j执行微流类分派图样调整程序;若执行该程序转c,否则选择步骤h。
下面以测量子模块3为实例为例,进行说明,报文分派子模块1在收到测量子模块3发来的消息M3后,查微流类分派图样表4,并根据微流类分派图样表得到当前分派到最长队列(队列4)的宏流类集合,不妨设这个集合为{00001,00100,11111,11110};查周期T内宏流类当前累计表2得到该集合中具有最大通过流量累计值的宏流类标识符X=11111;因X的右1位为1,通过定位到多个阈值及其对应的重新分派概率表3的第3(j=3)项得到调整分派图样的概率P13=0.4;系统产生一个[0,1]之间的随机数N,若N>0.4,则进行分派图样调整,否则不进行;若不进行分派图样调整,则随后用FCS-1算法对新到的报文进行调度。若进行分派图样调整,则查询微流类分派图样表4,根据X=11111和QL=4筛选出左4位为1111、右1位为1且分派到最长队列QL的某一微流类,不妨设该微流类为11111101;将微流类分派图样表4中的微流类=11111101的项的队列标识符修改为当前最短队列2;按公式τ1=DIFFQ/报文出队列速率计算延迟时间τ1。在后续的τ1时间内,将未调整之前的所有队列4中剩余的11111101类报文从队列4中输出;在此期间内,新到的报文流中,异于11111101类的报文继续按流分类报文调度方法FCS-1调度,而11111101类报文则缓冲到一个临时队列QT中;τ1时期结束后,报文分派子模块轮流选取新到报文流和临时队列QT中的报文流进行调度,临时队列QT中的报文流比新到报文流分配更多的时间片。在对新到报文流处理时,属于11111101类的报文流仍进入临时队列QT,其它报文流按流分类报文调度方法FCS-1正常调度,直到某时刻临时队列QT为空时;通知测量子模块将表2中的统计数据置零。随后,新到的报文流按流分类报文调度方FCS-1进行报文调度。
本发明中,各表和临时队列QT采用高速缓存(Cache)实现,以提高系统执行效率。
Claims (8)
1.一种并行结构保序流量平衡系统,其特征在于:用于将进入系统的IP报文流,按照同一业务流中的IP报文分派到同一并行处理单元和使各并行处理单元负载尽量平衡的原则分派至各并行处理单元,并在各并行处理单元负载不平衡时,对业务流在各并行处理单元的分派图样进行调整,其中,所述分派图样,是指微流类在各并行处理单元等待队列上的当前分配状况,以实现各并行处理单元的流量平衡和同一业务流中的报文保序;包括流分类与标识子模块、报文分派子模块和测量子模块;
所述流分类与标识子模块,用于将具有同一业务流的报文分类于同一微流类,并将微流类的标签附加在IP报文头部形成内部报文,将该报文发送到报文分派子模块;其中,所述微流类是具有相同的源IP主机地址、目的IP主机地址和服务质量位的IP报文类,微流类是报文分派的一个单位,是并行处理单元流量不平衡时进行分派图样调整的一个单位;
所述报文分派子模块,用于在一个报文到达时,在周期T内,按照同一微流类的报文分派到同一队列中,在分派时根据各队列负载均衡的原则将到达路由器的报文送往相应的队列中;当接收到来自测量子模块的监测通知时,依预设宏流类被调整的概率的大小判断是否需要对各微流类在各队列上的分派图样进行调整,若需要,则调整分派图样;
所述测量子模块,用于监测所有队列的长度和各宏流类在各队列在周期T内通过的字节数,标识出最长队列的长度和最短队列的长度,当最长队列的长度大于预设阈值,且最长队列的长度与最短队列的长度之差大于另一预设阈值时,通知报文分派子模块调整分派图样,其中,所述宏流类具有相同源IP的网络号、目的IP的网络号和服务质量位的IP报文类,是系统监测的一个单位。
2.根据权利要求1所述的一种并行结构保序流量平衡系统,其特征在于:所述报文分派子模块具有临时队列,用于在某一微流类被调整期间,暂时缓存属于该微流类的IP报文。
3.根据权利要求2所述的一种并行结构保序流量平衡系统,其特征在于:所述流分类与标识子模块还用于将IP报文按不同粒度分为巨流类、宏流类和微流类;
所述巨流类具有相同服务质量位的IP报文类,服务质量位表示IP报文的不同服务质量要求;
其中,所述IP报文流按不同粒度分为巨流类、宏流类和微流类的分类规则是:
所述的巨流类服务级别分为两类,其服务级别的高低表示对同一业务流中的IP报文失序和时延抖动对上层业务影响大小,宏流类的服务质量位决定了属于该宏流类的微流类被从一个并行单元调整到另一并行处理单元的概率;
所述的宏流类对来自同一源网络到同一目的网络具有相同服务质量要求的IP报文将分类到同一宏流类,该宏流类属于某一个巨流类;
所述的微流类具有相同源IP地址和目的IP地址且具有相同服务质量要求的IP报文将分类于同一微流类中,该微流类属于某一宏流类。
4.根据权利要求1所述的一种并行结构保序流量平衡系统,其特征在于:
所述的测量子模块用于实时监测所有队列的长度值,并周期性地实时监测从上次流分派图样调整结束到下次流分派图样调整开始的周期内各宏流类通过队列的字节数这两类信息,并将监测结果分别加入队列长度表和周期T内的宏流类流量累计表中,其中,所述队列长度表表示存放当前各队列的长度,用于在最长队列的长度超过队列长度阈值且队列长度最大差值超出队列长度差阈值时,向报文分派子模块发出调整通知;所述流量累计表中存放各宏流类在周期T内前期发生的流量累计值,以便报文分派子模块按照预设宏流类被调整的概率决定是否进行分派图样的调整。
5.根据权利要求4所述的一种并行结构保序流量平衡系统,其特征在于:所述的测量子模块用于对所有队列长度进行一次测量后,标识出最长队列的长度为MAXQ与最短队列的长度为MINQ,并计算最长队列的MAXQ与最短队列的MINQ之差为DIFFQ,然后将MAXQ和DIFFQ分别与设定的队列长度阈值和队列长度差阈值相比较,当所述最长队列的MAXQ大于设定的第j个队列长度阈值Hj且MAXQ-MINQ超过设定的第j个队列长度差阈值Dj时,该测量子模块通知报文分派子模块,以便报文分派子模块以事先设定最长队列中周期T内通过流量最大的宏流类被调整的第j个概率随机决定是否进行分派图样的调整。
6.根据权利要求5所述的一种并行结构保序流量平衡系统,其特征在于:报文分派子模块用于调整微流类到各队列的分派图样,在完成调整之后,通知测量子模块将周期T内的宏流类流量累计表的所有统计数值清零,重新开始一个统计周期T。
7.一种基于流分类的报文调度方法,其特征在于:在报文分派子模块接收到流分类与标识子模块发送的附加微流类标识符的IP报文流时,按同一微流类标识符的IP报文调度至相同队列和使各并行队列负载尽量平衡的原则,按分派图样将IP报文调度到相应队列,所述方法包括以下步骤:
r.当一个报文到达时,根据该报文的微流类标识符查找分派图样表;
x.根据步骤r判断该微流类在分派图样中对应表项的队列标识符项是否为空,如果不为空,则执行步骤y,否则执行步骤z;
y.如果该微流类在分派图样中对应表项已分配了队列标识符,则将该报文加入到该队列标识符所示的队列中;
z.当该微流类在分派图样中对应表项没有分配队列标识符时,选取当前最短队列分配给当前微流类,将该队列标识符填入该微流类在分派图样中对应表项,并将该IP报文加入此队列标识符所示的队列中。
8.一种基于流分类的报文调度方法,其特征在于:在报文分派子模块接收到来自测量子模块的监测通知时,依事先设定的宏流类被调整的概率,随机确定是否对分派图样进行调整,所述方法包括以下步骤:
a.报文分派子模块根据接收到测量子模块发送的MAXQ超过了阈值valveHj且DIFFQ超过了阈值valveDj的调整通知时,根据所述调整通知查找分派图样,得到相应的微流类已被分派到当前最长队列QL中的宏流类集合,并从宏流类流量累计表中得到宏流类集合中具有最大通过流量累计值的宏流类标识,设该宏流类标识为X;其中,所述宏流类对来自同一源网络到同一目的网络具有相同服务质量要求的IP报文将分类到同一宏流类,该宏流类属于某一个巨流类,所述巨流类具有相同服务质量位的IP报文类,服务质量位表示IP报文的不同服务质量要求;所述微流类具有相同源IP地址和目的IP地址且具有相同服务质量要求的IP报文将分类于同一微流类中,该微流类属于某一宏流类;所述DIFFQ为最长队列的MAXQ与最短队列的MINQ之差;所述分派图样的定义就是指微流类分派到各队列的状况;所述宏流类流量统计表是用于记录测量子模块实时测量的流量;
b.若宏流类标识X的服务质量标识的右一位为’0’,则以预设宏流类被调整的第j个概率P0j执行分派图样调整;若宏流类标识X的服务质量标识的右一位为’1’,则以预设宏流类被调整的第j个概率P1j执行分派图样调整,若执行了分派图样调整,执行步骤c,否则执行步骤h;
c.根据所述宏流类标识X在分派图样中查找属于该宏流类并分派至最长队列QL的微流类集合,从中随机选取一个微流类Y作为被调整对象,将在分派图样中的该微流类的对应表项中的分配的队列标识符从最长队列标识QL修改为最短队列标识QS;
d.依据测量子模块提供的最长队列的长度MAXQ和最短队列的长度MINQ,按公式τ1=(MAXQ-MINQ)/报文出队列速率,计算延时时间τ1,给定时器赋初值为τ1,并启动定时器;
f.判断所述定时器是否超时,若是,执行步骤g;否则,执行步骤e;
e.对新到报文进行处理,判断所述新到的报文是否属于Y类报文,其中,Y类报文为微流类报文;若否,则将不属于Y类报文的新到报文按权利要求7中所述基于流分类的报文调度方法进行调度;若是,则将属于Y类报文的新到报文缓冲到一个临时队列QT中;返回步骤f;
g.由报文分派子模块轮流选取原有队列中的报文流和临时队列QT中的报文流,输出到队列对应的并行处理单元;以及报文分派子模块用于从QT中输出报文的时间多于从其它队列输出报文的时间,以使QT尽快排空;在对新到的报文进行处理时,按照步骤e对所述新到的报文进行处理;
h.判断QT是否为空,若是,则执行步骤i;否则,执行步骤g;
i.报文分派子模块通知测量子模块将周期T内的宏流类流量累计表中的统计数值置零;
j.将新到的报文流按照权利要求7中所述基于流分类的报文调度方法进行调度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2004100700096A CN1728698B (zh) | 2004-07-30 | 2004-07-30 | 并行结构保序流量平衡系统及基于流分类的报文调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2004100700096A CN1728698B (zh) | 2004-07-30 | 2004-07-30 | 并行结构保序流量平衡系统及基于流分类的报文调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1728698A CN1728698A (zh) | 2006-02-01 |
CN1728698B true CN1728698B (zh) | 2010-08-25 |
Family
ID=35927706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2004100700096A Expired - Fee Related CN1728698B (zh) | 2004-07-30 | 2004-07-30 | 并行结构保序流量平衡系统及基于流分类的报文调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1728698B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100420241C (zh) * | 2006-05-08 | 2008-09-17 | 国家数字交换系统工程技术研究中心 | 实现信息交换的系统及方法和调度算法 |
US8079033B2 (en) * | 2007-02-20 | 2011-12-13 | Amadeus Sas | System and method for balancing information loads |
CN101175033B (zh) * | 2007-11-27 | 2010-06-16 | 中兴通讯股份有限公司 | 报文保序方法及其装置 |
CN101577705A (zh) * | 2008-05-08 | 2009-11-11 | 北京东华合创数码科技股份有限公司 | 一种多核并行的网络业务流负载均衡方法及其系统 |
CN101729361B (zh) * | 2008-10-22 | 2012-05-02 | 华为技术有限公司 | 报文处理的方法和装置 |
CN102802200B (zh) * | 2012-08-23 | 2015-03-11 | 福建星网锐捷网络有限公司 | 一种数据报文的发送方法和设备 |
CN105516012B (zh) * | 2014-12-16 | 2019-07-26 | 北京安天网络安全技术有限公司 | 对超大网络流量处理的负载均衡方法及系统 |
CN104935524B (zh) * | 2015-06-17 | 2018-02-23 | 华中科技大学 | 一种多径网络基于链路时延控制的软负载均衡方法 |
CN106385385B (zh) * | 2016-09-29 | 2020-02-21 | 东软集团股份有限公司 | 资源分配方法及装置 |
CN107070796B (zh) * | 2017-02-20 | 2020-03-20 | 河南理工大学 | 一种基于量子隐形传态的自适应rip路由选择方法 |
CN118519729A (zh) * | 2024-07-18 | 2024-08-20 | 贵州华芯半导体技术有限公司 | 一种报文调度方法、系统、存储介质和电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1184977A (zh) * | 1996-12-07 | 1998-06-17 | 国际商业机器公司 | 高效计算机服务器系统 |
EP1154610A2 (en) * | 2000-05-12 | 2001-11-14 | International Business Machines Corporation | Methods and system for defeating TCP Syn flooding attacks |
-
2004
- 2004-07-30 CN CN2004100700096A patent/CN1728698B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1184977A (zh) * | 1996-12-07 | 1998-06-17 | 国际商业机器公司 | 高效计算机服务器系统 |
EP1154610A2 (en) * | 2000-05-12 | 2001-11-14 | International Business Machines Corporation | Methods and system for defeating TCP Syn flooding attacks |
Non-Patent Citations (1)
Title |
---|
JP特开2002-94605A 2002.03.29 * |
Also Published As
Publication number | Publication date |
---|---|
CN1728698A (zh) | 2006-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10530846B2 (en) | Scheduling packets to destination virtual machines based on identified deep flow | |
US7243351B2 (en) | System and method for task scheduling based upon the classification value and probability | |
US6768716B1 (en) | Load balancing system, apparatus and method | |
CN1728698B (zh) | 并行结构保序流量平衡系统及基于流分类的报文调度方法 | |
US8774001B2 (en) | Relay device and relay method | |
CN1781287A (zh) | 用于柔性带宽分配的方法和设备 | |
JP2001197111A (ja) | マルチレイヤクラス識別通信装置と通信装置 | |
CN1736069A (zh) | 计算机或通信系统中的数据包处理 | |
JP2013168934A (ja) | 負荷均衡装置及び負荷均衡方法 | |
JP2001077848A (ja) | 帯域割り当て方法 | |
JP2014187421A (ja) | 通信装置及びパケットスケジューリング方法 | |
CN1141701A (zh) | 帧中继网络中过载情况的控制 | |
KR101524860B1 (ko) | 데이터 컷-스루를 수행하기 위한 시스템 | |
CN109960586B (zh) | 一种服务器状态可感知的四层负载均衡器及均衡方法 | |
US20170048145A1 (en) | Switching device and control method of switching device | |
US8199764B2 (en) | Scalable approach to large scale queuing through dynamic resource allocation | |
CN100593312C (zh) | 使用定额和差额值进行调度 | |
US20060251071A1 (en) | Apparatus and method for IP packet processing using network processor | |
CN111629074B (zh) | 一种网关设备的会话排序方法及装置 | |
KR101611119B1 (ko) | 3진 내용 주소화 기억장치(tcam) 내의 클러스터로의 레코드의 동적 할당 | |
CN1757206A (zh) | 用于提供差异服务的系统和方法 | |
JP2000083055A (ja) | ルータ | |
CN100550831C (zh) | 吉比特无源光网络严格优先级加权轮询调度方法和系统 | |
AU784302B2 (en) | Queue allocation system and queue allocation method of a packet exchanger | |
Jmila et al. | An adaptive load balancing scheme for evolving virtual networks |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100825 Termination date: 20160730 |