專利名稱:一種報文分流方法和網(wǎng)絡(luò)設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種報文分流方法和網(wǎng)絡(luò)設(shè)備。
技術(shù)背景
現(xiàn)有多核設(shè)備中,將CPUO用作控制核,運(yùn)行操作系統(tǒng);將其他CPU用作數(shù)據(jù)核,負(fù)責(zé)數(shù)據(jù)接收和轉(zhuǎn)發(fā)。流量在數(shù)據(jù)核上的分配越均勻,越能充分利用CPU資源,性能越好。目前的流量分配,通常是根據(jù)報文五元組,即源IP地址、目的IP地址、協(xié)議號、源端口號和目的端口號,進(jìn)行分流,同一條流的報文進(jìn)入同一個CPU處理,多條流分配到不同的CPU上處理。因此,一種好的分流方法,可以讓流量盡可能均勻地分配在多個數(shù)據(jù)核上,對多核網(wǎng)絡(luò)設(shè)備性能起著至關(guān)重要的作用。
現(xiàn)有實(shí)現(xiàn)分流的方法的具體流程為接收報文,提取報文的五元組。報文五元組為源IP地址、目的IP地址、協(xié)議號、源端口號和目的端口號。根據(jù)該五元組進(jìn)行CRC32哈希,將哈希值模數(shù)據(jù)核個數(shù)并將模結(jié)果加1,得到數(shù)值與CPU隊(duì)列匹配,由于CPU隊(duì)列與CPU 一一對應(yīng),因此將接收的報文分配到匹配的CPU隊(duì)列所對應(yīng)的數(shù)據(jù)核進(jìn)行處理。由于對模的結(jié)果進(jìn)行了加1處理,因此結(jié)果不存在與匹配隊(duì)列0的報文,即不需要有報文分配到CPUO 控制核進(jìn)行處理。
現(xiàn)有實(shí)現(xiàn)方法中的模運(yùn)算,是計算復(fù)雜度很高的運(yùn)算。目前多核處理器的CPU個數(shù)通常為2K(k = 2,3,...),那么數(shù)據(jù)核的個數(shù)為2Κ_1,因此不能使用與運(yùn)算取代模運(yùn)算。 這種使用模運(yùn)算實(shí)現(xiàn)報文分流方法既消耗資源又影響性能,如果資源不夠,將無法實(shí)現(xiàn)報文分流。發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種報文分流方法和網(wǎng)絡(luò)設(shè)備,能夠提高報文分流效率,降低資源消耗。
為解決上述技術(shù)問題,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的
—種報文分流方法,預(yù)設(shè)隊(duì)列號為0到2Κ_1的隊(duì)列,預(yù)設(shè)數(shù)值,所述預(yù)設(shè)數(shù)值按從大到小排序?yàn)镸1, ...,Mi, ...,Μη,其中,M1根據(jù)隊(duì)列號為0的隊(duì)列上的流量與總流量的比值 1/2 1 的范圍確定,M2,...,Mi,...,Mn 根據(jù) M1 確定,K、n、LM1,... ,Mi,...,Mn 為自然數(shù), Mlri > Mn = 2,所述方法包括
接收報文,根據(jù)報文類型提取所述接收報文的元組信息,并根據(jù)所述提取的元組信息進(jìn)行均衡運(yùn)算,將均衡運(yùn)算值按照每份K比特數(shù)劃分;
在均衡運(yùn)算值劃分的份數(shù)中,獲取M1份K比特數(shù),并進(jìn)行求和運(yùn)算,將所述求和運(yùn)算的結(jié)果劃分為M2份K比特數(shù);
獲取所述M2份K比特數(shù),并進(jìn)行求和運(yùn)算,將所述M2份K比特數(shù)求和運(yùn)算的結(jié)果劃分為M3份K比特數(shù),并獲取所述M3份K比特數(shù)進(jìn)行求和運(yùn)算,以此類推,直到獲取Mn份K 比特數(shù)并進(jìn)行求和運(yùn)算,將所述Mn份K比特數(shù)進(jìn)行求和運(yùn)算的結(jié)果劃分為Mn份K比特數(shù),獲取當(dāng)前Mn份K比特數(shù)進(jìn)行求和運(yùn)算;
將所述接收的報文分配到隊(duì)列號與當(dāng)前1份K比特數(shù)求和運(yùn)算的結(jié)果相同的隊(duì)列中。
一種報文分流方法,預(yù)設(shè)隊(duì)列號為1到2Κ_1的隊(duì)列,預(yù)設(shè)數(shù)值,所述預(yù)設(shè)數(shù)值從大到小排序?yàn)镸1,. . . ,Mi,.. .,Μη,其中,M1根據(jù)非均衡流量與總流量的比值1/2-1的范圍確定, M2, ...,Mi, ...,Mn 根據(jù) M1 確定,K、n、i,M1, ...,Mi, ...,Mn 為自然數(shù),Mlri > Mn = 2,所述方法包括
接收報文,根據(jù)報文類型提取所述接收報文的元組信息,并根據(jù)所述提取的元組信息進(jìn)行均衡運(yùn)算,將均衡運(yùn)算值按照每份K比特數(shù)劃分;
在均衡運(yùn)算值劃分的份數(shù)中,獲取M1份K比特數(shù),并進(jìn)行求和運(yùn)算,將所述求和運(yùn)算的結(jié)果劃分為M2份K比特數(shù);
獲取所述M2份K比特數(shù),并進(jìn)行求和運(yùn)算,將所述M2份K比特數(shù)求和運(yùn)算的結(jié)果劃分為M3份K比特數(shù),并獲取所述M3份K比特數(shù)進(jìn)行求和運(yùn)算,以此類推,直到獲取Mn份 K比特數(shù)并進(jìn)行求和運(yùn)算,將所述Mn份K比特數(shù)據(jù)進(jìn)行求和運(yùn)算的結(jié)果劃分為Mn份K比特數(shù),獲取當(dāng)前Mn份K比特數(shù)進(jìn)行求和運(yùn)算;
若當(dāng)前Mn份K比特數(shù)求和運(yùn)算的結(jié)果不為0,則將所述接收的報文分配到隊(duì)列號與當(dāng)前軋份1(比特數(shù)求和運(yùn)算的結(jié)果相同的隊(duì)列中;若當(dāng)前1份1(比特數(shù)求和運(yùn)算的結(jié)果為0,將所述報文按照預(yù)定策略固定分配到隊(duì)列號為1到2K-1之一的隊(duì)列中。
一種網(wǎng)絡(luò)設(shè)備,所述網(wǎng)絡(luò)設(shè)備包括配置單元、接收單元、運(yùn)算單元、處理單元、確定單元和隊(duì)列單元;
所述配置單元,用于在所述隊(duì)列單元中設(shè)置隊(duì)列號為0到2Κ_1的隊(duì)列,預(yù)設(shè)數(shù)值, 所述預(yù)設(shè)數(shù)值按從大到小排序?yàn)镸1, ...,Mi, ...,Μη,其中,M1根據(jù)隊(duì)列號為0的隊(duì)列上的流量與總流量的比值1/2%的范圍確定,M2, ...,Mi, ...,Mn根據(jù)M1確定,K、n、i, M1,..., Mi, ...,Mn 為自然數(shù),Mlri > Mn = 2 ;
所述接收單元,用于接收報文;
所述運(yùn)算單元,用于根據(jù)所述接收單元接收的報文類型提取所述接收報文的元組信息,并根據(jù)所述提取的元組信息進(jìn)行均衡運(yùn)算;
所述處理單元,用于將所述運(yùn)算單元均衡運(yùn)算值按照每份K比特數(shù)劃分;在均衡運(yùn)算值劃分的份數(shù)中,獲取所述配置單元設(shè)置的M1份K比特數(shù),并進(jìn)行求和運(yùn)算,將所述求和運(yùn)算的結(jié)果劃分為所述配置單元設(shè)置的M2份K比特數(shù);獲取所述M2份K比特數(shù),并進(jìn)行求和運(yùn)算,將所述M2份K比特數(shù)求和運(yùn)算的結(jié)果劃分為所述配置單元設(shè)置的M3份K比特數(shù),并獲取所述禮份1(比特數(shù)進(jìn)行求和運(yùn)算,以此類推,直到獲取所述配置單元設(shè)置的^份 K比特數(shù)并進(jìn)行求和運(yùn)算,將所述Mn份K比特數(shù)據(jù)進(jìn)行求和運(yùn)算的結(jié)果劃分為Mn份K比特數(shù),并獲取當(dāng)前Mn份K比特數(shù)進(jìn)行求和運(yùn)算;
所述確定單元,用于將所述接收單元接收的報文分配到所述隊(duì)列單元中隊(duì)列號與所述處理單元獲取當(dāng)前Mn份K比特數(shù)求和運(yùn)算的結(jié)果相同的隊(duì)列。
一種網(wǎng)絡(luò)設(shè)備,所述網(wǎng)絡(luò)設(shè)備包括配置單元、接收單元、運(yùn)算單元、處理單元、確定單元和隊(duì)列單元;
所述配置單元,用于在所述隊(duì)列單元中設(shè)置隊(duì)列號為1到2Κ_1的隊(duì)列,預(yù)設(shè)數(shù)值,所述預(yù)設(shè)數(shù)值按從大到小排序?yàn)镸1, ...,Mi, ...,Mn,其中,M1根據(jù)非均衡流量占與總流量的比值 1/2 1 的范圍確定,M2, . . .,Mi,...,Mn 根據(jù) M1 確定,LruLM1,...,Mi,...,Mn 為自然數(shù),Mlri > Mn = 2 ;所述接收單元,用于接收報文;所述運(yùn)算單元,用于根據(jù)所述接收單元接收的報文類型提取所述接收報文的元組信息,并根據(jù)所述提取的元組信息進(jìn)行均衡運(yùn)算;所述處理單元,用于將所述運(yùn)算單元均衡運(yùn)算值按照每份K比特數(shù)劃分;在均衡運(yùn)算值劃分的份數(shù)中,獲取所述配置單元設(shè)置的M1份K比特數(shù),并進(jìn)行求和運(yùn)算,將所述求和運(yùn)算的結(jié)果劃分為所述配置單元設(shè)置的M2份K比特數(shù);獲取所述M2份K比特數(shù),并進(jìn)行求和運(yùn)算,將所述M2份K比特數(shù)求和運(yùn)算的結(jié)果劃分為所述配置單元設(shè)置的M3份K比特數(shù),并獲取所述禮份1(比特數(shù)進(jìn)行求和運(yùn)算,以此類推,直到獲取所述配置單元設(shè)置的^份 K比特數(shù)并進(jìn)行求和運(yùn)算,將所述Mn份K比特數(shù)據(jù)進(jìn)行求和運(yùn)算的結(jié)果劃分為Mn份K比特數(shù),并獲取當(dāng)前Mn份K比特數(shù)進(jìn)行求和運(yùn)算;所述確定單元,用于若當(dāng)前^份1(比特數(shù)求和運(yùn)算的結(jié)果不為0,則將所述接收的報文分配到所述隊(duì)列單元中隊(duì)列號與所述處理單元獲取當(dāng)前Mn份K比特數(shù)進(jìn)行求和運(yùn)算的結(jié)果相同的隊(duì)列;若當(dāng)前1份1(比特數(shù)求和運(yùn)算的結(jié)果為0,將所述報文按照預(yù)定策略固定分配到所述隊(duì)列單元中隊(duì)列號為1到2K-1之一的隊(duì)列中。綜上所述,本發(fā)明通過加法計算替代現(xiàn)有的模計算,對均衡運(yùn)算的結(jié)果進(jìn)行有限次分段進(jìn)位相加,將接收的報文分配到隊(duì)列號與分段進(jìn)位相加的結(jié)果相同的隊(duì)列中,能夠提高報文分流效率,降低資源消耗。
圖1為本發(fā)明實(shí)施例一中報文分流方法流程示意圖;圖2為本發(fā)明實(shí)施例二中報文分流方法流程示意圖;圖3為本發(fā)明實(shí)施例中3個加法器實(shí)現(xiàn)報文分流示意圖;圖4為本發(fā)明實(shí)施例中4個加法器實(shí)現(xiàn)報文分流示意圖;圖5為應(yīng)用于本發(fā)明具體實(shí)施例一報文分流技術(shù)的網(wǎng)絡(luò)設(shè)備結(jié)構(gòu)示意圖;圖6為應(yīng)用于本發(fā)明具體實(shí)施例二報文分流技術(shù)的網(wǎng)絡(luò)設(shè)備結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例,對本發(fā)明所述方案作進(jìn)一步地詳細(xì)說明。本發(fā)明實(shí)施例一提出一種報文分流方法,預(yù)設(shè)隊(duì)列號為0到2Κ_1的隊(duì)列,預(yù)設(shè)數(shù)值,所述預(yù)設(shè)數(shù)值按從大到小排序?yàn)镸1, ...,Mi, ...,Mn,其中,M1根據(jù)隊(duì)列號為0的隊(duì)列上的流量與總流量的比值1/2 1的范圍確定,M2, ...,Mi,...,Mn根據(jù)M1確定,K、n、i,M1,..., Mi, ...,Mn 為自然數(shù),Mlri >Mn= 2。參見圖1,圖1為本發(fā)明實(shí)施例一中報文分流方法流程示意圖。具體步驟為步驟101,接收報文,根據(jù)報文類型提取所述接收報文的元組信息,并根據(jù)所述提取的元組信息進(jìn)行均衡運(yùn)算,將均衡運(yùn)算值按照每份K比特數(shù)劃分。
本步驟中報文類型不同,提取報文的元組信息將不同。若報文為IP報文時,提取報文的元組信息為源IP地址、目的IP地址、協(xié)議號、源端口號和目的端口號;若報文為(多協(xié)議標(biāo)簽交換)MPLS報文,則提取的元組信息為標(biāo)簽和協(xié)議號。在具體實(shí)現(xiàn)時,根據(jù)報文類型進(jìn)行提取,其他報文實(shí)現(xiàn)方式類似,這里不再一一例舉。本步驟中的均衡運(yùn)算,是將運(yùn)算值平均分配到某個區(qū)間,能達(dá)到該運(yùn)算效果的算法都可以實(shí)現(xiàn),如哈希算法。通用的CRC32算法使運(yùn)算的結(jié)果平均分配到0到232-1區(qū)間。具體使用何種均衡算法根據(jù)實(shí)際需要確定,使用任何均衡算法不影響本發(fā)明實(shí)施例的實(shí)現(xiàn)。步驟102,在均衡運(yùn)算值劃分的份數(shù)中,獲取M1份K比特數(shù),并進(jìn)行求和運(yùn)算,將所述求和運(yùn)算的結(jié)果劃分為M2份K比特數(shù)。步驟103,獲取所述M2份K比特數(shù),并進(jìn)行求和運(yùn)算,將所述M2份K比特數(shù)求和運(yùn)算的結(jié)果劃分為M3份K比特數(shù),并獲取所述M3份K比特數(shù)進(jìn)行求和運(yùn)算,以此類推,直到獲取Mn份K比特數(shù)并進(jìn)行求和運(yùn)算,將所述Mn份K比特數(shù)進(jìn)行求和運(yùn)算的結(jié)果劃分為Mn份K 比特數(shù),獲取當(dāng)前Mn份K比特數(shù)進(jìn)行求和運(yùn)算。本步驟中,每次取的份數(shù)為上次計算結(jié)果能劃分的份數(shù),直到取到預(yù)設(shè)的最小值的份數(shù)Mn時,將這最小值份數(shù)Mn的K比特數(shù)進(jìn)行求和運(yùn)算,并將求和結(jié)果再次劃分為最小值份數(shù)Mn的K比特數(shù),再次將再次劃分的最小值份數(shù)K比特數(shù)進(jìn)行求和運(yùn)算,保證最后一次求和運(yùn)算的結(jié)果值為隊(duì)列號0到2K-1中的一個。步驟104,將所述接收的報文分配到隊(duì)列號與當(dāng)前^份1(比特數(shù)求和運(yùn)算的結(jié)果相同的隊(duì)列中。在現(xiàn)有的多核網(wǎng)絡(luò)設(shè)備中,一般包括一個控制核和多個數(shù)據(jù)核,其中,多個數(shù)據(jù)核負(fù)責(zé)對報文的處理,如何使報文均勻分配在各個數(shù)據(jù)核上進(jìn)行處理,即如何實(shí)現(xiàn)報文分流
至關(guān)重要。實(shí)施例一中的報文分流方法可應(yīng)用于包括2Κ_1個數(shù)據(jù)核的網(wǎng)絡(luò)設(shè)備中,所述隊(duì)列號為0到2Κ-1的隊(duì)列中的1到2Κ-1的隊(duì)列與所述2Κ-1個數(shù)據(jù)核一一對應(yīng),所述隊(duì)列號為 0的隊(duì)列與所述隊(duì)列號為Q的隊(duì)列對應(yīng)的數(shù)據(jù)核相對應(yīng),其中,1 < Q < 2K-1,Q為自然數(shù); 2Κ-1個數(shù)據(jù)核處理與其相對應(yīng)的隊(duì)列中的報文。其中,在具體實(shí)現(xiàn)時Q為1到2Κ_1之間任意自然數(shù),但需預(yù)先指定其中一個,匹配到隊(duì)列號為0的隊(duì)列時,都將報文固定分配給該隊(duì)列號為Q的隊(duì)列,從而使相應(yīng)報文最終被同一個數(shù)據(jù)核進(jìn)行處理,以免出現(xiàn)元組信息相同的報文被分配到不同的數(shù)據(jù)核進(jìn)行處理。本發(fā)明實(shí)施例二還提出一種報文分流方法,預(yù)設(shè)隊(duì)列號為1到2Κ_1的隊(duì)列,預(yù)設(shè)數(shù)值,所述預(yù)設(shè)數(shù)值按從大到小排序?yàn)镸1, ...,Mi, ...,Mn,其中,M1根據(jù)非均衡流量與總流量的占比值 1/2 1 的范圍確定,M2, ...,Mi, ...,Μη 根據(jù) M1 確定,K、IuLM1, ...,Mi, ...,Mn 為自然數(shù),Mlri > Mn= 2。其中,非均衡流量的流量與總流量的占比值指最終運(yùn)算的結(jié)果為 0的流量與總流量的比值。參見圖2,圖2為本發(fā)明實(shí)施例二中報文分流方法流程示意圖。具體步驟為步驟201,接收報文,根據(jù)報文類型提取所述接收報文的元組信息,并根據(jù)所述提取的元組信息進(jìn)行均衡運(yùn)算,將均衡運(yùn)算值按照每份K比特數(shù)劃分。本步驟中根據(jù)報文類型提取所述接收報文的元組信息,并根據(jù)所述提取的元組信息進(jìn)行均衡運(yùn)算同上文描述,這里不再贅述。
步驟202,在均衡運(yùn)算值劃分的份數(shù)中,獲取M1份K比特數(shù),并進(jìn)行求和運(yùn)算,將所述求和運(yùn)算的結(jié)果劃分為M2份K比特數(shù)。步驟203,獲取所述M2份K比特數(shù),并進(jìn)行求和運(yùn)算,將所述M2份K比特數(shù)求和運(yùn)算的結(jié)果劃分為M3份K比特數(shù),并獲取所述M3份K比特數(shù)進(jìn)行求和運(yùn)算,以此類推,直到獲取1份1(比特數(shù)并進(jìn)行求和運(yùn)算,將所述1份1(比特數(shù)據(jù)進(jìn)行求和運(yùn)算的結(jié)果劃分為^份 K比特數(shù),獲取當(dāng)前Mn份K比特數(shù)進(jìn)行求和運(yùn)算。步驟204,若當(dāng)前Mn份K比特數(shù)求和運(yùn)算的結(jié)果不為0,則將所述接收的報文分配到隊(duì)列號與當(dāng)前1份1(比特數(shù)求和運(yùn)算的結(jié)果相同的隊(duì)列中;若當(dāng)前1份1(比特數(shù)求和運(yùn)算的結(jié)果為0,將所述報文按照預(yù)定策略固定分配到隊(duì)列號為1到2K-1之一的隊(duì)列中。其中,預(yù)定策略為預(yù)先設(shè)定運(yùn)算結(jié)果為0時,將運(yùn)算結(jié)果為0的報文分配給隊(duì)列號為1到2Κ-1 之一的隊(duì)列中,但是,必須預(yù)先確定要分配給的隊(duì)列號。如將運(yùn)算結(jié)果為0的報文都分配給隊(duì)列號為1的隊(duì)列。實(shí)施例二中的報文分流方法可應(yīng)用于包括2Κ_1個數(shù)據(jù)核的網(wǎng)絡(luò)設(shè)備中,所述隊(duì)列號為1到2Κ-1的隊(duì)列與所述2Κ-1個數(shù)據(jù)核一一對應(yīng);所述2Κ-1個數(shù)據(jù)核處理與其相對應(yīng)的隊(duì)列中的報文。實(shí)施例一和實(shí)施例二中,將均衡運(yùn)算值按照每份K比特數(shù)劃分的方法為可以將均衡運(yùn)算值從低位到高位按照每份K比特數(shù)劃分,最高位份不夠K比特數(shù)時補(bǔ)0為K比特或者不夠K比特數(shù)時不計最高位份;也可以從高位到低位按照每份比特數(shù)劃分,最低位份不夠K比特數(shù)時補(bǔ)0為K比特或者不夠K比特數(shù)時不計最低位份。在均衡運(yùn)算值劃分的份數(shù)中,獲取M1份K比特數(shù)的方法為在均衡運(yùn)算值劃分的份數(shù)中,隨機(jī)選取M1份K比特數(shù),也可以從低位到高位,或者從高位到低位順序取M1份K比特數(shù)。本發(fā)明具體實(shí)現(xiàn)時,預(yù)設(shè)的M1份一般小于均衡運(yùn)算值劃分K比特數(shù)的份數(shù),因此, 在這里如果最高位份或最低位份不夠K比特數(shù)時不計最高位份或最低位份的實(shí)現(xiàn)方式完全不影響最終的分配結(jié)果。其中較佳的一種實(shí)現(xiàn)方式為,將均衡運(yùn)算值從低位到高位按照每份K比特數(shù)劃分,最高位份不夠K比特數(shù)時補(bǔ)0為K比特,在均衡運(yùn)算值劃分的份數(shù)中按照從低位到高位的順序取M1份K比特數(shù)。。另一種較佳的實(shí)現(xiàn)方式為將均衡運(yùn)算值從低位到高位按照每份K比特數(shù)劃分, 最高位份不夠K比特數(shù)時不計最高位份;在均衡運(yùn)算值劃分的份數(shù)中按照從低位到高位或從高到低位的順序取M1份K比特數(shù)。本發(fā)明的上述具體實(shí)施例中,M2, ...,Mi, ...,Mn根據(jù)M1確定的方法為Mi = Rlog2 MwGii-…/足],其中「]表示向上取整,其中,1 < i-1 <η。由于Mlri
> Mn = 2,因此根據(jù)上述計算公式計算得Mn為2時不再計算,并將Mn = 2作為該組預(yù)設(shè)值的結(jié)束值。假設(shè)網(wǎng)絡(luò)設(shè)備包括7個數(shù)據(jù)核時,則K為3,當(dāng)1/2%的范圍為不大于1/227時,設(shè)置M1為9,η為2,并根據(jù)M1確定M2為2 ;當(dāng)1/2%的范圍為不大于W時,設(shè)置M1為8,η 為2,并根據(jù)M1確定M2為2 ;當(dāng)1/2·1的范圍為不大于1/23°時,設(shè)置M1為10,η為3,并根據(jù) M1確定M2為3,M3確定為2。其中,當(dāng)1/2%的范圍為不大于1/224時,M1為8、9或10等都可以,為了計算方便,以及資源節(jié)省,一般實(shí)現(xiàn)時可以取最少份數(shù)8。取最小份數(shù)至少有以下兩個優(yōu)點(diǎn)第一,獲取的份數(shù)減少了,進(jìn)行加法運(yùn)算減少了。第二,獲取的份數(shù)減少了,K比特加法器的個數(shù)也可能少了。由于M2, ...,Mi, ...,Mn由M1確定的,若M1設(shè)置為8,
M2 = [[Iog2 M1 (2Κ-1)]/Κ] = [[Iog2 8(23 -1}]/3] =2 ,因此需要 3 個加法器實(shí)現(xiàn)。參見圖 3,圖
3為本發(fā)明實(shí)施例中3個加法器實(shí)現(xiàn)報文分流示意圖。圖3中,η為8,以哈希值為32比特為例,通過3個加法器即可實(shí)現(xiàn)。若M1 設(shè)置為 10, M2 =「「log2M1^-1)]/X] =「「l0g210(23-1)]/3]=3 ,
厘3 =「「1明2 (2£-1)]/^ =「「1明2 3(23 -1)]/3]=2,因此需要4個加法器實(shí)現(xiàn)。參見圖4,圖
4為本發(fā)明實(shí)施例中4個加法器實(shí)現(xiàn)報文分流示意圖。圖4中η為10,同樣以哈希值32比特為例,圖4中通過4個加法器即可實(shí)現(xiàn)。在具體實(shí)施例中以網(wǎng)絡(luò)設(shè)備分流IP報文為例,下面結(jié)合附圖,例舉具體實(shí)施例詳細(xì)說明本發(fā)明是如何實(shí)現(xiàn)報文分流的。該網(wǎng)絡(luò)設(shè)備包括7個數(shù)據(jù)核,設(shè)隊(duì)列號為O到7,其中,隊(duì)列號為1到7的隊(duì)列與數(shù)據(jù)核一一對應(yīng),隊(duì)列號為O的隊(duì)列與隊(duì)列號為5的隊(duì)列相對應(yīng)。如果該網(wǎng)絡(luò)設(shè)備使用的是哈希算法是CRC32,若隊(duì)列號為O的隊(duì)列上的流量與總流量的比值的范圍為1/2W不大于1/227時,設(shè)置虬為9、10或11,但是根據(jù)上文討論的取份數(shù)值最小的較優(yōu)原則,在滿足了系統(tǒng)的要求,即隊(duì)列O分得的流量較少時,不影響平均分配的情況下,該實(shí)施例中取M1為9即可。由于M1為9,則η為2,M2為2。網(wǎng)絡(luò)設(shè)備預(yù)先配置完成之后,接收到IP報文,提取該IP報文的五元組信息源IP 地址、目的IP地址、協(xié)議號、源端口號和目的端口號。通過CRC32獲得哈希結(jié)果值。若使用CRC32算法計算的結(jié)果H = 12372576545 (octal)。將H從低位到高位劃分成11份3比特數(shù),則從H八進(jìn)制的低位到高位依次5,4,5,6,...,1。最后的1只有2比特有效,用0補(bǔ)充成3比特,值不變。從劃分的11份中取M1份,即9份,這里從低位開始選擇前9份5,4,5,6,. . .,3。使用3比特加法器將這9份分段相加,得到的結(jié)果為M(octal),此結(jié)果再劃分成 M2份,即2份。再取上次結(jié)果劃分的2份并相加結(jié)果為11 (octal)。由于已取得預(yù)設(shè)最小值禮,所以將上次結(jié)果再次劃分2份3比特數(shù),再相加值就是隊(duì)列號,得到的隊(duì)列號為2。將該IP報文分配到隊(duì)列號為2的隊(duì)列中,與該隊(duì)列相對應(yīng)的數(shù)據(jù)核處理隊(duì)列號為2的隊(duì)列中的報文。若最終計算結(jié)果為O時,則該IP報文分配到與隊(duì)列號為5的隊(duì)列中,與該隊(duì)列相對應(yīng)的數(shù)據(jù)核處理隊(duì)列號為5的隊(duì)列中的報文。上文已經(jīng)討論過,隊(duì)列號為O的隊(duì)列上的流量占總流量的比值是在可接受范圍內(nèi),即該流量相對是較小的,不影響要達(dá)到的平均分配。基于同樣的發(fā)明構(gòu)思,本發(fā)明還提出一種可應(yīng)用前述報文分流的網(wǎng)絡(luò)設(shè)備。參見圖5,圖5為應(yīng)用于本發(fā)明具體實(shí)施例一報文分流技術(shù)的網(wǎng)絡(luò)設(shè)備結(jié)構(gòu)示意圖。該網(wǎng)絡(luò)設(shè)備包括配置單元501、接收單元502、運(yùn)算單元503、處理單元504、確定單元505和隊(duì)列單元 506。
配置單元501,用于在隊(duì)列單元506中設(shè)置隊(duì)列號為0到2K_1的隊(duì)列,預(yù)設(shè)數(shù)值, 所述預(yù)設(shè)數(shù)值按從大到小排序?yàn)镸1, ...,Mi, ...,Μη,其中,M1根據(jù)隊(duì)列號為0的隊(duì)列上的流量與總流量的比值1/2%的范圍確定,M2, ...,Mi, ...,Mn根據(jù)M1確定,K、n、i, M1,..., Mi, ...,Mn 為自然數(shù),Mlri >Mn= 2。接收單元502,用于接收報文。運(yùn)算單元503,用于根據(jù)接收單元502接收的報文類型提取所述接收報文的元組信息,并根據(jù)所述提取的元組信息進(jìn)行均衡運(yùn)算。處理單元504,用于將運(yùn)算單元503均衡運(yùn)算值按照每份K比特數(shù)劃分;在均衡運(yùn)算值劃分的份數(shù)中,獲取配置單元501設(shè)置的M1份K比特數(shù),并進(jìn)行求和運(yùn)算,將所述求和運(yùn)算的結(jié)果劃分為配置單元501設(shè)置的M2份K比特數(shù);獲取所述M2份K比特數(shù),并進(jìn)行求和運(yùn)算,將所述M2份K比特數(shù)求和運(yùn)算的結(jié)果劃分為配置單元501設(shè)置的M3份K比特數(shù),并獲取所述M3份K比特數(shù)進(jìn)行求和運(yùn)算,以此類推,直到獲取配置單元501設(shè)置的Mn份K比特數(shù)并進(jìn)行求和運(yùn)算,將所述Mn份K比特數(shù)據(jù)進(jìn)行求和運(yùn)算的結(jié)果劃分為Mn份K比特數(shù), 并獲取當(dāng)前Mn份K比特數(shù)進(jìn)行求和運(yùn)算。確定單元505,用于將接收單元502接收的報文分配到隊(duì)列單元506中隊(duì)列號與處理單元504獲取當(dāng)前Mn份K比特數(shù)求和運(yùn)算的結(jié)果相同的隊(duì)列中。進(jìn)一步,該網(wǎng)絡(luò)設(shè)備包括2Κ_1個數(shù)據(jù)核507。配置單元501,進(jìn)一步用于設(shè)置所述隊(duì)列號為0到2Κ_1的隊(duì)列中的1到2Κ_1的隊(duì)列與所述2Κ-1個數(shù)據(jù)核一一對應(yīng),所述隊(duì)列號為0的隊(duì)列與所述隊(duì)列號為Q的隊(duì)列對應(yīng)的數(shù)據(jù)核相對應(yīng),其中,1 < Q < 2K-1,Q為自然數(shù)。數(shù)據(jù)核507,用于處理隊(duì)列單元506中與其對應(yīng)的隊(duì)列中的報文。較佳地,處理單元504,用于將均衡運(yùn)算值從低位到高位按照每份K比特數(shù)劃分,最高位份不夠K比特數(shù)時補(bǔ)0為K比特數(shù);在所述均衡運(yùn)算值劃分的份數(shù)中按照從低位到高位的順序取M1份K比特數(shù)。較佳地,處理單元504,用于將均衡運(yùn)算值從低位到高位按照每份K比特數(shù)劃分,最高位份不夠K比特數(shù)時不計最高位份;在所述均衡運(yùn)算值劃分的份數(shù)中按照從低位到高位或從高位到低位的順序取M1份K比特數(shù)。較佳地,配置單元501,用于通過風(fēng)=^log2MHpii -1)]/足]確定 M2,. . · ,Mi,.. ·,Μη,其中,
「1表示向上取整,1 < 1-1 ^ η。較佳地,配置單元501,用于若數(shù)據(jù)核506個數(shù)為7時,K為3 ;當(dāng)1/2·1的范圍為不大于 1/224時,設(shè)置M1為8,η為2 ;當(dāng)1/2%的范圍為不大于1/227時,設(shè)置M1為9,η為2 ;當(dāng)1/2鄉(xiāng)的范圍為不大于1/23°時,設(shè)置M1為10,η為3,并根據(jù)M1確定M2為3。參見圖6,圖6為應(yīng)用于本發(fā)明具體實(shí)施例二報文分流技術(shù)的網(wǎng)絡(luò)設(shè)備結(jié)構(gòu)示意圖。該網(wǎng)絡(luò)設(shè)備包括配置單元601、接收單元602、運(yùn)算單元603、處理單元604、確定單元605和隊(duì)列單元606。配置單元601,用于在隊(duì)列單元606中設(shè)置隊(duì)列號為1到2K_1的隊(duì)列,預(yù)設(shè)數(shù)值, 所述預(yù)設(shè)數(shù)值按從大到小排序?yàn)镸1, ...,Mi, ...,Μη,其中,M1根據(jù)非均衡流量與總流量的占比值 1/2 1 的范圍確定,M2, . . .,Mi,...,Mn 根據(jù) M1 確定,K、n、LM1,...,Mi,...,Mn 為自然數(shù),Mlri > Mn = 2。接收單元602,用于接收報文。運(yùn)算單元603,用于根據(jù)接收單元602接收的報文類型提取所述接收報文的元組信息,并根據(jù)所述提取的元組信息進(jìn)行均衡運(yùn)算。處理單元604,用于將運(yùn)算單元603均衡運(yùn)算值按照每份K比特數(shù)劃分;在均衡運(yùn)算值劃分的份數(shù)中,獲取配置單元601設(shè)置的M1份K比特數(shù),并進(jìn)行求和運(yùn)算,將所述求和運(yùn)算的結(jié)果劃分為配置單元601設(shè)置的M2份K比特數(shù);獲取所述M2份K比特數(shù),并進(jìn)行求和運(yùn)算,將所述禮份1(比特數(shù)求和運(yùn)算的結(jié)果劃分為配置單元601設(shè)置的禮份1(比特數(shù),并獲取所述M3份K比特數(shù)進(jìn)行求和運(yùn)算,以此類推,直到獲取配置單元601設(shè)置的Mn份K比特數(shù)并進(jìn)行求和運(yùn)算,將所述Mn份K比特數(shù)據(jù)進(jìn)行求和運(yùn)算的結(jié)果劃分為Mn份K比特數(shù), 并獲取當(dāng)前Mn份K比特數(shù)進(jìn)行求和運(yùn)算。確定單元605,用于若當(dāng)前Mn份K比特數(shù)求和運(yùn)算的結(jié)果不為0,則將所述接收的報文分配到隊(duì)列單元606中隊(duì)列號與處理單元604獲取當(dāng)前Mn份K比特數(shù)進(jìn)行求和運(yùn)算的結(jié)果相同的隊(duì)列;若當(dāng)前1份1(比特數(shù)求和運(yùn)算的結(jié)果為0,將所述報文按照預(yù)定策略固定分配到隊(duì)列單元606中隊(duì)列號為1到2Κ-1之一的隊(duì)列中。進(jìn)一步的,該網(wǎng)絡(luò)設(shè)備包括2Κ-1個數(shù)據(jù)核607。配置單元601,進(jìn)一步用于設(shè)置所述隊(duì)列號為1到2Κ_1的隊(duì)列與所述2Κ_1個數(shù)據(jù)核607——對應(yīng);數(shù)據(jù)核607,用于處理隊(duì)列單元中與其對應(yīng)的隊(duì)列中的報文。較佳地,處理單元604,用于將均衡運(yùn)算值從低位到高位按照每份K比特數(shù)劃分,最高位份不夠K比特數(shù)時補(bǔ)0為K比特數(shù);在所述均衡運(yùn)算值劃分的份數(shù)中按照從低位到高位的順序取M1份K比特數(shù)。較佳地,處理單元604,用于將均衡運(yùn)算值從低位到高位按照每份K比特數(shù)劃分,最高位份不夠K比特數(shù)時不計最高位份;在所述均衡運(yùn)算值劃分的份數(shù)中按照從低位到高位或從高位到低位的順序取M1份K比特數(shù)。較佳地,配置單元601,用于通過 M1 = ^log2MHpii _1)]/足]確定 M2,. . .,Mi;. · .,Μη,其中,
「1表示向上取整,1 < 1-1 ^ η。較佳地,配置單元601,用于若數(shù)據(jù)核606個數(shù)為7時,K為3 ;當(dāng)1/2·1的范圍為不大于 1/224時,設(shè)置M1為8,η為2 ;當(dāng)1/2%的范圍為不大于1/227時,設(shè)置M1為9,η為2 ;當(dāng)1/2% 的范圍為不大于1/23°時,設(shè)置M1為10,η為3,并根據(jù)M1確定M2為3。
上述實(shí)施例的單元可以集成于一體,也可以分離部署;可以合并為一個單元,也可以進(jìn)一步拆分成多個子單元。綜上所述,本發(fā)明通過加法計算替代現(xiàn)有的模計算,對均衡運(yùn)算值進(jìn)行有限次分段進(jìn)位相加,將接收的報文分配到隊(duì)列號與分段進(jìn)位相加的結(jié)果相同的隊(duì)列中,能夠降低資源消耗,提高報文分流效率。該方法可應(yīng)用于包括多核的網(wǎng)絡(luò)設(shè)備中,能將報文流量盡可能地均勻分配在多個數(shù)據(jù)核上。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種報文分流方法,其特征在于,預(yù)設(shè)隊(duì)列號為0到2K-1的隊(duì)列,預(yù)設(shè)數(shù)值,所述預(yù)設(shè)數(shù)值按從大到小排序?yàn)镸1, ...,Mi, ...,Μη,其中,M1根據(jù)隊(duì)列號為0的隊(duì)列上的流量與總流量的比值1/2 1的范圍確定,M2, ... , Mi, ...,Μη根據(jù)M1確定,K、IuLM1, ...,Mi,..., Mn為自然數(shù),Mlri > Mn = 2,所述方法包括接收報文,根據(jù)報文類型提取所述接收報文的元組信息,并根據(jù)所述提取的元組信息進(jìn)行均衡運(yùn)算,將均衡運(yùn)算值按照每份K比特數(shù)劃分;在均衡運(yùn)算值劃分的份數(shù)中,獲取M1份K比特數(shù),并進(jìn)行求和運(yùn)算,將所述求和運(yùn)算的結(jié)果劃分為M2份K比特數(shù);獲取所述M2份K比特數(shù),并進(jìn)行求和運(yùn)算,將所述M2份K比特數(shù)求和運(yùn)算的結(jié)果劃分為M3份K比特數(shù),并獲取所述M3份K比特數(shù)進(jìn)行求和運(yùn)算,以此類推,直到獲取Mn份K比特數(shù)并進(jìn)行求和運(yùn)算,將所述Mn份K比特數(shù)進(jìn)行求和運(yùn)算的結(jié)果劃分為Mn份K比特數(shù),獲取當(dāng)前Mn份K比特數(shù)進(jìn)行求和運(yùn)算;將所述接收的報文分配到隊(duì)列號與當(dāng)前仏份K比特數(shù)求和運(yùn)算的結(jié)果相同的隊(duì)列中。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法可應(yīng)用于包括2Κ-1個數(shù)據(jù)核的網(wǎng)絡(luò)設(shè)備中,所述隊(duì)列號為0到2Κ-1的隊(duì)列中的1到2Κ-1的隊(duì)列與所述2Κ-1個數(shù)據(jù)核一一對應(yīng),所述隊(duì)列號為0的隊(duì)列與所述隊(duì)列號為Q的隊(duì)列對應(yīng)的數(shù)據(jù)核相對應(yīng),其中, 1彡Q彡2K-1,Q為自然數(shù);所述2K-1個數(shù)據(jù)核處理與其相對應(yīng)的隊(duì)列中的報文。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述將均衡運(yùn)算值按照每份K比特數(shù)劃分的方法為將均衡運(yùn)算值從低位到高位按照每份K比特數(shù)劃分,最高位份不夠K比特數(shù)時補(bǔ)0為K比特數(shù);在所述均衡運(yùn)算值劃分的份數(shù)中,獲取M1份K比特數(shù)的方法為在均衡運(yùn)算值劃分的份數(shù)中按照從低位到高位的順序取M1份K比特數(shù)。
4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述將均衡運(yùn)算值按照每份K比特數(shù)劃分的方法為將均衡運(yùn)算值從低位到高位按照每份K比特數(shù)劃分,最高位份不夠K比特數(shù)時不計最高位份;在所述均衡運(yùn)算值劃分的份數(shù)中,獲取禮份1(比特數(shù)的方法為在均衡運(yùn)算值劃分的份數(shù)中按照從低位到高位或從高到低位的順序取M1份K比特數(shù)。
5.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述M2, · · ·為,· · ·,Mn根據(jù)M1確定的方法為=Mi = Rlog2MiJ2ii -I}]/叫,其中「]表示向上取整,其中,1 < i-1 ^ η。
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,若數(shù)據(jù)核個數(shù)為7時,K為3; 當(dāng)1/2 的范圍為不大于1/224時,則M1為8,η為2 ;當(dāng)1/2 的范圍為不大于1/227時,則M1為9,η為2 ; 當(dāng)1/2%的范圍為不大于1/230時,則M1為10,η為3,并根據(jù)M1確定M2為3。
7.一種報文分流方法,其特征在于,預(yù)設(shè)隊(duì)列號為1到2Κ-1的隊(duì)列,預(yù)設(shè)數(shù)值,所述預(yù)設(shè)數(shù)值從大到小排序?yàn)镸1, ...,Mi,...,Mn,其中,M1根據(jù)非均衡流量與總流量的比值1/2-1 的范圍確定,M2, ...,Mi, ...,Mn 根據(jù) M1 確定,K、n、i,M1, ...,Mi, ...,Mn 為自然數(shù),Mlri >Mn = 2,所述方法包括接收報文,根據(jù)報文類型提取所述接收報文的元組信息,并根據(jù)所述提取的元組信息進(jìn)行均衡運(yùn)算,將均衡運(yùn)算值按照每份K比特數(shù)劃分;在均衡運(yùn)算值劃分的份數(shù)中,獲取M1份K比特數(shù),并進(jìn)行求和運(yùn)算,將所述求和運(yùn)算的結(jié)果劃分為M2份K比特數(shù);獲取所述M2份K比特數(shù),并進(jìn)行求和運(yùn)算,將所述M2份K比特數(shù)求和運(yùn)算的結(jié)果劃分為M3份K比特數(shù),并獲取所述M3份K比特數(shù)進(jìn)行求和運(yùn)算,以此類推,直到獲取Mn份K比特數(shù)并進(jìn)行求和運(yùn)算,將所述Mn份K比特數(shù)據(jù)進(jìn)行求和運(yùn)算的結(jié)果劃分為Mn份K比特數(shù), 獲取當(dāng)前Mn份K比特數(shù)進(jìn)行求和運(yùn)算;若當(dāng)前Mn份K比特數(shù)求和運(yùn)算的結(jié)果不為0,則將所述接收的報文分配到隊(duì)列號與當(dāng)前1份1(比特數(shù)求和運(yùn)算的結(jié)果相同的隊(duì)列中;若當(dāng)前Mn份K比特數(shù)求和運(yùn)算的結(jié)果為 0,將所述報文按照預(yù)定策略固定分配到隊(duì)列號為1到2K-1之一的隊(duì)列中。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述方法可應(yīng)用于包括2Κ-1個數(shù)據(jù)核的網(wǎng)絡(luò)設(shè)備中,所述隊(duì)列號為1到2Κ-1的隊(duì)列與所述2Κ-1個數(shù)據(jù)核一一對應(yīng);所述2Κ-1個數(shù)據(jù)核處理與其相對應(yīng)的隊(duì)列中的報文。
9.根據(jù)權(quán)利要求7或8所述的方法,其特征在于,所述將均衡運(yùn)算值按照每份K比特數(shù)劃分的方法為將均衡運(yùn)算值從低位到高位按照每份K比特數(shù)劃分,最高位份不夠K比特數(shù)時補(bǔ)0為K比特數(shù);在所述均衡運(yùn)算值劃分的份數(shù)中,獲取M1份K比特數(shù)的方法為在均衡運(yùn)算值劃分的份數(shù)中按照從低位到高位的順序取M1份K比特數(shù)。
10.根據(jù)權(quán)利要求7或8所述的方法,其特征在于,所述將均衡運(yùn)算值按照每份K比特數(shù)劃分的方法為將均衡運(yùn)算值從低位到高位按照每份K比特數(shù)劃分,最高位份不夠K比特數(shù)時不計最高位份;在所述均衡運(yùn)算值劃分的份數(shù)中,獲取禮份1(比特數(shù)的方法為在均衡運(yùn)算值劃分的份數(shù)中按照從低位到高位或從高到低位的順序取M1份K比特數(shù)。
11.根據(jù)權(quán)利要求7或8所述的方法,其特征在于, 所述M2, ...,Mi, ...,Mn根據(jù)M1確定的方法為Mi = Rlog2 MwK-1)]/叫,其中「]表示向上取整,其中,1 < I-I^n0
12.根據(jù)權(quán)利要求8所述的方法,其特征在于,若數(shù)據(jù)核個數(shù)為7時,K為3; 當(dāng)1/2 的范圍為不大于1/224時,則M1為8,η為2 ;當(dāng)1/2 的范圍為不大于1/227時,則M1為9,η為2 ; 當(dāng)1/2%的范圍為不大于1/230時,則M1為10,η為3,并根據(jù)M1確定M2為3。
13.—種網(wǎng)絡(luò)設(shè)備,其特征在于,所述網(wǎng)絡(luò)設(shè)備包括配置單元、接收單元、運(yùn)算單元、 處理單元、確定單元和隊(duì)列單元;所述配置單元,用于在所述隊(duì)列單元中設(shè)置隊(duì)列號為0到2Κ-1的隊(duì)列,預(yù)設(shè)數(shù)值,所述預(yù)設(shè)數(shù)值按從大到小排序?yàn)镸1,. . . ,Mi,.. .,Μη,其中,M1根據(jù)隊(duì)列號為0的隊(duì)列上的流量與總流量的比值1/2 1的范圍確定,M2, ... , Mi, ...,Μη根據(jù)M1確定,K、IuLM1, ...,Mi,..., Mn為自然數(shù),Mlri > Mn= 2 ;所述接收單元,用于接收報文;所述運(yùn)算單元,用于根據(jù)所述接收單元接收的報文類型提取所述接收報文的元組信息,并根據(jù)所述提取的元組信息進(jìn)行均衡運(yùn)算;所述處理單元,用于將所述運(yùn)算單元均衡運(yùn)算值按照每份K比特數(shù)劃分;在均衡運(yùn)算值劃分的份數(shù)中,獲取所述配置單元設(shè)置的M1份K比特數(shù),并進(jìn)行求和運(yùn)算,將所述求和運(yùn)算的結(jié)果劃分為所述配置單元設(shè)置的M2份K比特數(shù);獲取所述M2份K比特數(shù),并進(jìn)行求和運(yùn)算,將所述M2份K比特數(shù)求和運(yùn)算的結(jié)果劃分為所述配置單元設(shè)置的M3份K比特數(shù),并獲取所述M3份K比特數(shù)進(jìn)行求和運(yùn)算,以此類推,直到獲取所述配置單元設(shè)置的Mn份K比特數(shù)并進(jìn)行求和運(yùn)算,將所述Mn份K比特數(shù)據(jù)進(jìn)行求和運(yùn)算的結(jié)果劃分為Mn份K比特數(shù), 并獲取當(dāng)前Mn份K比特數(shù)進(jìn)行求和運(yùn)算;所述確定單元,用于將所述接收單元接收的報文分配到所述隊(duì)列單元中隊(duì)列號與所述處理單元獲取當(dāng)前Mn份K比特數(shù)求和運(yùn)算的結(jié)果相同的隊(duì)列。
14.根據(jù)權(quán)利要求13所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述網(wǎng)絡(luò)設(shè)備包括2K-1個數(shù)據(jù)核; 所述配置單元,進(jìn)一步用于設(shè)置所述隊(duì)列號為0到2Κ-1的隊(duì)列中的1到2Κ-1的隊(duì)列與所述2Κ-1個數(shù)據(jù)核一一對應(yīng),所述隊(duì)列號為0的隊(duì)列與所述隊(duì)列號為Q的隊(duì)列對應(yīng)的數(shù)據(jù)核相對應(yīng),其中,1 < Q < 2K-1,Q為自然數(shù);所述數(shù)據(jù)核,用于處理所述隊(duì)列單元中與其對應(yīng)的隊(duì)列中的報文。
15.根據(jù)權(quán)利要求13或14所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述處理單元,用于將均衡運(yùn)算值從低位到高位按照每份K比特數(shù)劃分,最高位份不夠K比特數(shù)時補(bǔ)0為K比特數(shù);在所述均衡運(yùn)算值劃分的份數(shù)中按照從低位到高位的順序取M1份K比特數(shù)。
16.根據(jù)權(quán)利要求13或14所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述處理單元,用于將均衡運(yùn)算值從低位到高位按照每份K比特數(shù)劃分,最高位份不夠K比特數(shù)時不計最高位份;在所述均衡運(yùn)算值劃分的份數(shù)中按照從低位到高位或從高位到低位的順序取M1份K比特數(shù)。
17.根據(jù)權(quán)利13或14所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述配置單元,用于通過M1 =「「log2 Mw爐-I}]/叫確定M2, · · · ,Mi, · · ·,Mn,其中,「]表示向上取整,1≤i-1≤η。
18.根據(jù)權(quán)利要求14所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述配置單元,用于若數(shù)據(jù)核個數(shù)為7時,K為3 ;當(dāng)1/2 的范圍為不大于1/224時,設(shè)置M1為8,η為2 ;當(dāng)1/2%的范圍為不大于1/227時,設(shè)置M1為9,η為2 ;當(dāng)1/2%的范圍為不大于1/230時,設(shè)置M1為10,η為3,并根據(jù)M1確定M2為3。
19.一種網(wǎng)絡(luò)設(shè)備,其特征在于,所述網(wǎng)絡(luò)設(shè)備包括配置單元、接收單元、運(yùn)算單元、 處理單元、確定單元和隊(duì)列單元;所述配置單元,用于在所述隊(duì)列單元中設(shè)置隊(duì)列號為1到2Κ-1的隊(duì)列,預(yù)設(shè)數(shù)值,所述預(yù)設(shè)數(shù)值按從大到小排序?yàn)镸1,. ..,Mi;. ..,Μη,其中,M1根據(jù)非均衡流量占與總流量的比值 HIkmi 的范圍確定,M2, ...,Mi, ...,Mn 根據(jù) M1 確定,K、n、i,M1, ...,Mi, ...,Mn 為自然數(shù), Mlri > Mn = 2 ;所述接收單元,用于接收報文;所述運(yùn)算單元,用于根據(jù)所述接收單元接收的報文類型提取所述接收報文的元組信息,并根據(jù)所述提取的元組信息進(jìn)行均衡運(yùn)算;所述處理單元,用于將所述運(yùn)算單元均衡運(yùn)算值按照每份K比特數(shù)劃分;在均衡運(yùn)算值劃分的份數(shù)中,獲取所述配置單元設(shè)置的M1份K比特數(shù),并進(jìn)行求和運(yùn)算,將所述求和運(yùn)算的結(jié)果劃分為所述配置單元設(shè)置的M2份K比特數(shù);獲取所述M2份K比特數(shù),并進(jìn)行求和運(yùn)算,將所述M2份K比特數(shù)求和運(yùn)算的結(jié)果劃分為所述配置單元設(shè)置的M3份K比特數(shù),并獲取所述M3份K比特數(shù)進(jìn)行求和運(yùn)算,以此類推,直到獲取所述配置單元設(shè)置的Mn份K比特數(shù)并進(jìn)行求和運(yùn)算,將所述Mn份K比特數(shù)據(jù)進(jìn)行求和運(yùn)算的結(jié)果劃分為Mn份K比特數(shù), 并獲取當(dāng)前Mn份K比特數(shù)進(jìn)行求和運(yùn)算;所述確定單元,用于若當(dāng)前1份1(比特數(shù)求和運(yùn)算的結(jié)果不為0,則將所述接收的報文分配到所述隊(duì)列單元中隊(duì)列號與所述處理單元獲取當(dāng)前Mn份K比特數(shù)進(jìn)行求和運(yùn)算的結(jié)果相同的隊(duì)列;若當(dāng)前1份1(比特數(shù)求和運(yùn)算的結(jié)果為0,將所述報文按照預(yù)定策略固定分配到所述隊(duì)列單元中隊(duì)列號為1到2K-1之一的隊(duì)列中。
20.根據(jù)權(quán)利要求19所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述網(wǎng)絡(luò)設(shè)備包括2Κ-1個數(shù)據(jù)核; 所述配置單元,進(jìn)一步用于設(shè)置所述隊(duì)列號為1到2Κ-1的隊(duì)列與所述2Κ-1個數(shù)據(jù)核--對應(yīng);所述數(shù)據(jù)核,用于處理所述隊(duì)列單元中與其對應(yīng)的隊(duì)列中的報文。
21.根據(jù)權(quán)利要求19或20所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述處理單元,用于將均衡運(yùn)算值從低位到高位按照每份K比特數(shù)劃分,最高位份不夠K比特數(shù)時補(bǔ)0為K比特數(shù);用于在所述均衡運(yùn)算值劃分的份數(shù)中按照從低位到高位的順序取M1份K比特數(shù)。
22.根據(jù)權(quán)利要求19或20所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述處理單元,用于將均衡運(yùn)算值從低位到高位按照每份K比特數(shù)劃分,最高位份不夠K比特數(shù)時不計最高位份;用于在所述均衡運(yùn)算值劃分的份數(shù)中按照從低位到高位或從高位到低位的順序取M1份K比特數(shù)。
23.根據(jù)權(quán)利19或20所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述配置單元,用于通過M1 = Rlog2U^ - I}]/叫確定M2, · · ·,Mi; · · ·,Μη,其中,「]表示向上取整,1彡i-1彡η。
24.根據(jù)權(quán)利要求20所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述配置單元,用于若數(shù)據(jù)核個數(shù)為7時,K為3 ;當(dāng)1/2%的范圍為不大于1/224時,設(shè)置M1為8,η為2 ;當(dāng)1/2%的范圍為不大于1/227時,設(shè)置M1為9,η為2 ;當(dāng)1/2%的范圍為不大于1/230時,設(shè)置M1為10,η為3,并根據(jù)M1確定M2為3。
全文摘要
本發(fā)明公開了一種報文分流方法,通過加法計算替代現(xiàn)有的模計算,對均衡運(yùn)算的結(jié)果進(jìn)行有限次分段進(jìn)位相加,將接收的報文分配到隊(duì)列號與分段進(jìn)位相加的結(jié)果相同的隊(duì)列中。基于同樣的發(fā)明構(gòu)思,本發(fā)明還提出一種網(wǎng)絡(luò)設(shè)備,能夠提高報文分流效率,降低資源消耗。
文檔編號H04L12/56GK102546441SQ201210049250
公開日2012年7月4日 申請日期2012年2月29日 優(yōu)先權(quán)日2012年2月29日
發(fā)明者鄧士恩 申請人:杭州華三通信技術(shù)有限公司