基于rss的網(wǎng)絡(luò)會(huì)話數(shù)據(jù)包分發(fā)方法及系統(tǒng)的制作方法【專利摘要】本發(fā)明提供一種基于RSS的網(wǎng)絡(luò)會(huì)話數(shù)據(jù)包分發(fā)方法及系統(tǒng),其中的方法包括:在NAPT場(chǎng)景下,通過RSS將網(wǎng)絡(luò)會(huì)話的數(shù)據(jù)包分配到同一個(gè)id上,以完成網(wǎng)絡(luò)端口資源的分配。利用本發(fā)明,能夠解決在NAPT場(chǎng)景下網(wǎng)絡(luò)會(huì)話的通信可能引發(fā)大量CPU轉(zhuǎn)移處理開銷的問題,通過數(shù)學(xué)方法總結(jié)出RSS算法的一些固有性質(zhì),并根據(jù)總結(jié)出的固有性質(zhì),獲得任意網(wǎng)絡(luò)會(huì)話在特定key上的RSS哈希值,其哈希值均可表示其分解之后各部分相互做異或運(yùn)算的結(jié)果,基于這個(gè)結(jié)論,將端口port的求解轉(zhuǎn)換成解一個(gè)特殊矩陣方程,求解port值,使得網(wǎng)絡(luò)會(huì)話兩個(gè)方向上的數(shù)據(jù)包在RSS作用下均能分配到同一個(gè)CPU處理,從而極大的提高系統(tǒng)的處理效能?!緦@f明】基于RSS的網(wǎng)絡(luò)會(huì)話數(shù)據(jù)包分發(fā)方法及系統(tǒng)【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及網(wǎng)絡(luò)數(shù)據(jù)傳輸【
技術(shù)領(lǐng)域:
】,更為具體地,涉及一種基于RSS的網(wǎng)絡(luò)會(huì)話數(shù)據(jù)包分發(fā)方法及系統(tǒng)?!?br>背景技術(shù):
】[0002]NAPT(NetworkAddressPortTranslation,網(wǎng)絡(luò)端口地址轉(zhuǎn)換)為將多個(gè)內(nèi)部地址映射為一個(gè)合法公網(wǎng)地址,并以不同的協(xié)議端口號(hào)與不同的內(nèi)部地址相對(duì)應(yīng)的地址轉(zhuǎn)換技術(shù)。也就是說,NAPT是一種較流行的NAT(NetworkAddressTranslation,網(wǎng)絡(luò)地址轉(zhuǎn)換)的變體,通過轉(zhuǎn)換TCP或UDP協(xié)議端口號(hào)以及地址來提供并發(fā)性,NAPT除了包括一對(duì)源IP和目的IP地址以外,還包括一對(duì)源和目的協(xié)議端口號(hào),以及NAT設(shè)備使用的一個(gè)協(xié)議端口號(hào)。[0003]由于公網(wǎng)IP地址成為稀缺資源,該技術(shù)被越來越多地應(yīng)用于各種網(wǎng)絡(luò)設(shè)備中。在實(shí)際應(yīng)用時(shí),NAPT將內(nèi)部連接映射到外部網(wǎng)絡(luò)中的一個(gè)單獨(dú)的IP地址上,同時(shí)在該地址上加上一個(gè)由NAT設(shè)備選定的端口號(hào)。當(dāng)所有通信都采用TCP(TransmissionControlProtocol,傳輸控制協(xié)議)或UDP(UserDataProtocol,用戶數(shù)據(jù)報(bào)協(xié)議)時(shí),該技術(shù)能夠允許多臺(tái)內(nèi)部主機(jī)訪問同一臺(tái)外部計(jì)算機(jī),且相互之間不會(huì)發(fā)生沖突。[0004]RSS(receivesidescaling,接收端調(diào)節(jié))是一種網(wǎng)絡(luò)數(shù)據(jù)包分發(fā)機(jī)制。為了提升計(jì)算機(jī)的性能,現(xiàn)代計(jì)算機(jī)一般采用多核架構(gòu)處理數(shù)據(jù),當(dāng)基于多核架構(gòu)的網(wǎng)絡(luò)設(shè)備接收到一個(gè)網(wǎng)絡(luò)數(shù)據(jù)包時(shí),相關(guān)的網(wǎng)卡需要通過RSS機(jī)制決定將這個(gè)數(shù)據(jù)包交由哪個(gè)CPU處理?,F(xiàn)在RSS技術(shù)應(yīng)用廣泛,尤其是在一些高性能的網(wǎng)絡(luò)硬件設(shè)備中,如Intel推出的基于8259910Gb以太網(wǎng)控制器的萬兆網(wǎng)卡就支持使用開發(fā)者設(shè)定參數(shù),通過RSS來進(jìn)行CPU的任務(wù)分配。[0005]為了詳細(xì)說明RSS進(jìn)行數(shù)據(jù)包分發(fā)的過程,圖1示出了現(xiàn)有的RSS的處理流程,如圖1所示,RSS的處理流程包括如下幾個(gè)簡(jiǎn)要步驟:[0006]首先第一步:確定入?yún)?;包括一個(gè)40字節(jié)(320比特)的key和一個(gè)長(zhǎng)度為128的數(shù)組redirectiontable(重定向表)。一般情況下,這兩個(gè)入?yún)⒖梢杂砷_發(fā)者指定,以滿足特定場(chǎng)景下的計(jì)算需求。Key用于計(jì)算hash值,redirectiontable則用于將hash值映射到各個(gè)CPU(即各個(gè)發(fā)送隊(duì)列的id)上。[0007]然后:根據(jù)key和輸入的網(wǎng)絡(luò)數(shù)據(jù)信息input通過給定的hash算法(compute_hash)計(jì)算出一個(gè)32位的hash值。輸入的網(wǎng)絡(luò)數(shù)據(jù)信息input的選取一般有兩種形式,一種是取源IP與目的IP二元組連接成的數(shù)據(jù)段,另一種是取源IP、目的IP、源端口、目的端口四元組連接成的數(shù)據(jù)段。在計(jì)算TCP或UDP等常用數(shù)據(jù)包時(shí),一般都采用后一種(即四元組的數(shù)據(jù)段)作為input,四元組的數(shù)據(jù)信息input共包含12個(gè)字節(jié),它作為一串8*12位的數(shù)字參與計(jì)算。關(guān)于hash算法,其對(duì)應(yīng)的32位hash值由如下步驟產(chǎn)生:[0008]S1:先將hash結(jié)果result置為0;[0009]S2:如果input最左端的一位為1,則將result更新為result自身與key最左端32位的異或值;否則,result不變。[0010]S3:將input與key均左移一位。[0011]S4:如果input為0,則將result作為輸出結(jié)果;否則,重復(fù)S2、S3和S4。[0012]接著:取出上述hash值(result)的7位最低有效位(LSB,即二進(jìn)制數(shù)的最右側(cè)7位)作為redirectiontable的下標(biāo)。[0013]最后:按照取出的下標(biāo)讀取相應(yīng)redirectiontable上的id值。[0014]上述為RSS詳細(xì)的處理流程,在實(shí)際的應(yīng)用場(chǎng)景中,為了提升計(jì)算機(jī)系統(tǒng)的使用效能,網(wǎng)絡(luò)會(huì)話(session)信息的記錄往往是與特定的CPU綁定的,因此,用戶常常希望一條網(wǎng)絡(luò)會(huì)話兩個(gè)方向上的數(shù)據(jù)包在RSS作用下均能hash到一個(gè)id上,即這兩個(gè)方向上的數(shù)據(jù)包由同一個(gè)CPU處理。而事實(shí)上,現(xiàn)代高端網(wǎng)絡(luò)通信設(shè)備往往采用numa(非統(tǒng)一內(nèi)存訪問)架構(gòu),通過提供分離存儲(chǔ)器給各個(gè)處理器來實(shí)現(xiàn)性能的提升。在numa系統(tǒng)中,各個(gè)numa系統(tǒng)下的CPU、內(nèi)存、網(wǎng)卡等硬件設(shè)施都是獨(dú)立的,而不同numa系統(tǒng)下的CPU通信則需要由專門的通道來完成。[0015]因此,對(duì)于一個(gè)數(shù)據(jù)包在同一numa系統(tǒng)下的數(shù)據(jù)處理能力要遠(yuǎn)遠(yuǎn)大于跨numa系統(tǒng)(不同numa系統(tǒng)下的CPU需要相互配合處理)的情形?,F(xiàn)在開發(fā)出一種技術(shù),能夠保證數(shù)據(jù)包在同一numa系統(tǒng)甚至同一CPU下進(jìn)行處理,S卩:在一般場(chǎng)景(非NAT)下,當(dāng)key滿足以16為周期時(shí),該需求即可得到保證。但是,在某些常見的特殊場(chǎng)景(如NAPT)中,由于數(shù)據(jù)包在經(jīng)過相應(yīng)的網(wǎng)絡(luò)設(shè)備后IP與端口等信息發(fā)生了變化,用戶仍然無法實(shí)現(xiàn)上述期望。因此,這就意味著,一旦RSS中的key和redirectiontable設(shè)定的不合理,這些特殊場(chǎng)景下的某些網(wǎng)絡(luò)會(huì)話在每次通信時(shí)都需要伴隨大量的CPU轉(zhuǎn)移處理甚至是跨numa系統(tǒng)操作,從而極大的降低系統(tǒng)的處理效能。【
發(fā)明內(nèi)容】[0016]鑒于上述問題,本發(fā)明的目的是提供一種基于RSS的網(wǎng)絡(luò)會(huì)話數(shù)據(jù)包分發(fā)方法及系統(tǒng),通過RSS將網(wǎng)絡(luò)會(huì)話兩個(gè)方向上的數(shù)據(jù)包分配到同一個(gè)CPU處理,以解決在NAPT場(chǎng)景下網(wǎng)絡(luò)會(huì)話的通信可能引發(fā)大量CPU轉(zhuǎn)移處理開銷的問題,從而極大的提高系統(tǒng)的處理效能。[0017]根據(jù)本發(fā)明的一個(gè)方面,提供一種基于RSS的網(wǎng)絡(luò)會(huì)話數(shù)據(jù)包分發(fā)方法,[0018]在NAPT場(chǎng)景下,通過RSS將網(wǎng)絡(luò)會(huì)話的數(shù)據(jù)包分配到同一個(gè)id上,以完成網(wǎng)絡(luò)端口資源的分配;其中,[0019]通過RSS將網(wǎng)絡(luò)會(huì)話的數(shù)據(jù)包分配到同一個(gè)id上的過程包括:[0020]將RSS表不為:hash=f(s,k)和id=g(hash,t);[0021]其中,s表示輸入的網(wǎng)絡(luò)數(shù)據(jù),[0022]s=(ipl,ip2,portl,port2)=(s^s2,......,s96),ipl表示32位的源IP,ip2表示32位的目的IP,portl表示16位的源端口,port2表示16位的目的端口;k表示key,k=(k1;k2,......,k32(l);t表示長(zhǎng)度為128的數(shù)組redirectiontable;id表示s在RSS作用下分配的網(wǎng)絡(luò)端口的地址;[0023]在NAPT場(chǎng)景下,給定ipl、ip2、port2及CPU所對(duì)應(yīng)的id,求解portl,使得[0024]f(s,k)=f((ipl,ip2,portl,port2),k)=q*y+id(5)[0025]其中,q為總的id數(shù),y為一個(gè)任意系數(shù),k以16為周期,0彡q#y+id〈128;[0026]將S1和S2分別記為si=(ipl,ip2,0,port2),s2=(0,0,portl,0),且記portl=P=(Pi,p2,…,p16),其中,p1取為0或1;將{pp2,…,p16}分為兩組,任取1彡i彡16中的一個(gè)i,使其中一組為P(|={p(i-l)%16+1,P(i+〇)%16+1,…,P(i+5)%16+J,力一組為-(P(i+6)%16+1,P_%16+1,…,P(i+細(xì)16+J,那么,對(duì)于任意取定的一組Pi,P。由以下公式計(jì)算獲?。篬0027]P0=(f(si,k)~(q*y+id)+D-PiM^Mo(12)[0028]其中,D為由非負(fù)偶數(shù)組成的7維行向量,MQ為7*7維反對(duì)角矩陣,MA9*7維反向三對(duì)角陣;[0029]根據(jù)公式(12)、選定的key、ipl、ip2、port2、id獲取一組NAPT場(chǎng)景下指定id所對(duì)應(yīng)的解portl,使得在NAPT作用下網(wǎng)絡(luò)會(huì)話兩個(gè)方向的數(shù)據(jù)包被分配到相同的id上。[0030]此外,優(yōu)選的方案是,對(duì)于任意取定的一個(gè)key,將16比特位端口portl集合中的元素均勻的分配到q個(gè)id上,以完成NAPT場(chǎng)景下網(wǎng)絡(luò)端口資源的完備性分配;[0031]其中,將16比特位端口portl集合中的元素均勻的分配到q個(gè)id上的過程包括:[0032]在公式(12)中,1^與I以及i值共同確定以16位為周期的k的選取,其中,i有16種取法,1^有8種取法,故K的選取為16X8=128種;并且,由于key在運(yùn)行過程中不發(fā)生改變,故一旦設(shè)定札的值,f(sl,k)與I即為定值;對(duì)于任意給定的Pi和兩個(gè)不同的系數(shù)y\y2,記為:【權(quán)利要求】1.一種基于RSS的網(wǎng)絡(luò)會(huì)話數(shù)據(jù)包分發(fā)方法,在NAPT場(chǎng)景下,通過RSS將網(wǎng)絡(luò)會(huì)話的數(shù)據(jù)包分配到同一個(gè)id上,以完成網(wǎng)絡(luò)端口資源的分配;其中,通過RSS將網(wǎng)絡(luò)會(huì)話的數(shù)據(jù)包分配到同一個(gè)id上的過程包括:將所述RSS表示為:hash=f(s,k)和id=g(hash,t);其中,s表示輸入的網(wǎng)絡(luò)數(shù)據(jù),s=(ipl,ip2,portl,port2)=(S1,S2,......,s96),ipl表示32位的源IP,ip2表示32位的目的IP,portl表示16位的源端口,port2表示16位的目的端口;k表示key,k=(k1;k2,......,k32(l);t表示長(zhǎng)度為128的數(shù)組redirectiontable;id表示s在RSS作用下分配的網(wǎng)絡(luò)端口的地址;在NAPT場(chǎng)景下,給定ipl、ip2、port2及CPU所對(duì)應(yīng)的id,求解portl,使得f(s,k)=f((ipl,ip2,portl,port2),k)=q*y+id(5)其中,q為總的id數(shù),y為一個(gè)任意系數(shù),k以16為周期,0彡q*y+id〈128;將SI和S2分別記為si=(ipl,ip2,0,port2),s2=(0,0,portl,0),且記portl=P=(Pl,P2,…,P16),其中,Pi取為0或I;將{puP2,…,p16}分為兩組,任取I彡i彡16中的一個(gè)i,使其中一組為Ptl={p(i-1)%16+lJP(i+CI)%16+1,…,P(i+5)%16+l},力一組為-iP(i+6)%16+1,Ρ_%16+1,…,Pii+14)%16+J,那么,對(duì)于任意取定的一組Pi,P。由以下公式計(jì)算獲?。篜0=(f(sl,k)~(q*y+id)+D-P1M1)M0(12)其中,D為由非負(fù)偶數(shù)組成的7維行向量,Mtl為7*7維反對(duì)角矩陣,MA9*7維反向三對(duì)角陣;根據(jù)公式(12)、選定的key、ipl、ip2、port2、id獲取一組NAPT場(chǎng)景下指定id所對(duì)應(yīng)的解portl,使得在NAPT作用下網(wǎng)絡(luò)會(huì)話兩個(gè)方向的數(shù)據(jù)包被分配到相同的id上。2.如權(quán)利要求1所述的基于RSS的網(wǎng)絡(luò)會(huì)話數(shù)據(jù)包分發(fā)方法,其中,對(duì)于任意取定的一個(gè)key,將16比特位端口portl集合中的元素均勻的分配到q個(gè)id上,以完成NAPT場(chǎng)景下網(wǎng)絡(luò)端口資源的完備性分配;其中,將16比特位端口portl集合中的元素均勻的分配到q個(gè)id上的過程包括:在公式(12)中為與M1以及i值共同確定以16位為周期的k的選取,其中,i有16種取法,11有8種取法,故K的選取為16X8=128種;并且,由于key在運(yùn)行過程中不發(fā)生改變,故一旦設(shè)定M1的值,f(sl,k)與Mi即為定值;對(duì)于任意給定的Pi和兩個(gè)不同的系數(shù)y\y2,記為:C1=f(si,k)~(q*y^id),/J1;C2=f(si,k)~(q*y2+id),P(;=(C2+D2-PiMi)M()假設(shè)<^1=(:2,則(:1和(:2兩端同時(shí)異或;^1,1〇獲得(1*71+1(1=9*72+1(1,則得出71=y2,與設(shè)定不同的系數(shù)y1、/相互矛盾;因此,CLcV0,故C^C2的元素中必然含有1,并且,P01-^^(C1+D1-PvMi)M"-(C2+D2-P1MJM0〇3)=(Cl-C2+D'-D2)M0假設(shè)=0,則C1-CiD1-D2=0,但是由于D為由非負(fù)偶數(shù)組成的7維行向量,則D1-D2中的元素均為偶數(shù),與CLC2相加的結(jié)果為奇數(shù),因此,<與/T必為不同的值;故對(duì)于任意取定的一AP1,獲得Ptl的數(shù)量為27/q個(gè),P1共有為29種取法,故{P^P1I的解集的數(shù)量至少29X27/q=216/q個(gè);故將16比特位端口portl集合中的元素均勻的分配到q個(gè)id上,以完成NAPT場(chǎng)景下網(wǎng)絡(luò)端口資源的分配。3.如權(quán)利要求1所述的基于RSS的網(wǎng)絡(luò)會(huì)話數(shù)據(jù)包分發(fā)方法,其中,根據(jù)所述RSSJf輸入的網(wǎng)絡(luò)數(shù)據(jù)s分解s=SrS2,獲得f(s,k)=f(si,k)~f(s2,k)(4);由于SI和S2分別記為si=(ipl,ip2,0,port2),s2=(0,0,portl,0),獲得s=(ipl,ip2,portl,port2)=(ipl,ip2,0,port2)'(0,0,portl,0),根據(jù)公式⑷和(5),確定q*y+id=f(s,k)=f(sl,k)~f(s2,k),并獲取f((0,0,portl,0),k)=f(s2,k)=f(si,k)~(q*y+id)(6)將f((0,0,portl,0),k)記為C=(Cl,c2,…,c7),根據(jù)公式(6),則獲取C=(C1,c2,…,c7)=f(sl,k)~(q*y+id)(7)由于portl=P=(P1,p2,…,p16),其中,Pi取為0或1;如果Pi等于1,則根據(jù)所述RSS獲取f((0,0,portl,0),k),f((0,0,portl,0),k)為(k89+i,k9(l+i,…,k95+i)的行相互做異或運(yùn)算的結(jié)果;取K1-(k9〇,k91,···,k96),K2-(k91,k92,,k97),...,K16-(k1(l5,k1(l6,,kni),并且以Ki為行向量取矩陣K,表示為:其中,C為K的行相互做異或運(yùn)算的結(jié)果,并且K的行的選擇取決于P的元素中為1的兀素,故假設(shè)與K相關(guān)的標(biāo)號(hào)為Q1,i2,......,in),則C=(crc2,=---K(8)根據(jù)公式(8),獲取Cv=(c:,,…,r)=尸卜人X+…十/?.(9)根據(jù)異或運(yùn)算的規(guī)則,對(duì)于任意的1彡i彡7,均有0彡CiS1,0彡c'#η,且c'i與Ci的差值為偶數(shù),故當(dāng)0彡c'#1時(shí),則C'=C,因此,如果P滿足公式(9)PK=C'=C+D,其中,D為由非負(fù)偶數(shù)組成的7維行向量,則P滿足公式(6),并得出在NAPT場(chǎng)景下指定id所對(duì)應(yīng)的解;故,通過求解矩陣方程PK=C'=C+D,獲取P;在求解矩陣方程PK=C'=C+D的過程中,將Wp2,…,PlfJ分為兩組,任取1彡i彡16中的一個(gè)i,其中一組為Ptl={p(i_1)%16+1,P(i+CI)%16+1,…,P(i+5)%16+1丨,力組為Pl-{p(i+6)%16+l,P(i+7)%16+1,···,P(i+14)%16+:J,并^己K(i-1)%16+1=Orium2,…,m7),k以16為周期,%表示C語言中的取模運(yùn)算,則其中,Mtl為7X7方陣,MA9X7矩陣;同時(shí),根據(jù)k以16為周期,故{nij}κ16決定唯一的key;如果令Mtl為7*7維反對(duì)角矩陣,逆對(duì)角線上的元素為I!M1S9*7維反向三對(duì)角陣,每條逆對(duì)角線上的元素均為O或均為1;并且根據(jù)公式(10),獲得C+D-PiM=f(si,k)~(q*y+id)+D-P1M1=P0M0(11)-[P(i+5)%16+1,P(i+4)%16+1,···,P(i-l)%16+1]根據(jù)公式(11),對(duì)于任意給定的P1={p(i+6)%16+1,P(i+7)%16+1,…,P(i+14)%16+J,M1矛口y,選取D,使得f(sl,k)~(q+y+icO+D-P^成為一個(gè)元素非0即1的7維向量,故獲得[p(i+5)%16+1,P(i+4)%16+1,…,P(i-D%16+J,因此,可以確定唯一地的Po;根據(jù)M。的逆矩陣仍為M。,則P0=(f(sl,k)~(q*y+id)+D-P1M1)M0(12)4.一種基于RSS的網(wǎng)絡(luò)會(huì)話數(shù)據(jù)包分發(fā)系統(tǒng),在NAPT場(chǎng)景下,通過RSS將網(wǎng)絡(luò)會(huì)話的數(shù)據(jù)包分配到同一個(gè)id上,以完成網(wǎng)絡(luò)端口資源的分配;其中,所述系統(tǒng)包括:公式轉(zhuǎn)換單元,用于將所述RSS轉(zhuǎn)化為數(shù)學(xué)公式;將所述RSS表示為:hash=f(s,k)和id=g(hash,t);其中,s表示輸入的網(wǎng)絡(luò)數(shù)據(jù),s=(ipl,ip2,portl,port2)=(S1,S2,......,s96),ipl表示32位的源IP,ip2表示32位的目的IP,portl表示16位的源端口,port2表示16位的目的端口;k表示key,k=(k1;k2,......,k32(l);t表示長(zhǎng)度為128的數(shù)組redirectiontable;id表示s在RSS作用下分配的網(wǎng)絡(luò)端口的地址;portl獲取單元,用于在NAPT場(chǎng)景下,給定ipl、ip2、port2及CPU所對(duì)應(yīng)的id,求解portl,使得f(s,k)=f((ipl,ip2,portl,port2),k)=q*y+id(5)其中,q為總的id數(shù),y為一個(gè)任意系數(shù),k以16為周期,0彡q*y+id〈128;將SI和S2分別記為si=(ipl,ip2,0,port2),s2=(0,0,portl,0),且記portl=P=(Pl,P2,…,P16),其中,Pi取為0或I;將{puP2,…,p16}分為兩組,任取I彡i彡16中的一個(gè)i,使其中一組為Ptl={p(i-1)%16+lJP(i+CI)%16+1,…,P(i+5)%16+l},力一組為-iP(i+6)%16+1,Ρ_%16+1,…,Pii+14)%16+J,那么,對(duì)于任意取定的一組Pi,P。由以下公式計(jì)算獲?。篜0=(f(sl,k)~(q*y+id)+D-P1M1)M0(12)其中,D為由非負(fù)偶數(shù)組成的7維行向量,Mtl為7*7維反對(duì)角矩陣,MA9*7維反向三對(duì)角陣;根據(jù)公式(12)、選定的key、ipl、ip2、port2、id獲取一組NAPT場(chǎng)景下指定id所對(duì)應(yīng)的解portl,使得在NAPT作用下一條網(wǎng)絡(luò)會(huì)話兩個(gè)方向的數(shù)據(jù)包被分配到相同的id上。5.如權(quán)利要求4所述的基于RSS的網(wǎng)絡(luò)會(huì)話數(shù)據(jù)包分發(fā)系統(tǒng),其中,所述口〇1'1:1獲取單元通過選定的1^7、1口1、1口2、口〇1^2、1(1與公式(12)獲取到口〇1'1:1,而對(duì)于任意取定的一個(gè)key,將16比特位端口portl集合中的元素均勻的分配到q個(gè)id上,以完成NAPT場(chǎng)景下網(wǎng)絡(luò)端口資源的完備性分配;其中,將16比特位端口portl集合中的元素均勻的分配到q個(gè)id上的過程包括:在公式(12)中為與M1以及i值共同確定以16位為周期的k的選取,其中,i有16種取法,11有8種取法,故K的選取為16X8=128種;并且,由于key在運(yùn)行過程中不發(fā)生改變,故一旦設(shè)定M1的值,f(sl,k)與Mi即為定值;對(duì)于任意給定的Pi和兩個(gè)不同的系數(shù)y\y2,記為:C1=f(si,k)~(q*y^id),P!,=(C1+D1-P1M1)M(>;C2=f(sl,k)~(q*y2+id),P02=(C^D2-P1M1)M0假設(shè)<^1=(:2,則(:1和(:2兩端同時(shí)異或;^1,1〇獲得(1*71+1(1=9*72+1(1,則得出71=y2,與設(shè)定不同的系數(shù)y1、/相互矛盾;因此,CLcV0,故C^C2的元素中必然含有1,并且,/K=(CM+D1-GM1)M"-(C'?+D2-/#/!)Mq(i3)=(C1-C7+D'-D2)M{)假設(shè)0-斤=(),則C1-CWD1-D2=0,但是由于D為由非負(fù)偶數(shù)組成的7維行向量,則D1-D2中的元素均為偶數(shù),與CLC2相加的結(jié)果為奇數(shù),因此,K與斤必為不同的值;因此,對(duì)于任意取定的一個(gè)P1,獲得Ptl的數(shù)量為2Vq個(gè),P1共有為29種取法,故{P^PJ的解集的數(shù)量至少29X27/q=216/q個(gè);故將16比特位端口portl集合中的元素均勻的分配到q個(gè)id上,以完成NAPT場(chǎng)景下網(wǎng)絡(luò)端口資源的分配。6.如權(quán)利要求4所述的基于RSS的網(wǎng)絡(luò)會(huì)話數(shù)據(jù)包分發(fā)系統(tǒng),其中,所述portl獲取單元根據(jù)所述RSS,將輸入的網(wǎng)絡(luò)數(shù)據(jù)s分解s=sl~S2,獲得f(s,k)=f(si,k)'f(s2,k)(4)由于SI和S2分別記為si=(ipl,ip2,0,port2),s2=(0,0,portl,0),獲得s=(ipl,ip2,portl,port2)=(ipl,ip2,0,port2)'(0,0,portl,0),根據(jù)公式⑷和(5),確定q*y+id=f(s,k)=f(sl,k)~f(s2,k),并獲取f((0,0,portl,0),k)=f(s2,k)=f(si,k)~(q*y+id)(6)將f((0,0,portl,0),k)記為C=(Cl,c2,…,c7),根據(jù)公式(6),則獲取C=(C1,c2,…,c7)=f(sl,k)~(q*y+id)(7)由于portl=P=(P1,p2,…,p16),其中,Pi取為0或1;如果Pi等于1,則根據(jù)所述RSS獲取f((0,0,portl,0),k),f((0,0,portl,0),k)為(k89+i,k9(l+i,…,k95+i)的行相互做異或運(yùn)算的結(jié)果;取K1-(k9〇,k91,···,k96),K2-(k91,k92,,k97),...,K16-(k1(l5,k1(l6,,kni),并且以Ki為行向量取矩陣K,表示為:其中,C為K的行相互做異或運(yùn)算的結(jié)果,并且K的行的選擇取決于P的元素中為1的兀素,故假設(shè)與K相關(guān)的標(biāo)號(hào)為Q1,i2,......,in),則根據(jù)公式(8),獲取根據(jù)異或運(yùn)算的規(guī)則,對(duì)于任意的1彡i彡7,均有O彡cgl,O彡c'#η,且c',與Ci的差值為偶數(shù),故當(dāng)O彡c'#1時(shí),則C'=C,因此,如果P滿足公式(9)PK=C'=C+D,其中,D為由非負(fù)偶數(shù)組成的7維行向量,則P滿足公式(6),并得出在NAPT場(chǎng)景下指定id所對(duì)應(yīng)的解;故,通過求解矩陣方程PK=C'=C+D,獲取P;在求解矩陣方程PK=C'=C+D的過程中,將Wp2,…,PlfJ分為兩組,任取1彡i彡16中的一個(gè)i,其中一組為Ptl={p(i_1)%16+1,P(i+CI)%16+1,…,P(i+5)%16+1丨,力組為Pl-{p(i+6)%16+l,P(i+7)%16+l,--?,P(i+14)%16+l},并^己K(i-i)%16+1=(IIi1,m2,···,!%),k以16為周期,%表示C語言中的取模運(yùn)算,則其中,Mtl為7X7方陣,MA9X7矩陣;同時(shí),根據(jù)k以16為周期,故{nij}κ16決定唯一的key;如果令Mtl為7*7維反對(duì)角矩陣,逆對(duì)角線上的元素為I!M1S9*7維反向三對(duì)角陣,每條逆對(duì)角線上的元素均為O或均為1;并且根據(jù)公式(10),獲得C+D-PiM=f(si,k)~(q*y+id)+D-P1M1=P〇M〇(11)=iP(i+5)%16+1,P(i+4)%16+1,···,P(i-l)%16+1]根據(jù)公式(11),對(duì)于任意給定的P1={p(i+6)%16+1,P(i+7)%16+1,…,P(i+14)%16+J,M1矛口y,選取D,使得f(sl,k)~(q+y+icO+D-P^成為一個(gè)元素非0即1的7維向量,故獲得[p(i+5)%16+1,P(i+4)%16+1,…,P(i-D%16+J,因此,可以確定唯一地的Po;根據(jù)M。的逆矩陣仍為M。,則P0=(f(sl,k)~(q*y+id)+D_P具)厘〇(12)?!疚臋n編號(hào)】H04L29/12GK104468412SQ201410741100【公開日】2015年3月25日申請(qǐng)日期:2014年12月4日優(yōu)先權(quán)日:2014年12月4日【發(fā)明者】孫浩申請(qǐng)人:東軟集團(tuán)股份有限公司