CN102546441B - 一种报文分流方法和网络设备 - Google Patents
一种报文分流方法和网络设备 Download PDFInfo
- Publication number
- CN102546441B CN102546441B CN201210049250.5A CN201210049250A CN102546441B CN 102546441 B CN102546441 B CN 102546441B CN 201210049250 A CN201210049250 A CN 201210049250A CN 102546441 B CN102546441 B CN 102546441B
- Authority
- CN
- China
- Prior art keywords
- bit number
- queue
- summation operation
- message
- balancing operational
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种报文分流方法,通过加法计算替代现有的模计算,对均衡运算的结果进行有限次分段进位相加,将接收的报文分配到队列号与分段进位相加的结果相同的队列中。基于同样的发明构思,本发明还提出一种网络设备,能够提高报文分流效率,降低资源消耗。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种报文分流方法和网络设备。
背景技术
现有多核设备中,将CPU0用作控制核,运行操作系统;将其他CPU用作数据核,负责数据接收和转发。流量在数据核上的分配越均匀,越能充分利用CPU资源,性能越好。目前的流量分配,通常是根据报文五元组,即源IP地址、目的IP地址、协议号、源端口号和目的端口号,进行分流,同一条流的报文进入同一个CPU处理,多条流分配到不同的CPU上处理。因此,一种好的分流方法,可以让流量尽可能均匀地分配在多个数据核上,对多核网络设备性能起着至关重要的作用。
现有实现分流的方法的具体流程为:接收报文,提取报文的五元组。报文五元组为源IP地址、目的IP地址、协议号、源端口号和目的端口号。根据该五元组进行CRC32哈希,将哈希值模数据核个数并将模结果加1,得到数值与CPU队列匹配,由于CPU队列与CPU一一对应,因此将接收的报文分配到匹配的CPU队列所对应的数据核进行处理。由于对模的结果进行了加1处理,因此结果不存在与匹配队列0的报文,即不需要有报文分配到CPU0控制核进行处理。
现有实现方法中的模运算,是计算复杂度很高的运算。目前多核处理器的CPU个数通常为2K(k=2,3,...),那么数据核的个数为2K-1,因此不能使用与运算取代模运算。这种使用模运算实现报文分流方法既消耗资源又影响性能,如果资源不够,将无法实现报文分流。
发明内容
有鉴于此,本发明提供一种报文分流方法和网络设备,能够提高报文分流效率,降低资源消耗。
为解决上述技术问题,本发明的技术方案是这样实现的:
一种报文分流方法,预设队列号为0到2K-1的队列,预设数值,所述预设数值按从大到小排序为M1,...,Mi,...,Mn,其中,M1根据队列号为0的队列上的流量与总流量的比值的范围确定,M2,...,Mi,...,Mn根据M1确定,K、n、i,M1,...,Mi,...,Mn为自然数,Mn-1>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比特数求和运算的结果相同的队列中。
一种报文分流方法,预设队列号为1到2K-1的队列,预设数值,所述预设数值从大到小排序为M1,...,Mi,...,Mn,其中,M1根据非均衡流量与总流量的比值的范围确定,M2,...,Mi,...,Mn根据M1确定,K、n、i,M1,...,Mi,...,Mn为自然数,Mn-1>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,则将所述接收的报文分配到队列号与当前Mn份K比特数求和运算的结果相同的队列中;若当前Mn份K比特数求和运算的结果为0,将所述报文按照预定策略固定分配到队列号为1到2K-1之一的队列中。
一种网络设备,所述网络设备包括:配置单元、接收单元、运算单元、处理单元、确定单元和队列单元;
所述配置单元,用于在所述队列单元中设置队列号为0到2K-1的队列,预设数值,所述预设数值按从大到小排序为M1,...,Mi,...,Mn,其中,M1根据队列号为0的队列上的流量与总流量的比值的范围确定,M2,...,Mi,...,Mn根据M1确定,K、n、i,M1,...,Mi,...,Mn为自然数,Mn-1>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比特数求和运算的结果相同的队列。
一种网络设备,所述网络设备包括:配置单元、接收单元、运算单元、处理单元、确定单元和队列单元;
所述配置单元,用于在所述队列单元中设置队列号为1到2K-1的队列,预设数值,所述预设数值按从大到小排序为M1,...,Mi,...,Mn,其中,M1根据非均衡流量占与总流量的比值的范围确定,M2,...,Mi,...,Mn根据M1确定,K、n、i,M1,...,Mi,...,Mn为自然数,Mn-1>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,则将所述接收的报文分配到所述队列单元中队列号与所述处理单元获取当前Mn份K比特数进行求和运算的结果相同的队列;若当前Mn份K比特数求和运算的结果为0,将所述报文按照预定策略固定分配到所述队列单元中队列号为1到2K-1之一的队列中。
综上所述,本发明通过加法计算替代现有的模计算,对均衡运算的结果进行有限次分段进位相加,将接收的报文分配到队列号与分段进位相加的结果相同的队列中,能够提高报文分流效率,降低资源消耗。
附图说明
图1为本发明实施例一中报文分流方法流程示意图;
图2为本发明实施例二中报文分流方法流程示意图;
图3为本发明实施例中3个加法器实现报文分流示意图;
图4为本发明实施例中4个加法器实现报文分流示意图;
图5为应用于本发明具体实施例一报文分流技术的网络设备结构示意图;
图6为应用于本发明具体实施例二报文分流技术的网络设备结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
本发明实施例一提出一种报文分流方法,预设队列号为0到2K-1的队列,预设数值,所述预设数值按从大到小排序为M1,...,Mi,...,Mn,其中,M1根据队列号为0的队列上的流量与总流量的比值的范围确定,M2,...,Mi,...,Mn根据M1确定,K、n、i,M1,...,Mi,...,Mn为自然数,Mn-1>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,将所述接收的报文分配到队列号与当前Mn份K比特数求和运算的结果相同的队列中。
在现有的多核网络设备中,一般包括一个控制核和多个数据核,其中,多个数据核负责对报文的处理,如何使报文均匀分配在各个数据核上进行处理,即如何实现报文分流至关重要。
实施例一中的报文分流方法可应用于包括2K-1个数据核的网络设备中,所述队列号为0到2K-1的队列中的1到2K-1的队列与所述2K-1个数据核一一对应,所述队列号为0的队列与所述队列号为Q的队列对应的数据核相对应,其中,1≤Q≤2K-1,Q为自然数;2K-1个数据核处理与其相对应的队列中的报文。
其中,在具体实现时Q为1到2K-1之间任意自然数,但需预先指定其中一个,匹配到队列号为0的队列时,都将报文固定分配给该队列号为Q的队列,从而使相应报文最终被同一个数据核进行处理,以免出现元组信息相同的报文被分配到不同的数据核进行处理。
本发明实施例二还提出一种报文分流方法,预设队列号为1到2K-1的队列,预设数值,所述预设数值按从大到小排序为M1,...,Mi,...,Mn,其中,M1根据非均衡流量与总流量的占比值的范围确定,M2,...,Mi,...,Mn根据M1确定,K、n、i,M1,...,Mi,...,Mn为自然数,Mn-1>Mn=2。其中,非均衡流量的流量与总流量的占比值指最终运算的结果为0的流量与总流量的比值。
参见图2,图2为本发明实施例二中报文分流方法流程示意图。具体步骤为:
步骤201,接收报文,根据报文类型提取所述接收报文的元组信息,并根据所述提取的元组信息进行均衡运算,将均衡运算值按照每份K比特数划分。
本步骤中根据报文类型提取所述接收报文的元组信息,并根据所述提取的元组信息进行均衡运算同上文描述,这里不再赘述。
步骤202,在均衡运算值划分的份数中,获取M1份K比特数,并进行求和运算,将所述求和运算的结果划分为M2份K比特数。
步骤203,获取所述M2份K比特数,并进行求和运算,将所述M2份K比特数求和运算的结果划分为M3份K比特数,并获取所述M3份K比特数进行求和运算,以此类推,直到获取Mn份K比特数并进行求和运算,将所述Mn份K比特数据进行求和运算的结果划分为Mn份K比特数,获取当前Mn份K比特数进行求和运算。
步骤204,若当前Mn份K比特数求和运算的结果不为0,则将所述接收的报文分配到队列号与当前Mn份K比特数求和运算的结果相同的队列中;若当前Mn份K比特数求和运算的结果为0,将所述报文按照预定策略固定分配到队列号为1到2K-1之一的队列中。其中,预定策略为预先设定运算结果为0时,将运算结果为0的报文分配给队列号为1到2K-1之一的队列中,但是,必须预先确定要分配给的队列号。如将运算结果为0的报文都分配给队列号为1的队列。
实施例二中的报文分流方法可应用于包括2K-1个数据核的网络设备中,所述队列号为1到2K-1的队列与所述2K-1个数据核一一对应;所述2K-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确定的方法为:
其中表示向上取整,其中,1≤i-1≤n。由于Mn-1>Mn=2,因此根据上述计算公式计算得Mn为2时不再计算,并将Mn=2作为该组预设值的结束值。
假设网络设备包括7个数据核时,则K为3,当的范围为不大于1/227时,设置M1为9,n为2,并根据M1确定M2为2;当的范围为不大于1/224时,设置M1为8,n为2,并根据M1确定M2为2;当的范围为不大于1/230时,设置M1为10,n为3,并根据M1确定M2为3,M3确定为2。其中,当的范围为不大于1/224时,M1为8、9或10等都可以,为了计算方便,以及资源节省,一般实现时可以取最少份数8。取最小份数至少有以下两个优点:
第一,获取的份数减少了,进行加法运算减少了。
第二,获取的份数减少了,K比特加法器的个数也可能少了。
由于M2,...,Mi,...,Mn由M1确定的,若M1设置为8,因此需要3个加法器实现。参见图3,图3为本发明实施例中3个加法器实现报文分流示意图。图3中,n为8,以哈希值为32比特为例,通过3个加法器即可实现。
若M1设置为10, 因此需要4个加法器实现。参见图4,图4为本发明实施例中4个加法器实现报文分流示意图。图4中n为10,同样以哈希值32比特为例,图4中通过4个加法器即可实现。
在具体实施例中以网络设备分流IP报文为例,下面结合附图,例举具体实施例详细说明本发明是如何实现报文分流的。该网络设备包括7个数据核,设队列号为0到7,其中,队列号为1到7的队列与数据核一一对应,队列号为0的队列与队列号为5的队列相对应。如果该网络设备使用的是哈希算法是CRC32,若队列号为0的队列上的流量与总流量的比值的范围为不大于1/227时,设置M1为9、10或11,但是根据上文讨论的取份数值最小的较优原则,在满足了系统的要求,即队列0分得的流量较少时,不影响平均分配的情况下,该实施例中取M1为9即可。由于M1为9,则n为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份分段相加,得到的结果为54(octal),此结果再划分成M2份,即2份。
再取上次结果划分的2份并相加结果为11(octal)。
由于已取得预设最小值M2,所以将上次结果再次划分2份3比特数,再相加值就是队列号,得到的队列号为2。将该IP报文分配到队列号为2的队列中,与该队列相对应的数据核处理队列号为2的队列中的报文。
若最终计算结果为0时,则该IP报文分配到与队列号为5的队列中,与该队列相对应的数据核处理队列号为5的队列中的报文。上文已经讨论过,队列号为0的队列上的流量占总流量的比值是在可接受范围内,即该流量相对是较小的,不影响要达到的平均分配。
基于同样的发明构思,本发明还提出一种可应用前述报文分流的网络设备。参见图5,图5为应用于本发明具体实施例一报文分流技术的网络设备结构示意图。该网络设备包括:配置单元501、接收单元502、运算单元503、处理单元504、确定单元505和队列单元506。
配置单元501,用于在队列单元506中设置队列号为0到2K-1的队列,预设数值,所述预设数值按从大到小排序为M1,...,Mi,...,Mn,其中,M1根据队列号为0的队列上的流量与总流量的比值的范围确定,M2,...,Mi,...,Mn根据M1确定,K、n、i,M1,...,Mi,...,Mn为自然数,Mn-1>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比特数求和运算的结果相同的队列中。
进一步,该网络设备包括2K-1个数据核507。
配置单元501,进一步用于设置所述队列号为0到2K-1的队列中的1到2K-1的队列与所述2K-1个数据核一一对应,所述队列号为0的队列与所述队列号为Q的队列对应的数据核相对应,其中,1≤Q≤2K-1,Q为自然数。
数据核507,用于处理队列单元506中与其对应的队列中的报文。
较佳地,
处理单元504,用于将均衡运算值从低位到高位按照每份K比特数划分,最高位份不够K比特数时补0为K比特数;在所述均衡运算值划分的份数中按照从低位到高位的顺序取M1份K比特数。
较佳地,
处理单元504,用于将均衡运算值从低位到高位按照每份K比特数划分,最高位份不够K比特数时不计最高位份;在所述均衡运算值划分的份数中按照从低位到高位或从高位到低位的顺序取M1份K比特数。
较佳地,
配置单元501,用于通过确定M2,...,Mi,...,Mn,其中,表示向上取整,1≤i-1≤n。
较佳地,
配置单元501,用于若数据核506个数为7时,K为3;当的范围为不大于1/224时,设置M1为8,n为2;当的范围为不大于1/227时,设置M1为9,n为2;当的范围为不大于1/230时,设置M1为10,n为3,并根据M1确定M2为3。
参见图6,图6为应用于本发明具体实施例二报文分流技术的网络设备结构示意图。该网络设备包括:配置单元601、接收单元602、运算单元603、处理单元604、确定单元605和队列单元606。
配置单元601,用于在队列单元606中设置队列号为1到2K-1的队列,预设数值,所述预设数值按从大到小排序为M1,...,Mi,...,Mn,其中,M1根据非均衡流量与总流量的占比值的范围确定,M2,...,Mi,...,Mn根据M1确定,K、n、i,M1,...,Mi,...,Mn为自然数,Mn-1>Mn=2。
接收单元602,用于接收报文。
运算单元603,用于根据接收单元602接收的报文类型提取所述接收报文的元组信息,并根据所述提取的元组信息进行均衡运算。
处理单元604,用于将运算单元603均衡运算值按照每份K比特数划分;在均衡运算值划分的份数中,获取配置单元601设置的M1份K比特数,并进行求和运算,将所述求和运算的结果划分为配置单元601设置的M2份K比特数;获取所述M2份K比特数,并进行求和运算,将所述M2份K比特数求和运算的结果划分为配置单元601设置的M3份K比特数,并获取所述M3份K比特数进行求和运算,以此类推,直到获取配置单元601设置的Mn份K比特数并进行求和运算,将所述Mn份K比特数据进行求和运算的结果划分为Mn份K比特数,并获取当前Mn份K比特数进行求和运算。
确定单元605,用于若当前Mn份K比特数求和运算的结果不为0,则将所述接收的报文分配到队列单元606中队列号与处理单元604获取当前Mn份K比特数进行求和运算的结果相同的队列;若当前Mn份K比特数求和运算的结果为0,将所述报文按照预定策略固定分配到队列单元606中队列号为1到2K-1之一的队列中。
进一步的,该网络设备包括2K-1个数据核607。
配置单元601,进一步用于设置所述队列号为1到2K-1的队列与所述2K-1个数据核607一一对应;
数据核607,用于处理队列单元中与其对应的队列中的报文。
较佳地,
处理单元604,用于将均衡运算值从低位到高位按照每份K比特数划分,最高位份不够K比特数时补0为K比特数;在所述均衡运算值划分的份数中按照从低位到高位的顺序取M1份K比特数。
较佳地,
处理单元604,用于将均衡运算值从低位到高位按照每份K比特数划分,最高位份不够K比特数时不计最高位份;在所述均衡运算值划分的份数中按照从低位到高位或从高位到低位的顺序取M1份K比特数。
较佳地,
配置单元601,用于通过确定M2,...,Mi,...,Mn,其中,表示向上取整,1≤i-1≤n。
较佳地,
配置单元601,用于若数据核606个数为7时,K为3;当的范围为不大于1/224时,设置M1为8,n为2;当的范围为不大于1/227时,设置M1为9,n为2;当的范围为不大于1/230时,设置M1为10,n为3,并根据M1确定M2为3。
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
综上所述,本发明通过加法计算替代现有的模计算,对均衡运算值进行有限次分段进位相加,将接收的报文分配到队列号与分段进位相加的结果相同的队列中,能够降低资源消耗,提高报文分流效率。该方法可应用于包括多核的网络设备中,能将报文流量尽可能地均匀分配在多个数据核上。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (24)
1.一种报文分流方法,其特征在于,预设队列号为0到2K-1的队列,预设数值,所述预设数值按从大到小排序为M1,…,Mi,…,Mn,其中,M1根据队列号为0的队列上的流量与总流量的比值的范围确定,M2,…,Mi,…,Mn根据M1确定,K、n、i,M1,…,Mi,…,Mn为自然数,Mn-1>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比特数求和运算的结果相同的队列中。
2.根据权利要求1所述的方法,其特征在于,所述方法可应用于包括2K-1个数据核的网络设备中,所述队列号为0到2K-1的队列中的1到2K-1的队列与所述2K-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比特数时不计最高位份;
在所述均衡运算值划分的份数中,获取M1份K比特数的方法为:在均衡运算值划分的份数中按照从低位到高位或从高到低位的顺序取M1份K比特数。
5.根据权利要求1或2所述的方法,其特征在于,
所述M2,…,Mi,…,Mn根据M1确定的方法为:
其中表示向上取整,其中,1≤i-1≤n。
6.根据权利要求2所述的方法,其特征在于,若数据核个数为7时,K为3;
当的范围为不大于1/224时,则M1为8,n为2;
当的范围为不大于1/227时,则M1为9,n为2;
当的范围为不大于1/230时,则M1为10,n为3,并根据M1确定M2为3。
7.一种报文分流方法,其特征在于,预设队列号为1到2K-1的队列,预设数值,所述预设数值从大到小排序为M1,…,Mi,…,Mn,其中,M1根据非均衡流量与总流量的比值的范围确定,M2,…,Mi,…,Mn根据M1确定,K、n、i,M1,…,Mi,…,Mn为自然数,Mn-1>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,则将所述接收的报文分配到队列号与当前Mn份K比特数求和运算的结果相同的队列中;若当前Mn份K比特数求和运算的结果为0,将所述报文按照预定策略固定分配到队列号为1到2K-1之一的队列中。
8.根据权利要求7所述的方法,其特征在于,所述方法可应用于包括2K-1个数据核的网络设备中,所述队列号为1到2K-1的队列与所述2K-1个数据核一一对应;
所述2K-1个数据核处理与其相对应的队列中的报文。
9.根据权利要求7或8所述的方法,其特征在于,
所述将均衡运算值按照每份K比特数划分的方法为:将均衡运算值从低位到高位按照每份K比特数划分,最高位份不够K比特数时补0为K比特数;
在所述均衡运算值划分的份数中,获取M1份K比特数的方法为:在均衡运算值划分的份数中按照从低位到高位的顺序取M1份K比特数。
10.根据权利要求7或8所述的方法,其特征在于,
所述将均衡运算值按照每份K比特数划分的方法为:将均衡运算值从低位到高位按照每份K比特数划分,最高位份不够K比特数时不计最高位份;
在所述均衡运算值划分的份数中,获取M1份K比特数的方法为:在均衡运算值划分的份数中按照从低位到高位或从高到低位的顺序取M1份K比特数。
11.根据权利要求7或8所述的方法,其特征在于,
所述M2,…,Mi,…,Mn根据M1确定的方法为:
其中表示向上取整,其中,1≤i-1≤n。
12.根据权利要求8所述的方法,其特征在于,若数据核个数为7时,K为3;
当的范围为不大于1/224时,则M1为8,n为2;
当的范围为不大于1/227时,则M1为9,n为2;
当的范围为不大于1/230时,则M1为10,n为3,并根据M1确定M2为3。
13.一种网络设备,其特征在于,所述网络设备包括:配置单元、接收单元、运算单元、处理单元、确定单元和队列单元;
所述配置单元,用于在所述队列单元中设置队列号为0到2K-1的队列,预设数值,所述预设数值按从大到小排序为M1,…,Mi,…,Mn,其中,M1根据队列号为0的队列上的流量与总流量的比值的范围确定,M2,…,Mi,…,Mn根据M1确定,K、n、i,M1,…,Mi,…,Mn为自然数,Mn-1>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到2K-1的队列中的1到2K-1的队列与所述2K-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所述的网络设备,其特征在于,
所述配置单元,用于通过确定M2,…,Mi,…,Mn,其中,表示向上取整,1≤i-1≤n。
18.根据权利要求14所述的网络设备,其特征在于,
所述配置单元,用于若数据核个数为7时,K为3;当的范围为不大于1/224时,设置M1为8,n为2;当的范围为不大于1/227时,设置M1为9,n为2;当的范围为不大于1/230时,设置M1为10,n为3,并根据M1确定M2为3。
19.一种网络设备,其特征在于,所述网络设备包括:配置单元、接收单元、运算单元、处理单元、确定单元和队列单元;
所述配置单元,用于在所述队列单元中设置队列号为1到2K-1的队列,预设数值,所述预设数值按从大到小排序为M1,…,Mi,…,Mn,其中,M1根据非均衡流量占与总流量的比值的范围确定,M2,…,Mi,…,Mn根据M1确定,K、n、i,M1,…,Mi,…,Mn为自然数,Mn-1>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,则将所述接收的报文分配到所述队列单元中队列号与所述处理单元获取当前Mn份K比特数进行求和运算的结果相同的队列;若当前Mn份K比特数求和运算的结果为0,将所述报文按照预定策略固定分配到所述队列单元中队列号为1到2K-1之一的队列中。
20.根据权利要求19所述的网络设备,其特征在于,所述网络设备包括2K-1个数据核;
所述配置单元,进一步用于设置所述队列号为1到2K-1的队列与所述2K-1个数据核一一对应;
所述数据核,用于处理所述队列单元中与其对应的队列中的报文。
21.根据权利要求19或20所述的网络设备,其特征在于,
所述处理单元,用于将均衡运算值从低位到高位按照每份K比特数划分,最高位份不够K比特数时补0为K比特数;用于在所述均衡运算值划分的份数中按照从低位到高位的顺序取M1份K比特数。
22.根据权利要求19或20所述的网络设备,其特征在于,
所述处理单元,用于将均衡运算值从低位到高位按照每份K比特数划分,最高位份不够K比特数时不计最高位份;用于在所述均衡运算值划分的份数中按照从低位到高位或从高位到低位的顺序取M1份K比特数。
23.根据权利19或20所述的网络设备,其特征在于,
所述配置单元,用于通过确定M2,…,Mi,…,Mn,其中,表示向上取整,1≤i-1≤n。
24.根据权利要求20所述的网络设备,其特征在于,
所述配置单元,用于若数据核个数为7时,K为3;当的范围为不大于1/224时,设置M1为8,n为2;当的范围为不大于1/227时,设置M1为9,n为2;当的范围为不大于1/230时,设置M1为10,n为3,并根据M1确定M2为3。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210049250.5A CN102546441B (zh) | 2012-02-29 | 2012-02-29 | 一种报文分流方法和网络设备 |
PCT/CN2013/071931 WO2013127336A1 (en) | 2012-02-29 | 2013-02-27 | Packet dispersion method and network device thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210049250.5A CN102546441B (zh) | 2012-02-29 | 2012-02-29 | 一种报文分流方法和网络设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102546441A CN102546441A (zh) | 2012-07-04 |
CN102546441B true CN102546441B (zh) | 2014-09-17 |
Family
ID=46352429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210049250.5A Active CN102546441B (zh) | 2012-02-29 | 2012-02-29 | 一种报文分流方法和网络设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102546441B (zh) |
WO (1) | WO2013127336A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102546441B (zh) * | 2012-02-29 | 2014-09-17 | 杭州华三通信技术有限公司 | 一种报文分流方法和网络设备 |
CN105207948B (zh) * | 2014-06-30 | 2019-05-31 | 中兴通讯股份有限公司 | 数据报文的分配方法及装置 |
CN104158764B (zh) * | 2014-08-12 | 2018-02-06 | 新华三技术有限公司 | 报文处理方法及装置 |
CN108667733A (zh) * | 2018-03-29 | 2018-10-16 | 新华三信息安全技术有限公司 | 一种网络设备及报文处理方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286936A (zh) * | 2008-05-16 | 2008-10-15 | 华为技术有限公司 | 数据报文的处理方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100502329C (zh) * | 2003-03-05 | 2009-06-17 | 华为技术有限公司 | 一种以太网交换机及其业务处理方法 |
CN100387027C (zh) * | 2005-01-07 | 2008-05-07 | 清华大学 | 高速网络分流设备用线路接口卡中的包预处理电路组件 |
WO2010008646A1 (en) * | 2008-04-18 | 2010-01-21 | Mrv Communications, Inc. | High-speed packet/ethernet devices, methods, systems and networks incorporating tunable pluggable optics for packet switching and routing functions, and incorporating gmps as the control plane |
CN101656677B (zh) * | 2009-09-18 | 2011-11-16 | 杭州迪普科技有限公司 | 一种报文分流处理方法及装置 |
CN101984598B (zh) * | 2010-11-04 | 2012-11-07 | 成都市华为赛门铁克科技有限公司 | 一种报文转向的方法和深度包检测设备 |
CN102546441B (zh) * | 2012-02-29 | 2014-09-17 | 杭州华三通信技术有限公司 | 一种报文分流方法和网络设备 |
-
2012
- 2012-02-29 CN CN201210049250.5A patent/CN102546441B/zh active Active
-
2013
- 2013-02-27 WO PCT/CN2013/071931 patent/WO2013127336A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286936A (zh) * | 2008-05-16 | 2008-10-15 | 华为技术有限公司 | 数据报文的处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102546441A (zh) | 2012-07-04 |
WO2013127336A1 (en) | 2013-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10742722B2 (en) | Server load balancing | |
US20210336885A1 (en) | Phantom queue link level load balancing system, method and device | |
CN102546441B (zh) | 一种报文分流方法和网络设备 | |
CN105763472B (zh) | 一种跨板转发的方法和装置 | |
JP2009534005A (ja) | 双方向リンク集約 | |
US10063478B2 (en) | Switching device and control method of switching device | |
CN106878415B (zh) | 数据消费的负载均衡方法及装置 | |
CN102812670B (zh) | 令牌桶管理装置和管理令牌桶的方法 | |
CN106685724B (zh) | 基于选举的节点服务器管理方法、装置及系统 | |
CN109327401B (zh) | 一种sdn网络的流量调度方法与系统 | |
CN106576084A (zh) | 片上数据分组处理系统 | |
CN106487590B (zh) | 一种基于虚拟网络实现批量虚拟机端口限速的方法 | |
CN107579925B (zh) | 报文转发方法及装置 | |
CN104683261A (zh) | 分组处理装置、入口分组处理电路和出口分组处理电路 | |
WO2015100621A1 (zh) | 一种加扰方法及加扰装置 | |
CN104580202B (zh) | 报文的匹配方法和装置 | |
Chen et al. | Towards performance-centric fairness in datacenter networks | |
CN104750539A (zh) | 用于服务质量的虚拟化的方法和装置 | |
CN108574594B (zh) | 一种网络业务传输的方法及系统 | |
CN104778125B (zh) | 一种内存管理方法及系统 | |
CN110958184B (zh) | 带宽调节方法及装置 | |
CN117459462A (zh) | 网络负载均衡方法和装置 | |
CN111064676A (zh) | 一种流量监管方法、设备、装置和计算机存储介质 | |
CN105631343A (zh) | 基于加密卡和服务器的密码运算的实现方法和装置 | |
CN105335376A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CP03 | Change of name, title or address |