一种报文分流方法和网络设备的制作方法

文档序号:7890459阅读:269来源:国知局
专利名称:一种报文分流方法和网络设备的制作方法
技术领域
本发明涉及通信技术领域,特别涉及一种报文分流方法和网络设备。
技术背景
现有多核设备中,将CPUO用作控制核,运行操作系统;将其他CPU用作数据核,负责数据接收和转发。流量在数据核上的分配越均勻,越能充分利用CPU资源,性能越好。目前的流量分配,通常是根据报文五元组,即源IP地址、目的IP地址、协议号、源端口号和目的端口号,进行分流,同一条流的报文进入同一个CPU处理,多条流分配到不同的CPU上处理。因此,一种好的分流方法,可以让流量尽可能均勻地分配在多个数据核上,对多核网络设备性能起着至关重要的作用。
现有实现分流的方法的具体流程为接收报文,提取报文的五元组。报文五元组为源IP地址、目的IP地址、协议号、源端口号和目的端口号。根据该五元组进行CRC32哈希,将哈希值模数据核个数并将模结果加1,得到数值与CPU队列匹配,由于CPU队列与CPU 一一对应,因此将接收的报文分配到匹配的CPU队列所对应的数据核进行处理。由于对模的结果进行了加1处理,因此结果不存在与匹配队列0的报文,即不需要有报文分配到CPUO 控制核进行处理。
现有实现方法中的模运算,是计算复杂度很高的运算。目前多核处理器的CPU个数通常为2K(k = 2,3,...),那么数据核的个数为2Κ_1,因此不能使用与运算取代模运算。 这种使用模运算实现报文分流方法既消耗资源又影响性能,如果资源不够,将无法实现报文分流。发明内容
有鉴于此,本发明提供一种报文分流方法和网络设备,能够提高报文分流效率,降低资源消耗。
为解决上述技术问题,本发明的技术方案是这样实现的
—种报文分流方法,预设队列号为0到2Κ_1的队列,预设数值,所述预设数值按从大到小排序为M1, ...,Mi, ...,Μη,其中,M1根据队列号为0的队列上的流量与总流量的比值 1/2 1 的范围确定,M2,...,Mi,...,Mn 根据 M1 确定,K、n、LM1,... ,Mi,...,Mn 为自然数, Mlri > Mn = 2,所述方法包括
接收报文,根据报文类型提取所述接收报文的元组信息,并根据所述提取的元组信息进行均衡运算,将均衡运算值按照每份K比特数划分;
在均衡运算值划分的份数中,获取M1份K比特数,并进行求和运算,将所述求和运算的结果划分为M2份K比特数;
获取所述M2份K比特数,并进行求和运算,将所述M2份K比特数求和运算的结果划分为M3份K比特数,并获取所述M3份K比特数进行求和运算,以此类推,直到获取Mn份K 比特数并进行求和运算,将所述Mn份K比特数进行求和运算的结果划分为Mn份K比特数,获取当前Mn份K比特数进行求和运算;
将所述接收的报文分配到队列号与当前1份K比特数求和运算的结果相同的队列中。
一种报文分流方法,预设队列号为1到2Κ_1的队列,预设数值,所述预设数值从大到小排序为M1,. . . ,Mi,.. .,Μη,其中,M1根据非均衡流量与总流量的比值1/2-1的范围确定, M2, ...,Mi, ...,Mn 根据 M1 确定,K、n、i,M1, ...,Mi, ...,Mn 为自然数,Mlri > Mn = 2,所述方法包括
接收报文,根据报文类型提取所述接收报文的元组信息,并根据所述提取的元组信息进行均衡运算,将均衡运算值按照每份K比特数划分;
在均衡运算值划分的份数中,获取M1份K比特数,并进行求和运算,将所述求和运算的结果划分为M2份K比特数;
获取所述M2份K比特数,并进行求和运算,将所述M2份K比特数求和运算的结果划分为M3份K比特数,并获取所述M3份K比特数进行求和运算,以此类推,直到获取Mn份 K比特数并进行求和运算,将所述Mn份K比特数据进行求和运算的结果划分为Mn份K比特数,获取当前Mn份K比特数进行求和运算;
若当前Mn份K比特数求和运算的结果不为0,则将所述接收的报文分配到队列号与当前轧份1(比特数求和运算的结果相同的队列中;若当前1份1(比特数求和运算的结果为0,将所述报文按照预定策略固定分配到队列号为1到2K-1之一的队列中。
一种网络设备,所述网络设备包括配置单元、接收单元、运算单元、处理单元、确定单元和队列单元;
所述配置单元,用于在所述队列单元中设置队列号为0到2Κ_1的队列,预设数值, 所述预设数值按从大到小排序为M1, ...,Mi, ...,Μη,其中,M1根据队列号为0的队列上的流量与总流量的比值1/2%的范围确定,M2, ...,Mi, ...,Mn根据M1确定,K、n、i, M1,..., Mi, ...,Mn 为自然数,Mlri > Mn = 2 ;
所述接收单元,用于接收报文;
所述运算单元,用于根据所述接收单元接收的报文类型提取所述接收报文的元组信息,并根据所述提取的元组信息进行均衡运算;
所述处理单元,用于将所述运算单元均衡运算值按照每份K比特数划分;在均衡运算值划分的份数中,获取所述配置单元设置的M1份K比特数,并进行求和运算,将所述求和运算的结果划分为所述配置单元设置的M2份K比特数;获取所述M2份K比特数,并进行求和运算,将所述M2份K比特数求和运算的结果划分为所述配置单元设置的M3份K比特数,并获取所述礼份1(比特数进行求和运算,以此类推,直到获取所述配置单元设置的^份 K比特数并进行求和运算,将所述Mn份K比特数据进行求和运算的结果划分为Mn份K比特数,并获取当前Mn份K比特数进行求和运算;
所述确定单元,用于将所述接收单元接收的报文分配到所述队列单元中队列号与所述处理单元获取当前Mn份K比特数求和运算的结果相同的队列。
一种网络设备,所述网络设备包括配置单元、接收单元、运算单元、处理单元、确定单元和队列单元;
所述配置单元,用于在所述队列单元中设置队列号为1到2Κ_1的队列,预设数值,所述预设数值按从大到小排序为M1, ...,Mi, ...,Mn,其中,M1根据非均衡流量占与总流量的比值 1/2 1 的范围确定,M2, . . .,Mi,...,Mn 根据 M1 确定,LruLM1,...,Mi,...,Mn 为自然数,Mlri > Mn = 2 ;所述接收单元,用于接收报文;所述运算单元,用于根据所述接收单元接收的报文类型提取所述接收报文的元组信息,并根据所述提取的元组信息进行均衡运算;所述处理单元,用于将所述运算单元均衡运算值按照每份K比特数划分;在均衡运算值划分的份数中,获取所述配置单元设置的M1份K比特数,并进行求和运算,将所述求和运算的结果划分为所述配置单元设置的M2份K比特数;获取所述M2份K比特数,并进行求和运算,将所述M2份K比特数求和运算的结果划分为所述配置单元设置的M3份K比特数,并获取所述礼份1(比特数进行求和运算,以此类推,直到获取所述配置单元设置的^份 K比特数并进行求和运算,将所述Mn份K比特数据进行求和运算的结果划分为Mn份K比特数,并获取当前Mn份K比特数进行求和运算;所述确定单元,用于若当前^份1(比特数求和运算的结果不为0,则将所述接收的报文分配到所述队列单元中队列号与所述处理单元获取当前Mn份K比特数进行求和运算的结果相同的队列;若当前1份1(比特数求和运算的结果为0,将所述报文按照预定策略固定分配到所述队列单元中队列号为1到2K-1之一的队列中。综上所述,本发明通过加法计算替代现有的模计算,对均衡运算的结果进行有限次分段进位相加,将接收的报文分配到队列号与分段进位相加的结果相同的队列中,能够提高报文分流效率,降低资源消耗。


图1为本发明实施例一中报文分流方法流程示意图;图2为本发明实施例二中报文分流方法流程示意图;图3为本发明实施例中3个加法器实现报文分流示意图;图4为本发明实施例中4个加法器实现报文分流示意图;图5为应用于本发明具体实施例一报文分流技术的网络设备结构示意图;图6为应用于本发明具体实施例二报文分流技术的网络设备结构示意图。
具体实施例方式为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。本发明实施例一提出一种报文分流方法,预设队列号为0到2Κ_1的队列,预设数值,所述预设数值按从大到小排序为M1, ...,Mi, ...,Mn,其中,M1根据队列号为0的队列上的流量与总流量的比值1/2 1的范围确定,M2, ...,Mi,...,Mn根据M1确定,K、n、i,M1,..., Mi, ...,Mn 为自然数,Mlri >Mn= 2。参见图1,图1为本发明实施例一中报文分流方法流程示意图。具体步骤为步骤101,接收报文,根据报文类型提取所述接收报文的元组信息,并根据所述提取的元组信息进行均衡运算,将均衡运算值按照每份K比特数划分。
本步骤中报文类型不同,提取报文的元组信息将不同。若报文为IP报文时,提取报文的元组信息为源IP地址、目的IP地址、协议号、源端口号和目的端口号;若报文为(多协议标签交换)MPLS报文,则提取的元组信息为标签和协议号。在具体实现时,根据报文类型进行提取,其他报文实现方式类似,这里不再一一例举。本步骤中的均衡运算,是将运算值平均分配到某个区间,能达到该运算效果的算法都可以实现,如哈希算法。通用的CRC32算法使运算的结果平均分配到0到232-1区间。具体使用何种均衡算法根据实际需要确定,使用任何均衡算法不影响本发明实施例的实现。步骤102,在均衡运算值划分的份数中,获取M1份K比特数,并进行求和运算,将所述求和运算的结果划分为M2份K比特数。步骤103,获取所述M2份K比特数,并进行求和运算,将所述M2份K比特数求和运算的结果划分为M3份K比特数,并获取所述M3份K比特数进行求和运算,以此类推,直到获取Mn份K比特数并进行求和运算,将所述Mn份K比特数进行求和运算的结果划分为Mn份K 比特数,获取当前Mn份K比特数进行求和运算。本步骤中,每次取的份数为上次计算结果能划分的份数,直到取到预设的最小值的份数Mn时,将这最小值份数Mn的K比特数进行求和运算,并将求和结果再次划分为最小值份数Mn的K比特数,再次将再次划分的最小值份数K比特数进行求和运算,保证最后一次求和运算的结果值为队列号0到2K-1中的一个。步骤104,将所述接收的报文分配到队列号与当前^份1(比特数求和运算的结果相同的队列中。在现有的多核网络设备中,一般包括一个控制核和多个数据核,其中,多个数据核负责对报文的处理,如何使报文均勻分配在各个数据核上进行处理,即如何实现报文分流
至关重要。实施例一中的报文分流方法可应用于包括2Κ_1个数据核的网络设备中,所述队列号为0到2Κ-1的队列中的1到2Κ-1的队列与所述2Κ-1个数据核一一对应,所述队列号为 0的队列与所述队列号为Q的队列对应的数据核相对应,其中,1 < Q < 2K-1,Q为自然数; 2Κ-1个数据核处理与其相对应的队列中的报文。其中,在具体实现时Q为1到2Κ_1之间任意自然数,但需预先指定其中一个,匹配到队列号为0的队列时,都将报文固定分配给该队列号为Q的队列,从而使相应报文最终被同一个数据核进行处理,以免出现元组信息相同的报文被分配到不同的数据核进行处理。本发明实施例二还提出一种报文分流方法,预设队列号为1到2Κ_1的队列,预设数值,所述预设数值按从大到小排序为M1, ...,Mi, ...,Mn,其中,M1根据非均衡流量与总流量的占比值 1/2 1 的范围确定,M2, ...,Mi, ...,Μη 根据 M1 确定,K、IuLM1, ...,Mi, ...,Mn 为自然数,Mlri > Mn= 2。其中,非均衡流量的流量与总流量的占比值指最终运算的结果为 0的流量与总流量的比值。参见图2,图2为本发明实施例二中报文分流方法流程示意图。具体步骤为步骤201,接收报文,根据报文类型提取所述接收报文的元组信息,并根据所述提取的元组信息进行均衡运算,将均衡运算值按照每份K比特数划分。本步骤中根据报文类型提取所述接收报文的元组信息,并根据所述提取的元组信息进行均衡运算同上文描述,这里不再赘述。
步骤202,在均衡运算值划分的份数中,获取M1份K比特数,并进行求和运算,将所述求和运算的结果划分为M2份K比特数。步骤203,获取所述M2份K比特数,并进行求和运算,将所述M2份K比特数求和运算的结果划分为M3份K比特数,并获取所述M3份K比特数进行求和运算,以此类推,直到获取1份1(比特数并进行求和运算,将所述1份1(比特数据进行求和运算的结果划分为^份 K比特数,获取当前Mn份K比特数进行求和运算。步骤204,若当前Mn份K比特数求和运算的结果不为0,则将所述接收的报文分配到队列号与当前1份1(比特数求和运算的结果相同的队列中;若当前1份1(比特数求和运算的结果为0,将所述报文按照预定策略固定分配到队列号为1到2K-1之一的队列中。其中,预定策略为预先设定运算结果为0时,将运算结果为0的报文分配给队列号为1到2Κ-1 之一的队列中,但是,必须预先确定要分配给的队列号。如将运算结果为0的报文都分配给队列号为1的队列。实施例二中的报文分流方法可应用于包括2Κ_1个数据核的网络设备中,所述队列号为1到2Κ-1的队列与所述2Κ-1个数据核一一对应;所述2Κ-1个数据核处理与其相对应的队列中的报文。实施例一和实施例二中,将均衡运算值按照每份K比特数划分的方法为可以将均衡运算值从低位到高位按照每份K比特数划分,最高位份不够K比特数时补0为K比特或者不够K比特数时不计最高位份;也可以从高位到低位按照每份比特数划分,最低位份不够K比特数时补0为K比特或者不够K比特数时不计最低位份。在均衡运算值划分的份数中,获取M1份K比特数的方法为在均衡运算值划分的份数中,随机选取M1份K比特数,也可以从低位到高位,或者从高位到低位顺序取M1份K比特数。本发明具体实现时,预设的M1份一般小于均衡运算值划分K比特数的份数,因此, 在这里如果最高位份或最低位份不够K比特数时不计最高位份或最低位份的实现方式完全不影响最终的分配结果。其中较佳的一种实现方式为,将均衡运算值从低位到高位按照每份K比特数划分,最高位份不够K比特数时补0为K比特,在均衡运算值划分的份数中按照从低位到高位的顺序取M1份K比特数。。另一种较佳的实现方式为将均衡运算值从低位到高位按照每份K比特数划分, 最高位份不够K比特数时不计最高位份;在均衡运算值划分的份数中按照从低位到高位或从高到低位的顺序取M1份K比特数。本发明的上述具体实施例中,M2, ...,Mi, ...,Mn根据M1确定的方法为Mi = Rlog2 MwGii-…/足],其中「]表示向上取整,其中,1 < i-1 <η。由于Mlri
> Mn = 2,因此根据上述计算公式计算得Mn为2时不再计算,并将Mn = 2作为该组预设值的结束值。假设网络设备包括7个数据核时,则K为3,当1/2%的范围为不大于1/227时,设置M1为9,η为2,并根据M1确定M2为2 ;当1/2%的范围为不大于W时,设置M1为8,η 为2,并根据M1确定M2为2 ;当1/2·1的范围为不大于1/23°时,设置M1为10,η为3,并根据 M1确定M2为3,M3确定为2。其中,当1/2%的范围为不大于1/224时,M1为8、9或10等都可以,为了计算方便,以及资源节省,一般实现时可以取最少份数8。取最小份数至少有以下两个优点第一,获取的份数减少了,进行加法运算减少了。第二,获取的份数减少了,K比特加法器的个数也可能少了。由于M2, ...,Mi, ...,Mn由M1确定的,若M1设置为8,
M2 = [[Iog2 M1 (2Κ-1)]/Κ] = [[Iog2 8(23 -1}]/3] =2 ,因此需要 3 个加法器实现。参见图 3,图
3为本发明实施例中3个加法器实现报文分流示意图。图3中,η为8,以哈希值为32比特为例,通过3个加法器即可实现。若M1 设置为 10, M2 =「「log2M1^-1)]/X] =「「l0g210(23-1)]/3]=3 ,
厘3 =「「1明2 (2£-1)]/^ =「「1明2 3(23 -1)]/3]=2,因此需要4个加法器实现。参见图4,图
4为本发明实施例中4个加法器实现报文分流示意图。图4中η为10,同样以哈希值32比特为例,图4中通过4个加法器即可实现。在具体实施例中以网络设备分流IP报文为例,下面结合附图,例举具体实施例详细说明本发明是如何实现报文分流的。该网络设备包括7个数据核,设队列号为O到7,其中,队列号为1到7的队列与数据核一一对应,队列号为O的队列与队列号为5的队列相对应。如果该网络设备使用的是哈希算法是CRC32,若队列号为O的队列上的流量与总流量的比值的范围为1/2W不大于1/227时,设置虬为9、10或11,但是根据上文讨论的取份数值最小的较优原则,在满足了系统的要求,即队列O分得的流量较少时,不影响平均分配的情况下,该实施例中取M1为9即可。由于M1为9,则η为2,M2为2。网络设备预先配置完成之后,接收到IP报文,提取该IP报文的五元组信息源IP 地址、目的IP地址、协议号、源端口号和目的端口号。通过CRC32获得哈希结果值。若使用CRC32算法计算的结果H = 12372576545 (octal)。将H从低位到高位划分成11份3比特数,则从H八进制的低位到高位依次5,4,5,6,...,1。最后的1只有2比特有效,用0补充成3比特,值不变。从划分的11份中取M1份,即9份,这里从低位开始选择前9份5,4,5,6,. . .,3。使用3比特加法器将这9份分段相加,得到的结果为M(octal),此结果再划分成 M2份,即2份。再取上次结果划分的2份并相加结果为11 (octal)。由于已取得预设最小值礼,所以将上次结果再次划分2份3比特数,再相加值就是队列号,得到的队列号为2。将该IP报文分配到队列号为2的队列中,与该队列相对应的数据核处理队列号为2的队列中的报文。若最终计算结果为O时,则该IP报文分配到与队列号为5的队列中,与该队列相对应的数据核处理队列号为5的队列中的报文。上文已经讨论过,队列号为O的队列上的流量占总流量的比值是在可接受范围内,即该流量相对是较小的,不影响要达到的平均分配。基于同样的发明构思,本发明还提出一种可应用前述报文分流的网络设备。参见图5,图5为应用于本发明具体实施例一报文分流技术的网络设备结构示意图。该网络设备包括配置单元501、接收单元502、运算单元503、处理单元504、确定单元505和队列单元 506。
配置单元501,用于在队列单元506中设置队列号为0到2K_1的队列,预设数值, 所述预设数值按从大到小排序为M1, ...,Mi, ...,Μη,其中,M1根据队列号为0的队列上的流量与总流量的比值1/2%的范围确定,M2, ...,Mi, ...,Mn根据M1确定,K、n、i, M1,..., Mi, ...,Mn 为自然数,Mlri >Mn= 2。接收单元502,用于接收报文。运算单元503,用于根据接收单元502接收的报文类型提取所述接收报文的元组信息,并根据所述提取的元组信息进行均衡运算。处理单元504,用于将运算单元503均衡运算值按照每份K比特数划分;在均衡运算值划分的份数中,获取配置单元501设置的M1份K比特数,并进行求和运算,将所述求和运算的结果划分为配置单元501设置的M2份K比特数;获取所述M2份K比特数,并进行求和运算,将所述M2份K比特数求和运算的结果划分为配置单元501设置的M3份K比特数,并获取所述M3份K比特数进行求和运算,以此类推,直到获取配置单元501设置的Mn份K比特数并进行求和运算,将所述Mn份K比特数据进行求和运算的结果划分为Mn份K比特数, 并获取当前Mn份K比特数进行求和运算。确定单元505,用于将接收单元502接收的报文分配到队列单元506中队列号与处理单元504获取当前Mn份K比特数求和运算的结果相同的队列中。进一步,该网络设备包括2Κ_1个数据核507。配置单元501,进一步用于设置所述队列号为0到2Κ_1的队列中的1到2Κ_1的队列与所述2Κ-1个数据核一一对应,所述队列号为0的队列与所述队列号为Q的队列对应的数据核相对应,其中,1 < Q < 2K-1,Q为自然数。数据核507,用于处理队列单元506中与其对应的队列中的报文。较佳地,处理单元504,用于将均衡运算值从低位到高位按照每份K比特数划分,最高位份不够K比特数时补0为K比特数;在所述均衡运算值划分的份数中按照从低位到高位的顺序取M1份K比特数。较佳地,处理单元504,用于将均衡运算值从低位到高位按照每份K比特数划分,最高位份不够K比特数时不计最高位份;在所述均衡运算值划分的份数中按照从低位到高位或从高位到低位的顺序取M1份K比特数。较佳地,配置单元501,用于通过风=^log2MHpii -1)]/足]确定 M2,. . · ,Mi,.. ·,Μη,其中,
「1表示向上取整,1 < 1-1 ^ η。较佳地,配置单元501,用于若数据核506个数为7时,K为3 ;当1/2·1的范围为不大于 1/224时,设置M1为8,η为2 ;当1/2%的范围为不大于1/227时,设置M1为9,η为2 ;当1/2鄉的范围为不大于1/23°时,设置M1为10,η为3,并根据M1确定M2为3。参见图6,图6为应用于本发明具体实施例二报文分流技术的网络设备结构示意图。该网络设备包括配置单元601、接收单元602、运算单元603、处理单元604、确定单元605和队列单元606。配置单元601,用于在队列单元606中设置队列号为1到2K_1的队列,预设数值, 所述预设数值按从大到小排序为M1, ...,Mi, ...,Μη,其中,M1根据非均衡流量与总流量的占比值 1/2 1 的范围确定,M2, . . .,Mi,...,Mn 根据 M1 确定,K、n、LM1,...,Mi,...,Mn 为自然数,Mlri > Mn = 2。接收单元602,用于接收报文。运算单元603,用于根据接收单元602接收的报文类型提取所述接收报文的元组信息,并根据所述提取的元组信息进行均衡运算。处理单元604,用于将运算单元603均衡运算值按照每份K比特数划分;在均衡运算值划分的份数中,获取配置单元601设置的M1份K比特数,并进行求和运算,将所述求和运算的结果划分为配置单元601设置的M2份K比特数;获取所述M2份K比特数,并进行求和运算,将所述礼份1(比特数求和运算的结果划分为配置单元601设置的礼份1(比特数,并获取所述M3份K比特数进行求和运算,以此类推,直到获取配置单元601设置的Mn份K比特数并进行求和运算,将所述Mn份K比特数据进行求和运算的结果划分为Mn份K比特数, 并获取当前Mn份K比特数进行求和运算。确定单元605,用于若当前Mn份K比特数求和运算的结果不为0,则将所述接收的报文分配到队列单元606中队列号与处理单元604获取当前Mn份K比特数进行求和运算的结果相同的队列;若当前1份1(比特数求和运算的结果为0,将所述报文按照预定策略固定分配到队列单元606中队列号为1到2Κ-1之一的队列中。进一步的,该网络设备包括2Κ-1个数据核607。配置单元601,进一步用于设置所述队列号为1到2Κ_1的队列与所述2Κ_1个数据核607——对应;数据核607,用于处理队列单元中与其对应的队列中的报文。较佳地,处理单元604,用于将均衡运算值从低位到高位按照每份K比特数划分,最高位份不够K比特数时补0为K比特数;在所述均衡运算值划分的份数中按照从低位到高位的顺序取M1份K比特数。较佳地,处理单元604,用于将均衡运算值从低位到高位按照每份K比特数划分,最高位份不够K比特数时不计最高位份;在所述均衡运算值划分的份数中按照从低位到高位或从高位到低位的顺序取M1份K比特数。较佳地,配置单元601,用于通过 M1 = ^log2MHpii _1)]/足]确定 M2,. . .,Mi;. · .,Μη,其中,
「1表示向上取整,1 < 1-1 ^ η。较佳地,配置单元601,用于若数据核606个数为7时,K为3 ;当1/2·1的范围为不大于 1/224时,设置M1为8,η为2 ;当1/2%的范围为不大于1/227时,设置M1为9,η为2 ;当1/2% 的范围为不大于1/23°时,设置M1为10,η为3,并根据M1确定M2为3。
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。综上所述,本发明通过加法计算替代现有的模计算,对均衡运算值进行有限次分段进位相加,将接收的报文分配到队列号与分段进位相加的结果相同的队列中,能够降低资源消耗,提高报文分流效率。该方法可应用于包括多核的网络设备中,能将报文流量尽可能地均勻分配在多个数据核上。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种报文分流方法,其特征在于,预设队列号为0到2K-1的队列,预设数值,所述预设数值按从大到小排序为M1, ...,Mi, ...,Μη,其中,M1根据队列号为0的队列上的流量与总流量的比值1/2 1的范围确定,M2, ... , Mi, ...,Μη根据M1确定,K、IuLM1, ...,Mi,..., Mn为自然数,Mlri > Mn = 2,所述方法包括接收报文,根据报文类型提取所述接收报文的元组信息,并根据所述提取的元组信息进行均衡运算,将均衡运算值按照每份K比特数划分;在均衡运算值划分的份数中,获取M1份K比特数,并进行求和运算,将所述求和运算的结果划分为M2份K比特数;获取所述M2份K比特数,并进行求和运算,将所述M2份K比特数求和运算的结果划分为M3份K比特数,并获取所述M3份K比特数进行求和运算,以此类推,直到获取Mn份K比特数并进行求和运算,将所述Mn份K比特数进行求和运算的结果划分为Mn份K比特数,获取当前Mn份K比特数进行求和运算;将所述接收的报文分配到队列号与当前仏份K比特数求和运算的结果相同的队列中。
2.根据权利要求1所述的方法,其特征在于,所述方法可应用于包括2Κ-1个数据核的网络设备中,所述队列号为0到2Κ-1的队列中的1到2Κ-1的队列与所述2Κ-1个数据核一一对应,所述队列号为0的队列与所述队列号为Q的队列对应的数据核相对应,其中, 1彡Q彡2K-1,Q为自然数;所述2K-1个数据核处理与其相对应的队列中的报文。
3.根据权利要求1或2所述的方法,其特征在于,所述将均衡运算值按照每份K比特数划分的方法为将均衡运算值从低位到高位按照每份K比特数划分,最高位份不够K比特数时补0为K比特数;在所述均衡运算值划分的份数中,获取M1份K比特数的方法为在均衡运算值划分的份数中按照从低位到高位的顺序取M1份K比特数。
4.根据权利要求1或2所述的方法,其特征在于,所述将均衡运算值按照每份K比特数划分的方法为将均衡运算值从低位到高位按照每份K比特数划分,最高位份不够K比特数时不计最高位份;在所述均衡运算值划分的份数中,获取礼份1(比特数的方法为在均衡运算值划分的份数中按照从低位到高位或从高到低位的顺序取M1份K比特数。
5.根据权利要求1或2所述的方法,其特征在于,所述M2, · · ·為,· · ·,Mn根据M1确定的方法为=Mi = Rlog2MiJ2ii -I}]/叫,其中「]表示向上取整,其中,1 < i-1 ^ η。
6.根据权利要求2所述的方法,其特征在于,若数据核个数为7时,K为3; 当1/2 的范围为不大于1/224时,则M1为8,η为2 ;当1/2 的范围为不大于1/227时,则M1为9,η为2 ; 当1/2%的范围为不大于1/230时,则M1为10,η为3,并根据M1确定M2为3。
7.一种报文分流方法,其特征在于,预设队列号为1到2Κ-1的队列,预设数值,所述预设数值从大到小排序为M1, ...,Mi,...,Mn,其中,M1根据非均衡流量与总流量的比值1/2-1 的范围确定,M2, ...,Mi, ...,Mn 根据 M1 确定,K、n、i,M1, ...,Mi, ...,Mn 为自然数,Mlri >Mn = 2,所述方法包括接收报文,根据报文类型提取所述接收报文的元组信息,并根据所述提取的元组信息进行均衡运算,将均衡运算值按照每份K比特数划分;在均衡运算值划分的份数中,获取M1份K比特数,并进行求和运算,将所述求和运算的结果划分为M2份K比特数;获取所述M2份K比特数,并进行求和运算,将所述M2份K比特数求和运算的结果划分为M3份K比特数,并获取所述M3份K比特数进行求和运算,以此类推,直到获取Mn份K比特数并进行求和运算,将所述Mn份K比特数据进行求和运算的结果划分为Mn份K比特数, 获取当前Mn份K比特数进行求和运算;若当前Mn份K比特数求和运算的结果不为0,则将所述接收的报文分配到队列号与当前1份1(比特数求和运算的结果相同的队列中;若当前Mn份K比特数求和运算的结果为 0,将所述报文按照预定策略固定分配到队列号为1到2K-1之一的队列中。
8.根据权利要求7所述的方法,其特征在于,所述方法可应用于包括2Κ-1个数据核的网络设备中,所述队列号为1到2Κ-1的队列与所述2Κ-1个数据核一一对应;所述2Κ-1个数据核处理与其相对应的队列中的报文。
9.根据权利要求7或8所述的方法,其特征在于,所述将均衡运算值按照每份K比特数划分的方法为将均衡运算值从低位到高位按照每份K比特数划分,最高位份不够K比特数时补0为K比特数;在所述均衡运算值划分的份数中,获取M1份K比特数的方法为在均衡运算值划分的份数中按照从低位到高位的顺序取M1份K比特数。
10.根据权利要求7或8所述的方法,其特征在于,所述将均衡运算值按照每份K比特数划分的方法为将均衡运算值从低位到高位按照每份K比特数划分,最高位份不够K比特数时不计最高位份;在所述均衡运算值划分的份数中,获取礼份1(比特数的方法为在均衡运算值划分的份数中按照从低位到高位或从高到低位的顺序取M1份K比特数。
11.根据权利要求7或8所述的方法,其特征在于, 所述M2, ...,Mi, ...,Mn根据M1确定的方法为Mi = Rlog2 MwK-1)]/叫,其中「]表示向上取整,其中,1 < I-I^n0
12.根据权利要求8所述的方法,其特征在于,若数据核个数为7时,K为3; 当1/2 的范围为不大于1/224时,则M1为8,η为2 ;当1/2 的范围为不大于1/227时,则M1为9,η为2 ; 当1/2%的范围为不大于1/230时,则M1为10,η为3,并根据M1确定M2为3。
13.—种网络设备,其特征在于,所述网络设备包括配置单元、接收单元、运算单元、 处理单元、确定单元和队列单元;所述配置单元,用于在所述队列单元中设置队列号为0到2Κ-1的队列,预设数值,所述预设数值按从大到小排序为M1,. . . ,Mi,.. .,Μη,其中,M1根据队列号为0的队列上的流量与总流量的比值1/2 1的范围确定,M2, ... , Mi, ...,Μη根据M1确定,K、IuLM1, ...,Mi,..., Mn为自然数,Mlri > Mn= 2 ;所述接收单元,用于接收报文;所述运算单元,用于根据所述接收单元接收的报文类型提取所述接收报文的元组信息,并根据所述提取的元组信息进行均衡运算;所述处理单元,用于将所述运算单元均衡运算值按照每份K比特数划分;在均衡运算值划分的份数中,获取所述配置单元设置的M1份K比特数,并进行求和运算,将所述求和运算的结果划分为所述配置单元设置的M2份K比特数;获取所述M2份K比特数,并进行求和运算,将所述M2份K比特数求和运算的结果划分为所述配置单元设置的M3份K比特数,并获取所述M3份K比特数进行求和运算,以此类推,直到获取所述配置单元设置的Mn份K比特数并进行求和运算,将所述Mn份K比特数据进行求和运算的结果划分为Mn份K比特数, 并获取当前Mn份K比特数进行求和运算;所述确定单元,用于将所述接收单元接收的报文分配到所述队列单元中队列号与所述处理单元获取当前Mn份K比特数求和运算的结果相同的队列。
14.根据权利要求13所述的网络设备,其特征在于,所述网络设备包括2K-1个数据核; 所述配置单元,进一步用于设置所述队列号为0到2Κ-1的队列中的1到2Κ-1的队列与所述2Κ-1个数据核一一对应,所述队列号为0的队列与所述队列号为Q的队列对应的数据核相对应,其中,1 < Q < 2K-1,Q为自然数;所述数据核,用于处理所述队列单元中与其对应的队列中的报文。
15.根据权利要求13或14所述的网络设备,其特征在于,所述处理单元,用于将均衡运算值从低位到高位按照每份K比特数划分,最高位份不够K比特数时补0为K比特数;在所述均衡运算值划分的份数中按照从低位到高位的顺序取M1份K比特数。
16.根据权利要求13或14所述的网络设备,其特征在于,所述处理单元,用于将均衡运算值从低位到高位按照每份K比特数划分,最高位份不够K比特数时不计最高位份;在所述均衡运算值划分的份数中按照从低位到高位或从高位到低位的顺序取M1份K比特数。
17.根据权利13或14所述的网络设备,其特征在于,所述配置单元,用于通过M1 =「「log2 Mw炉-I}]/叫确定M2, · · · ,Mi, · · ·,Mn,其中,「]表示向上取整,1≤i-1≤η。
18.根据权利要求14所述的网络设备,其特征在于,所述配置单元,用于若数据核个数为7时,K为3 ;当1/2 的范围为不大于1/224时,设置M1为8,η为2 ;当1/2%的范围为不大于1/227时,设置M1为9,η为2 ;当1/2%的范围为不大于1/230时,设置M1为10,η为3,并根据M1确定M2为3。
19.一种网络设备,其特征在于,所述网络设备包括配置单元、接收单元、运算单元、 处理单元、确定单元和队列单元;所述配置单元,用于在所述队列单元中设置队列号为1到2Κ-1的队列,预设数值,所述预设数值按从大到小排序为M1,. ..,Mi;. ..,Μη,其中,M1根据非均衡流量占与总流量的比值 HIkmi 的范围确定,M2, ...,Mi, ...,Mn 根据 M1 确定,K、n、i,M1, ...,Mi, ...,Mn 为自然数, Mlri > Mn = 2 ;所述接收单元,用于接收报文;所述运算单元,用于根据所述接收单元接收的报文类型提取所述接收报文的元组信息,并根据所述提取的元组信息进行均衡运算;所述处理单元,用于将所述运算单元均衡运算值按照每份K比特数划分;在均衡运算值划分的份数中,获取所述配置单元设置的M1份K比特数,并进行求和运算,将所述求和运算的结果划分为所述配置单元设置的M2份K比特数;获取所述M2份K比特数,并进行求和运算,将所述M2份K比特数求和运算的结果划分为所述配置单元设置的M3份K比特数,并获取所述M3份K比特数进行求和运算,以此类推,直到获取所述配置单元设置的Mn份K比特数并进行求和运算,将所述Mn份K比特数据进行求和运算的结果划分为Mn份K比特数, 并获取当前Mn份K比特数进行求和运算;所述确定单元,用于若当前1份1(比特数求和运算的结果不为0,则将所述接收的报文分配到所述队列单元中队列号与所述处理单元获取当前Mn份K比特数进行求和运算的结果相同的队列;若当前1份1(比特数求和运算的结果为0,将所述报文按照预定策略固定分配到所述队列单元中队列号为1到2K-1之一的队列中。
20.根据权利要求19所述的网络设备,其特征在于,所述网络设备包括2Κ-1个数据核; 所述配置单元,进一步用于设置所述队列号为1到2Κ-1的队列与所述2Κ-1个数据核--对应;所述数据核,用于处理所述队列单元中与其对应的队列中的报文。
21.根据权利要求19或20所述的网络设备,其特征在于,所述处理单元,用于将均衡运算值从低位到高位按照每份K比特数划分,最高位份不够K比特数时补0为K比特数;用于在所述均衡运算值划分的份数中按照从低位到高位的顺序取M1份K比特数。
22.根据权利要求19或20所述的网络设备,其特征在于,所述处理单元,用于将均衡运算值从低位到高位按照每份K比特数划分,最高位份不够K比特数时不计最高位份;用于在所述均衡运算值划分的份数中按照从低位到高位或从高位到低位的顺序取M1份K比特数。
23.根据权利19或20所述的网络设备,其特征在于,所述配置单元,用于通过M1 = Rlog2U^ - I}]/叫确定M2, · · ·,Mi; · · ·,Μη,其中,「]表示向上取整,1彡i-1彡η。
24.根据权利要求20所述的网络设备,其特征在于,所述配置单元,用于若数据核个数为7时,K为3 ;当1/2%的范围为不大于1/224时,设置M1为8,η为2 ;当1/2%的范围为不大于1/227时,设置M1为9,η为2 ;当1/2%的范围为不大于1/230时,设置M1为10,η为3,并根据M1确定M2为3。
全文摘要
本发明公开了一种报文分流方法,通过加法计算替代现有的模计算,对均衡运算的结果进行有限次分段进位相加,将接收的报文分配到队列号与分段进位相加的结果相同的队列中。基于同样的发明构思,本发明还提出一种网络设备,能够提高报文分流效率,降低资源消耗。
文档编号H04L12/56GK102546441SQ201210049250
公开日2012年7月4日 申请日期2012年2月29日 优先权日2012年2月29日
发明者邓士恩 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1