一種報(bào)文分流方法及裝置的制造方法
【專利摘要】一種報(bào)文分流方法及裝置,該方法包括:將RSS隨機(jī)秘鑰中與RSS分流數(shù)據(jù)的待屏蔽比特在位置上相對應(yīng)的比特及其后續(xù)的連續(xù)31個(gè)比特設(shè)置為0;使用上述RSS隨機(jī)秘鑰對接收到的報(bào)文的RSS分流數(shù)據(jù)進(jìn)行哈希運(yùn)算,根據(jù)哈希運(yùn)算得到的哈希值對該報(bào)文進(jìn)行分流處理;其中,上述RSS分流數(shù)據(jù)由一個(gè)或多個(gè)報(bào)文頭字段組成。本申請可以充分利用網(wǎng)卡硬件已有的RSS報(bào)文分流技術(shù),通過對網(wǎng)卡寄存器中的RSS隨機(jī)秘鑰進(jìn)行設(shè)置實(shí)現(xiàn)報(bào)文分流,在現(xiàn)有的分流方式的基礎(chǔ)上派生出多種新的分流方式以滿足更多更靈活的系統(tǒng)需求,同時(shí)避免了管道模式對系統(tǒng)性能造成的不利影響。
【專利說明】
一種報(bào)文分流方法及裝置
技術(shù)領(lǐng)域
[0001]本申請涉及網(wǎng)絡(luò)通信領(lǐng)域,尤其涉及一種報(bào)文分流方法及裝置。
【背景技術(shù)】
[0002]多核處理器是指在一塊處理器中集成兩個(gè)或多個(gè)完整的計(jì)算引擎(內(nèi)核)。在多核、多處理器環(huán)境中,當(dāng)訪問多個(gè)處理器核心共享的資源時(shí)需要進(jìn)行加鎖處理,而加鎖對系統(tǒng)整體性能的負(fù)面影響很大。為了避免加鎖帶來的開銷及對系統(tǒng)性能的負(fù)面影響,在系統(tǒng)設(shè)計(jì)時(shí)通常會(huì)設(shè)法避免資源共享,具體到網(wǎng)絡(luò)設(shè)備(例如,路由器,交換機(jī),網(wǎng)絡(luò)服務(wù)器等)中,就是使屬于同一報(bào)文流的報(bào)文都由同一個(gè)處理器核心來處理,以避免報(bào)文跨處理器核心處理所帶來的處理器核心之間的資源共享。
[0003]目前,主流網(wǎng)卡大多數(shù)都支持RSS(Receive_Side Scaling,接收端調(diào)節(jié))報(bào)文分流技術(shù),使用該分流技術(shù)可以使同一報(bào)文流的報(bào)文都由一個(gè)處理器核心來處理。但是目前網(wǎng)卡提供的接口都只允許在幾種預(yù)先設(shè)定的配置方式中選擇分流方式,包括:
[0004]配置方式一:將具有相同的源IP(Internet Protocol,互聯(lián)網(wǎng)協(xié)議)地址、目的IP地址的報(bào)文作為同一報(bào)文流的報(bào)文對IP報(bào)文進(jìn)行分流;
[0005]配置方式二:將具有相同的源IP地址、目的IP地址、源端口號(hào)和目的端口號(hào)的報(bào)文作為同一報(bào)文流的報(bào)文對TCP (Transfer Control Protocol,傳輸控制協(xié)議)或UDP (UserDatagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)報(bào)文進(jìn)行分流。
[0006]除了上述網(wǎng)卡預(yù)先設(shè)定配置方式外,系統(tǒng)開發(fā)和管理人員無法選擇其它的方式進(jìn)行分流。例如,如果需要在分流時(shí)屏蔽目的地址對分流的影響,即僅依據(jù)源IP地址、源端口號(hào)和目的端口號(hào)進(jìn)行報(bào)文分流,由于現(xiàn)有的網(wǎng)卡并未提供相應(yīng)的配置接口,上述報(bào)文分流方式在現(xiàn)有技術(shù)中無法實(shí)現(xiàn)。
[0007]由上可知,現(xiàn)有的RSS報(bào)文分流技術(shù)中可選的分流方式較少,靈活性差,無法滿足用戶的需求。
[0008]公開號(hào)為“ 103269317A”,名稱為“基于對稱多處理SMP系統(tǒng)的無鎖化通信方法和系統(tǒng)”的中國專利中披露了一種RSS報(bào)文分流方法,該方法的主要思路是不對目前網(wǎng)卡的RSS報(bào)文分流功能進(jìn)行修改,而是將整個(gè)系統(tǒng)運(yùn)行于管道(pipeline)模式,并且將一個(gè)處理器核心(例如,記作CoreA)用于處理報(bào)文分流,報(bào)文都由網(wǎng)卡送到CoreA,由CoreA執(zhí)行一次哈希(HASH)運(yùn)算后再根據(jù)哈希運(yùn)算的結(jié)果將報(bào)文發(fā)送給對應(yīng)的處理器核心。
[0009]上述分流方法需要使用一個(gè)處理器核心專用于報(bào)文分流,不進(jìn)行其它業(yè)務(wù)的處理,浪費(fèi)了處理器資源,而且該處理器核心容易成為整個(gè)系統(tǒng)的性能瓶頸。此外,由于使用上述分流方法時(shí)整個(gè)系統(tǒng)運(yùn)行于管道模式,一次報(bào)文處理需要由多個(gè)處理器核心共同完成,因此一次報(bào)文處理所需的數(shù)據(jù)需要存儲(chǔ)在多個(gè)處理器核心所對應(yīng)的高速緩沖存儲(chǔ)器(Cache)中,這會(huì)降低處理器的Cache命中率,進(jìn)一步降低了系統(tǒng)性能。
【發(fā)明內(nèi)容】
[0010]本申請的目的在于提供一種報(bào)文分流方法及裝置。
[0011]為了達(dá)到上述目的,本申請公開了一種報(bào)文分流方法,該方法包括:
[0012]將RSS隨機(jī)秘鑰中與RSS分流數(shù)據(jù)的待屏蔽比特在位置上相對應(yīng)的比特及其后續(xù)的連續(xù)31個(gè)比特設(shè)置為O;
[0013]使用上述RSS隨機(jī)秘鑰對接收到的報(bào)文的RSS分流數(shù)據(jù)進(jìn)行哈希運(yùn)算,根據(jù)哈希運(yùn)算得到的哈希值對該報(bào)文進(jìn)行分流處理;
[0014]其中,上述RSS分流數(shù)據(jù)由一個(gè)或多個(gè)報(bào)文頭字段組成。
[0015]此外,所述RSS分流數(shù)據(jù)依序包含4個(gè)報(bào)文頭字段:源IP地址,目的IP地址,源端口號(hào),目的端口號(hào);
[0016]所述待屏蔽比特為所述4個(gè)報(bào)文頭字段中的:
[0017]任意I個(gè)報(bào)文頭字段的全部或部分比特;或
[0018]任意連續(xù)的2個(gè)報(bào)文頭字段的全部或部分比特;或
[0019]任意連續(xù)的3個(gè)報(bào)文頭字段的全部或部分比特;或
[0020]源IP地址中的全部或部分比特,和源端口號(hào)中的全部或部分比特;或
[0021]源IP地址中的全部或部分比特,和目的端口號(hào)中的全部或部分比特。
[0022]此外,所述RSS分流數(shù)據(jù)依序包含2個(gè)報(bào)文頭字段:源IP地址,目的IP地址;
[0023]所述待屏蔽比特為所述2個(gè)報(bào)文頭字段中的任意I個(gè)報(bào)文頭字段的全部或部分比特。
[0024]此外,所述待屏蔽比特包括:
[0025]源IP地址中的子網(wǎng)號(hào)和主機(jī)號(hào)所對應(yīng)的比特,或源IP地址中的主機(jī)號(hào)所對應(yīng)的比特;和/或
[0026]目的IP地址中的子網(wǎng)號(hào)和主機(jī)號(hào)所對應(yīng)的比特,或目的IP地址中的主機(jī)號(hào)所對應(yīng)的比特。
[0027]此外,所述待屏蔽比特為:
[0028]源IP地址中的子網(wǎng)號(hào)和主機(jī)號(hào)所對應(yīng)的比特;或
[0029]源IP地址中的主機(jī)號(hào)所對應(yīng)的比特;或
[0030]目的IP地址中的子網(wǎng)號(hào)和主機(jī)號(hào)所對應(yīng)的比特;或
[0031]目的IP地址中的主機(jī)號(hào)所對應(yīng)的比特。
[0032]此外,所述哈希運(yùn)算采用基于異或運(yùn)算的哈希函數(shù)。
[0033]此外,所述哈希運(yùn)算采用Toeplitz哈希函數(shù)。
[0034]為了達(dá)到上述目的,本申請還公開了一種報(bào)文分流裝置,包括:
[0035]隨機(jī)秘鑰設(shè)置模塊,用于將RSS隨機(jī)秘鑰中與RSS分流數(shù)據(jù)的待屏蔽比特在位置上相對應(yīng)的比特及其后續(xù)的連續(xù)31個(gè)比特設(shè)置為O ;
[0036]哈希運(yùn)算模塊,用于使用上述RSS隨機(jī)秘鑰對接收到的報(bào)文的RSS分流數(shù)據(jù)進(jìn)行哈希運(yùn)算;
[0037]分流模塊,用于根據(jù)哈希運(yùn)算得到的哈希值對該報(bào)文進(jìn)行分流處理;
[0038]其中,上述RSS分流數(shù)據(jù)由一個(gè)或多個(gè)報(bào)文頭字段組成。
[0039]此外,所述RSS分流數(shù)據(jù)依序包含4個(gè)報(bào)文頭字段:源IP地址,目的IP地址,源端口號(hào),目的端口號(hào);
[0040]所述隨機(jī)秘鑰設(shè)置模塊將所述4個(gè)報(bào)文頭字段中的:
[0041]任意I個(gè)報(bào)文頭字段的全部或部分比特;或
[0042]任意連續(xù)的2個(gè)報(bào)文頭字段的全部或部分比特;或
[0043]任意連續(xù)的3個(gè)報(bào)文頭字段的全部或部分比特;或
[0044]源IP地址中的全部或部分比特,和源端口號(hào)中的全部或部分比特;或
[0045]源IP地址中的全部或部分比特,和目的端口號(hào)中的全部或部分比特作為所述待屏蔽比特。
[0046]此外,所述RSS分流數(shù)據(jù)依序包含2個(gè)報(bào)文頭字段:源IP地址,目的IP地址;
[0047]所述隨機(jī)秘鑰設(shè)置模塊將所述2個(gè)報(bào)文頭字段中的任意I個(gè)報(bào)文頭字段的全部或部分比特作為所述待屏蔽比特。
[0048]此外,所述待屏蔽比特包括:
[0049]源IP地址中的子網(wǎng)號(hào)和主機(jī)號(hào)所對應(yīng)的比特,或源IP地址中的主機(jī)號(hào)所對應(yīng)的比特;和/或
[0050]目的IP地址中的子網(wǎng)號(hào)和主機(jī)號(hào)所對應(yīng)的比特,或目的IP地址中的主機(jī)號(hào)所對應(yīng)的比特。
[0051]此外,所述待屏蔽比特為:
[0052]源IP地址中的子網(wǎng)號(hào)和主機(jī)號(hào)所對應(yīng)的比特;或
[0053]源IP地址中的主機(jī)號(hào)所對應(yīng)的比特;或
[0054]目的IP地址中的子網(wǎng)號(hào)和主機(jī)號(hào)所對應(yīng)的比特;或
[0055]目的IP地址中的主機(jī)號(hào)所對應(yīng)的比特。
[0056]此外,所述哈希運(yùn)算模塊采用基于異或運(yùn)算的哈希函數(shù)進(jìn)行所述哈希運(yùn)算。
[0057]此外,所述哈希運(yùn)算模塊采用Toeplitz哈希函數(shù)進(jìn)行所述哈希運(yùn)算。
[0058]與現(xiàn)有技術(shù)相比,本申請可以獲得包括以下技術(shù)效果:
[0059]充分利用網(wǎng)卡硬件已有的RSS報(bào)文分流技術(shù),通過對網(wǎng)卡寄存器中的RSS隨機(jī)秘鑰進(jìn)行設(shè)置實(shí)現(xiàn)報(bào)文分流,在現(xiàn)有的分流方式的基礎(chǔ)上派生出多種新的分流方式以滿足更多更靈活的系統(tǒng)需求,同時(shí)避免了管道模式對系統(tǒng)性能造成的不利影響。
[0060]當(dāng)然,實(shí)施本申請的任一產(chǎn)品并不一定需要同時(shí)達(dá)到以上所述的所有技術(shù)效果。
【附圖說明】
[0061]此處所說明的附圖用來提供對本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,本申請的示意性實(shí)施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:
[0062]圖1是本申請實(shí)施例的一種報(bào)文分流方法的方法流程圖;
[0063]圖2是本申請實(shí)施例的另一種報(bào)文分流方法的方法流程圖;
[0064]圖3是本申請實(shí)施例的RSS隨機(jī)秘鑰中與各報(bào)文頭字段所對應(yīng)的比特的位置示意圖;
[0065]圖4是本申請實(shí)施例的另一種報(bào)文分流方法的方法流程圖;
[0066]圖5是本申請實(shí)施例的另一種RSS隨機(jī)秘鑰中與各報(bào)文頭字段所對應(yīng)的比特的位置示意圖;
[0067]圖6是本申請實(shí)施例的另一種報(bào)文分流方法的方法流程圖;
[0068]圖7是本申請實(shí)施例的另一種RSS隨機(jī)秘鑰中與各報(bào)文頭字段所對應(yīng)的比特的位置示意圖;
[0069]圖8是本申請實(shí)施例的另一種報(bào)文分流方法的方法流程圖;
[0070]圖9是本申請實(shí)施例的另一種RSS隨機(jī)秘鑰中與各報(bào)文頭字段所對應(yīng)的比特的位置示意圖;
[0071]圖10是本申請實(shí)施例的另一種報(bào)文分流方法的方法流程圖;
[0072]圖11是本申請實(shí)施例的另一種RSS隨機(jī)秘鑰中與各報(bào)文頭字段所對應(yīng)的比特的位置示意圖;
[0073]圖12是本申請實(shí)施例的報(bào)文分流裝置的裝置結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0074]以下將配合附圖及實(shí)施例來詳細(xì)說明本申請的實(shí)施方式,藉此對本申請如何應(yīng)用技術(shù)手段來解決技術(shù)問題并達(dá)成技術(shù)功效的實(shí)現(xiàn)過程能充分理解并據(jù)以實(shí)施。
[0075]在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
[0076]內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(flash RAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
[0077]計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、其他類型的隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括非暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號(hào)和載波。
[0078]實(shí)施例描沐
[0079]下面以一實(shí)施例對本申請方法的實(shí)現(xiàn)作進(jìn)一步說明。如圖1所示,為本申請實(shí)施例的一種報(bào)文分流方法的方法流程圖,該方法包括:
[0080]步驟SlOO:將RSS隨機(jī)秘鑰(RSS Random Secret Key)中與RSS分流數(shù)據(jù)的待屏蔽比特在位置上相對應(yīng)的比特及其后續(xù)的連續(xù)31個(gè)比特設(shè)置為O ;
[0081]RSS隨機(jī)秘鑰為網(wǎng)卡進(jìn)行哈希(HASH)運(yùn)算時(shí)所需的參數(shù),RSS隨機(jī)秘鑰存放在網(wǎng)卡的硬件寄存器中,操作系統(tǒng)及上層應(yīng)用軟件可以在網(wǎng)卡初始化等過程中對RSS隨機(jī)秘鑰進(jìn)行設(shè)置和修改。
[0082]其中,上述RSS分流數(shù)據(jù)由一個(gè)或多個(gè)報(bào)文頭字段組成。
[0083]步驟S102:使用上述RSS隨機(jī)秘鑰對接收到的報(bào)文的RSS分流數(shù)據(jù)進(jìn)行哈希運(yùn)算,根據(jù)哈希運(yùn)算得到的哈希值對該報(bào)文進(jìn)行分流處理;
[0084]上述RSS分流數(shù)據(jù)中包含的多個(gè)報(bào)文頭字段由網(wǎng)卡從接收到的報(bào)文中提取。
[0085]RSS分流數(shù)據(jù)分為兩種類型:
[0086]類型I (四元組類型):由4個(gè)報(bào)文頭字段組成,依次包含:源IP地址、目的IP地址、源端口號(hào)和目的端口號(hào);
[0087]類型2 ( 二元組類型):由2個(gè)報(bào)文頭字段組成,依次包含:源IP地址、目的IP地址。
[0088]上述根據(jù)哈希值對報(bào)文進(jìn)行的分流處理包括:將報(bào)文放入與計(jì)算得到的哈希值相對應(yīng)的RSS隊(duì)列中,并交由與該RSS隊(duì)列對應(yīng)的處理器核心進(jìn)行處理。
[0089]下面以第二實(shí)施例對本申請方法的實(shí)現(xiàn)作進(jìn)一步說明。如圖2所示,為本申請實(shí)施例的另一種報(bào)文分流方法的方法流程圖;本實(shí)施例中,采用IPv4協(xié)議,并且當(dāng)前配置的RSS分流數(shù)據(jù)類型為四元組類型;該方法包括:
[0090]步驟S200:將RSS隨機(jī)秘鑰中與RSS分流數(shù)據(jù)中的待屏蔽比特在位置上相對應(yīng)的比特以及該比特之后的31個(gè)比特設(shè)置為O ;
[0091]RSS隨機(jī)秘鑰RSSRK為40個(gè)字節(jié)(320比特)長,其默認(rèn)值為:
[0092]{0x6D, 0x5A, 0x56, OxDA, 0x25, 0x5B, OxOE, 0xC2,
[0093]0x41, 0x67, 0x25, 0x3D, 0x43, 0xA3, 0x8F, OxBO,
[0094]OxDO, OxCA, 0x2B, OxCB, OxAE, 0x7B, 0x30, 0xB4,
[0095]0x77, OxCB, 0x2D, 0xA3, 0x80, 0x30, 0xF2, OxOC,
[0096]0x6A, 0x42, 0xB7, 0x3B, OxBE, OxAC, 0x01, OxFA}。
[0097]本實(shí)施例中,采用IPv4協(xié)議,且RSS分流數(shù)據(jù)類型為四元組類型,因此RSS分流數(shù)據(jù)={SourcelP+DestlP+SourcePort+DestPort};其中:
[0098]SourceIP為源IP地址,長度L1= 32比特;DestIP為目的IP地址,長度L 2= 32比特;SourcePort為源端口號(hào),長度L3= 16比特!DestPort為目的端口號(hào),長度L4= 16比特;RSS分流數(shù)據(jù)的總長度L = 96比特。
[0099]本實(shí)施例中,上述待屏蔽比特可以是:4個(gè)報(bào)文頭字段中的任意I個(gè)報(bào)文頭字段的全部比特,或任意連續(xù)的2個(gè)報(bào)文頭字段的全部比特,或任意連續(xù)的3個(gè)報(bào)文頭字段的全部比特,或第I和第3個(gè)報(bào)文頭字段的全部比特,或第I和第4個(gè)報(bào)文頭字段的全部比特。
[0100]圖3為第二實(shí)施例中RSS隨機(jī)秘鑰中與各報(bào)文頭字段所對應(yīng)的比特的位置示意圖。圖3中,KEYl為第I個(gè)報(bào)文頭字段(即源IP地址)在RSS隨機(jī)秘鑰中所對應(yīng)的比特;KEY2為第2個(gè)報(bào)文頭字段(即目的IP地址)在RSS隨機(jī)秘鑰中所對應(yīng)的比特;KEY3為第3個(gè)報(bào)文頭字段(即源端口號(hào))在RSS隨機(jī)秘鑰中所對應(yīng)的比特;KEY4為第4個(gè)報(bào)文頭字段(即目的端口號(hào))在RSS隨機(jī)秘鑰中所對應(yīng)的比特。其中:
[0101]KEYl的長度K1= Li+31 = 63比特,KEYl在RSS隨機(jī)秘鑰中的對應(yīng)位置為:第I?63比特(第I?Q+31比特);
[0102]KEY2的長度K2= L2+31 = 63比特,KEY2在RSS隨機(jī)秘鑰中的對應(yīng)位置為:第33?95比特(第Q+1?W31比特);
[0103]KEY3的長度K3= L3+31 = 47比特;KEY3在RSS隨機(jī)秘鑰中的對應(yīng)位置為:第65?111 比特(第 L1+!^+1 ?1^+1^2+1^+31 比特);
[0104]KEY4的長度K4= L4+31 = 47比特;KEY4在RSS隨機(jī)秘鑰中的對應(yīng)位置為:第81?127 比特(第 Li+I^+Lu+l ?1^+1^2+1^+1^4+31 比特)。
[0105]本實(shí)施例中,RSS隨機(jī)秘鑰的有效字節(jié)為L+31 = 127比特。
[0106]以待屏蔽比特為目的IP地址字段的全部比特為例,將目的IP地址字段在RSS隨機(jī)秘鑰中所對應(yīng)的比特及各比特之后的31個(gè)比特(即KEY2)設(shè)置為O后,上述RSS隨機(jī)秘鑰的值RSSRK將變?yōu)?
[0107]{0x6D, 0x5A, 0x56, OxDA, 0x00, 0x00, 0x00, 0x00,
[0108]0x00, 0x00, 0x00, 0x01, 0x43, 0xA3, 0x8F, OxBO,
[0109]OxDO, OxCA, 0x2B, OxCB, OxAE, 0x7B, 0x30, 0xB4,
[0110]0x77, OxCB, 0x2D, 0xA3, 0x80, 0x30, 0xF2, OxOC,
[0111]0x6A, 0x42, 0xB7, 0x3B, OxBE, OxAC, 0x01, OxFA}。
[0112]步驟S202:網(wǎng)卡接收到報(bào)文后,根據(jù)當(dāng)前的配置從接收到的報(bào)文中提取RSS分流數(shù)據(jù);
[0113]如上所述,本實(shí)施例中,
[0114]RSS 分流數(shù)據(jù)={SourcelP+DestlP+SourcePort+DestPort} ο
[0115]步驟S204:網(wǎng)卡使用其硬件寄存器中存儲(chǔ)的上述RSS隨機(jī)秘鑰對RSS分流數(shù)據(jù)進(jìn)行哈希運(yùn)算得到哈希值;
[0116]本實(shí)施例中,哈希運(yùn)算可以采用基于異或運(yùn)算的哈希函數(shù),如Toeplitz (托布里茲)哈希函數(shù),Toeplitz哈希函數(shù)的偽代碼如下:
[0117]ComputeHash (input [], N)
[0118]For hash-1nput input[]of length N bytes(8N bits)and a random secret key
[0119]K of 320bits
[0120]Result = 0 ;
[0121]For each bit b in input [] {
[0122]if (b == I) then Result' = (left-most 32bits of K);
[0123]shift K left Ibit posit1n ;
[0124]}
[0125]return Result ;
[0126]其中,ComputeHash為Toeplitz哈希函數(shù)的函數(shù)名;
[0127]input []和N為Toeplitz哈希函數(shù)的兩個(gè)輸入?yún)?shù),input []為長度為N字節(jié)(8 X N比特)RSS分流數(shù)據(jù),本實(shí)施例中,N = 12 ;
[0128]K為40字節(jié)(320比特)長的RSS隨機(jī)秘鑰;
[0129]Result為Toeplitz哈希函數(shù)輸出的哈希值,其初值為O。
[0130]Toeplitz哈希函數(shù)中,從輸入的RSS分流數(shù)據(jù)的最左側(cè)的比特開始,對于RSS分流數(shù)據(jù)中的每一比特b依次進(jìn)行如下處理:
[0131]判斷b是否為1:
[0132]如果b = I,則令 Result = Result'(K[32]),并將 K 左移 I 比特;
[0133]如果b Φ 1,則將K左移I比特。
[0134]完成上述處理后,將Result值作為Toeplitz哈希函數(shù)的哈希值輸出。
[0135]其中,上述K[32]表示當(dāng)前K值的最左側(cè)(最高位)的32比特。
[0136]步驟S206:網(wǎng)卡根據(jù)計(jì)算得到的哈希值對接收到的報(bào)文進(jìn)行分流處理,即將該報(bào)文放入與哈希值相對應(yīng)的RSS隊(duì)列中,并交由與該RSS隊(duì)列對應(yīng)的處理器核心進(jìn)行處理。
[0137]由上可知,本實(shí)施例基于四元組類型的RSS分流數(shù)據(jù),通過對RSS隨機(jī)秘鑰進(jìn)行設(shè)置,派生出多種新的分流方式,例如:
[0138]將KEYl設(shè)置為0,可依據(jù)目的IP地址、源端口號(hào)和目的端口號(hào)進(jìn)行分流;或
[0139]將KEY2設(shè)置為O,可依據(jù)源IP地址、源端口號(hào)和目的端口號(hào)進(jìn)行分流;或
[0140]將KEY3設(shè)置為0,可依據(jù)源IP地址、目的IP地址和目的端口號(hào)進(jìn)行分流;或[0141 ] 將KEY4設(shè)置為O,可依據(jù)源IP地址、目的IP地址和源端口號(hào)進(jìn)行分流。
[0142]除以上分流方式外,還可以通過:將KEYl和KEY2設(shè)置為0,或?qū)EY2和KEY3設(shè)置為0,或?qū)EY3和KEY4設(shè)置為0,或?qū)EYl、KEY2和KEY3設(shè)置為0,或?qū)EY2、KEY3和KEY4設(shè)置為0,或?qū)EYl和KEY3設(shè)置為0,或?qū)EYl和KEY4設(shè)置為O等方式派生出更多的分流方式。
[0143]下面以第三實(shí)施例對本申請方法的實(shí)現(xiàn)作進(jìn)一步說明。如圖4所示,為本申請實(shí)施例的另一種報(bào)文分流方法的方法流程圖;本實(shí)施例中,采用IPv4協(xié)議,并且當(dāng)前配置的RSS分流數(shù)據(jù)類型為二元組類型;該方法包括:
[0144]步驟S400:將RSS隨機(jī)秘鑰中與RSS分流數(shù)據(jù)中的待屏蔽比特在位置上相對應(yīng)的比特以及該比特之后的31個(gè)比特設(shè)置為O ;
[0145]本實(shí)施例中,采用IPv4協(xié)議,且RSS分流數(shù)據(jù)類型為二元組類型,因此RSS分流數(shù)據(jù)={SourcelP+DestIP};其中:
[0146]SourceIP為源IP地址,長度L1= 32比特;DestIP為目的IP地址,長度L 2= 32比特;RSS分流數(shù)據(jù)的總長度L = 64比特。
[0147]本實(shí)施例中,上述待屏蔽比特可以是2個(gè)報(bào)文頭字段中的任意I個(gè)報(bào)文頭字段的全部比特。
[0148]圖5為第三實(shí)施例中RSS隨機(jī)秘鑰中與各報(bào)文頭字段所對應(yīng)的比特的位置示意圖。圖5中,KEYl為第I個(gè)報(bào)文頭字段(即源IP地址)在RSS隨機(jī)秘鑰中所對應(yīng)的比特;KEY2為第2個(gè)報(bào)文頭字段(即目的IP地址字段)在RSS隨機(jī)秘鑰中所對應(yīng)的比特。其中:
[0149]KEYl的長度K1= L片31 = 63比特,KEYl在RSS隨機(jī)秘鑰中的對應(yīng)位置為:第I?63比特(第I?Q+31比特);
[0150]KEY2的長度K2= L2+31 = 63比特,KEY2在RSS隨機(jī)秘鑰中的對應(yīng)位置為:第33?95比特(第Q+1?W31比特);
[0151]本實(shí)施例中,RSS隨機(jī)秘鑰的有效字節(jié)為L+31 = 95比特。
[0152]步驟S402:網(wǎng)卡接收到報(bào)文后,根據(jù)當(dāng)前的配置從接收到的報(bào)文中提取RSS分流數(shù)據(jù);
[0153]如上所述,本實(shí)施例中,
[0154]RSS 分流數(shù)據(jù)={SourcelP+DestIP} ο
[0155]步驟S404:網(wǎng)卡使用其硬件寄存器中存儲(chǔ)的上述RSS隨機(jī)秘鑰對RSS分流數(shù)據(jù)進(jìn)行哈希運(yùn)算得到哈希值;
[0156]本實(shí)施例中,哈希運(yùn)算可以采用基于異或運(yùn)算的哈希函數(shù),如Toeplitz (托布里茲)哈希函數(shù)。
[0157]步驟S406:網(wǎng)卡根據(jù)計(jì)算得到的哈希值對接收到的報(bào)文進(jìn)行分流處理,即將該報(bào)文放入與哈希值相對應(yīng)的RSS隊(duì)列中,并交由與該RSS隊(duì)列對應(yīng)的處理器核心進(jìn)行處理。
[0158]由上可知,本實(shí)施例基于二元組類型的RSS分流數(shù)據(jù),通過對RSS隨機(jī)秘鑰進(jìn)行設(shè)置,派生出多種新的分流方式,例如:
[0159]將KEYl設(shè)置為0,可依據(jù)目的IP地址進(jìn)行分流;或
[0160]將KEY2設(shè)置為O,可依據(jù)源IP地址進(jìn)行分流。
[0161]下面以第四實(shí)施例對本申請方法的實(shí)現(xiàn)作進(jìn)一步說明。如圖6所示,為本申請實(shí)施例的另一種報(bào)文分流方法的方法流程圖;本實(shí)施例中,采用IPv6協(xié)議,并且當(dāng)前配置的RSS分流數(shù)據(jù)類型為四元組類型;該方法包括:
[0162]步驟S600:將RSS隨機(jī)秘鑰中與RSS分流數(shù)據(jù)中的待屏蔽比特在位置上相對應(yīng)的比特以及該比特之后的31個(gè)比特設(shè)置為O ;
[0163]本實(shí)施例中,采用IPv6協(xié)議,且RSS分流數(shù)據(jù)類型為四元組類型,因此RSS分流數(shù)據(jù)={SourcelP+DestlP+SourcePort+DestPort};其中:
[0164]SourceIP為源IP地址,長度L1= 128比特;DestIP為目的IP地址,長度L 2= 128比特;SourcePort為源端口號(hào),長度L3= 16比特!DestPort為目的端口號(hào),長度L4= 16比特;RSS分流數(shù)據(jù)的總長度L = 288比特。
[0165]本實(shí)施例中,上述待屏蔽比特可以是:4個(gè)報(bào)文頭字段中的任意I個(gè)報(bào)文頭字段的全部比特,或任意連續(xù)的2個(gè)報(bào)文頭字段的全部比特,或任意連續(xù)的3個(gè)報(bào)文頭字段的全部比特,或第I和第3個(gè)報(bào)文頭字段的全部比特,或第I和第4個(gè)報(bào)文頭字段的全部比特。
[0166]圖7為第四實(shí)施例中RSS隨機(jī)秘鑰中與各報(bào)文頭字段所對應(yīng)的比特的位置示意圖。圖7中,KEYl為第I個(gè)報(bào)文頭字段(即源IP地址)在RSS隨機(jī)秘鑰中所對應(yīng)的比特;KEY2為第2個(gè)報(bào)文頭字段(即目的IP地址)在RSS隨機(jī)秘鑰中所對應(yīng)的比特;KEY3為第3個(gè)報(bào)文頭字段(即源端口號(hào))在RSS隨機(jī)秘鑰中所對應(yīng)的比特;KEY4為第4個(gè)報(bào)文頭字段(即目的端口號(hào))在RSS隨機(jī)秘鑰中所對應(yīng)的比特。其中:
[0167]KEYl的長度K1= L片31 = 159比特,KEYl在RSS隨機(jī)秘鑰中的對應(yīng)位置為:第I?159比特(第I?Q+31比特);
[0168]KEY2的長度K2= L 2+31 = 159比特,KEY2在RSS隨機(jī)秘鑰中的對應(yīng)位置為:第129?287比特(第L1+!?!^+1^+31比特);
[0169]KEY3的長度K3= L 3+31 = 47比特;KEY3在RSS隨機(jī)秘鑰中的對應(yīng)位置為:第257?303比特(第Wl?WL3+31比特);
[0170]KEY4的長度K4= L 4+31 = 47比特;KEY4在RSS隨機(jī)秘鑰中的對應(yīng)位置為:第273 ?319 比特(第 L1U2U3+1 ?WVLpl 比特)。
[0171]本實(shí)施例中,RSS隨機(jī)秘鑰的有效字節(jié)為L+31 = 319比特。
[0172]步驟S602:網(wǎng)卡接收到報(bào)文后,根據(jù)當(dāng)前的配置從接收到的報(bào)文中提取RSS分流數(shù)據(jù);
[0173]如上所述,本實(shí)施例中,
[0174]RSS 分流數(shù)據(jù)={SourcelP+DestlP+SourcePort+DestPort} ο
[0175]步驟S604:網(wǎng)卡使用其硬件寄存器中存儲(chǔ)的上述RSS隨機(jī)秘鑰對RSS分流數(shù)據(jù)進(jìn)行哈希運(yùn)算得到哈希值;
[0176]本實(shí)施例中,哈希運(yùn)算可以采用基于異或運(yùn)算的哈希函數(shù),如Toeplitz (托布里茲)哈希函數(shù)。
[0177]步驟S606:網(wǎng)卡根據(jù)計(jì)算得到的哈希值對接收到的報(bào)文進(jìn)行分流處理,即將該報(bào)文放入與哈希值相對應(yīng)的RSS隊(duì)列中,并交由與該RSS隊(duì)列對應(yīng)的處理器核心進(jìn)行處理。
[0178]由上可知,本實(shí)施例基于四元組類型的RSS分流數(shù)據(jù),通過對RSS隨機(jī)秘鑰進(jìn)行設(shè)置,派生出了多種新的分流方式,例如:
[0179]將KEYl設(shè)置為0,可依據(jù)目的IP地址、源端口號(hào)和目的端口號(hào)進(jìn)行分流;或
[0180]將KEY2設(shè)置為O,可依據(jù)源IP地址、源端口號(hào)和目的端口號(hào)進(jìn)行分流;或
[0181]將KEY3設(shè)置為O,可依據(jù)源IP地址、目的IP地址和目的端口號(hào)進(jìn)行分流;或
[0182]將KEY4設(shè)置為O,可依據(jù)源IP地址、目的IP地址和源端口號(hào)進(jìn)行分流。
[0183]除以上分流方式外,還可以通過:將KEYl和KEY2設(shè)置為0,或?qū)EY2和KEY3設(shè)置為0,或?qū)EY3和KEY4設(shè)置為0,或?qū)EYl、KEY2和KEY3設(shè)置為0,或?qū)EY2、KEY3和KEY4設(shè)置為0,或?qū)EYl和KEY3設(shè)置為0,或?qū)EYl和KEY4設(shè)置為O等方式派生出更多的分流方式。
[0184]下面以第五實(shí)施例對本申請方法的實(shí)現(xiàn)作進(jìn)一步說明。如圖8所示,為本申請實(shí)施例的另一種報(bào)文分流方法的方法流程圖;本實(shí)施例中,采用IPv6協(xié)議,并且當(dāng)前配置的RSS分流數(shù)據(jù)類型為二元組類型;該方法包括:
[0185]步驟S800:將RSS隨機(jī)秘鑰中與RSS分流數(shù)據(jù)中的待屏蔽比特在位置上相對應(yīng)的比特以及該比特之后的31個(gè)比特設(shè)置為O ;
[0186]本實(shí)施例中,采用IPv6協(xié)議,且RSS分流數(shù)據(jù)類型為二元組類型,因此RSS分流數(shù)據(jù)={SourcelP+DestIP};其中:
[0187]SourceIP為源IP地址,長度L1= 128比特;DestIP為目的IP地址,長度L 2= 128比特;RSS分流數(shù)據(jù)的總長度L = 256比特。
[0188]本實(shí)施例中,上述待屏蔽比特可以是2個(gè)報(bào)文頭字段中的任意I個(gè)報(bào)文頭字段的全部比特。
[0189]圖9為第五實(shí)施例中RSS隨機(jī)秘鑰中與各報(bào)文頭字段所對應(yīng)的比特的位置示意圖。圖9中,KEYl為第I個(gè)報(bào)文頭字段(即源IP地址字段)在RSS隨機(jī)秘鑰中所對應(yīng)的比特;KEY2為第2個(gè)報(bào)文頭字段(即目的IP地址字段)在RSS隨機(jī)秘鑰中所對應(yīng)的比特。其中:
[0190]KEYl的長度K1= L !+31 = 159比特,KEYl在RSS隨機(jī)秘鑰中的對應(yīng)位置為:第I?159比特(第I?Q+31比特);
[0191]KEY2的長度K2= L2+31 = 159比特,KEY2在RSS隨機(jī)秘鑰中的對應(yīng)位置為:第129?287比特(第L1+!?!^+1^+31比特)。
[0192]本實(shí)施例中,RSS隨機(jī)秘鑰的有效字節(jié)為L+31 = 287比特。
[0193]步驟S802:網(wǎng)卡接收到報(bào)文后,根據(jù)當(dāng)前的配置從接收到的報(bào)文中提取RSS分流數(shù)據(jù);
[0194]如上所述,本實(shí)施例中,
[0195]RSS 分流數(shù)據(jù)={SourcelP+DestIP} ο
[0196]步驟S804:網(wǎng)卡使用其硬件寄存器中存儲(chǔ)的上述RSS隨機(jī)秘鑰對RSS分流數(shù)據(jù)進(jìn)行哈希運(yùn)算得到哈希值;
[0197]本實(shí)施例中,哈希運(yùn)算可以采用基于異或運(yùn)算的哈希函數(shù),如Toeplitz (托布里茲)哈希函數(shù)。
[0198]步驟S806:網(wǎng)卡根據(jù)計(jì)算得到的哈希值對接收到的報(bào)文進(jìn)行分流處理,即將該報(bào)文放入與哈希值相對應(yīng)的RSS隊(duì)列中,并交由與該RSS隊(duì)列對應(yīng)的處理器核心進(jìn)行處理。
[0199]由上可知,本實(shí)施例基于二元組類型的RSS分流數(shù)據(jù),通過對RSS隨機(jī)秘鑰進(jìn)行設(shè)置,派生出了多種新的分流方式,例如:
[0200]將KEYl設(shè)置為0,可依據(jù)目的IP地址進(jìn)行分流;或
[0201]將KEY2設(shè)置為0,可依據(jù)源IP地址進(jìn)行分流。
[0202]下面以第六實(shí)施例對本申請方法的實(shí)現(xiàn)作進(jìn)一步說明。如圖10所示,為本申請實(shí)施例的另一種報(bào)文分流方法的方法流程圖;本實(shí)施例中,采用IPv4協(xié)議,并且當(dāng)前配置的RSS分流數(shù)據(jù)類型為二元組類型;該方法包括:
[0203]步驟S1000:將RSS隨機(jī)秘鑰中與RSS分流數(shù)據(jù)中的待屏蔽比特在位置上相對應(yīng)的比特以及該比特之后的31個(gè)比特設(shè)置為O ;
[0204]本實(shí)施例中,采用IPv4協(xié)議,且RSS分流數(shù)據(jù)類型為二元組類型,因此RSS分流數(shù)據(jù)={SourcelP+DestIP}。
[0205]本實(shí)施例中,上述待屏蔽比特為2個(gè)報(bào)文頭字段中的任意I個(gè)或2報(bào)文頭字段的部分比特。具體地說,本實(shí)施例中待屏蔽比特可以為:
[0206]源IP地址中的子網(wǎng)號(hào)和主機(jī)號(hào)所對應(yīng)的比特,或主機(jī)號(hào)所對應(yīng)的比特;和/或
[0207]目的IP地址中的子網(wǎng)號(hào)和主機(jī)號(hào)所對應(yīng)的比特,或主機(jī)號(hào)所對應(yīng)的比特。
[0208]IP地址以兩級劃分可以表示為:網(wǎng)絡(luò)號(hào)+主機(jī)號(hào),如果以三級劃分,主機(jī)號(hào)又可以表示為:子網(wǎng)號(hào)+主機(jī)號(hào);此外,IP地址可分為A、B、C等多類,不同類別的IP地址的網(wǎng)絡(luò)號(hào)、子網(wǎng)號(hào)和主機(jī)號(hào)所占比特?cái)?shù)不同。
[0209]本實(shí)施例中,以Nn表示網(wǎng)絡(luò)號(hào)所占比特?cái)?shù),N s表示子網(wǎng)號(hào)所占比特?cái)?shù),N h表示主機(jī)號(hào)所占比特?cái)?shù),則:
[0210]如果待屏蔽比特為源IP地址的主機(jī)號(hào)所對應(yīng)的比特,則將RSS隨機(jī)秘鑰的第Nn+Ns+1?Q+31個(gè)比特設(shè)置為0,即將圖5所示的KEYl的后Nh+31個(gè)比特設(shè)置為O ;
[0211]如果待屏蔽比特為源IP地址的子網(wǎng)號(hào)和主機(jī)號(hào)所對應(yīng)的比特,則將RSS隨機(jī)秘鑰的第Nn+1?Q+31個(gè)比特設(shè)置為0,即將圖5所示的KEYl的后Ns+Nh+31個(gè)比特設(shè)置為O ;
[0212]如果待屏蔽比特為目的IP地址的主機(jī)號(hào)所對應(yīng)的比特,則將RSS隨機(jī)秘鑰的第L!+Nn+Ns+1?Q+I^+31比特設(shè)置為0,即將圖5所示的KEY2的后Nh+31個(gè)比特設(shè)置為O ;
[0213]如果待屏蔽字節(jié)為目的IP地址的子網(wǎng)號(hào)和主機(jī)號(hào)所對應(yīng)的比特,則將RSS隨機(jī)秘鑰的第Ι^+Νη+1?I^+k+31比特設(shè)置為0,即將圖5所示的KEY2的后Ns+Nh+31個(gè)比特設(shè)置為O。
[0214]步驟S1002:網(wǎng)卡接收到報(bào)文后,根據(jù)當(dāng)前的配置從接收到的報(bào)文中提取RSS分流數(shù)據(jù);
[0215]如上所述,本實(shí)施例中,
[0216]RSS 分流數(shù)據(jù)={SourcelP+DestIP} ο
[0217]步驟S1004:網(wǎng)卡使用其硬件寄存器中存儲(chǔ)的上述RSS隨機(jī)秘鑰對RSS分流數(shù)據(jù)進(jìn)行哈希運(yùn)算得到哈希值;
[0218]本實(shí)施例中,哈希運(yùn)算可以采用基于異或運(yùn)算的哈希函數(shù),如Toeplitz (托布里茲)哈希函數(shù)。
[0219]步驟S1006:網(wǎng)卡根據(jù)輸出的哈希值對接收到的報(bào)文進(jìn)行分流處理,即將該報(bào)文放入與哈希值相對應(yīng)的RSS隊(duì)列中,并交由與該RSS隊(duì)列對應(yīng)的處理器核心進(jìn)行處理。
[0220]由上可知,本實(shí)施例基于二元組類型的RSS分流數(shù)據(jù),通過對RSS隨機(jī)秘鑰進(jìn)行設(shè)置,派生出多種新的分流方式,例如:
[0221]將KEYl的后Nh+31或后Ns+Nh+31個(gè)比特設(shè)置為0,可依據(jù)源IP地址的網(wǎng)絡(luò)號(hào)或依據(jù)源IP地址的網(wǎng)絡(luò)號(hào)和子網(wǎng)號(hào)進(jìn)行分流;和/或
[0222]將KEY2的后Nh+31或后Ns+Nh+31個(gè)比特設(shè)置為0,可依據(jù)目的IP地址的網(wǎng)絡(luò)號(hào)或依據(jù)目的IP地址的網(wǎng)絡(luò)號(hào)和子網(wǎng)號(hào)進(jìn)行分流。
[0223]本實(shí)施例可以應(yīng)用于IPv6協(xié)議,所不同的是,IPv6協(xié)議的IP地址沒有包含子網(wǎng)號(hào),其IP地址的構(gòu)成為網(wǎng)絡(luò)號(hào)+主機(jī)號(hào)(或稱為:網(wǎng)絡(luò)前綴+主機(jī)號(hào)),即上述Ns= O0
[0224]本發(fā)明的第六實(shí)施例可以與本發(fā)明的第二至第五實(shí)施例中的任何一個(gè)結(jié)合使用。
[0225]應(yīng)用實(shí)例描述
[0226]下面以一應(yīng)用實(shí)例對本申請方法的實(shí)現(xiàn)作進(jìn)一步說明。
[0227]設(shè)接收到的報(bào)文為TCP報(bào)文,源IP地址={1.1.1.1},源端口號(hào)=0x1234,目的IP地址={2.2.2.2},目的端口號(hào)=0x50 ;RSS分流數(shù)據(jù)類型為四元組類型,則:RSS分流數(shù)據(jù)={SourcelP+DestlP+SourcePort+DestPort}。
[0228]本應(yīng)用實(shí)例中以待屏蔽比特為目的IP地址字段(DestIP)的全部比特為例進(jìn)行說明。
[0229]圖11為本申請應(yīng)用實(shí)例中RSS隨機(jī)秘鑰中與各報(bào)文頭字段所對應(yīng)的比特的位置示意圖。如圖11所示,為了屏蔽目的IP地址字段的對應(yīng)比特,應(yīng)當(dāng)將RSS隨機(jī)秘鑰中的KEY2的全部比特設(shè)置為O。
[0230]為了更清晰地說明本申請的原理,本應(yīng)用實(shí)例中對Toeplitz哈希函數(shù)進(jìn)行改寫,偽代碼如下:
[0231 ] ComputeHash_S(input[], N, K, Result)
[0232]For each bit b in input []{
[0233]if (b == I) then Result' = (left-most 32bits of K);
[0234]shift K left Ibit posit1n ;
[0235]}
[0236]return Result ;
[0237]如以上偽代碼所示,ComputeHash_S函數(shù)與Toeplitz哈希函數(shù)ComputeHash的區(qū)別在于ComputeHash_S函數(shù)增加了一個(gè)輸入?yún)?shù)Result,即Result作為哈希值的初始值輸入,也作為哈希運(yùn)算的結(jié)果值輸出。
[0238]經(jīng)過上述改寫后,我們可以將哈希運(yùn)算分解為以下子步驟:
[0239]Rssl = ComputeHash_S(SourceIP, 4, KEY1, 0);
[0240]Rss2 = ComputeHash_S(DestIP, 4, KEY2, Rssl);
[0241]Rss3 = ComputeHash_S(SourcePort, 2, KEY3, Rss2);
[0242]Rss4 = ComputeHash_S(DestPort, 2, KEY4, Rss3)。
[0243]在Rss2 = ComputeHash_S (DestIP, 4,KEY2, Rssl)中,由于 KEY2 的全部比特為 0,因此無論DestIP為何值,Rss2 = Rssl,即在哈希函數(shù)的計(jì)算過程中,哈希值沒有變化,即輸出的哈希值與DestIP的值無關(guān),通過將KEY2設(shè)置為O實(shí)現(xiàn)了對目的IP地址字段的屏蔽,以源IP地址、源端口號(hào)和目的端口號(hào)進(jìn)行RSS分流。
[0244]下面以另一實(shí)施例對本申請裝置的實(shí)現(xiàn)作進(jìn)一步說明。如圖12所示,為本申請實(shí)施例的報(bào)文分流裝置的裝置結(jié)構(gòu)圖,報(bào)文分流裝置包括:隨機(jī)秘鑰設(shè)置模塊1200、哈希運(yùn)算模塊1202、分流模塊1204 ;其中:
[0245]隨機(jī)秘鑰設(shè)置模塊,用于將RSS隨機(jī)秘鑰中與RSS分流數(shù)據(jù)的待屏蔽比特在位置上相對應(yīng)的比特及其后續(xù)的連續(xù)31個(gè)比特設(shè)置為O ;
[0246]哈希運(yùn)算模塊,用于使用上述RSS隨機(jī)秘鑰對接收到的報(bào)文的RSS分流數(shù)據(jù)進(jìn)行哈希運(yùn)算;
[0247]分流模塊,用于根據(jù)哈希運(yùn)算得到的哈希值對該報(bào)文進(jìn)行分流處理;
[0248]其中,上述RSS分流數(shù)據(jù)由一個(gè)或多個(gè)報(bào)文頭字段組成。
[0249]RSS分流數(shù)據(jù)依序包含4個(gè)報(bào)文頭字段:源IP地址,目的IP地址,源端口號(hào),目的端口號(hào);
[0250]隨機(jī)秘鑰設(shè)置模塊將所述4個(gè)報(bào)文頭字段中的:
[0251]任意I個(gè)報(bào)文頭字段的全部或部分比特;或
[0252]任意連續(xù)的2個(gè)報(bào)文頭字段的全部或部分比特;或
[0253]任意連續(xù)的3個(gè)報(bào)文頭字段的全部或部分比特;或
[0254]源IP地址中的全部或部分比特,和源端口號(hào)中的全部或部分比特;或
[0255]源IP地址中的全部或部分比特,和目的端口號(hào)中的全部或部分比特作為待屏蔽比特。
[0256]待屏蔽比特包括:
[0257]源IP地址中的子網(wǎng)號(hào)和主機(jī)號(hào)所對應(yīng)的比特,或源IP地址中的主機(jī)號(hào)所對應(yīng)的比特;和/或
[0258]目的IP地址中的子網(wǎng)號(hào)和主機(jī)號(hào)所對應(yīng)的比特,或目的IP地址中的主機(jī)號(hào)所對應(yīng)的比特。
[0259]此外,RSS分流數(shù)據(jù)還可以依序包含2個(gè)報(bào)文頭字段:源IP地址,目的IP地址;
[0260]所述隨機(jī)秘鑰設(shè)置模塊將所述2個(gè)報(bào)文頭字段中的任意I個(gè)報(bào)文頭字段的全部或部分比特作為所述待屏蔽比特。
[0261]所述待屏蔽比特為:
[0262]源IP地址中的子網(wǎng)號(hào)和主機(jī)號(hào)所對應(yīng)的比特;或
[0263]源IP地址中的主機(jī)號(hào)所對應(yīng)的比特;或
[0264]目的IP地址中的子網(wǎng)號(hào)和主機(jī)號(hào)所對應(yīng)的比特;或
[0265]目的IP地址中的主機(jī)號(hào)所對應(yīng)的比特。
[0266]所述哈希運(yùn)算模塊采用基于異或運(yùn)算的哈希函數(shù)進(jìn)行所述哈希運(yùn)算。
[0267]優(yōu)選地,所述哈希運(yùn)算模塊采用Toeplitz哈希函數(shù)進(jìn)行所述哈希運(yùn)算。
[0268]所述裝置與前述的方法流程描述對應(yīng),更具體的描述請參考上述方法流程的敘述,不再一一贅述。
[0269]上述說明示出并描述了本申請的若干優(yōu)選實(shí)施例,但如前所述,應(yīng)當(dāng)理解本申請并非局限于本文所披露的形式,不應(yīng)看作是對其他實(shí)施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述發(fā)明構(gòu)想范圍內(nèi),通過上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識(shí)進(jìn)行改動(dòng)。而本領(lǐng)域人員所進(jìn)行的改動(dòng)和變化不脫離本申請的精神和范圍,則都應(yīng)在本申請所附權(quán)利要求的保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種報(bào)文分流方法,其特征在于,該方法包括: 將RSS隨機(jī)秘鑰中與RSS分流數(shù)據(jù)的待屏蔽比特在位置上相對應(yīng)的比特及其后續(xù)的連續(xù)31個(gè)比特設(shè)置為O; 使用上述RSS隨機(jī)秘鑰對接收到的報(bào)文的RSS分流數(shù)據(jù)進(jìn)行哈希運(yùn)算,根據(jù)哈希運(yùn)算得到的哈希值對該報(bào)文進(jìn)行分流處理; 其中,上述RSS分流數(shù)據(jù)由一個(gè)或多個(gè)報(bào)文頭字段組成。2.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述RSS分流數(shù)據(jù)依序包含4個(gè)報(bào)文頭字段:源IP地址,目的IP地址,源端口號(hào),目的端口號(hào); 所述待屏蔽比特為所述4個(gè)報(bào)文頭字段中的: 任意I個(gè)報(bào)文頭字段的全部或部分比特;或 任意連續(xù)的2個(gè)報(bào)文頭字段的全部或部分比特;或 任意連續(xù)的3個(gè)報(bào)文頭字段的全部或部分比特;或 源IP地址中的全部或部分比特,和源端口號(hào)中的全部或部分比特;或 源IP地址中的全部或部分比特,和目的端口號(hào)中的全部或部分比特。3.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述RSS分流數(shù)據(jù)依序包含2個(gè)報(bào)文頭字段:源IP地址,目的IP地址; 所述待屏蔽比特為所述2個(gè)報(bào)文頭字段中的任意I個(gè)報(bào)文頭字段的全部或部分比特。4.根據(jù)權(quán)利要求2所述的方法,其特征在于, 所述待屏蔽比特包括: 源IP地址中的子網(wǎng)號(hào)和主機(jī)號(hào)所對應(yīng)的比特,或源IP地址中的主機(jī)號(hào)所對應(yīng)的比特;和/或 目的IP地址中的子網(wǎng)號(hào)和主機(jī)號(hào)所對應(yīng)的比特,或目的IP地址中的主機(jī)號(hào)所對應(yīng)的比特。5.根據(jù)權(quán)利要求3所述的方法,其特征在于, 所述待屏蔽比特為: 源IP地址中的子網(wǎng)號(hào)和主機(jī)號(hào)所對應(yīng)的比特;或 源IP地址中的主機(jī)號(hào)所對應(yīng)的比特;或 目的IP地址中的子網(wǎng)號(hào)和主機(jī)號(hào)所對應(yīng)的比特;或 目的IP地址中的主機(jī)號(hào)所對應(yīng)的比特。6.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述哈希運(yùn)算采用基于異或運(yùn)算的哈希函數(shù)。7.根據(jù)權(quán)利要求6所述的方法,其特征在于, 所述哈希運(yùn)算采用Toeplitz哈希函數(shù)。8.一種報(bào)文分流裝置,其特征在于,包括: 隨機(jī)秘鑰設(shè)置模塊,用于將RSS隨機(jī)秘鑰中與RSS分流數(shù)據(jù)的待屏蔽比特在位置上相對應(yīng)的比特及其后續(xù)的連續(xù)31個(gè)比特設(shè)置為O ; 哈希運(yùn)算模塊,用于使用上述RSS隨機(jī)秘鑰對接收到的報(bào)文的RSS分流數(shù)據(jù)進(jìn)行哈希運(yùn)算; 分流模塊,用于根據(jù)哈希運(yùn)算得到的哈希值對該報(bào)文進(jìn)行分流處理; 其中,上述RSS分流數(shù)據(jù)由一個(gè)或多個(gè)報(bào)文頭字段組成。9.根據(jù)權(quán)利要求6所述的裝置,其特征在于, 所述RSS分流數(shù)據(jù)依序包含4個(gè)報(bào)文頭字段:源IP地址,目的IP地址,源端口號(hào),目的端口號(hào); 所述隨機(jī)秘鑰設(shè)置模塊將所述4個(gè)報(bào)文頭字段中的: 任意I個(gè)報(bào)文頭字段的全部或部分比特;或 任意連續(xù)的2個(gè)報(bào)文頭字段的全部或部分比特;或 任意連續(xù)的3個(gè)報(bào)文頭字段的全部或部分比特;或 源IP地址中的全部或部分比特,和源端口號(hào)中的全部或部分比特;或 源IP地址中的全部或部分比特,和目的端口號(hào)中的全部或部分比特作為所述待屏蔽 比特。10.根據(jù)權(quán)利要求6所述的裝置,其特征在于, 所述RSS分流數(shù)據(jù)依序包含2個(gè)報(bào)文頭字段:源IP地址,目的IP地址; 所述隨機(jī)秘鑰設(shè)置模塊將所述2個(gè)報(bào)文頭字段中的任意I個(gè)報(bào)文頭字段的全部或部分比特作為所述待屏蔽比特。11.根據(jù)權(quán)利要求9所述的裝置,其特征在于, 所述待屏蔽比特包括: 源IP地址中的子網(wǎng)號(hào)和主機(jī)號(hào)所對應(yīng)的比特,或源IP地址中的主機(jī)號(hào)所對應(yīng)的比特;和/或 目的IP地址中的子網(wǎng)號(hào)和主機(jī)號(hào)所對應(yīng)的比特,或目的IP地址中的主機(jī)號(hào)所對應(yīng)的比特。12.根據(jù)權(quán)利要求10所述的裝置,其特征在于, 所述待屏蔽比特為: 源IP地址中的子網(wǎng)號(hào)和主機(jī)號(hào)所對應(yīng)的比特;或 源IP地址中的主機(jī)號(hào)所對應(yīng)的比特;或 目的IP地址中的子網(wǎng)號(hào)和主機(jī)號(hào)所對應(yīng)的比特;或 目的IP地址中的主機(jī)號(hào)所對應(yīng)的比特。13.根據(jù)權(quán)利要求8所述的裝置,其特征在于, 所述哈希運(yùn)算模塊采用基于異或運(yùn)算的哈希函數(shù)進(jìn)行所述哈希運(yùn)算。14.根據(jù)權(quán)利要求9所述的裝置,其特征在于, 所述哈希運(yùn)算模塊采用Toeplitz哈希函數(shù)進(jìn)行所述哈希運(yùn)算。
【文檔編號(hào)】H04L12/743GK105871725SQ201510036029
【公開日】2016年8月17日
【申請日】2015年1月23日
【發(fā)明人】肖寒, 孫成浩, 祝順民, 洪余柯, 姜邦杰
【申請人】阿里巴巴集團(tuán)控股有限公司