專利名稱:高速網(wǎng)絡(luò)環(huán)境中提高tcp并發(fā)連接速度的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)數(shù)據(jù)處理領(lǐng)域,具體涉及一種高速網(wǎng)絡(luò)環(huán)境中提高TCP并發(fā)連接速度的方法。
背景技術(shù):
TCP連接管理是TCP/IP協(xié)議棧處理的重要內(nèi)容,其使用一個TCP連接表保存當(dāng)前所有的TCP連接狀態(tài)及信息。當(dāng)新的TCP連接建立時,需要在TCP連接表中新建表項,當(dāng) TCP連接關(guān)閉后,需要把該連接從表中刪除。同時在處理同一個連接的每一個包的時候,需根據(jù)其四元組(源IP地址,目的IP地址,源端口地址,目的端口地址)查找連接表。網(wǎng)絡(luò)上的服務(wù)器、防火墻、網(wǎng)關(guān)等設(shè)備花費了大量的時間進(jìn)行協(xié)議處理,然而隨著網(wǎng)絡(luò)流量的快速增長,現(xiàn)在主干網(wǎng)絡(luò)的速度已達(dá)到10(ibpS,而且同時的并發(fā)連接數(shù)也已達(dá)到了百萬級別。能夠處理百萬級別的連接數(shù)已經(jīng)成為主干網(wǎng)絡(luò)設(shè)備的一項重要的能力,如防火墻,四層網(wǎng)關(guān),等等。然而,隨著連接數(shù)目的增多,現(xiàn)有的軟件方法在維護(hù)如此多的連接時存在著巨大的開銷,硬件方法也由于其高昂的造價難以實施。在當(dāng)前的軟件協(xié)議棧實現(xiàn)中,普遍采用了哈希表的方法以管理連接數(shù)。然而, TCB (transmit control block,傳輸控制模塊)是一個280_1300bytes大小的每個連接的結(jié)構(gòu)體,TCP/IP協(xié)議棧用其來存儲TCP連接的狀態(tài)并在每次包處理的關(guān)鍵路徑中都會訪問。TCB用于記錄tcp協(xié)議運行過程中的變量。對于有多個連接的tcp,每個連接都有一個 tcb。tcb結(jié)構(gòu)的定義包括這個連接使用的源端口、目的端口、目的ip、序號、應(yīng)答序號、對方窗口大小、已方窗口大小、tcp狀態(tài)、top輸入/輸出隊列、應(yīng)用層輸出隊列、tcp的重傳有關(guān)變量。當(dāng)網(wǎng)絡(luò)中存在大量連接數(shù)時,存儲TCB所需的空間開銷將會變得十分巨大 (280M-1. 3G,若有1百萬并發(fā)連接),導(dǎo)致其查找和管理的速度變得十分緩慢。從而會引入許多復(fù)雜問題并提出了新的挑戰(zhàn)由于TCB是在關(guān)鍵路徑中被訪問,若TCB訪問延遲過大會阻礙協(xié)議棧的處理速度,因此TCP/IP協(xié)議棧處理的速度在很大程度上取決于TCB訪問的速度。而由于在一個IOGbps的網(wǎng)絡(luò)中,一個64byte的包的處理時間應(yīng)該被限制在67ns。 而一次訪存的時間就在50ns左右,因此在10(ibpS高速網(wǎng)絡(luò)環(huán)境中管理如此多的連接就變成了十分困難甚至不可能的事情。如果TCB按照哈希表的方式組織,那么在查找的遍歷沖突鏈表過程中,在找到真正要找的TCB之前的每一步都會訪問一個TCB,也即會造成一次訪存。由于當(dāng)連接數(shù)增多后,沖突的鏈也會相應(yīng)變長,因此這也是TCP階段開銷變大的根本原因。為了能夠在大規(guī)模并發(fā)連接下依然達(dá)到線速,優(yōu)化TCB的組織方式以減少訪存次數(shù)就顯得十分重要。本發(fā)明因此而來。
發(fā)明內(nèi)容
本發(fā)明目的在于提供一種高速網(wǎng)絡(luò)環(huán)境中提高TCP并發(fā)連接速度的方法,解決了在高速網(wǎng)絡(luò)環(huán)境中大量TCP連接的速度瓶頸問題。為了解決現(xiàn)有技術(shù)中的這些問題,本發(fā)明提供的技術(shù)方案是一種高速網(wǎng)絡(luò)環(huán)境中提高TCP并發(fā)連接速度的方法,其特征在于所述方法包括以下步驟(1)在內(nèi)存或高速緩存cache中構(gòu)建查找表,所述查找表存儲根據(jù)已有TCP連接的源IP地址、目的IP地址、源端口地址、目的端口地址計算得到的簽名值,并實現(xiàn)TCB與查找表中的相應(yīng)簽名值形成關(guān)聯(lián);(2)當(dāng)進(jìn)行TCP連接的創(chuàng)建、刪除時,先根據(jù)TCP連接的源IP地址、目的IP地址、 源端口地址、目的端口地址計算得到該TCP連接的簽名值,通過該TCP連接的簽名值在查找表中進(jìn)行查找,根據(jù)查找結(jié)果進(jìn)行TCP連接的創(chuàng)建、刪除操作。優(yōu)選的,所述方法步驟(1)中所述TCB通過系統(tǒng)預(yù)先分配能處理的最大TCB的數(shù)組;所述數(shù)組中TCB與查找表中的相應(yīng)簽名值形成關(guān)聯(lián)。優(yōu)選的,所述方法步驟(1)中查找表的數(shù)據(jù)結(jié)構(gòu)為哈希表。優(yōu)選的,所述方法步驟(1)中所述查找表空間大小確定,且內(nèi)存或高速緩存cache 中還構(gòu)建用于解決哈希項沖突的沖突鏈表。優(yōu)選的,所述方法步驟O)中所述查找步驟包括Al)將需要查找的TCP連接的源IP地址、目的IP地址、源端口地址、目的端口地址計算得到該TCP連接簽名值;A2)將該TCP連接簽名值與查找表哈希項中的所有簽名進(jìn)行比較;當(dāng)沒有找到匹配的簽名時,將該TCP連接簽名值與沖突鏈表中哈希項中的所有簽名進(jìn)行比較;A3)當(dāng)查找表或沖突鏈表中找到匹配的簽名時,根據(jù)查找表或沖突鏈表得到其相應(yīng)TCB的索引值或者地址,然后訪問TCB比較源IP地址、目的IP地址、源端口地址、目的端口地址是否匹配,當(dāng)完全匹配時,即可確認(rèn)TCB已經(jīng)查找到并返回相應(yīng)指針;當(dāng)查找表和沖突鏈表中沒有找到匹配的簽名或根據(jù)匹配的簽名,源IP地址、目的IP地址、源端口地址、目的端口地址不能匹配時,結(jié)束查找,表明該TCP連接尚未建立。優(yōu)選的,所述方法步驟( 中創(chuàng)建TCP連接的步驟包括按照權(quán)利要求5的方式在查找表和沖突鏈表中查找新TCP連接的TCB,當(dāng)查找結(jié)果沒有匹配時,在查找表中找到一個空閑的位置,將其相應(yīng)的簽名插入其中,并根據(jù)需要給其分配一個空閑的TCB。優(yōu)選的,所述方法中當(dāng)查找表已滿時,通過系統(tǒng)分配內(nèi)存填入簽名,并連入沖突鏈表中。優(yōu)選的,所述方法步驟( 中刪除TCP連接的步驟包括按照權(quán)利要求5的方式在查找表和沖突鏈表中查找需要刪除的TCP連接的TCB,如果查找的連接簽名在查找表哈希項中,那么將相應(yīng)的簽名值置為0,以標(biāo)注其為空閑時的后續(xù)新建連接使用;如果查找的連接簽名在沖突鏈表中,那么將其相應(yīng)節(jié)點在沖突鏈表中刪除,并回收其TCB。優(yōu)選的,所述方法中簽名采用CRC32簽名函數(shù)對TCP連接的源地址,目的地址,源端口,目的端口進(jìn)行計算。本發(fā)明提供了一種高速網(wǎng)絡(luò)環(huán)境中大量TCP連接的管理方法,采用了網(wǎng)絡(luò)連接的摘要組成一個查找表,將查找結(jié)構(gòu)與實際存儲的TCB相分離,從而使的查找結(jié)構(gòu)被壓縮至很小以加速查找。在采用通用處理器進(jìn)行實施時,可有效利用CPU的cache資源,從而加速查找。查找表中存儲的是根據(jù)TCP連接的四元組(源IP地址,目的IP地址,源端口地址, 目的端口地址)所計算得到的簽名值。預(yù)先分配所能處理的最大TCB的數(shù)組,將其與查找表中的相應(yīng)簽名值做關(guān)聯(lián)。本發(fā)明優(yōu)選采用了哈希的方法組織查找表。本發(fā)明盡可能避免存儲指針以壓縮查找表的大小,對于有可能的更多沖突,則可采用了額外的沖突表加以處理。本發(fā)明的目的是提供一種TCP連接的管理方法,其中針對高流量大量并發(fā)連接的情況作出優(yōu)化,本發(fā)明采取以下技術(shù)方案為了使TCB的查找過程僅訪問查找表中的數(shù)據(jù)而避免訪存,將查找的TCP連接計算出簽名并組織為一個摘要哈希表。在該摘要哈希表中, 存儲的不是TCB本身,而是每個TCP連接的相應(yīng)的簽名。這樣整個哈希表所占用的空間就會被壓縮至很小,從而使得TCP連接的查找,新建,刪除過程的開銷被大大減小。同時本發(fā)明極大緩解了通常用哈希表組織數(shù)據(jù)而造成的查找開銷的不可確定性,使得查找的時間方差大為縮短。本發(fā)明的主要目的在于加速TCP連接的查找速度,例如,若實施例在通用處理器上軟件實現(xiàn)中,主要目的是有效的利用cache資源,盡量減少訪存開銷。由于TCP連接控制塊為較大的數(shù)據(jù)塊,大量TCP連接下,TCB的總大小已超過cache大小,訪問其會致使訪問內(nèi)存,從而導(dǎo)致較大開銷。通過將其簽名組織為一個單獨的查找表保存于內(nèi)存中,可以使得查找過程避免不必要的訪存,從而大大節(jié)省開銷。為了將TCP連接進(jìn)行簽名算法而盡量減少偽陽性識別概率,本發(fā)明的另一個目的是提供了網(wǎng)絡(luò)連接的有效簽名算法,該算法采用了一種基于CRC算法的非對稱簽名方式, 產(chǎn)生出的簽名可被用于唯一的標(biāo)識一個網(wǎng)絡(luò)連接而具有極低的偽陽性概率。對應(yīng)于以上概述方法的系統(tǒng)和計算機程序也在這里被說明和要求保護(hù)。相對于現(xiàn)有技術(shù)中的方案,本發(fā)明的優(yōu)點是本發(fā)明提供了一種高速網(wǎng)絡(luò)環(huán)境中大量TCP連接的管理方法。通過計算TCP連接的簽名并將其存儲至一個查找表中,可以有效的分離TCP的查找結(jié)構(gòu)與存儲結(jié)構(gòu)。同時,通過壓縮查找結(jié)構(gòu),軟硬件實現(xiàn)可以有效利用系統(tǒng)硬件所提供的緩存,加速TCP連接的查找。 同時,通過利用CRC計算,本發(fā)明設(shè)計了一種低沖突率的非對稱的TCP連接簽名算法,使得上述查找結(jié)構(gòu)可以有效的實施。本發(fā)明提高了 TCP連接的查找、新建、刪除速度,從而使得系統(tǒng)可以采用低成本硬件處理高速大流量網(wǎng)絡(luò)。
下面結(jié)合附圖及實施例對本發(fā)明作進(jìn)一步描述圖1是本發(fā)明實施例方法的數(shù)據(jù)結(jié)構(gòu)示意圖。圖2是查找一個連接的具體實施流程圖。
具體實施例方式以下結(jié)合具體實施例對上述方案做進(jìn)一步說明。應(yīng)理解,這些實施例是用于說明本發(fā)明而不限于限制本發(fā)明的范圍。實施例中采用的實施條件可以根據(jù)具體廠家的條件做進(jìn)一步調(diào)整,未注明的實施條件通常為常規(guī)實驗中的條件。實施例
如圖1所示,本發(fā)明包括將連接簽名與真正要存儲數(shù)據(jù)結(jié)構(gòu)相分離從而加快查找速度的方法以及對于網(wǎng)絡(luò)連接低偽陽性簽名計算的方法。101是存儲TCP簽名的查找表,其組織方式類似于哈希表,但每個哈希桶(bucket)由一個定長的數(shù)組組成,其中每一項存儲著TCP連接的簽名值。為了允許可能的更多的連接存入此哈希項,每一個項后面對應(yīng)著一個相應(yīng)的沖突鏈表以容許更多的沖突。由于哈希表可以被設(shè)置為較大而盡量減小每個哈希項平均沖突個數(shù),所以可以將沖突至鏈表的查找看作極少的情況。102是一個沖突鏈表,當(dāng)哈希至一個 bucket中的數(shù)量超過其初始分配的個數(shù)時,其將被分配存儲空間并存儲在沖突鏈表中。103是TCB的集合,其可以為靜態(tài)數(shù)組系統(tǒng)預(yù)先分配或后來動態(tài)分配,當(dāng)TCP連接的簽名匹配時如何查找相應(yīng)的TCB可以由多種方法實現(xiàn),一種是將TCB的地址同TCP相應(yīng)簽名一起存儲于查找表之中,這樣簽名匹配后就可直接定位于相應(yīng)的TCB。圖1中實現(xiàn)了另一種節(jié)省存儲的有效方法即將查找表的表項以及TCB數(shù)組的位置做一一映射,可以用哈希值加上表項所存儲的位置計算出TCB在其數(shù)組中相應(yīng)的位置從而進(jìn)行訪問,此種方法需采用靜態(tài)TCB數(shù)組分配的方法。在真實實施過程中,對于每一個查找項的大小可以自由設(shè)置,對于沖突鏈表的位置也可以根據(jù)具體情況放在不同的位置,典型的實現(xiàn)方式如圖1所示,沖突鏈表的頭指針被單獨分配為一個數(shù)組,與原有的哈希表項一一對應(yīng)。而相應(yīng)的沖突鏈表的頭指針也可被存儲在查找項中。算法執(zhí)行描述,查找連接如圖2所示,在查找一個連接相應(yīng)TCB的時候,首先將該連接的四元祖通過哈希函數(shù)計算得到一個哈希值,然后由此哈希值訪問摘要哈希表中相應(yīng)的項。通過該連接的標(biāo)識(四元組)再由簽名函數(shù)計算出該連接的簽名,并將其與該哈希項中的所有簽名進(jìn)行比較,如果沒有找到匹配的簽名,那么再去查找沖突鏈表。如果在查找過程中找到匹配的簽名,則根據(jù)摘要哈希表的設(shè)計得到其相應(yīng)TCB的索引值或者地址,在訪問TCB比較真正的四元組真的匹配而不是偽陽性后,即可確認(rèn)TCB已經(jīng)查找到并返回相應(yīng)指針。如果四元組不匹配即偽陽性時,則略過此項,繼續(xù)向下查找。當(dāng)整個哈希項以及沖突鏈表都搜索完而沒有發(fā)現(xiàn)匹配時,即可確認(rèn)該四元組所標(biāo)識的連接沒有被建立。添加新連接當(dāng)一個新連接被建立時,首先去摘要哈希表中搜索其之前是否已經(jīng)被建立,如果沒有,則在摘要哈希表中找到一個空閑的位置,將其相應(yīng)的簽名插入其中,同時根據(jù)需要給其分配一個空閑的TCB。在此實施例中,哈希項中簽名全0的位置被作為摘要哈希表中一個空閑的位置,標(biāo)識其可以被用于存儲新建連接的簽名。為了保證算法正確性, 此實施例將設(shè)計簽名函數(shù)使得產(chǎn)生的簽名不為0。當(dāng)沖突過多致使哈希項能存放的最大簽名數(shù)已滿時,該實施例就分配一塊內(nèi)存,在其中填入簽名(或者再加上TCB的地址或索引), 連入沖突鏈表中。刪除連接要刪除一個已經(jīng)建立的連接時,首先按照查找算法查找到相應(yīng)的連接。 如果查找的連接簽名在哈希項中,那么將相應(yīng)的簽名值值置為0,以標(biāo)注其為空閑時的后續(xù)新建連接可以使用;如果查找的連接簽名在沖突鏈中,那么將其相應(yīng)節(jié)點在沖突鏈表中刪除,并回收其TCB。簽名算法的選擇由于在查找表中所應(yīng)存儲為盡可能小的TCP連接的簽名值, 96bits的TCP連接四元組(包括源IP地址,目的IP地址,源端口地址,目的端口地址)應(yīng)被盡量壓縮為較小的簽名。由于產(chǎn)生沖突是壓縮所必然導(dǎo)致的,因此不同的四元組有可能得到相同簽名。為了應(yīng)對這種問題以保證程序正確性,實施例在匹配簽名后,會訪問TCB以對比真實的四元組。然而由于每一次訪問TCB都是一次訪存,如果沖突概率過大,那么查找過程中的多次訪存將使算法本身的優(yōu)勢消失。由于簽名算法是保證低假陽性概率的關(guān)鍵,此實施例選擇了 CRC32作為簽名函數(shù)的基礎(chǔ)算法對連接的四元組(源地址,目的地址,源端口,目的端口)進(jìn)行計算,得到的 32bits的簽名的同時可以保證極低的偽陽性概率。這樣,百萬個連接僅僅占用了 4MB空間, 從而可以被維持在cache中。同時,由于為了保TCP連接查找時的對稱性以及算法正確性,簽名算法和匹配算法需要經(jīng)過恰當(dāng)?shù)脑O(shè)計,其算法實現(xiàn)的C語言描述如下所示
inline sig_type calc_signature(const uint32_t sip, const uint32_t dip, const uint16_t sport, const
uint16_tdport) {
int crcl = 0, crc2 = 0; crcl = _mm_crc32_u32(crc1, sip); crcl = _mm_crc32_u32(crc1, dip); crcl = _mm_crc32_u32(crc1, sport); crcl = _mm_crc32_u32(crc1, dport); crc2 = _mm_crc32_u32(crc2, dip); crc2 = _mm_crc32_u32(crc2, sip); crc2 = _mm_crc32_u32(crc2, dport); crc2 = _mm_crc32_u32(crc2, sport); res = (crcl & OxFFFFOOOO) | (crc2 16); if (res == 0) {
res = sip Λ dip Λ sportΛ dport; if (res == 0) res = OxFFFFFFFF;
}
return (sig_type)res;
}如上所示,當(dāng)前包的四元組計算CRC32得到crcl,將同一個連接的反向的四元組同樣計算CRC32得到crc2,由于crc32結(jié)果的前16位具有良好的哈希特性,取每個crc32 計算結(jié)果的前16位組成簽名,以獲取最佳的效果。為了保證程序正確性,當(dāng)按此方法計算出來的簽名為0時,實施例用四元組異或來得到簽名值,如果依然為零,則采用一個特殊值 (如OxFFFFFFFF)作為簽名,從而保證了每一個連接的簽名不會為零。由于這種情況的可能性非常小,因此其多個連接的簽名同為特殊值而導(dǎo)致的沖突概率也十分的小。由此,本來 96bits的TCP連接被壓縮為32bits的簽名。為了保證兩個方向的連接查找對稱性,其簽名匹配過程的C語言描述如下
inline int signature_match(const sig一type sign, const elem一type *ptr) {
sig_type rev_sign;
if(sign == ptr->signature) return 1;
rev_sign = ((sign & 0xFFFF)<<16) | ((sign & 0xFFFF0000) 16); if(rev_sign == ptr->signature) return 1; return 0;
}CRC32的計算用軟件實現(xiàn)本是一個十分耗時的過程,往往需要幾百個CPU cycles。 之所以選擇CRC32作為簽名函數(shù),除了其良好的隨機性以外,還因為x86結(jié)構(gòu)的通用處理器 Intel SSE4. 2提供了 CRC32的計算專用指令,使得其計算時間大為縮短,從而使其適宜在此作為簽名函數(shù)。本發(fā)明可以在軟件、固件、硬件或者其結(jié)合中實現(xiàn)。本發(fā)明可以包括在具有計算機可用介質(zhì)的物品中。該介質(zhì)在其中具有例如計算機可讀程序代碼裝置或者邏輯(例如指令,代碼,命令等)來提供和使用本發(fā)明的能力。該制造物品可作為計算機系統(tǒng)的一部分或者單獨出售。所有上述變化被認(rèn)為是要求保護(hù)的本發(fā)明的一部分。上述實例只為說明本發(fā)明的技術(shù)構(gòu)思及特點,其目的在于讓熟悉此項技術(shù)的人是能夠了解本發(fā)明的內(nèi)容并據(jù)以實施,并不能以此限制本發(fā)明的保護(hù)范圍。凡根據(jù)本發(fā)明精神實質(zhì)所做的等效變換或修飾,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種高速網(wǎng)絡(luò)環(huán)境中提高TCP并發(fā)連接速度的方法,其特征在于所述方法包括以下步驟(1)在內(nèi)存或高速緩存cache中構(gòu)建查找表,所述查找表存儲根據(jù)已有TCP連接的源 IP地址、目的IP地址、源端口地址、目的端口地址計算得到的簽名值,并實現(xiàn)TCB與查找表中的相應(yīng)簽名值形成關(guān)聯(lián);(2)當(dāng)進(jìn)行TCP連接的創(chuàng)建、刪除時,先根據(jù)TCP連接的源IP地址、目的IP地址、源端口地址、目的端口地址計算得到該TCP連接的簽名值,通過該TCP連接的簽名值在查找表中進(jìn)行查找,根據(jù)查找結(jié)果進(jìn)行TCP連接的創(chuàng)建、刪除操作。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于所述方法步驟(1)中所述TCB通過系統(tǒng)預(yù)先分配能處理的最大TCB的數(shù)組;所述數(shù)組中TCB與查找表中的相應(yīng)簽名值形成關(guān)聯(lián)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于所述方法步驟(1)中查找表的數(shù)據(jù)結(jié)構(gòu)為哈希表。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于所述方法步驟(1)中所述查找表空間大小確定,且內(nèi)存或高速緩存cache中還構(gòu)建用于解決哈希項沖突的沖突鏈表。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于所述方法步驟(2)中所述查找步驟包括Al)將需要查找的TCP連接的源IP地址、目的IP地址、源端口地址、目的端口地址計算得到該TCP連接簽名值;A2)將該TCP連接簽名值與查找表哈希項中的所有簽名進(jìn)行比較;當(dāng)沒有找到匹配的簽名時,將該TCP連接簽名值與沖突鏈表中哈希項中的所有簽名進(jìn)行比較;A3)當(dāng)查找表或沖突鏈表中找到匹配的簽名時,根據(jù)查找表或沖突鏈表得到其相應(yīng) TCB的索引值或者地址,然后訪問TCB比較源IP地址、目的IP地址、源端口地址、目的端口地址是否匹配,當(dāng)完全匹配時,即可確認(rèn)TCB已經(jīng)查找到并返回相應(yīng)指針;當(dāng)查找表和沖突鏈表中沒有找到匹配的簽名或根據(jù)匹配的簽名,源IP地址、目的IP地址、源端口地址、目的端口地址不能匹配時,結(jié)束查找,表明該TCP連接尚未建立。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于所述方法步驟(2)中創(chuàng)建TCP連接的步驟包括按照權(quán)利要求5的方式在查找表和沖突鏈表中查找新TCP連接的TCB,當(dāng)查找結(jié)果沒有匹配時,在查找表中找到一個空閑的位置,將其相應(yīng)的簽名插入其中,并根據(jù)需要給其分配一個空閑的TCB。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于所述方法中當(dāng)查找表已滿時,通過系統(tǒng)分配內(nèi)存填入簽名,并連入沖突鏈表中。
8.根據(jù)權(quán)利要求5所述的方法,其特征在于所述方法步驟(2)中刪除TCP連接的步驟包括按照權(quán)利要求5的方式在查找表和沖突鏈表中查找需要刪除的TCP連接的TCB,如果查找的連接簽名在查找表哈希項中,那么將相應(yīng)的簽名值置為0,以標(biāo)注其為空閑時的后續(xù)新建連接使用;如果查找的連接簽名在沖突鏈表中,那么將其相應(yīng)節(jié)點在沖突鏈表中刪除, 并回收其TCB。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于所述方法中簽名采用CRC32簽名函數(shù)對 TCP連接的源地址,目的地址,源端口,目的端口進(jìn)行計算。
全文摘要
本發(fā)明公開了一種高速網(wǎng)絡(luò)環(huán)境中提高TCP并發(fā)連接速度的方法,其特征在于所述方法包括以下步驟(1)在內(nèi)存或高速緩存cache中構(gòu)建查找表,所述查找表存儲根據(jù)已有TCP連接的源IP地址、目的IP地址、源端口地址、目的端口地址計算得到的簽名值,并實現(xiàn)TCB與查找表中的相應(yīng)簽名值形成關(guān)聯(lián);(2)當(dāng)進(jìn)行TCP連接的創(chuàng)建、刪除時,先根據(jù)TCP連接的源IP地址、目的IP地址、源端口地址、目的端口地址計算得到該TCP連接的簽名值,通過該TCP連接的簽名值在查找表中進(jìn)行查找,根據(jù)查找結(jié)果進(jìn)行TCP連接的創(chuàng)建、刪除操作。該方法提高了TCP連接的查找、新建、刪除速度,從而使得系統(tǒng)可以采用低成本硬件處理高速大流量網(wǎng)絡(luò)。
文檔編號H04L29/06GK102420771SQ20111044730
公開日2012年4月18日 申請日期2011年12月28日 優(yōu)先權(quán)日2011年12月28日
發(fā)明者華蓓, 張凱, 王俊昌 申請人:中國科學(xué)技術(shù)大學(xué)蘇州研究院