專利名稱:用于基于傳輸控制協(xié)議話務流特征進行超高速緩存查找的設備和方法
技術(shù)領域:
本發(fā)明一般涉及通信網(wǎng)絡,特別涉及用于提高連接到所述網(wǎng)絡的裝置的數(shù)據(jù)管理能力的設備和方法。
背景技術(shù):
接下來的描述預先假定知道網(wǎng)絡數(shù)據(jù)通信以及在這樣的通信網(wǎng)絡中使用的交換機、網(wǎng)絡處理器、適配器、路由器等。特別地,描述中預先假設熟悉將網(wǎng)絡操作分層的網(wǎng)絡體系結(jié)構(gòu)的ISO模型?;贗SO模型的典型體系結(jié)構(gòu)是把網(wǎng)絡操作分層的網(wǎng)絡體系結(jié)構(gòu)?;贗SO模型的典型體系結(jié)構(gòu)從作為傳送信號的物理通道或媒介的第1層(有時也標識為“L1”)向上擴展,經(jīng)過第2、3、4層等,直到第7層,最后提及的是在鏈接到網(wǎng)絡的計算機系統(tǒng)上運行的應用程序?qū)?。在這個文獻中,提及L1、L2等是想指網(wǎng)絡體系結(jié)構(gòu)的對應層。該公開還預先假定了對在這樣的網(wǎng)絡通信中稱為分組和幀的位串(bit string)的基本理解。
通信網(wǎng)絡的一般模型可以包括一個或多個專用網(wǎng),其通過防火墻或類似結(jié)構(gòu)耦接到公用網(wǎng)絡如更多的稱為因特網(wǎng)的萬維網(wǎng)(WWW)。連接到網(wǎng)絡的裝置(此后稱為網(wǎng)絡裝置)之間的通信可主要發(fā)生在專用網(wǎng)內(nèi)或者通過防火墻經(jīng)由因特網(wǎng)到遠程專用網(wǎng)。
為了在網(wǎng)絡裝置之間交換信息并且管理網(wǎng)絡,需要一些類型的協(xié)議??梢詫⒃搮f(xié)議表征為一套控制網(wǎng)絡接入的規(guī)則,并且在某些情況下用于將網(wǎng)絡保持在可操作條件。即使有一些標準協(xié)議,如可以用在專用網(wǎng)上的以太網(wǎng)、令牌網(wǎng)等,但大多數(shù)專用網(wǎng)絡可使用所希望使用的任何協(xié)議管理。僅有的可能限制是,專用網(wǎng)絡上的網(wǎng)絡裝置必須認識該協(xié)議,否則,該網(wǎng)絡裝置將不能令人滿意地操作或通信。
因為專用協(xié)議缺乏統(tǒng)一性,所以進一步的討論受限于在因特網(wǎng)上使用的公用協(xié)議。該公用協(xié)議稱為TCP(傳輸控制協(xié)議)/IP(因特網(wǎng)協(xié)議)。這是用于在因特網(wǎng)上進行通信的公知協(xié)議。
諸如網(wǎng)絡處理器的網(wǎng)絡裝置的一個性能度量,運行IP路由應用是基于在諸如一秒的設置時間間隔內(nèi)所處理或分類的分組數(shù)。這反過來可以受所需要的分類類型的影響。為了路由分組的目的,可以將網(wǎng)絡分類劃分為第2層(L2)、第3層(L3)、第4層(L4)以及之上。每一層所需要的計算從L2到L4以及之上而增加。例如,L2分類可以簡單到發(fā)現(xiàn)媒體接入控制(MAC)表格匹配。這個過程將需要比較MAC源地址(SA)或MAC目的地址(DA)分組和表格中的地址。更通常的方案是使用完全匹配算法、L2分類任務。L3分類可用于路由和其它L3功能。如果用于路由的目的,L3分類需要發(fā)現(xiàn)分組中的信息和數(shù)據(jù)庫中的信息之間的最長前綴匹配。最長前綴匹配算法用于L3分類。該最長前綴匹配算法比完全匹配算法更復雜,并因此需要更多的計算時間。
L4分類包括諸如用可能復雜的調(diào)解范圍等來實施過濾規(guī)則之類的復雜功能。這個類型的分類通常需要復雜算法,其使用相對長的時間間隔來處理分組。對于L4之上的查找或分類,處理分組的時間間隔甚至還增加。L4分類之上的處理指的是深分組處理。
鑒于上述,諸如網(wǎng)絡處理器之類的網(wǎng)絡裝置的吞吐量(每秒鐘所處理的分組數(shù))取決于該裝置所執(zhí)行的查找或分類的類型。因此,當需要L3和更高層查找時,網(wǎng)絡處理器的計算資源緊張。此外,經(jīng)常需要網(wǎng)絡處理器以每秒鐘數(shù)百萬分組來執(zhí)行查找,這進一步使計算資源緊張。在網(wǎng)絡處理器的資源緊張的情況下,其能夠滿足吞吐量需要、并同時處理L3和更高層查找的可能性變得相對低。因此,需要將使諸如網(wǎng)絡處理器的網(wǎng)絡裝置能夠保持吞吐量以便滿足性能需要并同時處理L3和更高層查找的資源。
發(fā)明內(nèi)容
第一方面,提供了一種用于管理通信網(wǎng)絡中的話務(traffic)的方法,包括以下行為(a)在網(wǎng)絡裝置中提供高速緩沖存儲器(cache),其容納與分組相關(guān)的最低限度(at least)預定義特征以及與所述預定義特征中所選擇的特征配對的行為(action);(b)在所述網(wǎng)絡裝置中接收至少一個分組;(c)從所述已接收的分組特征中選擇與該最低限度預定義特征類似的特征;(d)使從所述已接收的分組中選擇的特征和預定義特征相關(guān)聯(lián)(correlate);以及(e)使用關(guān)聯(lián)的結(jié)果來處理已接收的分組。
優(yōu)選地,所述處理包括如果所述已接收的分組的特征與該最低限度預定義特征匹配,則對已接收的分組實施配對行為。
優(yōu)選地,最低限度預定義特征包括因特網(wǎng)協(xié)議(IP)目的地址(DA)、IP源地址(SA)、傳輸控制協(xié)議(TCP)目的端口(DP)以及TCP源端口(SP)。
優(yōu)選地,關(guān)聯(lián)行為包括比較。
優(yōu)選具有包括如下行為的方法在存儲器中提供與分組相關(guān)的預定義特征和要執(zhí)行的行為的映射;接收將要分類的分組;使已接收的分組的所選擇的特征和預定義特征相關(guān)聯(lián);并且如果所選擇的特征與預定義特征匹配,則對所述接收分組執(zhí)行所存儲的行為。
優(yōu)選地,關(guān)聯(lián)行為包括比較。
優(yōu)選地,預定義特征包括源地址(SA)、目的地址(DA)、源端口(SP)、和目的端口(DP)。
優(yōu)選地,接收的分組包括數(shù)據(jù)分組。
優(yōu)選地,所存儲的與預定義特征相關(guān)的行為僅僅根據(jù)一組分組的第一分組更新。
優(yōu)選地,對該組分組中第一分組之后的所有分組執(zhí)行所存儲的行為。
在第二方面,提供了一種系統(tǒng),其包括處理器;以及高速緩沖存儲器,可操作地耦接到所述處理器,所述高速緩沖存儲器存儲分組的預定義特征和行為之間的映射,其中所述處理器執(zhí)行第一程序,其使所述處理器將所選擇的分組的特征和預定義特征相關(guān)聯(lián),并且如果來自所選擇的分組的特征與預定義特征匹配,則對所選擇的分組實施與預定義特征相關(guān)的行為。
優(yōu)選地,預定義特征包括源地址(SA)、目的地址(DA)、源端口(SP)、和目的端口(DP)。
優(yōu)選地,處理器包括網(wǎng)絡處理器。
該系統(tǒng)優(yōu)選地還包括可操作地耦接到所述處理器的存儲器,其中存儲用于完全分組搜索的數(shù)據(jù)結(jié)構(gòu),其中所述處理器執(zhí)行第二程序,其使所述處理器訪問該數(shù)據(jù)結(jié)構(gòu),并且如果預定義特征和來自所選擇的分組的特征之間發(fā)生失配,則對所選擇分組實施所述數(shù)據(jù)結(jié)構(gòu)中存儲的行為。
優(yōu)選地,所選擇的分組包括所收的分組。
優(yōu)選地,第二程序包括完全匹配算法。
優(yōu)選地,第二程序包括最長前綴匹配算法。
優(yōu)選地,第二程序包括軟件管理樹算法(Software Managed Treealgorithm)。
優(yōu)選地,所述存儲器在處理器內(nèi)部。
優(yōu)選地,所述存儲器在處理器外部。
優(yōu)選地,數(shù)據(jù)結(jié)構(gòu)包括直接表格(Direct Table)和帕特麗夏(Patricia)樹。
優(yōu)選具有包括如下裝置的系統(tǒng)存儲器,其存儲分組的預定義特征和將要對所有特征值集的子集執(zhí)行的行為之間的映射;以及控制器,其使已接收的分組中的特征和預定義特征相關(guān)聯(lián),并且如果該特征與預定義特征匹配,則對所述已接收的分組執(zhí)行所述行為。
在第三方面,提供了一種包括計算機程序代碼的計算機程序,當被加載到計算機系統(tǒng)并在其上執(zhí)行時,使所述計算機系統(tǒng)執(zhí)行根據(jù)第一方面的方法的所有步驟。
優(yōu)選地,以包括在其上記錄計算機程序的介質(zhì)的程序產(chǎn)品的形式提供計算機程序,所述程序包括使已接收的分組的特征和表格中的特征的指令相關(guān)聯(lián),所述表格容納所有可能特征值的子集;以及如果所接收的分組的特征和表格中的特征匹配,就對已接收的分組實施存儲在所述表格中的行為的指令。
所述程序產(chǎn)品優(yōu)選地還包括產(chǎn)生容納所述特征和相關(guān)行為的表格的指令,并優(yōu)選地還包括保留所述表格的指令。
優(yōu)選地,進行保留的指令還包括刪除老化的條目(entry)并插入新條目的指令。
優(yōu)選地,在(b)中接收的所述至少一個分組滿足成為屬于相同會話的短脈沖串分組內(nèi)的一個分組的頻繁飛行者(Frequent Flyer)準則。
該系統(tǒng)優(yōu)選地還包括可操作地耦接到存儲器的老化機制,所述老化機制周期性地從所述存儲器中刪除老條目。
優(yōu)選地,基于預定準則刪除老條目。
優(yōu)選地,預定義準則包括當所述存儲器已滿且有新條目需要添加時刪除最近最少使用的條目。
這樣優(yōu)選地,提供了一種對通信網(wǎng)絡中的分組進行分類的方法,包括以下行為(a)接收網(wǎng)絡裝置中的分組;(b)確定存在于已接收的分組中的數(shù)據(jù)分組;(c)提供在其中存儲了分組的預定義特征和與預定義特征中所選擇的特征相關(guān)的行為的高速緩沖存儲器;對于如此確定的每個數(shù)據(jù)分組,使所述每個數(shù)據(jù)分組的所選擇的特征和所述高速緩沖存儲器中的預定義特征相關(guān)聯(lián);并且對于所選擇的特征與預定義特征之一匹配的每個數(shù)據(jù)分組,對所述每個數(shù)據(jù)分組強加與所述預定義特征之一相關(guān)的行為。
優(yōu)選地,該分組包括TCP/IP分組。
優(yōu)選地,確定行為還包括檢查TCP報頭中的控制位的行為;如果將所述控制位中所選擇的位設置到第一狀態(tài),則檢查IP報頭中的長度字段以確定其值;將TCP報頭中的數(shù)據(jù)偏移字段的值乘以4;以及從長度字段的值中減去相乘的結(jié)果。
優(yōu)選地,第一狀態(tài)包括邏輯“0”。
優(yōu)選地,所選擇的所述控制位中所選擇的位包括SYN、FIN以及RST。本發(fā)明的實施例優(yōu)選地提供加速器,其改善網(wǎng)絡裝置的查找能力,并且通過這么做,所述網(wǎng)絡裝置能夠比迄今所可能的情況更有效地將分組分類。所述加速器可包括稱為高速緩沖存儲器的存儲器,在其中存儲了稱為(在此描述的)四元組的TCP分組的特征。所述四元組包括因特網(wǎng)協(xié)議(IP)SA、IP DA、傳輸控制協(xié)議(TCP)源端口(SP)以及目的端口(DP)。也存儲了與每個四元組有關(guān)的行為。匹配邏輯使已接收的分組中的四元組和高速緩沖存儲器中的四元組相關(guān)聯(lián)。如果發(fā)生匹配,則將高速緩沖存儲器中與所述四元組相關(guān)的行為施加到已接收的分組中。如果沒有發(fā)生匹配,則遵循用于對那個類型的分組進行分類的常規(guī)處理。提供了特定的方法和設備來填充并動態(tài)地老化流高速緩沖存儲器。該高速緩沖存儲器和相關(guān)的硬件和/或軟件稱為“流高速緩沖存儲器”。
通過使用流高速緩沖存儲器,網(wǎng)絡處理器可以以快于迄今可能的速率對分組進行分類。
現(xiàn)在將參考附圖、僅作為例子給出本發(fā)明的優(yōu)選實施例,其中圖1示出其中網(wǎng)絡裝置實行本發(fā)明的講述內(nèi)容的通信網(wǎng)絡的框圖;圖2示出網(wǎng)絡處理器的框圖;圖3示出根據(jù)本發(fā)明的講述內(nèi)容的子系統(tǒng)(流高速緩沖存儲器和控制器)的框圖;
圖4示出分組格式的圖形表示;圖5示出TCP報頭的格式;圖6示出IP報頭的格式;圖7示出根據(jù)本發(fā)明的講述內(nèi)容在計算機上執(zhí)行的程序的流程圖;圖8示出根據(jù)本發(fā)明的講述內(nèi)容用于清空流高速緩沖存儲器的流程圖。
具體實施例方式
本發(fā)明的優(yōu)選實施例使用流高速緩沖存儲器來加速通信網(wǎng)絡中的分組分類,并因此提高所述網(wǎng)絡裝置在特定的單位時間內(nèi)可以處理的分組數(shù)目。其對于TCP話務很適用,并因此將在該環(huán)境中描述。然而,這不應該是對本發(fā)明范圍的限制,因為其對話務以脈沖串形式出現(xiàn)的任何通信協(xié)議都適用。例如,人們相信,DNS服務器之間UDP話務(協(xié)議17)脈沖串出現(xiàn),并且也可以受益于流高速緩沖存儲器。作為本發(fā)明的一般說明,一般的方案是識別一貫具有大多數(shù)集束(bundling)并僅僅從其進入到高速緩沖存儲器的那些流。同樣重要的是,對沒有集束的那些分組類型避開高速緩沖存儲器。
具有大多數(shù)集束的流或分組進入在相對短周期的時間間隔內(nèi)出現(xiàn)的脈沖串包,并且在這個文獻中稱為“頻繁飛行者(Frequent Flyer)”。
圖1示出在其中使用了本發(fā)明的講述的高度簡化的網(wǎng)絡100。該網(wǎng)絡包括連接到因特網(wǎng)或其它網(wǎng)絡102的多個邊緣裝置104。將每個邊緣裝置104連接到子網(wǎng)絡106,其可以是使建筑物、校園等中的用戶相互連接的專用網(wǎng)絡。這樣的子網(wǎng)絡在本領域公知,并將不對其進行進一步描述。通過橋裝置110將子網(wǎng)絡106連接到另一個子網(wǎng)絡。邊緣裝置104可以是路由器交換機或者用于這個類型的分組處理的任何其它網(wǎng)絡裝置。每一個邊緣裝置具有網(wǎng)絡處理器108。根據(jù)裝置類型,可以使用一個或多個網(wǎng)絡處理器。橋裝置110還可以包含用于執(zhí)行路由功能的網(wǎng)絡處理器108。在本領域中公知諸如104和110的網(wǎng)絡裝置的使用,所以將不再給出對這些實體的進一步描述。
圖2示出圖1所示的網(wǎng)絡處理器的框圖。該網(wǎng)絡處理器執(zhí)行包括根據(jù)本發(fā)明的講述內(nèi)容的那些應用的IP路由應用,并且當從因特網(wǎng)接收幀時將該幀分類。由網(wǎng)絡處理器執(zhí)行不同分類任務,包括第2層(發(fā)現(xiàn)MAC表格匹配)、第3層(發(fā)現(xiàn)用于路由的最長前綴匹配)、第4層(加強具有協(xié)議參數(shù)的可能復雜相交范圍的過濾規(guī)則)、以及更高層查找(上至應用層,例如所謂的深分組處理)。諸如第4層分類的一些分類需要相對長的處理時間,因為其涉及復雜的算法。本發(fā)明提供了一種顯著減少了執(zhí)行第3層、第4層和更高層分類所需要的平均時間的設備和技術(shù)。雖然任何類型的網(wǎng)絡處理器都可以用于執(zhí)行本發(fā)明的優(yōu)選實施例中的分類功能,這里使用了IBM開發(fā)和銷售的PowerNP。該PowerNP是單片裝置10,其包括集成在襯底上的多個功能單元。這些功能單元排列為上行配置(upside configuration)和下行配置(downsideconfiguration),其中上行配置(有時也稱為“進路(Ingress)”)指的是涉及從數(shù)據(jù)傳輸網(wǎng)絡入站到芯片(向上至或進入芯片)的數(shù)據(jù)的那些元件,而“下行”(有時也稱為“出路(Egress)”)指的是功能為以出站方式從芯片向數(shù)據(jù)傳送網(wǎng)絡傳送數(shù)據(jù)(遠離芯片或者向下并進入網(wǎng)絡)的那些元件。數(shù)據(jù)流遵循上行和下行配置的各個布置。因此,在圖2的系統(tǒng)中有上行數(shù)據(jù)流和下行數(shù)據(jù)流。上行或進路配置部件包括入隊出隊調(diào)度UP(EDS-UP)邏輯16、多個多路復用的MAC-UP(PMM-UP)14、交換數(shù)據(jù)向上推進器(SMD-DN)18、系統(tǒng)接口SIF(20)、數(shù)據(jù)對準串行鏈路A(DASL A)22和數(shù)據(jù)對準串行鏈路B(DASLB)24。DASL A 22和DASL B 24將網(wǎng)絡處理器連接到具有需要多個網(wǎng)絡處理器的許多網(wǎng)絡連接的系統(tǒng)中的交換機。
仍舊參考圖2,在系統(tǒng)的下行(或出路)中示出的元件包括數(shù)據(jù)鏈接(DASL-A)26和DASL-B 28、系統(tǒng)接口SIF 30、交換數(shù)據(jù)推進器(SDM-DM)32、入隊-出隊-調(diào)度器EDS-DN 34、以及用于出路PMM-DN 36的多個多路復用MAC。網(wǎng)絡處理器芯片10還包括多個內(nèi)部靜態(tài)存取存儲器元件(S-RAM)、也稱作出路調(diào)度器的話務管理調(diào)度器(TRAFFIC MGT SCHEDULER)40、以及嵌入式處理器復合體12。嵌入式處理器復合體包括用于執(zhí)行分類功能的多個處理器和協(xié)處理器。通過各個數(shù)據(jù)移動單元(DMU)總線將接口裝置38耦接到PMM 14和36。接口裝置38可以為用于連接到網(wǎng)絡(沒有示出)的任何合適硬件設備,如以太網(wǎng)物理裝置或異步傳輸模式(ATM)裝置等。在美國專利6,404,752中給出了對PowerNP更詳細的描述,通過參考將其全部合并于這個文獻中。
如先前所述,在因特網(wǎng)上使用的協(xié)議是TCP/IP協(xié)議。結(jié)合使用這個協(xié)議的數(shù)據(jù)分組來描述本發(fā)明。TCP/IP協(xié)議具有在本發(fā)明中被稱為“頻繁飛行者”的某些分組,其一貫地以脈沖串形式出現(xiàn)。在網(wǎng)絡處理器中,用包括相對于所接收的包所采取的行為的規(guī)則對每個處理器進行預編程,且與特定規(guī)則匹配。根據(jù)本發(fā)明的講述內(nèi)容,將頻繁飛行者和它們的相關(guān)行為放在高速緩沖存儲器中,并且可以基于存儲在高速緩沖存儲器中的信息處理脈沖串的后續(xù)成員。因而,增強了使用本發(fā)明的系統(tǒng)的吞吐量。
應該注意,如果在高速緩沖存儲器中沒有發(fā)現(xiàn)分組的匹配,就遵循為網(wǎng)絡處理器提供的標準分類系統(tǒng)和方法。標準分類系統(tǒng)和方法比高速緩沖存儲器需要更多的時間來處理分組。因此,高速緩沖存儲器減少了與標準分類系統(tǒng)相關(guān)的執(zhí)行時間(latency)。
圖4示出了TCP/IP分組或幀400的圖形表示,其包括報頭部分402和有效載荷404。TCP/IP格式在本領域公知。因此,將僅進一步描述涉及本發(fā)明的格式部分。與本發(fā)明相關(guān)的格式部分是報頭402。報頭部分402包括TCP部分和IP部分二者。
圖6示出了報頭的IP部分的IP報頭格式600。IP報頭格式在本領域公知。因此,將僅描述報頭中本發(fā)明感興趣的那部分。與本發(fā)明有關(guān)的IP報頭格式部分是標記為“協(xié)議”的子字段、標記為“IP源地址”的子字段、和標記為“IP目的地址”的子字段。如隨后將論述的,源地址(SA)和目的地址(DA)是被稱作四元組的四個參數(shù)中的兩個,該四個參數(shù)將用作進入此后描述的流高速緩沖存儲器控制器的條目(entry)。要注意,協(xié)議子字段也用于識別被傳送的分組的類型(即,TCP)。
圖5示出TCP報頭格式500。TCP報頭格式在本領域公知;因此,將僅描述在本發(fā)明中使用的那些字段。所使用的字段包括源端口(SP)和目的端口(DP)。如下文中將論述的,來自IP報頭格式的SA和DA、以及來自IP TCP報頭格式的SP、DP稱為將在流高速緩沖存儲器中使用的四元組。也感興趣的是用符號502標識的控制鍵(key)。每個鍵是識別所傳送的分組類型的一位字段。由發(fā)起分組的源裝置設置該位。例如,如果將標記為SYN的鍵中的位設置為邏輯“1”,則該分組將是同步分組。由502標識的分組需要建立網(wǎng)絡裝置之間的會話。
圖3示出根據(jù)本發(fā)明的講述內(nèi)容的流高速緩沖存儲器系統(tǒng)300的功能框圖。該流高速緩沖存儲器系統(tǒng)包括有限尺寸的相關(guān)存儲器,其存儲流特征和對于流要采取的行為之間的映射。在本發(fā)明的一個實施例中,該特征是四元組的四個分量,即IP源地址(SA)、IP目的地址(DA)、TCP目的端口(DP)以及源端口(SP)??刂破?2使來自所接收的分組的特征(四元組)和相關(guān)存儲器的內(nèi)容相關(guān)聯(lián)。如果發(fā)現(xiàn)匹配,則將針對四元組存儲的行為施加到或強加到幀或分組上。從流高速緩沖存儲器系統(tǒng)300中提取信息(即將相對于分組采取的行為)遠快于使用諸如最長前綴匹配或軟件管理的樹算法之類的傳統(tǒng)算法來確定對分組采取什么樣的行為。要注意,盡管描述覆蓋了第3層和第4層處理,但是也可以通過級聯(lián)來自分組報頭的N個字段而擴展到包括第2層或其它層處理(OSI模型中的一個或多個層),以便產(chǎn)生“n元組”。例如,可以使用第2層的報頭字段將第2層行為添加到本發(fā)明的第2層版本中。
為了使本發(fā)明有效,必須控制高速緩沖存儲器的尺寸。如果高速緩沖存儲器的尺寸太大,則可能實際上降低系統(tǒng)的性能。該高速緩沖存儲器應該僅大到足夠保留頻繁飛行者的脈沖串持續(xù)期間的會話信息。實際因特網(wǎng)話務的實驗示出這個間隔大約為1ms??梢允褂眠@個間隔以及網(wǎng)絡處理器處理的頻繁飛行者分組速率來計算所需要的高速緩沖存儲器尺寸。
理想地,高速緩沖存儲器尺寸應該能夠被包含在內(nèi)部快速SRAM內(nèi)并應該足夠小以便在可用于處理分組的時間內(nèi)搜索。要注意,更大的高速緩沖存儲器可能需要更多的時間來搜索。
圖7示出根據(jù)本發(fā)明的講述內(nèi)容的分組處理算法的流程圖700。該算法在網(wǎng)絡處理器中執(zhí)行。優(yōu)選地,使用本發(fā)明的講述內(nèi)容,僅數(shù)據(jù)幀將適合于處理,因為作為基于網(wǎng)絡通路所支持的最大尺寸傳送單元(MTU)將大消息分段為多個更小的分組的結(jié)果,該數(shù)據(jù)幀典型地以脈沖串方式傳送。將不會對TCP/IP協(xié)議組中的其它分組(如SYN、FIN、或RST)進行超高速緩存,因為這些類型的連續(xù)分組典型地被所需要的網(wǎng)絡通路的往返行程延遲而在時間上分開。可以通過檢查TCP報頭中的標志位502(圖5)和IP報頭中可能的長度字段和TCP報頭中的數(shù)據(jù)偏移字段,來識別數(shù)據(jù)分組。標記位也稱為控制位,二者在這個文獻中可交換使用。具有SYN、FIN或RST標記設置中的任一個的那些分組不是數(shù)據(jù)分組。如果在TCP報頭的控制標記字段中沒有設置(即等于1)這些位值中任一個,則必須檢查IP報頭中的長度字段。緊接著,必須從這個值中減去TCP報頭中的數(shù)據(jù)偏移字段(乘以4)。如果相減的結(jié)果大于零,則分組中存在數(shù)據(jù)??商鎿Q地,可以選擇一些大于0的其它值作為閾值。如果結(jié)果指示在TCP分組中有數(shù)據(jù),則將該分組看作是數(shù)據(jù)分組,并因此是頻繁飛行者??商鎿Q地,作為第一步,僅可以將以太網(wǎng)報頭中的長度字段與諸如1400字節(jié)的固定值比較。如果大于比較值,則將分組看作是數(shù)據(jù)分組。
再次參考圖7,算法在開始框702中開始,并下傳到接收分組的704。在接收分組之后,在框706中執(zhí)行一些初始化檢查,以便查看該分組是否是頻繁飛行者并因此可超高速緩存。在框708中,檢查該分組,以便通過檢查IP和TCP報頭來查看其是否是TCP分組。如果不是,則采取用于完全分組搜索的正常轉(zhuǎn)發(fā)通路(框710)。在正常轉(zhuǎn)發(fā)通路中,將分組轉(zhuǎn)發(fā)到網(wǎng)絡處理器的完全分組搜索機制。這個機制可以是完全匹配搜索算法、最長匹配前綴算法、或軟件管理樹算法。
參考框708,如果該分組是TCP/IP分組,則檢查該TCP/IP分組(框712),以便查看該分組是否是根據(jù)上面給出的頻繁飛行者準則的數(shù)據(jù)分組(框714)。如果不是,再次沿正常轉(zhuǎn)發(fā)通路而行(框716)。如果其是數(shù)據(jù)分組(框714),則使用來自分組的四元組執(zhí)行高速緩沖存儲器查找(框718)。如果在高速緩沖存儲器中發(fā)現(xiàn)匹配(框720),則實施高速緩沖存儲器中存儲的行為(框724)。避免了正常轉(zhuǎn)發(fā)通路中涉及的查找。如果沒有發(fā)現(xiàn)匹配(框720),則運用用于完全分組搜索的正常轉(zhuǎn)發(fā)通路(框722)。另外,使用分組的四元組和對那個分組執(zhí)行的行為將新高速緩沖存儲器條目(框726)添加到高速緩沖存儲器。
從上面的描述中顯而易見的是,該高速緩沖存儲器結(jié)合上面識別的結(jié)構(gòu)和完全分組搜索算法而工作,以便提供更有效的分組分類系統(tǒng)。
高速緩沖存儲器的內(nèi)容必須周期性地改變,以便系統(tǒng)令人滿意地工作。這意味著必須刪除較老的條目,以便在高速緩沖存儲器中為新條目讓位。根據(jù)一個實施例,圖8是老化算法的流程圖800。該老化算法在網(wǎng)絡處理器上執(zhí)行,并周期性地從相關(guān)存儲器中刪除老條目。該程序始于框804,并下傳到框805。框805啟動控制流高速緩沖存儲器老化的頻率的期滿定時器。這個定時器將對應于頻繁飛行者的預期脈沖串間隔。在框806中,該過程等待檢查時間間隔(小于脈沖串定時),然后將期滿定時值縮減該檢查時間間隔。在這一點上,檢查第3層或第4層數(shù)據(jù)庫的改變。如果在檢查時間間隔期間已經(jīng)改變,則高速緩沖存儲器可以為無效,并應該被清空。在這種情況下,清空高速緩沖存儲器(框810)。然后,處理從框805繼續(xù),開始新的期滿定時。
在數(shù)據(jù)庫沒有改變的情況(框808)下,處理從框812繼續(xù)。檢查對期滿定時器是否期滿(達到零值)。如果定時已經(jīng)期滿,則檢查高速緩沖存儲器的每個條目(框814)。如果定時器沒有期滿,則處理從框806繼續(xù)。從高速緩沖存儲器中移除每個在先前的期滿間隔期間還沒有使用的條目(框816)。然后處理從框805繼續(xù),開始新的期滿定時。
在替換實施例中,代替使用老化程序800,可以略微調(diào)整算法700,以便執(zhí)行老化功能。在框726中,如果對于將添加的新高速緩沖存儲器條目沒有空間可用,則可以移除最近最少使用的高速緩沖存儲器條目,并可以將新條目添加在其位置上。
通過使用流高速緩沖存儲器對通信網(wǎng)絡中的分組進行分類,而不是使用傳統(tǒng)的算法和數(shù)據(jù)結(jié)構(gòu),對分組進行分類所需要的時間大大變短,且因此增強了系統(tǒng)吞吐量。
盡管已經(jīng)描述了本發(fā)明的示范實施例,但是本領域的技術(shù)人員將容易理解,在不實質(zhì)性脫離本發(fā)明的新講述內(nèi)容和高級使用的情況下,示范實施例中可能有許多改變。
權(quán)利要求
1.一種用于管理通信網(wǎng)絡中的話務的方法,包括如下行為(a)在網(wǎng)絡裝置中提供高速緩沖存儲器,其容納與分組相關(guān)的最低限度預定義特征以及與所述預定義特征中所選擇的特征配對的行為;(b)在所述網(wǎng)絡裝置中接收至少一個分組;(c)從所述已接收的分組特征中選擇與該最低限度預定義特征類似的特征;(d)使從所述已接收的分組中選擇的特征和預定義特征相關(guān)聯(lián);以及(e)使用關(guān)聯(lián)的結(jié)果來處理已接收的分組。
2.根據(jù)權(quán)利要求1的方法,其中所述處理包括如果所述已接收的分組的特征與該最低限度預定義特征匹配,則對已接收的分組實施配對行為。
3.根據(jù)權(quán)利要求1或權(quán)利要求2的方法,其中最低限度預定義特征包括因特網(wǎng)協(xié)議(IP)目的地址(DA)、IP源地址(SA)、傳輸控制協(xié)議(TCP)目的端口(DP)以及TCP源端口(SP)。
4.根據(jù)權(quán)利要求1至4中的任一個的方法,其中在(b)中接收的所述至少一個分組滿足成為屬于相同會話的短脈沖串分組內(nèi)的一個分組的頻繁飛行者準則。
5.一種系統(tǒng),包括處理器;以及高速緩沖存儲器,可操作地耦接到所述處理器,所述高速緩沖存儲器存儲分組的預定義特征和行為之間的映射,其中所述處理器執(zhí)行第一程序,其使所述處理器將所選擇的分組的特征和預定義特征相關(guān)聯(lián),并且如果來自所選擇的分組的特征與預定義特征匹配,則對所選擇的分組實施與預定義特征相關(guān)的行為。
6.根據(jù)權(quán)利要求5的系統(tǒng),其中預定義特征包括源地址(SA)、目的地址(DA)、源端口(SP)、和目的端口(DP)。
7.根據(jù)權(quán)利要求5或權(quán)利要求6的系統(tǒng),還包括可操作地耦接到所述處理器的存儲器,其中存儲用于完全分組搜索的數(shù)據(jù)結(jié)構(gòu),其中所述處理器執(zhí)行第二程序,其使所述處理器訪問該數(shù)據(jù)結(jié)構(gòu),并且如果預定義特征和來自所選擇的分組的特征之間發(fā)生失配,則對所選擇分組實施所述數(shù)據(jù)結(jié)構(gòu)中存儲的行為。
8.根據(jù)權(quán)利要求7的系統(tǒng),其中所述第二程序包括完全搜索算法、最長前綴匹配算法、或者軟件管理樹算法中的一個。
9.根據(jù)權(quán)利要求14的系統(tǒng),其中所述數(shù)據(jù)結(jié)構(gòu)包括直接表格和帕特麗夏樹。
10.一種包括計算機程序代碼的計算機程序,當被加載到計算機系統(tǒng)并在其上執(zhí)行時,使所述計算機系統(tǒng)執(zhí)行根據(jù)權(quán)利要求1至4中的任一個的方法的所有步驟。
全文摘要
一種網(wǎng)絡裝置的分類系統(tǒng)包括高速緩沖存儲器,其中響應會話中的第一個“頻繁飛行者”分組,而存儲TCP/IP分組的預定義特征和相關(guān)行為之間的映射。使來自那個會話的后續(xù)接收分組的所選擇特征和預定義特征相關(guān)聯(lián),并且如果所選擇的特征與預定義特征匹配,則將所存儲的行為施加到已接收的分組上,從而減少后續(xù)分組所需要的處理。為超高速緩沖存儲而選擇的分組可以是數(shù)據(jù)分組。對于失配的特征,使用分類系統(tǒng)的完全分組搜索來確定要對所接收的分組施加的行為。
文檔編號H04L12/56GK1846409SQ200480025336
公開日2006年10月11日 申請日期2004年9月7日 優(yōu)先權(quán)日2003年9月11日
發(fā)明者小埃弗里特·科爾, 戈登·戴維斯, 克拉克·杰弗里斯, 納塔拉簡·韋德亞納撒恩, 科林·維里利 申請人:國際商業(yè)機器公司