用于分析數(shù)據(jù)流的方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明設(shè)及用于分析數(shù)據(jù)流的方法。
[0002] 本發(fā)明還設(shè)及用于分析數(shù)據(jù)流的系統(tǒng)。
[0003] 雖然適用于任何分析方法,但是本發(fā)明將關(guān)于深度分組檢測(cè)和深度流檢測(cè)來(lái)描 述。
【背景技術(shù)】
[0004] -般地,深度分組檢測(cè)使得能夠分析(例如經(jīng)由TCP/IP發(fā)送的)數(shù)據(jù)分組的應(yīng)用層 內(nèi)容,W檢測(cè)其是否包含從簽名數(shù)據(jù)庫(kù)獲取的樣式(pattern),比如內(nèi)容字符串、常規(guī)表達(dá) 或短型修正符等。
[0005] 然而,當(dāng)樣式擴(kuò)展到相同流的多個(gè)分組上時(shí)(比如圖1中所示的示例),對(duì)一個(gè)分組 的內(nèi)容的分析可能不會(huì)匹配完全表達(dá)。
[0006] 為了克服運(yùn)一問(wèn)題,常規(guī)方法通過(guò)重組連續(xù)分組來(lái)對(duì)整個(gè)流進(jìn)行重構(gòu)W使它們按 順序(in-order),然后對(duì)所重構(gòu)的流進(jìn)行深度分組檢測(cè),并且還查找整個(gè)流中的匹配(運(yùn)也 被稱為"深度流檢測(cè)(DFI r)。
[0007] 然而,缺點(diǎn)之一在于,由于必須在檢測(cè)前對(duì)每個(gè)流進(jìn)行全部重構(gòu),所W對(duì)大流量應(yīng) 用運(yùn)一方法是不可行的。針對(duì)每個(gè)穿過(guò)鏈路的流,需要流重構(gòu)鏈(例如,軟件實(shí)現(xiàn)的線程), 從而耗盡計(jì)算資源。
[000引另一缺點(diǎn)在于,當(dāng)重組所述流時(shí),必須顯式地保持被重構(gòu)的每個(gè)流的狀態(tài),從而耗 盡存儲(chǔ)器資源。在所述流的整個(gè)壽命期間保留運(yùn)些按流的資源,即使所述流在其壽命期間 經(jīng)歷了某些非活動(dòng)狀態(tài)也是如此。例如,在非專利文獻(xiàn)A . Kodebi,L . Muscariel Io, S.Oueslati,J.Roberts,('Evaluating the number of active flows in a scheduler realizing fair s1:atistical bandwi化h sharing/'ACM SIGMETRICS 2005或非專利文獻(xiàn) C.Hu,Y.Tang,X.Chen,and B丄iu,"Per-flow Queueing by Dynamic Queue Sharing,'' Proceedings of IE邸 INF0C0M,Anchorage,Alaska,2007中,示出了在給定時(shí)間窗期間呈 現(xiàn)的分組級(jí)別活動(dòng)性在幾百毫秒到幾秒之間的流的數(shù)量顯著地小于正在處理的流的數(shù)量。 運(yùn)意味著,如果在實(shí)踐中高速鏈路共享總數(shù)為一百萬(wàn)的流,則在給定時(shí)間的活動(dòng)流的數(shù)量 的量級(jí)是幾千,因此大量的存儲(chǔ)器用于非活動(dòng)的流。
[0009] 此外,在非專利文獻(xiàn)"Beyond bloom filters:from approximate membership checks to approximate state machines(SIGC0MM06)'' ,George Varghese等(http:// cseweb. ucsd. edu/~varghese/PAP邸S/sigcomm06a. 口壯\)中,示出了用于流量分析的D-Ieft表,然而,其中保存了流狀態(tài)信息,并且使用插入/刪除操作來(lái)更新流的狀態(tài)。
[0010] 在非專利文獻(xiàn)"Bouma2-A Quasi-Stateless,Tunable Multiple String-Match Algorithm"化ttp: //arxiV. org/abs/1209.4554)中,示出了準(zhǔn)無(wú)狀態(tài)字符串匹配算法。
【發(fā)明內(nèi)容】
[0011] 因此,本發(fā)明的目標(biāo)在于,提供在計(jì)算資源方面更高效的用于分析數(shù)據(jù)流的方法 和系統(tǒng)。
[0012] 本發(fā)明的目標(biāo)還在于,提供在存儲(chǔ)器使用/存儲(chǔ)器資源方面更高效的用于分析數(shù) 據(jù)流的方法和系統(tǒng)。
[0013] 本發(fā)明的目標(biāo)還在于,提供不需要針對(duì)每個(gè)流進(jìn)行重構(gòu)或?yàn)槊總€(gè)流保持狀態(tài)信息 的用于分析數(shù)據(jù)流的方法和系統(tǒng)。
[0014] 本發(fā)明的目標(biāo)還在于,提供使得能夠分析與常規(guī)方法和系統(tǒng)相比數(shù)量更多的流的 用于分析數(shù)據(jù)流的方法和系統(tǒng)。
[0015] 通過(guò)權(quán)利要求1的方法和權(quán)利要求13的系統(tǒng)來(lái)實(shí)現(xiàn)上述目標(biāo)。
[0016] 在權(quán)利要求1中,限定了用于分析數(shù)據(jù)流的方法。
[0017] 根據(jù)權(quán)利要求1,所述方法的特征在于,包括W下步驟:
[0018] a)提取所述數(shù)據(jù)流的分組的分組信息;
[0019] b)基于所提取的分組信息確定所述分組的狀態(tài)和所述數(shù)據(jù)流的狀態(tài),W及當(dāng)所述 狀態(tài)指示所述分組是失序的時(shí),對(duì)所述分組進(jìn)行存儲(chǔ)W用于隨后檢測(cè);W及
[0020] C)基于檢測(cè)規(guī)則來(lái)檢測(cè)所述分組和/或所存儲(chǔ)的分組,其中,針對(duì)所述檢測(cè)規(guī)則中 的至少一個(gè)與所提取的分組信息的部分匹配,臨時(shí)地存儲(chǔ)所述分組的分組檢測(cè)的結(jié)果,W 及其中,當(dāng)已經(jīng)存儲(chǔ)的分組與已經(jīng)檢測(cè)的分組是按順序的時(shí),對(duì)已經(jīng)存儲(chǔ)的分組進(jìn)行檢測(cè); W及針對(duì)所述檢測(cè)規(guī)則中的至少一個(gè)的全部匹配,執(zhí)行預(yù)定動(dòng)作并刪除所存儲(chǔ)的結(jié)果。
[0021] 在權(quán)利要求13中,限定了一種用于分析數(shù)據(jù)流的系統(tǒng),所述系統(tǒng)優(yōu)選地執(zhí)行根據(jù) 權(quán)利要求1-12中的任一項(xiàng)所述的方法。
[0022] 根據(jù)權(quán)利要求13,所述系統(tǒng)的特征在于包括:
[0023] 提取裝置,操作用于提取所述數(shù)據(jù)流的分組的分組信息;
[0024] 狀態(tài)裝置,操作用于基于所提取的分組信息確定所述分組的狀態(tài)和所述數(shù)據(jù)流的 狀態(tài);
[0025] 存儲(chǔ)裝置,操作用于當(dāng)所述狀態(tài)指示所述分組是失序的時(shí),對(duì)所述分組進(jìn)行存儲(chǔ) W用于隨后檢測(cè);W及
[0026] 檢測(cè)裝置,操作用于基于檢測(cè)規(guī)則來(lái)檢測(cè)所述分組和/或所存儲(chǔ)的分組,其中,針 對(duì)所述檢測(cè)規(guī)則中的至少一個(gè)與所提取的分組信息的部分匹配,臨時(shí)地存儲(chǔ)所述分組的分 組檢測(cè)的結(jié)果,W及其中,當(dāng)已經(jīng)存儲(chǔ)的分組與已經(jīng)檢測(cè)的分組是按順序的時(shí),對(duì)已經(jīng)存儲(chǔ) 的分組進(jìn)行檢測(cè);W及針對(duì)所述檢測(cè)規(guī)則中的至少一個(gè)的全部匹配,執(zhí)行預(yù)定動(dòng)作并刪除 所存儲(chǔ)的結(jié)果。
[0027] 根據(jù)本發(fā)明,已經(jīng)認(rèn)識(shí)到,可W減小在檢測(cè)分組時(shí)的存儲(chǔ)器占用空間。運(yùn)是因?yàn)椋?針對(duì)部分匹配,臨時(shí)地存儲(chǔ)分組檢測(cè)的結(jié)果,并且當(dāng)分組與已經(jīng)檢測(cè)的分組是按順序的時(shí) 檢測(cè)所述分組,而不必為了之后的重構(gòu)而保存所述流的每個(gè)分組。
[00%]根據(jù)本發(fā)明,還已經(jīng)認(rèn)識(shí)到,實(shí)現(xiàn)對(duì)數(shù)據(jù)流的進(jìn)行中(on-the-fly)的檢測(cè)。連續(xù)分 組位于相同流內(nèi)允許按流檢測(cè),而無(wú)需在此之前對(duì)流進(jìn)行重組。
[0029] 根據(jù)本發(fā)明,還認(rèn)識(shí)到,不需要保持針對(duì)被分析的每個(gè)流的狀態(tài)。
[0030] 根據(jù)本發(fā)明,還認(rèn)識(shí)到,針對(duì)每個(gè)流只需要保持關(guān)于分組的相應(yīng)順序(例如,序號(hào)) 的狀態(tài)。
[0031] 根據(jù)本發(fā)明,還認(rèn)識(shí)到,一旦接收到屬于該流的分組,便執(zhí)行分組和/或流檢測(cè)。
[0032] 根據(jù)本發(fā)明,還認(rèn)識(shí)到,能夠?qū)崿F(xiàn)簡(jiǎn)單且低成本的實(shí)施方式。
[0033] 換言之,只在需要時(shí)才存儲(chǔ)流信息。只針對(duì)失序分組的流或在進(jìn)行檢測(cè)時(shí)只出現(xiàn) 部分匹配的流存儲(chǔ)相關(guān)信息。針對(duì)將要分析的大多數(shù)數(shù)據(jù)流,分組是在進(jìn)行中分析的,并且 不必為了隨后分析而存儲(chǔ)。
[0034] 在W下將描述其他特征、優(yōu)點(diǎn)和優(yōu)選實(shí)施例。
[0035] 根據(jù)優(yōu)選實(shí)施例,為了根據(jù)步驟b)確定所述狀態(tài),執(zhí)行W下步驟:bl)基于所提取 的信息檢查所述分組是否與已經(jīng)接收的分組相關(guān),并且如果不相關(guān),則將所述分組的狀態(tài) 設(shè)置為失序;W及b2)基于所提取的信息檢查所述分組是否與已經(jīng)觀測(cè)的流匹配。運(yùn)使得能 夠通過(guò)快速高效的方式確定分組的狀態(tài),特別是如果分組屬于已經(jīng)觀測(cè)的流并且如果該分 組與已經(jīng)接收的分組(例如就連續(xù)分組而言)相關(guān)。
[0036] 根據(jù)優(yōu)選實(shí)施例,為了確定分組的狀態(tài),在該分組上應(yīng)用至少一個(gè)概率濾波器,優(yōu) 選為一對(duì)布隆濾波器。運(yùn)使得能夠保持流狀態(tài)信息緊湊。例如,在一對(duì)旋轉(zhuǎn)布隆濾波器的情 況下,其使得能夠?qū)Ψ纸M所屬的流的狀態(tài)進(jìn)行查找。如果分組是按順序的,則通過(guò)例如深度 分組檢測(cè)來(lái)檢測(cè)所述分組。為了檢測(cè)不按順序的分組和/或副本分組,具體地,使用該對(duì)旋 轉(zhuǎn)布隆濾波器來(lái)為每個(gè)流存儲(chǔ)下一連續(xù)分組的數(shù)量:例如,當(dāng)分組到達(dá)該對(duì)布隆濾波器時(shí), 提取一組密鑰并對(duì)于布隆濾波器檢查該組密鑰,使得布隆濾波器中是否存在密鑰指示當(dāng)前 分組在其所屬的流中的位置信息。
[0037] 根據(jù)另一優(yōu)選實(shí)施例,步驟C)包括執(zhí)行深度分組檢測(cè)。運(yùn)使得能夠通過(guò)使用少量 的信息來(lái)執(zhí)行所謂的流傳輸深度分組檢測(cè),即在不進(jìn)行TCP流重構(gòu)的情況下對(duì)每個(gè)分組進(jìn) 行檢測(cè)。
[0038] 根據(jù)另一優(yōu)選實(shí)施例,在步驟C)中,一旦不存在匹配,則丟棄所述分組。運(yùn)確保用 于臨時(shí)存儲(chǔ)分組或狀態(tài)的存儲(chǔ)器使用可被保持為較低,運(yùn)是因?yàn)椋坏](méi)有匹配,則不需要 為了隨后使用而存儲(chǔ)分組,并且分組被丟棄。
[0039] 根據(jù)另一優(yōu)選實(shí)施例,在步驟b)中確定副本分組,優(yōu)選地在步