欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于從通信鏈路提取結(jié)構(gòu)化應(yīng)用程序數(shù)據(jù)的系統(tǒng)和方法

文檔序號(hào):7791099閱讀:394來(lái)源:國(guó)知局
用于從通信鏈路提取結(jié)構(gòu)化應(yīng)用程序數(shù)據(jù)的系統(tǒng)和方法
【專利摘要】用于產(chǎn)生在網(wǎng)絡(luò)代理之間的操作的語(yǔ)義描述的系統(tǒng)和方法。在實(shí)施方案中,捕獲在兩個(gè)或多個(gè)網(wǎng)絡(luò)代理之間的包級(jí)流量。將所述包級(jí)流量集束至一個(gè)或多個(gè)消息中,其中每個(gè)消息包括一個(gè)或多個(gè)元素。對(duì)于所述消息中的每個(gè),所述消息的所述元素與一個(gè)或多個(gè)屬性匹配,并且基于所述匹配的屬性將所述消息解碼成消息數(shù)據(jù)。然后,所述消息數(shù)據(jù)用于產(chǎn)生所述網(wǎng)絡(luò)代理之間的操作的語(yǔ)義描述。
【專利說(shuō)明】用于從通信鏈路提取結(jié)構(gòu)化應(yīng)用程序數(shù)據(jù)的系統(tǒng)和方法
[0001]發(fā)明背景

【技術(shù)領(lǐng)域】
[0002]本發(fā)明大體涉及具有網(wǎng)絡(luò)交換、路由選擇、代理和數(shù)據(jù)庫(kù)技術(shù)的特征的信息技術(shù),并且更具體來(lái)說(shuō)涉及經(jīng)由提供兩個(gè)網(wǎng)絡(luò)代理之間的流量(可能不完整的)拷貝的網(wǎng)絡(luò)分流器提取語(yǔ)義數(shù)據(jù)而基本上不改變現(xiàn)有網(wǎng)絡(luò)或應(yīng)用程序基礎(chǔ)結(jié)構(gòu)。
[0003]相關(guān)技術(shù)描述
[0004]過(guò)去的幾十年來(lái),結(jié)構(gòu)化數(shù)據(jù)庫(kù)技術(shù)已經(jīng)成為許多企業(yè)技術(shù)創(chuàng)新中的關(guān)鍵組成部分。隨著互聯(lián)網(wǎng)的成功,數(shù)據(jù)庫(kù)技術(shù)的使用已經(jīng)在許多消費(fèi)者和商業(yè)對(duì)商業(yè)應(yīng)用程序中廣泛應(yīng)用。隨著數(shù)據(jù)庫(kù)架構(gòu)的普及,已經(jīng)出現(xiàn)新的風(fēng)險(xiǎn)和挑戰(zhàn)。此類風(fēng)險(xiǎn)和挑戰(zhàn)包括識(shí)別性能問(wèn)題和可以允許未經(jīng)授權(quán)的用戶訪問(wèn)保密數(shù)據(jù)的安全性中的微小缺口的復(fù)雜性和困難。因此,需要的是用于識(shí)別這些性能問(wèn)題和閉合這些安全缺口的新的、改進(jìn)的機(jī)構(gòu)。
[0005]數(shù)據(jù)庫(kù)應(yīng)用程序的大部分使用具有存儲(chǔ)和索引的結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)庫(kù)服務(wù)器??蛻舳嗽L問(wèn)數(shù)據(jù)庫(kù)服務(wù)器以存儲(chǔ)、更新和查詢結(jié)構(gòu)化數(shù)據(jù)??蛻舳丝墒褂酶鞣N物理或虛擬媒介、使用標(biāo)準(zhǔn)網(wǎng)絡(luò)技術(shù)(諸如傳輸控制協(xié)議(TCP)、互聯(lián)網(wǎng)協(xié)議(IP)、以太網(wǎng)及其類似物)與數(shù)據(jù)庫(kù)服務(wù)器通信。然而標(biāo)準(zhǔn)協(xié)議一般用于與數(shù)據(jù)庫(kù)服務(wù)器的較低級(jí)別的通信,較高級(jí)別的協(xié)議常常專用于供應(yīng)商和/或客戶端-服務(wù)器架構(gòu),并且不可完全指定。供應(yīng)商可能在技術(shù)上不能夠發(fā)布這些規(guī)格,或可能因?yàn)槠渌蜻x擇不發(fā)布這些規(guī)格。
[0006]在應(yīng)用程序和/或數(shù)據(jù)庫(kù)層下面,測(cè)序字節(jié)協(xié)議,諸如TCP或按序數(shù)據(jù)包交換(SPX),一般用于面對(duì)潛在不可靠較低級(jí)別傳輸機(jī)構(gòu)時(shí)確保客戶端與服務(wù)器系統(tǒng)之間的消息的傳送。這些協(xié)議可交換多個(gè)數(shù)據(jù)包以傳送單個(gè)字節(jié)的數(shù)據(jù)。此類數(shù)據(jù)包的傳遞和/或接受可為異步的,使得數(shù)據(jù)包的次序不一定與應(yīng)用程序或數(shù)據(jù)庫(kù)層需要的字節(jié)流的次序相同。這些協(xié)議被設(shè)計(jì)以當(dāng)數(shù)據(jù)包在諸如客戶端系統(tǒng)與服務(wù)器系統(tǒng)的兩個(gè)網(wǎng)絡(luò)代理之間丟失或損壞時(shí)工作。
[0007]許多網(wǎng)絡(luò)會(huì)話可在服務(wù)器(例如數(shù)據(jù)庫(kù)服務(wù)器)與一個(gè)或多個(gè)客戶端系統(tǒng)之間建立。每個(gè)會(huì)話一般相對(duì)于其它會(huì)話異步操作,并且來(lái)自多個(gè)會(huì)話的數(shù)據(jù)和控制信息可在時(shí)間上重疊。另外,可在服務(wù)器與其客戶端之間使用多個(gè)封裝技術(shù)和物理層技術(shù)。
[0008]存在若干網(wǎng)絡(luò)分流技術(shù),其可以用于提取在兩個(gè)或多個(gè)網(wǎng)絡(luò)代理之間流動(dòng)的包流的拷貝。然而,試圖觀察交換的網(wǎng)絡(luò)分流器將不會(huì)目睹如任一網(wǎng)絡(luò)代理所見(jiàn)的流量的確切拷貝。相反,網(wǎng)絡(luò)分流器將接收數(shù)據(jù)包的唯一第三方視圖,其可包括由網(wǎng)絡(luò)代理所見(jiàn)的數(shù)據(jù)包的子集或超集。
[0009]雖然可使用埋置在底層協(xié)議和傳輸中的數(shù)據(jù)解決許多不確定性,如封裝、會(huì)話復(fù)用、命令和請(qǐng)求數(shù)據(jù)的有效性,但是這些機(jī)構(gòu)被設(shè)計(jì)以在網(wǎng)絡(luò)對(duì)話的任一端(即在網(wǎng)絡(luò)代理處)操作。此外,該埋置數(shù)據(jù)不能夠完全解決在特定網(wǎng)絡(luò)對(duì)話的實(shí)際內(nèi)容中的不確定性。另外,在通常使用的網(wǎng)絡(luò)架構(gòu)中,由網(wǎng)絡(luò)分流器捕獲的包流常常以一定方式損壞。此外,應(yīng)用程序協(xié)議(例如Oracle的客戶端_服務(wù)器協(xié)議)常常不是公開(kāi)指定.因此,常規(guī)上不可能使用網(wǎng)絡(luò)分流器在服務(wù)器與其客戶端之間生成完整的操作細(xì)節(jié)。
發(fā)明概要
[0010]相應(yīng)地,公開(kāi)了結(jié)合捕獲和分析技術(shù)利用來(lái)自網(wǎng)絡(luò)分流器的緩沖以生成在兩個(gè)網(wǎng)絡(luò)代理之間的操作的詳細(xì)語(yǔ)義描述或模型的系統(tǒng)和方法。然后,該詳細(xì)模型可以用于檢測(cè)和回應(yīng)特別是在基于數(shù)據(jù)庫(kù)的應(yīng)用程序的環(huán)境中的性能問(wèn)題和安全缺口。
[0011]在實(shí)施方案中,公開(kāi)了用于產(chǎn)生在網(wǎng)絡(luò)代理之間的操作的語(yǔ)義描述的方法。該方法包括使用至少一個(gè)硬件處理器:捕獲在第一網(wǎng)絡(luò)代理與第二網(wǎng)絡(luò)代理之間的包級(jí)流量;將包級(jí)流量集束成一個(gè)或多個(gè)消息,其中一個(gè)或多個(gè)消息中的每個(gè)包括一個(gè)或多個(gè)元素;對(duì)于一個(gè)或多個(gè)消息中的每個(gè),匹配消息的一個(gè)或多個(gè)元素中的一個(gè)或多個(gè)與一個(gè)或多個(gè)屬性,并且基于所匹配的一個(gè)或多個(gè)屬性將消息解碼成消息數(shù)據(jù);以及基于消息數(shù)據(jù)產(chǎn)生在第一網(wǎng)絡(luò)代理與第二網(wǎng)絡(luò)代理之間的操作的語(yǔ)義描述。
[0012]在另一個(gè)實(shí)施方案中,公開(kāi)了用于產(chǎn)生在網(wǎng)絡(luò)代理之間的操作的語(yǔ)義描述的系統(tǒng)。該系統(tǒng)包括:至少一個(gè)硬件處理器;以及至少一個(gè)可執(zhí)行的軟件模塊,其在由至少一個(gè)硬件處理器執(zhí)行時(shí)捕獲在第一網(wǎng)絡(luò)代理與第二網(wǎng)絡(luò)代理之間的數(shù)據(jù)包級(jí)流量,將數(shù)據(jù)包級(jí)流量集束成一個(gè)或多個(gè)消息,其中一個(gè)或多個(gè)消息中的每個(gè)包括一個(gè)或多個(gè)元素,對(duì)于一個(gè)或多個(gè)消息中的每個(gè),匹配消息的一個(gè)或多個(gè)元素中的一個(gè)或多個(gè)與一個(gè)或多個(gè)屬性,并且基于所匹配的一個(gè)或多個(gè)屬性將消息解碼成消息數(shù)據(jù),以及基于消息數(shù)據(jù)產(chǎn)生在第一網(wǎng)絡(luò)代理與第二網(wǎng)絡(luò)代理之間的操作的語(yǔ)義描述。
[0013]附圖簡(jiǎn)述
[0014]本發(fā)明的細(xì)節(jié),如其結(jié)構(gòu)和操作,可通過(guò)研究附圖部分地收集,在所述附圖中相同的附圖標(biāo)記指代相同的部分并且:
[0015]圖1圖示根據(jù)實(shí)施方案的實(shí)例架構(gòu)環(huán)境,其中可捕獲在網(wǎng)絡(luò)代理之間的流量用于分析;
[0016]圖2圖示根據(jù)實(shí)施方案的用于捕獲和分析裝置的實(shí)例硬件架構(gòu);
[0017]圖3圖示根據(jù)實(shí)施方案的用于捕獲和分析裝置的實(shí)例軟件架構(gòu);
[0018]圖4圖示根據(jù)實(shí)施方案的涉及捕獲包級(jí)流量和準(zhǔn)備所捕獲的流量用于分析的實(shí)例部件和數(shù)據(jù)流程圖;
[0019]圖5圖示根據(jù)實(shí)施方案的涉及將包級(jí)流量重組成字節(jié)流、請(qǐng)求和響應(yīng)束以及在網(wǎng)絡(luò)代理之間發(fā)生的操作的最終結(jié)構(gòu)模型的實(shí)例部件和數(shù)據(jù)流程圖;
[0020]圖6圖示根據(jù)實(shí)施方案的在產(chǎn)生語(yǔ)義操作模型中取得的所捕獲的流量的實(shí)例應(yīng)用程序級(jí)分析;
[0021]圖7是根據(jù)實(shí)施方案的梯形圖,其圖示從捕獲和分析裝置或模塊的外部的角度的事務(wù)中的數(shù)據(jù)包交互;
[0022]圖8是根據(jù)實(shí)施方案的梯形圖,其圖示從捕獲和分析裝置或模塊的內(nèi)部的角度的事務(wù)中的數(shù)據(jù)包處理,其中第一請(qǐng)求的元素(例如元素801和803)表示數(shù)據(jù)包、第一請(qǐng)求數(shù)據(jù)的元素(例如元素803和806)表示字節(jié)數(shù)據(jù)的連續(xù)流以及第一請(qǐng)求810表示對(duì)應(yīng)于消息邊界的流數(shù)據(jù)束;
[0023]圖9圖示根據(jù)實(shí)施方案的用于應(yīng)用程序協(xié)議匹配的實(shí)例數(shù)據(jù)流程圖;
[0024]圖10圖示可由應(yīng)用程序協(xié)議注釋器使用以選擇用于解碼應(yīng)用程序協(xié)議消息的屬性模板的過(guò)程;以及
[0025]圖11圖示根據(jù)實(shí)施方案的處理系統(tǒng),在其上執(zhí)行本文所述的過(guò)程中的一個(gè)或多個(gè)。
[0026]發(fā)明詳述
[0027]本發(fā)明公開(kāi)了用于產(chǎn)生在兩個(gè)或多個(gè)網(wǎng)絡(luò)代理之間的操作的詳細(xì)語(yǔ)義模型或描述的系統(tǒng)和方法。在實(shí)施方案中,所公開(kāi)的系統(tǒng)和方法用于包括在應(yīng)用層上的同步裝置交互的網(wǎng)絡(luò)會(huì)話。這包括但不限于遠(yuǎn)程過(guò)程調(diào)用(RPC)或類似的請(qǐng)求和響應(yīng)交互,諸如使用超文本傳輸協(xié)議(HTTP)的那些。在這些交互中,第一裝置通過(guò)一個(gè)或多個(gè)網(wǎng)絡(luò)向第二裝置傳遞請(qǐng)求,并且第二裝置經(jīng)由一個(gè)或多個(gè)網(wǎng)絡(luò)返回響應(yīng)至第一裝置。請(qǐng)求和響應(yīng)都可包括在裝置之間傳遞的一個(gè)或多個(gè)數(shù)據(jù)包。在請(qǐng)求與響應(yīng)之間的包級(jí)流程可在時(shí)間上重疊(從裝置或網(wǎng)絡(luò)鏡像裝置的角度)和/或可從網(wǎng)絡(luò)架構(gòu)內(nèi)的多個(gè)點(diǎn)收集。在實(shí)施方案中,通信網(wǎng)絡(luò)代理之間的多個(gè)網(wǎng)絡(luò)會(huì)話可產(chǎn)生任意交織的數(shù)據(jù)包而不影響所公開(kāi)的系統(tǒng)和方法的操作.
[0028]根據(jù)實(shí)施方案,系統(tǒng)和方法從網(wǎng)絡(luò)代理之間交換的網(wǎng)絡(luò)數(shù)據(jù)包流量的有缺陷的拷貝提取兩個(gè)網(wǎng)絡(luò)代理之間執(zhí)行的語(yǔ)義操作的模型或描述。該模型可包括但不限于每個(gè)操作中的原始性能數(shù)據(jù)、描述性元數(shù)據(jù)(例如查詢字符串、數(shù)據(jù)類型、數(shù)據(jù)大小等)和/或?qū)嶋H數(shù)據(jù)。當(dāng)流量丟失、次序顛倒或未知流量的確切規(guī)格時(shí),仍可在應(yīng)用層級(jí)上產(chǎn)生和使用操作的局部模型,并且可基于數(shù)據(jù)流程的方向(例如在請(qǐng)求與響應(yīng)消息之間)再同步會(huì)話的框架。
[0029]更新數(shù)據(jù)庫(kù)中的數(shù)據(jù)的數(shù)據(jù)庫(kù)查詢或操作的服務(wù)可由數(shù)據(jù)庫(kù)服務(wù)器迅速或緩慢地提供,這取決于數(shù)據(jù)查詢或更新操作的復(fù)雜性、由數(shù)據(jù)庫(kù)服務(wù)器經(jīng)受的瞬時(shí)負(fù)載或通過(guò)超出數(shù)據(jù)庫(kù)服務(wù)器本身的其它因素(例如存儲(chǔ)系統(tǒng)、變化的虛擬中央處理單元(CPU)分配等)。在實(shí)施方案中,可以通過(guò)使用描述性元數(shù)據(jù)(例如結(jié)構(gòu)化查詢語(yǔ)言(SQL)查詢字符串)觀察特定請(qǐng)求與響應(yīng)之間的時(shí)滯以及通過(guò)觀察數(shù)據(jù)本身的內(nèi)容和格式來(lái)實(shí)時(shí)確定數(shù)據(jù)庫(kù)服務(wù)器的許多操作方面的性能。另外,被更新或檢索的數(shù)據(jù)和實(shí)際數(shù)據(jù)的性質(zhì)隱藏在客戶端系統(tǒng)與服務(wù)器之間雙向流動(dòng)的網(wǎng)絡(luò)數(shù)據(jù)包中。通過(guò)觀察該流量,可檢測(cè)對(duì)數(shù)據(jù)庫(kù)的部分提取或改變的不適當(dāng)?shù)膰L試。在實(shí)施方案中,使用現(xiàn)存流量的拷貝提取和分析在客戶端系統(tǒng)與服務(wù)器之間的操作的語(yǔ)義?;谠摲治?,可修改流量以促進(jìn)或另外改進(jìn)性能和/或減輕針對(duì)各種形式的攻擊。
[0030]在實(shí)施方案中,將捕獲部件放置在網(wǎng)絡(luò)拓?fù)渲?,使其暴露于在多個(gè)網(wǎng)絡(luò)代理之間傳遞以分析的流量。所觀察到的數(shù)據(jù)包可經(jīng)由一系列的網(wǎng)絡(luò)鏈接和/或緩沖級(jí)被拷貝和傳遞至過(guò)濾器部件。然后,過(guò)濾器部件可放棄與網(wǎng)絡(luò)代理和/或被分析的應(yīng)用程序無(wú)關(guān)的數(shù)據(jù)包。其余的數(shù)據(jù)包可被傳送至重組部件,所述重組部件使用數(shù)據(jù)包中的序列數(shù)據(jù)和其它描述性數(shù)據(jù)和/或接受數(shù)據(jù)包的時(shí)間來(lái)建立每個(gè)網(wǎng)絡(luò)會(huì)話的字節(jié)流的表示。
[0031]一旦重組部件建立會(huì)話的字節(jié)流的表示,其就可被傳送至應(yīng)用層分析部件。分析部件可將字節(jié)流的內(nèi)容解包成請(qǐng)求和響應(yīng)數(shù)據(jù)和描述以產(chǎn)生流量的語(yǔ)義操作模型。該語(yǔ)義模型可由應(yīng)用程序?qū)S貌考褂?,其使用語(yǔ)義模型來(lái)檢測(cè)安全性和性能問(wèn)題和/或減輕所檢測(cè)的對(duì)安全策略的破壞。
[0032]應(yīng)理解的是本文論述的捕獲部件、過(guò)濾器部件、重組部件、應(yīng)用層分析部件、應(yīng)用程序?qū)S貌考腿魏纹渌考蚰K可在硬件、軟件或者硬件和軟件中實(shí)施,并且可為單獨(dú)的或集成的部件。例如,過(guò)濾器部件、重組部件、應(yīng)用層分析部件和應(yīng)用程序?qū)S貌考蔀樵诓东@裝置的硬件上或通信地連接至捕獲裝置的單獨(dú)的裝置上執(zhí)行的軟件模塊。
[0033]層概沭
[0034]起初,將描述開(kāi)放式系統(tǒng)互聯(lián)(OSI)參考模型的層。OSI模型定義網(wǎng)絡(luò)框架以在七個(gè)層中實(shí)施協(xié)議。所述層服務(wù)其上的層并且被其下的層服務(wù)。
[0035]層7:應(yīng)用層。該層支持應(yīng)用程序和終端用戶處理。應(yīng)用層與實(shí)施通信部件的軟件應(yīng)用程序交互。應(yīng)用層的功能包括識(shí)別通信伙伴、確定資源可用性和同步通信。
[0036]層6:表示層(或語(yǔ)法層)。該層在應(yīng)用程序格式與網(wǎng)絡(luò)格式之間翻譯以便提供數(shù)據(jù)表示的差異的獨(dú)立性(例如加密)。表示層將來(lái)自網(wǎng)絡(luò)的數(shù)據(jù)形式變換成應(yīng)用層可以理解的形式,并且跨過(guò)網(wǎng)絡(luò)發(fā)送來(lái)自應(yīng)用程序的格式和加密數(shù)據(jù)。
[0037]層5:會(huì)話層。該層控制計(jì)算機(jī)之間的連接。它建立、管理和終止應(yīng)用程序之間的連接。會(huì)話層通常明確實(shí)施在使用RPC的應(yīng)用程序環(huán)境中。
[0038]層4:傳輸層。該層提供網(wǎng)絡(luò)代理之間的透明數(shù)據(jù)傳送,并且用于端對(duì)端錯(cuò)誤恢復(fù)、分割和重組(de-segmentat1n)以及流程控制。流程控制包括確定數(shù)據(jù)是否來(lái)自多于一個(gè)應(yīng)用程序,并且將每個(gè)應(yīng)用程序的數(shù)據(jù)整合成單個(gè)流用于物理網(wǎng)絡(luò)。傳輸層確保完整的數(shù)據(jù)傳送。
[0039]層3:網(wǎng)絡(luò)層。該層提供將可變長(zhǎng)度數(shù)據(jù)序列從一個(gè)網(wǎng)絡(luò)上的源主機(jī)傳送至不同網(wǎng)絡(luò)上的目標(biāo)主機(jī)而同時(shí)保持傳輸層請(qǐng)求的服務(wù)質(zhì)量的功能和程序構(gòu)件。它產(chǎn)生邏輯路徑用于將數(shù)據(jù)從節(jié)點(diǎn)傳遞至節(jié)點(diǎn)。它提供交換、路由、轉(zhuǎn)發(fā)、尋址、網(wǎng)絡(luò)互連、錯(cuò)誤處理、擁塞控制和數(shù)據(jù)包排序功能。網(wǎng)絡(luò)層確定向接受代理發(fā)送數(shù)據(jù)的方式。
[0040]層2:數(shù)據(jù)鏈路層。該層提供功能和程序構(gòu)件以在網(wǎng)絡(luò)代理之間傳送數(shù)據(jù)以及檢測(cè)并可能校正在物理層中發(fā)生的錯(cuò)誤。數(shù)據(jù)鏈路層編碼和解碼數(shù)據(jù)包、提供傳輸協(xié)議只是和管理并且處理在物理層中的錯(cuò)誤,以及流程控制和幀同步。它將適當(dāng)?shù)奈锢韰f(xié)議分配給數(shù)據(jù),并且定義網(wǎng)絡(luò)和數(shù)據(jù)包排序的類型。數(shù)據(jù)鏈路層細(xì)分為媒體訪問(wèn)控制(MAC)層和邏輯鏈路控制(LLC)層。MAC層控制網(wǎng)絡(luò)代理如何獲得對(duì)于數(shù)據(jù)的訪問(wèn)以及傳送數(shù)據(jù)的許可。LLC層控制幀同步、流程控制和錯(cuò)誤檢查。
[0041]層1:物理層。該層定義用于裝置的電氣和物理規(guī)格。它在電氣和/或機(jī)械層級(jí)通過(guò)網(wǎng)絡(luò)傳送位流(例如經(jīng)由電、光、或無(wú)線信號(hào))。物理層提供發(fā)送和接收在載體上的數(shù)據(jù)的硬件構(gòu)件,包括界定電纜、卡、電壓電平、定時(shí)和其它物理方面。
[0042]系統(tǒng)概沭
[0043]圖1圖示根據(jù)實(shí)施方案的用于捕獲和分析兩個(gè)或多個(gè)網(wǎng)絡(luò)代理之間的交互的實(shí)例系統(tǒng)。該系統(tǒng)可包括一組一個(gè)或多個(gè)捕獲和分析裝置(例如服務(wù)器)107,其容納和/或執(zhí)行本文所述的各種功能、過(guò)程和/或軟件模塊中的一個(gè)或多個(gè)。另外,裝置107經(jīng)由通信路徑106通信地連接至諸如網(wǎng)絡(luò)交換機(jī)101的裝置。網(wǎng)絡(luò)交換機(jī)101定位在第一網(wǎng)絡(luò)代理102與第二網(wǎng)絡(luò)代理103之間的網(wǎng)絡(luò)路徑104/105上。包括網(wǎng)絡(luò)路徑104/105的網(wǎng)絡(luò)可包括任何類型的網(wǎng)絡(luò),這包括內(nèi)聯(lián)網(wǎng)和/或互聯(lián)網(wǎng),并且網(wǎng)絡(luò)代理102和103可使用任何標(biāo)準(zhǔn)和/或?qū)S袇f(xié)議來(lái)通信。例如,網(wǎng)絡(luò)代理102和103可使用諸如HTTP、安全HTTP(HTTPS)、文件傳送協(xié)議(FTP)及其類似物的傳輸協(xié)議通過(guò)互聯(lián)網(wǎng)彼此通信。
[0044]在實(shí)施方案中,捕獲和分析裝置107可以不是專屬裝置,并且反而可以是利用一個(gè)或多個(gè)服務(wù)器的共享資源的云實(shí)例。應(yīng)理解的是網(wǎng)絡(luò)代理102和103以及捕獲和分析裝置107可包括能夠有線和/或無(wú)線通信的任何類型的計(jì)算裝置,這包括但不限于臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、平板計(jì)算機(jī)、智能電話或其它移動(dòng)電話、服務(wù)器、游戲控制臺(tái)、電視、機(jī)頂盒、電子廣告亭、自動(dòng)柜員機(jī)及其類似物。網(wǎng)絡(luò)代理102、網(wǎng)絡(luò)代理103和/或裝置107還可包括或通信地與一個(gè)或多個(gè)數(shù)據(jù)庫(kù)連接,諸如MySQL、Oracle?、IBM?、Microsoft? SQL、Sybase?, Access?或包括基于云的數(shù)據(jù)庫(kù)實(shí)例的其它類型的數(shù)據(jù)庫(kù)。另外,雖然僅圖示了兩個(gè)代理102和103、一個(gè)交換機(jī)101以及一組捕獲和分析裝置107,但是應(yīng)理解的是網(wǎng)絡(luò)可包括任何數(shù)量的代理、交換機(jī)以及捕獲和分析裝置。
[0045]圖2圖示根據(jù)實(shí)施方案的用于捕獲和分析裝置107的實(shí)例硬件架構(gòu)。內(nèi)部硬件架構(gòu)可包括標(biāo)準(zhǔn)、市售部件。在網(wǎng)絡(luò)代理102與103之間發(fā)送的流量的拷貝或鏡像,其包括網(wǎng)絡(luò)數(shù)據(jù)包,可由網(wǎng)絡(luò)接口控制器(NIC) 201經(jīng)由接口 106(例如1000BASE-T鏈路)從網(wǎng)絡(luò)交換機(jī)101接收。總線控制器203可將數(shù)據(jù)包數(shù)據(jù)從NIC201經(jīng)由總線202 (例如外部控制器接口(PCI)總線)通過(guò)存儲(chǔ)器控制器204傳送至主存儲(chǔ)器205中。
[0046]存儲(chǔ)器控制器204為CPU207提供路徑以經(jīng)由緩沖存儲(chǔ)器206從主存儲(chǔ)器205讀取數(shù)據(jù)并將數(shù)據(jù)寫(xiě)入主存儲(chǔ)器205。CPU207可執(zhí)行包括存儲(chǔ)在主存儲(chǔ)器205中的實(shí)施本文所述的過(guò)程的軟件指令的程序。
[0047]存儲(chǔ)控制器207可經(jīng)由總線210連接至總線控制器203。存儲(chǔ)控制器207可經(jīng)由鏈路208讀取和寫(xiě)入數(shù)據(jù)(例如語(yǔ)義模型)和程序指令至永久存儲(chǔ)裝置209。例如,存儲(chǔ)裝置209可包括商業(yè)一兆兆字節(jié)串行高級(jí)技術(shù)附件(SATA)硬盤(pán),并且鏈路208可包括SATA-1I鏈路。然而,應(yīng)理解的是可使用任何存儲(chǔ)裝置和相關(guān)聯(lián)的接口。
[0048]圖3圖示根據(jù)實(shí)施方案的用于捕獲和分析裝置107的實(shí)例高級(jí)別軟件架構(gòu)。在該實(shí)例中,架構(gòu)包括管理上文所述的物理硬件架構(gòu)的操作系統(tǒng)內(nèi)核301 (例如Linux3.1)和相關(guān)設(shè)備。軟件程序或模塊304,其包括本文所述的捕獲和分析過(guò)程,由操作系統(tǒng)內(nèi)核301拷貝至存儲(chǔ)器中。然后,這些模塊304可由CPU207執(zhí)行以分析和處理所接收的數(shù)據(jù)包,并且產(chǎn)生在網(wǎng)絡(luò)代理102與103之間發(fā)生的操作的語(yǔ)義模型。
[0049]網(wǎng)絡(luò)接口控制器驅(qū)動(dòng)器302控制NIC201并且將網(wǎng)絡(luò)鏈路106上接收的數(shù)據(jù)包引入數(shù)據(jù)包緩沖器303到主存儲(chǔ)器205中。數(shù)據(jù)包過(guò)濾器引擎305可在捕獲和分析模塊304的指引下放棄一些數(shù)據(jù)包。例如,數(shù)據(jù)包過(guò)濾器引擎305可放棄與模塊304的模型建立機(jī)構(gòu)感興趣的特定協(xié)議無(wú)關(guān)的數(shù)據(jù)包,諸如管理流量(例如地址解析協(xié)議(ARP))或者網(wǎng)絡(luò)代理之間的其它廣播或流量而非感興趣的那些。然后,原始數(shù)據(jù)包捕獲模塊306可將所保留的數(shù)據(jù)包拷貝至入口數(shù)據(jù)包緩沖器307由捕獲和分析模塊304使用。
[0050]捕獲和分析模塊304在置于數(shù)據(jù)包緩沖器307中的入口數(shù)據(jù)包流量上執(zhí)行處理308(如本文別處所述)以產(chǎn)生在網(wǎng)絡(luò)代理102與103之間發(fā)生的操作的語(yǔ)義模型。該模型可被遞增地放入模型記錄緩沖器309,并且然后有文件系統(tǒng)驅(qū)動(dòng)器310 (例如在Linux操作系統(tǒng)環(huán)境中的Ext4文件系統(tǒng)驅(qū)動(dòng)器)和存儲(chǔ)控制器驅(qū)動(dòng)器311寫(xiě)入永久存儲(chǔ)裝置209。
[0051]內(nèi)核301可提供定時(shí)設(shè)施312給捕獲和分析模塊304,使其可在處理308期間翻譯緩沖器307中的數(shù)據(jù)包流量。定時(shí)設(shè)施312可包括呈高分辨率(例如微秒或更高)檢索一天的當(dāng)前時(shí)間的機(jī)構(gòu)。模塊304可比較從定時(shí)設(shè)施312檢索的時(shí)間與網(wǎng)絡(luò)接口控制器驅(qū)動(dòng)器302如所述時(shí)間被接收的寫(xiě)入數(shù)據(jù)包的時(shí)間戳。例如,這些時(shí)間戳可用于通過(guò)重組和協(xié)議分析代碼確定何時(shí)所期望的數(shù)據(jù)包被認(rèn)為丟失。
[0052]數(shù)據(jù)包捕獲機(jī)構(gòu)
[0053]在實(shí)施方案中,在網(wǎng)絡(luò)代理102與103之間的數(shù)據(jù)包流量由網(wǎng)絡(luò)反射鏡或交換端口分析器(SPAN)分流器機(jī)構(gòu)拷貝。例如,網(wǎng)絡(luò)交換機(jī)101可置于網(wǎng)絡(luò)代理102與103之間的路徑104/105中,使得由網(wǎng)絡(luò)代理102向網(wǎng)絡(luò)代理103傳遞的所有數(shù)據(jù)包(反之亦然)經(jīng)由通信鏈路104和105通過(guò)交換機(jī)101傳遞。在實(shí)施方案中,網(wǎng)絡(luò)交換機(jī)101可為層2(即數(shù)據(jù)鏈路層)網(wǎng)絡(luò)交換機(jī)。交換機(jī)101可被配置成將分別經(jīng)由網(wǎng)絡(luò)鏈路104和105從網(wǎng)絡(luò)代理102和103接收的所有數(shù)據(jù)包的拷貝經(jīng)由通信鏈路106傳遞至捕獲和分析裝置107。網(wǎng)絡(luò)鏈路104、105和/或106中的每個(gè)可符合電氣與電子工程師協(xié)會(huì)(IEEE)802.3ab(1000BASE-T)以太網(wǎng)標(biāo)準(zhǔn)。
[0054]另外,可提供一個(gè)或多個(gè)檢測(cè)器108,其對(duì)于捕獲和分析裝置107可為本地的(例如在相同機(jī)器上執(zhí)行)或遠(yuǎn)程的(例如在經(jīng)由一個(gè)或多個(gè)網(wǎng)絡(luò)通信地連接至捕獲和分析裝置107的單獨(dú)機(jī)器上執(zhí)行)。檢測(cè)器108可處理捕獲和分析裝置107的輸出。例如,檢測(cè)器108可利用由捕獲和分析裝置107產(chǎn)生的網(wǎng)絡(luò)代理102與103之間的操作的語(yǔ)義描述來(lái)建立一個(gè)或多個(gè)較高級(jí)別模型,這包括多層較高級(jí)別模型和不同類型的較高級(jí)別模型(例如專用于安全應(yīng)用程序、性能應(yīng)用程序和/或其它類型的應(yīng)用程序的模型)。捕獲和分析裝置107的模塊可經(jīng)由一個(gè)或多個(gè)應(yīng)用程序接口(API)與檢測(cè)器108交互。
[0055]圖7圖示根據(jù)實(shí)施方案的在兩個(gè)網(wǎng)絡(luò)代理102與103之間的實(shí)例請(qǐng)求和響應(yīng)交互。在交互中交換的數(shù)據(jù)包可包括以太網(wǎng)報(bào)頭、互聯(lián)網(wǎng)協(xié)議(IP)報(bào)頭和TCP報(bào)頭。請(qǐng)求701可在一個(gè)或多個(gè)數(shù)據(jù)包中包括完整的層7請(qǐng)求有效負(fù)載、可以經(jīng)由鏈路104從網(wǎng)絡(luò)代理102傳遞至交換機(jī)101。請(qǐng)求701可被定址到網(wǎng)絡(luò)代理103。因此,交換機(jī)101在鏈路105上將請(qǐng)求701的拷貝702傳遞至網(wǎng)絡(luò)代理103。然而,交換機(jī)101還在鏈路106上將請(qǐng)求701的拷貝703傳遞至捕獲和分析裝置107。
[0056]網(wǎng)絡(luò)代理103可經(jīng)由鏈路105向網(wǎng)絡(luò)代理102發(fā)送確認(rèn)704。在網(wǎng)絡(luò)代理103與102之間的通信路徑105/104上的交換機(jī)101處接收確認(rèn)704。交換機(jī)101在鏈路104上向網(wǎng)絡(luò)代理102發(fā)送確認(rèn)704的拷貝705,并且還在鏈路106上向捕獲和分析裝置107傳遞確認(rèn)704的拷貝706。確認(rèn)704可包括一個(gè)或多個(gè)數(shù)據(jù)包,其向網(wǎng)絡(luò)代理102指示請(qǐng)求701被接收。
[0057]網(wǎng)絡(luò)代理103可經(jīng)由鏈路105向網(wǎng)絡(luò)代理102發(fā)送響應(yīng)707。在鏈路104上向網(wǎng)絡(luò)代理102發(fā)送響應(yīng)707的拷貝708的交換機(jī)101處接收響應(yīng)707。交換機(jī)101還在鏈路106上向捕獲和分析裝置107傳遞響應(yīng)707的拷貝709。響應(yīng)707包括一個(gè)或多個(gè)數(shù)據(jù)包,其形成請(qǐng)求701的響應(yīng)。
[0058]網(wǎng)絡(luò)代理102可經(jīng)由鏈路104向網(wǎng)絡(luò)代理103發(fā)送確認(rèn)710。在網(wǎng)絡(luò)代理102與103之間的通信路徑104/105上的交換機(jī)101處接收確認(rèn)710。交換機(jī)101在鏈路105上向網(wǎng)絡(luò)代理103發(fā)送確認(rèn)710的拷貝711。交換機(jī)101還在鏈路106上向捕獲和分析裝置107傳遞確認(rèn)710的拷貝712。由網(wǎng)絡(luò)代理103接受的確認(rèn)拷貝711完成開(kāi)始于網(wǎng)絡(luò)代理102傳輸請(qǐng)求701的單個(gè)應(yīng)用程序級(jí)別請(qǐng)求和響應(yīng)循環(huán)。
[0059]圖4圖示根據(jù)實(shí)施方案的用于捕獲數(shù)據(jù)包的實(shí)例過(guò)程。在實(shí)施方案中,在捕獲和分析裝置107種的數(shù)據(jù)包的處理開(kāi)始于經(jīng)由可為以太網(wǎng)鏈路的鏈路106在NIC416或302處接收的來(lái)自網(wǎng)絡(luò)交換機(jī)101的數(shù)據(jù)包。例如,在網(wǎng)絡(luò)鏈路106上使用的電信號(hào)可通過(guò)以太網(wǎng)物理接收器(PHY)401的媒介獨(dú)立接口(MII)解調(diào)。MII/PHY401還可恢復(fù)數(shù)據(jù)和時(shí)鐘信息。所解調(diào)的數(shù)據(jù)和時(shí)鐘信息可作為數(shù)字位流402傳送至網(wǎng)絡(luò)MAC403,其將流分成離散數(shù)據(jù)包并且施加錯(cuò)誤校正代碼以驗(yàn)證數(shù)據(jù)包未在傳輸期間損壞??稍谠撾A段期間放棄損壞的數(shù)據(jù)包。在實(shí)施方案中,網(wǎng)絡(luò)PHY401和MAC403以及其伴隨的接口可由IEEE803.3ab (1000BASE-T)和/或相關(guān)的以太網(wǎng)標(biāo)準(zhǔn)定義,并且可實(shí)施為市售NIC的部分。
[0060]在實(shí)施方案中,在NIC416中的緩沖器引擎405將數(shù)據(jù)從MAC403匯編至數(shù)據(jù)包的表示中,并且將表示存儲(chǔ)在數(shù)據(jù)包緩沖器407中。控制器驅(qū)動(dòng)器409 (其可對(duì)應(yīng)于圖3中的驅(qū)動(dòng)器302)通過(guò)數(shù)據(jù)包過(guò)濾器引擎411傳送存儲(chǔ)在數(shù)據(jù)包緩沖器407中的所接收的數(shù)據(jù)包。數(shù)據(jù)包過(guò)濾器引擎411可包括或利用由程序產(chǎn)生的指令,其從高級(jí)別網(wǎng)絡(luò)描述編譯最佳數(shù)據(jù)包過(guò)濾器。所得數(shù)據(jù)包過(guò)濾器放棄模型建立處理308不感興趣的數(shù)據(jù)包。留下的是TCP/IP數(shù)據(jù)包,其旨在用于網(wǎng)絡(luò)代理感興趣(例如網(wǎng)絡(luò)代理102和103)的接收和/或用于特定TCP端口。過(guò)濾器(例如感興趣的特定代理和/或TCP端口)可由系統(tǒng)的用戶配置。
[0061]在實(shí)施方案中,過(guò)濾器可包括一個(gè)或多個(gè)規(guī)格或標(biāo)準(zhǔn)的組,這可經(jīng)由用戶接口和/或配置文件中的文本行指定。例如,規(guī)格可包括但不限于一個(gè)或多個(gè)IP地址(例如定義為單一或范圍)、一個(gè)或多個(gè)TCP端口號(hào)(例如定義為單一或范圍)和/或一個(gè)或多個(gè)虛擬局域網(wǎng)(VLAN)標(biāo)簽。另外,規(guī)格中的每個(gè)可為正的或負(fù)的。正規(guī)格將保持或允許數(shù)據(jù)包滿足規(guī)格,而負(fù)規(guī)格將放棄或拒絕數(shù)據(jù)包滿足規(guī)格。隱式規(guī)格也可存在。例如,完全空的或非TCP數(shù)據(jù)包可被放棄而無(wú)需建立明確規(guī)格。對(duì)于每個(gè)數(shù)據(jù)包,依序處理規(guī)格組直至其中一個(gè)匹配所考慮的數(shù)據(jù)包。一旦數(shù)據(jù)包匹配規(guī)格中的一個(gè),就執(zhí)行指定動(dòng)作(例如允許或拒絕)。被拒絕的數(shù)據(jù)包被放棄,而被允許的數(shù)據(jù)包被傳送至分析鏈中的下一個(gè)模塊。
[0062]操作系統(tǒng)捕獲機(jī)構(gòu)或設(shè)施413 (例如在Linux操作系統(tǒng)環(huán)境中的AF_PACKET,版本2)可將在第一階過(guò)濾器411后留下的數(shù)據(jù)包拷貝至原始數(shù)據(jù)包緩沖器415中。原始數(shù)據(jù)包緩沖器415可與捕獲和分析地址空間304共享或由其訪問(wèn)。
[0063]數(shù)據(jù)包分析
[0064]由操作系統(tǒng)捕獲機(jī)構(gòu)413置于原始緩沖器415中的數(shù)據(jù)包由駐留在捕獲和分析地址空間304中的程序或模塊處理或分析。在實(shí)施方案中,該分析的結(jié)果是在層7處(即應(yīng)用程序?qū)?的兩個(gè)網(wǎng)絡(luò)代理之間的操作的語(yǔ)義模型。例如,該模型可依據(jù)事件及數(shù)據(jù)庫(kù)客戶端和數(shù)據(jù)庫(kù)服務(wù)器的周圍環(huán)境描述在數(shù)據(jù)庫(kù)客戶端與數(shù)據(jù)庫(kù)服務(wù)器之間的數(shù)據(jù)庫(kù)操作。
[0065]在圖5中所示的實(shí)施方案中,數(shù)據(jù)包在由操作系統(tǒng)捕獲機(jī)構(gòu)413置于原始數(shù)據(jù)包緩沖器415中后由捕獲和分析模塊304處理。第二階數(shù)據(jù)包過(guò)濾器501可用于放棄先前未被內(nèi)核中第一階過(guò)濾器411放棄的非TCP數(shù)據(jù)包。過(guò)濾器501還可放棄未使用或?qū)χ亟M過(guò)程有害但是不可以被第一階過(guò)濾器411輕易去除的TCP控制數(shù)據(jù)包(例如所有標(biāo)志都被設(shè)置的數(shù)據(jù)包)。值得注意的是在實(shí)施方案中,第一階過(guò)濾器411旨在用非常少的狀態(tài)或配置信息運(yùn)行,而第二階過(guò)濾器501具有對(duì)于較高層提供的寬泛實(shí)時(shí)狀態(tài)的訪問(wèn)。
[0066]可為有害的數(shù)據(jù)包的實(shí)例包括指示在TCP狀態(tài)中的異常或不期望的情況的那些。例如,所有控制位都被設(shè)置的“圣誕樹(shù)”數(shù)據(jù)包可使TCP堆疊的內(nèi)部狀態(tài)機(jī)誤譯數(shù)據(jù)包并使用其中的數(shù)據(jù)。該數(shù)據(jù)可潛在隱藏大約同時(shí)接收的適當(dāng)格式化的數(shù)據(jù)包中的攻擊。作為另一個(gè)實(shí)例,有害的數(shù)據(jù)包可包括重復(fù)先前數(shù)據(jù)包的TCP序列空間的數(shù)據(jù)包。將兩組數(shù)據(jù)都發(fā)送用于較高層的處理將使較高層看到無(wú)效數(shù)據(jù)。有害數(shù)據(jù)包的另一個(gè)實(shí)例是具有無(wú)效校驗(yàn)和或長(zhǎng)度字段的數(shù)據(jù)包。這些可由較高層誤譯使其讀取未初始化的存儲(chǔ)空間(例如緩存器過(guò)載類型的攻擊)。作為又一個(gè)實(shí)例,較高層視作不感興趣的數(shù)據(jù)包可為有害的。此類數(shù)據(jù)包可通過(guò)其源/目標(biāo)IP/端口和VLAN元祖來(lái)識(shí)別,并且該識(shí)別動(dòng)態(tài)改變。因?yàn)閷?shí)際上不能在每次較高層將TCP連接識(shí)別為“不感興趣的”時(shí)再編譯特定過(guò)濾器,所以過(guò)濾在可獲得動(dòng)態(tài)狀態(tài)的地方完成。
[0067]在實(shí)施方案中,以太網(wǎng)報(bào)頭解釋器502確定以太網(wǎng)報(bào)頭的末端。然后,以太網(wǎng)報(bào)頭解釋器502可放棄未標(biāo)記為IP單播或VLAN的數(shù)據(jù)包(例如根據(jù)IEEE802.1Q)。例如,多播數(shù)據(jù)包可為不感興趣的并且可以汲取處理高負(fù)載情況所需的資源,從而VLAN標(biāo)記的數(shù)據(jù)包可需要被保持使得可以從其中提取下層“單播”報(bào)頭和其它報(bào)頭以便決定是否應(yīng)將其保持。VLAN報(bào)頭解釋器503可提取VLAN標(biāo)識(shí)符作為最終模型上用于具有VLAN報(bào)頭的數(shù)據(jù)包的標(biāo)示符屬性。所提取的VLAN報(bào)頭可用于關(guān)聯(lián)數(shù)據(jù)包與TCP連接。在該情況下,TCP連接可由源IP、目標(biāo)IP源TCP端口、目標(biāo)TCP端口、VLAN標(biāo)識(shí)符和/或物理接收端口的元組識(shí)另O。使用VLAN標(biāo)識(shí)符和接收端口允許系統(tǒng)區(qū)分在可使用克隆、同等IP配置的不同的虛擬或真實(shí)網(wǎng)絡(luò)上所見(jiàn)的流量。VLAN報(bào)頭解釋器503還可放棄不是IP的任何VLAN標(biāo)記的數(shù)據(jù)包。
[0068]在實(shí)施方案中,IP解釋器和重組器504(其可順應(yīng)請(qǐng)求注解(RFC791))從數(shù)據(jù)包提取源地址和目標(biāo)地址,并且在IP數(shù)據(jù)包緩沖器505中將分片的IP數(shù)據(jù)包的序列重組成單個(gè)IP數(shù)據(jù)包。IP數(shù)據(jù)包片段可保持在重組緩沖器510中直至接收IP數(shù)據(jù)包的任一所有其它片段或發(fā)生超時(shí)。如果發(fā)生超時(shí),那么可放棄IP數(shù)據(jù)包的所有片段或替代地組裝為不完整的并選擇性地標(biāo)記為不完整的。在保持用于重組的數(shù)據(jù)包上的短暫超時(shí)可以確保在具有高數(shù)據(jù)包丟失的分片環(huán)境中保持檢查存儲(chǔ)器使用。
[0069]在IP數(shù)據(jù)包緩沖器505中的完整的IP數(shù)據(jù)包可由TCP報(bào)頭解釋器和流重組器507 (其可順應(yīng)RFC793)處理。TCP報(bào)頭解釋器和流重組器507可將IP數(shù)據(jù)包分類成數(shù)據(jù)流每TCP連接和數(shù)據(jù)方向(例如從代理102至代理103或從代理103至代理102),并且將分類的IP數(shù)據(jù)包存儲(chǔ)在字節(jié)流緩沖器506中。換句話說(shuō),TCP報(bào)頭解釋器和流重組器507可為每個(gè)TCP流方向保持字節(jié)流緩沖器506。失序數(shù)據(jù)可保持在待決數(shù)據(jù)緩沖器511中。在識(shí)別了用于給定TCP流方向的有序數(shù)據(jù)時(shí),其可附接至對(duì)應(yīng)的字節(jié)流緩沖器506。在字節(jié)流緩沖器506中的數(shù)據(jù)保持在每個(gè)特定方向的每個(gè)特定TCP會(huì)話的按序的、持續(xù)的和非重復(fù)的有效負(fù)載數(shù)據(jù)。在按序的TCP數(shù)據(jù)被增加至連接專用字節(jié)流緩沖器506時(shí),可通知集束器(bundler)508。集束器508還在檢測(cè)到(例如從控制數(shù)據(jù)包、從流量方向的改變或從指示預(yù)定時(shí)間段在流上沒(méi)有接收到額外數(shù)據(jù)的超時(shí))消息邊界時(shí)被通知。
[0070]因此,層7前的處理開(kāi)始于原始以太網(wǎng)數(shù)據(jù)包,并且結(jié)束于字節(jié)流緩沖器和描述會(huì)話中的顯著事件的事件流。例如,在TCP會(huì)話中的顯著事件可包括已經(jīng)將按序的TCP數(shù)據(jù)增加至對(duì)應(yīng)于TCP會(huì)話的字節(jié)流緩沖器的指示、在超時(shí)時(shí)期后已經(jīng)沒(méi)有增加額外數(shù)據(jù)的指示或者已經(jīng)接收到關(guān)閉會(huì)話的TCP控制消息的指示。字節(jié)和事件流可傳送至集束器508,其開(kāi)始分析過(guò)程的層7部分。
[0071]應(yīng)用層處理
[0072]A.集束
[0073]“束”是在應(yīng)用層的完整請(qǐng)求消息或完整響應(yīng)消息。集束器508可使用若干策略來(lái)確定束的邊界(例如使用控制數(shù)據(jù)包、數(shù)據(jù)方向或超時(shí))并將數(shù)據(jù)束發(fā)送至協(xié)議分析模塊。例如,邊界確定方法可包括下列中的一個(gè)或多個(gè):
[0074]數(shù)據(jù)方向:從重組器接收的用于單個(gè)會(huì)話的有序數(shù)據(jù)將在例如請(qǐng)求消息與響應(yīng)消息之間的邊界處改變方向。該方向的改變可用于指示消息結(jié)束邊界。例如,方向的改變可用于指示請(qǐng)求消息701的結(jié)束和/或確認(rèn)消息704或響應(yīng)消息707的開(kāi)始。因此,請(qǐng)求和響應(yīng)交互的性質(zhì)可用于在數(shù)據(jù)流中放置標(biāo)記以指示在沒(méi)有完美知識(shí)和捕獲的情況下不能另外被導(dǎo)出的消息邊界(或另外指示消息邊界)。
[0075]重組行動(dòng)超時(shí):在消息結(jié)束時(shí),其中沒(méi)有額外流量立即到來(lái)(例如通常為響應(yīng)),來(lái)自重組器的報(bào)時(shí)信號(hào)或計(jì)時(shí)器的期滿可用于指示消息結(jié)束邊界。例如,接著接受響應(yīng)消息707的數(shù)據(jù)包的超時(shí)的發(fā)生可用于指示響應(yīng)消息707的結(jié)束。
[0076]重組器丟失段:如果信息段丟失,那么超時(shí)可用于指示消息邊界。丟失的消息段可表示應(yīng)從請(qǐng)求或響應(yīng)流的中間與有效負(fù)載一起接收的TCP數(shù)據(jù)包。不完整的消息可被標(biāo)記為不完整。在許多情況下,協(xié)議處理器仍可以從不完整的消息中提取足夠的數(shù)據(jù)來(lái)建立模型。例如,接著接受現(xiàn)有段或丟失段的期望中所得的其它事件的計(jì)時(shí)器的期滿或超時(shí)的發(fā)生可用于指示請(qǐng)求或響應(yīng)消息的結(jié)束。不完整的請(qǐng)求或響應(yīng)消息可被標(biāo)記為不完整。解釋器(例如TNS協(xié)議解釋器601和/或TTC協(xié)議解釋器602)可使用從數(shù)據(jù)包丟失所得的檢測(cè)到的間隙來(lái)確定其是否可以提取數(shù)據(jù),并且可以從其具有的數(shù)據(jù)中提取多少數(shù)據(jù)而無(wú)需接收所有數(shù)據(jù)。
[0077]在實(shí)施方案中,集束器508給應(yīng)用協(xié)議解釋器(例如解釋器601)提供有序單向應(yīng)用程序流量和相關(guān)聯(lián)的描述性數(shù)據(jù)的束。集束器508不需要應(yīng)用協(xié)議規(guī)格的知識(shí),并且如果丟失段或數(shù)據(jù)包,那么可向應(yīng)用協(xié)議解釋器傳送不完整的流量(即具有丟失有序數(shù)據(jù)的一個(gè)或多個(gè)區(qū)域的束)。
[0078]圖8圖示用于集束來(lái)自由內(nèi)核301置于原始數(shù)據(jù)包緩沖器415的原始數(shù)據(jù)包的請(qǐng)求消息和響應(yīng)消息的過(guò)程的實(shí)例。呈現(xiàn)給分析模塊的數(shù)據(jù)包是由交換機(jī)101發(fā)送的那些。(返回參照用于外部數(shù)據(jù)包處理的實(shí)例的圖7的描述。)在圖8中所示的實(shí)例中,第一請(qǐng)求要求連個(gè)有效負(fù)載數(shù)據(jù)包(編號(hào)為1.1和1.2)和三個(gè)響應(yīng)數(shù)據(jù)包(編號(hào)為1.1、1.2和
1.3)。
[0079]在實(shí)施方案中,在圖8中所示的TCP重組階段包括由第二階數(shù)據(jù)包過(guò)濾器501、以太網(wǎng)報(bào)頭解釋器502、VLAN報(bào)頭解釋器503、IP報(bào)頭解釋器和重組器504以及TCP報(bào)頭解釋器和重組器507的處理。示出由TCP重組器507提供給集束器508的請(qǐng)求和響應(yīng)數(shù)據(jù)的箭頭表示字節(jié)流緩沖器506。從集束器508所得的完全請(qǐng)求和響應(yīng)數(shù)據(jù)包括束描述符和緩沖器509。束描述符和緩沖器509給層7協(xié)議解釋(例如在Oracle?專用環(huán)境中的TNS協(xié)議解釋器601)的第一階段提供集束器508的輸出。
[0080]在圖8中所示的消息流程中,接收傳遞自網(wǎng)絡(luò)代理102的請(qǐng)求的第一請(qǐng)求段801和傳遞自網(wǎng)絡(luò)代理103的確認(rèn)(ACK)的第一段802。重組將第一段801的有效負(fù)載呈現(xiàn)為到集束器508的請(qǐng)求數(shù)據(jù)803的流。這種提供的第一段801的有效負(fù)載可在接受ACK802之前提供,或在接受ACK802之后提供,這指示第一請(qǐng)求段801由網(wǎng)絡(luò)代理103成功接收。另外,ACK消息可由重組器使用以短接超時(shí)過(guò)程。例如,如果ACK消息被看見(jiàn)用于沒(méi)有觀察到的有效負(fù)載數(shù)據(jù)包,有可能丟失的數(shù)據(jù)包在捕獲路徑中丟失。在任一情況下,當(dāng)集束器508接收第一請(qǐng)求數(shù)據(jù)803時(shí),還沒(méi)有指示消息是完整的。因此,集束器508將第一請(qǐng)求數(shù)據(jù)803加入隊(duì)列。
[0081]然后,重組器接收來(lái)自網(wǎng)絡(luò)代理102的請(qǐng)求的第二和最終請(qǐng)求段804以及來(lái)自網(wǎng)絡(luò)代理103的對(duì)應(yīng)的ACK805。重組器將該第二請(qǐng)求段804有序附接至道集束器508的當(dāng)前的請(qǐng)求數(shù)據(jù)流,并且給集束器508提供第二請(qǐng)求段804的有效負(fù)載數(shù)據(jù)806。由于集束器508仍沒(méi)有消息是完整的指示,所以集束器508將第二請(qǐng)求數(shù)據(jù)806加入隊(duì)列。換句話說(shuō),集束器508將第二請(qǐng)求數(shù)據(jù)806附接至第一請(qǐng)求數(shù)據(jù)803。
[0082]在所示的實(shí)例中,網(wǎng)絡(luò)代理103為來(lái)自網(wǎng)絡(luò)代理102的請(qǐng)求形成三段響應(yīng)。來(lái)自網(wǎng)絡(luò)代理103的響應(yīng)的第一段807和來(lái)自網(wǎng)絡(luò)代理102的對(duì)應(yīng)的ACK808被接收。重組器給集束器508提供第一響應(yīng)段807的有效負(fù)載數(shù)據(jù)809。集束器508檢測(cè)流量的方向已經(jīng)改變,并且確定其整理的先前的消息束現(xiàn)在完成。因此,集束器508向?qū)?協(xié)議解釋器發(fā)送該消息束810 (即包括請(qǐng)求數(shù)據(jù)803和806的從網(wǎng)絡(luò)代理102到網(wǎng)絡(luò)代理103的完全請(qǐng)求)用于進(jìn)一步分析。
[0083]從網(wǎng)絡(luò)代理103到網(wǎng)絡(luò)代理102的響應(yīng)的額外的兩個(gè)段811和814,以及對(duì)應(yīng)的ACK消息812和815倍接收。第二響應(yīng)段811和第三響應(yīng)段814分別被處理成數(shù)據(jù)流813和816,并且提供給集束器508。集束器508管理第一響應(yīng)數(shù)據(jù)813和第二響應(yīng)數(shù)據(jù)816 (即附接數(shù)據(jù)813和816至數(shù)據(jù)809),但是不將其傳送至層7協(xié)議解釋器。
[0084]接下來(lái),接收從網(wǎng)絡(luò)代理102到網(wǎng)絡(luò)代理103的第二、新的請(qǐng)求的第一段817以及對(duì)應(yīng)的ACK818。重組器向集束器508發(fā)送來(lái)自請(qǐng)求段817的請(qǐng)求數(shù)據(jù)819。集束器508檢測(cè)數(shù)據(jù)傳輸?shù)姆较蛞呀?jīng)改變,并且向?qū)?協(xié)議解釋器發(fā)出對(duì)應(yīng)于第一請(qǐng)求的完整響應(yīng)820 (即包括響應(yīng)數(shù)據(jù)809、813和816)。
[0085]B.應(yīng)用協(xié)議解碼
[0086]表示請(qǐng)求和響應(yīng)的束509由較高級(jí)別協(xié)議處理來(lái)處理以建立在兩個(gè)網(wǎng)絡(luò)代理102與103之間發(fā)生的操作的語(yǔ)義模型。雖然該較高級(jí)別協(xié)議處理在本文中有時(shí)可在Oracle?客戶端-服務(wù)器連接的環(huán)境中描述,但是應(yīng)理解的是該描述僅僅是說(shuō)明性的。本文公開(kāi)的系統(tǒng)和方法可用于或通用于其它應(yīng)用程序以及環(huán)境。
[0087]在專用于Oracle?客戶端-服務(wù)器連接的實(shí)例實(shí)施方案中,可提供交易網(wǎng)絡(luò)服務(wù)(TNS)協(xié)議解釋器601以解包程序調(diào)用和響應(yīng)有效負(fù)載并且異步來(lái)自束509中發(fā)現(xiàn)的TNS包裝結(jié)構(gòu)的消息。TNS是由Oracle?客戶端-服務(wù)器協(xié)議使用的多路復(fù)用和異步消息包裝協(xié)議。應(yīng)理解的是可使用替代或其它解釋器用于其它協(xié)議。例如,Microsoft? SQL使用表格格式數(shù)據(jù)流(TDS)和對(duì)稱多線程處理(SMP)包裝協(xié)議,其可類似于TNS歸納。LDAP、MySQL和Postgresql每個(gè)使用報(bào)頭包裝協(xié)議。另外,HTTP是用于可擴(kuò)展標(biāo)示語(yǔ)言(XML)流量或超文本標(biāo)示語(yǔ)言(HTML)流量的報(bào)頭/包裝協(xié)議。解釋器可以被構(gòu)建用于這些協(xié)議中的任何一個(gè)或多個(gè)并且用作解釋器601的替代物或附加物。
[0088]另外,在實(shí)施方案中,兩項(xiàng)任務(wù)共同(TTC)協(xié)議解碼器或解釋器602可從每個(gè)請(qǐng)求束河響應(yīng)束提取遠(yuǎn)程程序動(dòng)詞、參數(shù)和所得有效負(fù)載。TTC協(xié)議提供在客戶端和服務(wù)器上的不同字符集或格式之間變換的字符集和數(shù)據(jù)類型。
[0089]現(xiàn)在將參考圖9描述協(xié)議解釋器匹配的協(xié)議模板(例如TTC協(xié)議解釋器602匹配的TTC協(xié)議模板)。由協(xié)議解釋器處理的消息由元素901 (例如RPC動(dòng)詞、RPC參數(shù)、RPC結(jié)果等)的序列組成,這由解釋器解碼成數(shù)據(jù)形式910有助于靜安里模型。從元素901到數(shù)據(jù)910的轉(zhuǎn)換由可專用于每個(gè)元素的屬性908和/或909組控制。每個(gè)消息可含有不同數(shù)量的元素。例如,圖9圖示四個(gè)元素902,903,904和905。
[0090]屬性模板的庫(kù)906可由協(xié)議解釋器(例如TNS協(xié)議解釋器601和/或TTC協(xié)議解釋器602)生成用于每個(gè)新協(xié)議會(huì)話。庫(kù)906可使用所考慮的協(xié)議的預(yù)編碼的知識(shí)而生成,并且可被選作屬性模板的較大庫(kù)(例如可用于所有會(huì)話的一個(gè)或多個(gè)協(xié)議)的子集。對(duì)于新發(fā)現(xiàn)或識(shí)別的會(huì)話,模板庫(kù)906最初可由匹配寬泛的協(xié)議消息組的相對(duì)小的模板集填充并且指代跟特定的模板組。在屬性模板庫(kù)中的多個(gè)模板可匹配任何給定消息。因此,在實(shí)施方案中,可在庫(kù)中對(duì)模板排序使得協(xié)議解釋器在較不確切的匹配之前檢查更確切的那些。更確切的匹配比較不確切的匹配將更全面地描述消息。
[0091]在實(shí)施方案中,模板提供所協(xié)商的數(shù)據(jù)類型、RPC選項(xiàng)和客戶端-服務(wù)器架構(gòu)的特性描述。這些特性描述可全部用于解碼特定RPC的各自字段。這在協(xié)議未被完全指定或保密時(shí)或在觀察不到用于會(huì)話的初始協(xié)商時(shí)可以是特別有用的。除此之外,模板匹配可以用于確定連接(例如TCP連接)的哪一側(cè)是客戶端和連接的哪一側(cè)是服務(wù)器、何時(shí)觀察不到通信的開(kāi)始。
[0092]在庫(kù)906中的每個(gè)模板含有一個(gè)或多個(gè)屬性的列表,其可用于消息的兀素(例如RPC請(qǐng)求或響應(yīng)消息)。例如,匹配實(shí)例消息901的模板將施加至消息901的元素902、903、904和905。匹配模板可以用于將消息901解碼成可由模型生成器604使用的數(shù)據(jù)910。在庫(kù)906中的每個(gè)模板還可含有額外模板的一個(gè)或多個(gè)參考或額外模板的列表的參考。
[0093]在實(shí)施方案中,模板可包括一組動(dòng)態(tài)運(yùn)行時(shí)間類別(例如用C++代碼編寫(xiě)的)。模板或“模板參數(shù)(marshaller) ”被配置成從流中拉出數(shù)據(jù)的特定圖案并且構(gòu)成有效數(shù)據(jù)。一個(gè)實(shí)例是字符串模板,其被配置成識(shí)別由一個(gè)字節(jié)長(zhǎng)度字段接著最后的數(shù)據(jù)塊具有零字節(jié)長(zhǎng)度字段的一個(gè)或多個(gè)數(shù)據(jù)塊的字符串。此類模塊可以通過(guò)試圖使用模板將字符串串行化來(lái)測(cè)試。例如,如果在讀取字符串時(shí)解釋器終止試圖讀過(guò)束中可用數(shù)據(jù)的末端,那么模板匹配失敗。然而,應(yīng)理解的是這僅僅是一個(gè)說(shuō)明性的實(shí)例。其它模板可因?yàn)楦?jiǎn)單的原因匹配失敗。例如,如果從不希望將高位以數(shù)字格式設(shè)置在特定字節(jié)位置中,那么可確定如果在特定字節(jié)位置檢測(cè)到高位則被配置成檢測(cè)數(shù)字格式的數(shù)字的模板匹配失敗。
[0094]一個(gè)或多個(gè)可觀察的屬性908 (例如RPC字段類型和常見(jiàn)標(biāo)記)可由元素的直接測(cè)試來(lái)確定。模板907可通過(guò)匹配一個(gè)或多個(gè)其屬性與可觀察的屬性908來(lái)選擇。換句話說(shuō),可比較可觀察的屬性908與庫(kù)906中的一個(gè)或多個(gè)模板的屬性以識(shí)別來(lái)自庫(kù)906的最佳匹配模板907。一旦已經(jīng)基于從元素902觀察的屬性識(shí)別匹配模板907,就可使用模板907推斷其它屬性909。
[0095]圖10圖示可由協(xié)議解釋器(例如TNS協(xié)議解釋器601和/或TTC協(xié)議解釋器602)使用以從模板庫(kù)906找到匹配模板907并且將消息901解碼成一組有用數(shù)據(jù)910的過(guò)程的實(shí)施方案。在處理消息901的開(kāi)始1001處,在庫(kù)906中的所有模板在被考慮的模板組中。協(xié)議解釋器重復(fù)穿過(guò)在庫(kù)906中的模板并且將非匹配模板從進(jìn)一步考慮中去除。因此,在步驟1002中,確定是否留有用于考慮的任何模板。如果是,在步驟1003中選擇先前未考慮的模板。
[0096]每個(gè)模板包括一組可觀察的屬性??捎^察的屬性可為來(lái)自消息901 (例如來(lái)自元素902)的明顯的或可確定的或者已知關(guān)于消息901的那些屬性。隨著在步驟1003中選擇每個(gè)新的模板用于考慮,可將該模板的每個(gè)屬性置于針對(duì)消息901檢查或觀察的屬性組中。這些屬性可包括推斷的屬性,即還沒(méi)有從消息901確定的或先前已知關(guān)于消息901而無(wú)需首先識(shí)別包括推斷的屬性的模板的屬性。在步驟1004,確定是否留有要檢查的任何屬性。如果是,在步驟1005選擇未檢查的屬性。
[0097]模板指示模板內(nèi)的每個(gè)屬性施用于消息的哪一個(gè)元素。在步驟1006處,在步驟1005中所選擇的屬性施用于的元素的開(kāi)始位于消息901中。元素的開(kāi)始可通過(guò)使用來(lái)自所選擇的模板的先前驗(yàn)證的可觀察的或推斷的屬性來(lái)定位。例如,先前元素的尺寸可為推斷的活觀察的屬性,并且該尺寸可用于定位消息中的下一個(gè)元素。
[0098]在步驟1007中,針對(duì)定位的元素(例如元素902)檢查所選擇的屬性(例如屬性911)。如果該檢查成功(例如定位的元素滿足或?qū)?yīng)于所選擇的屬性),那么選擇和檢查再所選擇的模板中的下一個(gè)可觀察的屬性。步驟1004、1005、1006和1007的過(guò)程可重復(fù)直至已經(jīng)檢查所有可觀察的屬性。
[0099]如果在步驟1007中針對(duì)消息901的元素的屬性檢查失敗,那么過(guò)程可返回至步驟1002。該過(guò)程可重復(fù)直至已經(jīng)檢查再會(huì)話的庫(kù)906中的所有模板,和/或直至另外確定沒(méi)有必須檢查的模板。例如,如果元素不存在(例如由于數(shù)據(jù)包丟失,或由于模板不是消息901的適當(dāng)匹配)或如果元素不適合屬性的形式(例如數(shù)據(jù)類型或值范圍),那么檢查可為不成功的。此外,如果沒(méi)有找到針對(duì)消息901成功檢查的庫(kù)模板,那么可在步驟1008中將消息901標(biāo)記為完全不可解碼的。另一方面,如果在模板中的所有可觀察的和/或推斷的屬性針對(duì)消息901成功檢查,那么在步驟1009中將模板增加至一組匹配的模板或?qū)⒛0宓膶傩栽黾又烈唤M屬性。
[0100]如果在步驟1009中基于所匹配的屬性選擇模板用于匹配模板組,那么在步驟1010中確定所選擇的模板是否含有參考額外的一個(gè)或多個(gè)模板的組的推斷的屬性。例如,該額外的一個(gè)或多個(gè)模板的組可包括更特定的模板。在步驟1011中將額外的一個(gè)或多個(gè)模板的組增加至模板庫(kù)906用于會(huì)話,并且消息901的處理在步驟1002中基于補(bǔ)充模板庫(kù)906繼續(xù)。
[0101]一旦已經(jīng)相對(duì)于消息901的元素考慮了在模板庫(kù)906中的所有模板包括在步驟1011中增加的任何參考的模板,就在步驟1012中使用一個(gè)或多個(gè)匹配的模板解碼消息901。在步驟1012中,可通過(guò)施加從所選擇的模板907到消息901的元素(例如元素902、903,904和905)的所有屬性(例如可觀察的屬性908和推斷的屬性909)將消息901解碼成數(shù)據(jù)910。以此方式,在消息901中找到的可觀察的屬性908的圖案通過(guò)匹配可觀察的屬性908與模板庫(kù)906中的模板(可觀察的和推斷的屬性都比較)得到推斷屬性909的組的識(shí)別。
[0102]所有這些屬性,即可觀察的屬性908和推斷的屬性909,在步驟1012中一起施加至消息901以在步驟1013中產(chǎn)生解碼的消息。例如,在步驟1012中用于解碼消息901的元素902的過(guò)程包括將組合的可觀察的屬性(例如屬性911和912)和推斷的屬性(例如屬性913)施加至元素902以產(chǎn)生數(shù)據(jù)914。消息901的其它元素(即元素903、904和905)可以類似方式解碼。
[0103]屬性的每個(gè)類型可表示或指示其自身形式的轉(zhuǎn)換。作為說(shuō)明性、非限制性實(shí)例,在Oracle? TTC協(xié)議解釋的環(huán)境中,可應(yīng)用的屬性的一些實(shí)例包括基本類型的數(shù)據(jù)(例如字符串、數(shù)字、日期、間隔等)、值的可接受的范圍、特定值或位模式(例如操作代碼)、值的動(dòng)態(tài)范圍(例如需要多少位來(lái)表示全范圍的值)、可在消息中包括多少填充位及其可能的值和位置、值的編碼(例如字節(jié)順序、字符集、位寬度等)和/或值的內(nèi)部結(jié)構(gòu)(例如具有單個(gè)長(zhǎng)度的簡(jiǎn)單字符陣列、在每個(gè)字符之間具有長(zhǎng)度字段的字符組等)。
[0104]消息的一些元素可含有不感興趣的大量數(shù)據(jù)。因此,在實(shí)施方案中,在步驟1012中從元素到數(shù)據(jù)的轉(zhuǎn)換(例如從元素902到數(shù)據(jù)914)可包括省略或忽略一些或所有實(shí)際數(shù)據(jù),僅留下數(shù)據(jù)的描述(例如所選擇的屬性)用于建立模型。集束機(jī)構(gòu)(在本文別處更詳細(xì)描述)確保高級(jí)別消息邊界是可辨別的,即使這樣跳過(guò)或忽略了消息的部分。
[0105]在實(shí)施方案中,用于解碼消息的模板庫(kù)906持續(xù)以每個(gè)會(huì)話為基礎(chǔ)。這允許在會(huì)話中的稍早的消息通知會(huì)話中的稍后的消息解碼。例如,該特征在解碼初始連接設(shè)置消息丟失的會(huì)話中的消息中可為特別重要的。
[0106]雖然在圖6中所示的實(shí)施方案中使用TNS協(xié)議解釋器601和TTC協(xié)議解釋其602,但是應(yīng)理解的是可根據(jù)被解釋的具體協(xié)議使用不同的解釋器(例如用于不是TNS和/或TTC的協(xié)議)附加至或取代所示的解釋器和/或可使用不同數(shù)量的解釋器(例如一個(gè)、兩個(gè)、三個(gè)、四個(gè)等)。
[0107]在實(shí)施方案中,可將從TNS協(xié)議解釋器601和/或TTC協(xié)議解釋器602或者在其它的情況下從一個(gè)或多個(gè)其它解釋器提取的數(shù)據(jù)傳送至操作過(guò)濾器603。操作過(guò)濾器603可使用應(yīng)用程序級(jí)別語(yǔ)義數(shù)據(jù)來(lái)過(guò)濾不感興趣的操作。感興趣的操作或不感興趣的操作可由用戶定義或配置。作為說(shuō)明性的實(shí)例,應(yīng)用程序級(jí)別語(yǔ)義數(shù)據(jù)可包括數(shù)據(jù)庫(kù)的服務(wù)名稱。例如,稱為CRMPR0D和CRMDEV的兩個(gè)數(shù)據(jù)庫(kù)實(shí)例可在相同的服務(wù)器上呈現(xiàn)或另外可從相同的服務(wù)器獲得并使用相同的TCP端口(例如端口 1521)用于RPC流量。用戶可指定操作僅包括感興趣的CRMPR0D或操作包括不感興趣的CRMDEV。在任一情況下,操作過(guò)濾器603可在模型生成器604分析之前考慮過(guò)濾包括CRMDEV的操作。
[0108]在引致模型生成器604的任何解釋器或過(guò)濾器階段(例如階段601、602和/或603),處理會(huì)話中的束或束組可被延遲,這留下成隊(duì)列的束直至接收用于會(huì)話的新束或事件。該機(jī)構(gòu)可在來(lái)自隨后束的信息可被任何階段或模塊需要以解釋稍早的束時(shí)使用。例如,TTC協(xié)議解釋器602可使用該排隊(duì)機(jī)構(gòu)來(lái)延遲會(huì)話中不可解碼的消息的處理直至其模板庫(kù)更精確或發(fā)達(dá)。另外,模型生成器604可使用該排隊(duì)機(jī)構(gòu)來(lái)保持束同時(shí)試圖確定連接的哪一側(cè)是服務(wù)器和連接的哪一側(cè)是客戶端。
[0109]語(yǔ)義流暈?zāi)P?br> [0110]再次參照?qǐng)D6,模型生成器604使用由一個(gè)或多個(gè)協(xié)議解釋器產(chǎn)生的數(shù)據(jù)和事件流(例如TNS協(xié)議解釋器601和TTC協(xié)議解釋器602)-并且在實(shí)施方案中由操作過(guò)濾器603過(guò)濾-以建立在網(wǎng)絡(luò)代理102與網(wǎng)絡(luò)代理103之間發(fā)生的操作的抽象語(yǔ)義流量模型605。模型605可包括關(guān)于單個(gè)會(huì)話(例如數(shù)據(jù)庫(kù)會(huì)話)的動(dòng)詞和支持?jǐn)?shù)據(jù)序列。模型605保持用于每個(gè)會(huì)話和業(yè)務(wù)的狀態(tài)的集合,并且描述施加至該狀態(tài)的操作序列。
[0111]其它模型,包括多個(gè)層的模型,可例如通過(guò)檢測(cè)器108從語(yǔ)義流量模型605建立。這些較高級(jí)別模型的細(xì)節(jié)可專用于被建立以使用模型605的數(shù)據(jù)的分析引擎,并且可基于將使用模型605的應(yīng)用程序的目的變化。換句話說(shuō),不同的用戶可根據(jù)手頭的任務(wù)建立不同的較高級(jí)別模型。例如,對(duì)于安全性應(yīng)用,較高級(jí)別模型可包括結(jié)構(gòu)化的和參數(shù)的數(shù)據(jù),其描述應(yīng)用程序的正常行為并暴露可表示攻擊的無(wú)關(guān)操作。作為另一個(gè)實(shí)例,對(duì)于性能應(yīng)用,較高級(jí)別模型可包括描述動(dòng)詞及其參數(shù)的定時(shí)和尺寸的數(shù)據(jù)。作為又一個(gè)實(shí)例,數(shù)據(jù)庫(kù)防火墻可建立描述SQL語(yǔ)句及其周圍語(yǔ)義的執(zhí)行的較高級(jí)別模型。web應(yīng)用防火墻(WAF)或類似WAF的系統(tǒng)可從模型605建立示出統(tǒng)一資源標(biāo)識(shí)符(URI)和POST參數(shù)的較高級(jí)別模型。
[0112]模型605可在主存儲(chǔ)器205和/或緩存存儲(chǔ)器206中建立,并且由文件系統(tǒng)驅(qū)動(dòng)器310和存儲(chǔ)控制器驅(qū)動(dòng)器311 (例如經(jīng)由存儲(chǔ)器控制器210、總線控制器203和存儲(chǔ)控制器207)寫(xiě)至永久存儲(chǔ)裝置209。具體來(lái)說(shuō),在實(shí)施方案中,模型605的數(shù)據(jù)(例如事件和元數(shù)據(jù))可排隊(duì)至模型記錄緩沖器606,這可被寫(xiě)至永久存儲(chǔ)裝置209。
[0113]早模型記錄緩沖器606中排隊(duì)的模型605的數(shù)據(jù)可包括輸入API的一側(cè)的饋送以由特定較高級(jí)別應(yīng)用使用(例如檢測(cè)器108),例如提供API以構(gòu)建較高級(jí)別模型。例如,對(duì)于安全性應(yīng)用,在監(jiān)視會(huì)話中使用的RPC和在RPC中使用的參數(shù)、和/或所使用的SQL操作和SQL操作修改的行和列可經(jīng)由模型記錄緩沖器606從模型605經(jīng)由安全性應(yīng)用定義的API提供給安全性應(yīng)用。對(duì)于性能應(yīng)用,在監(jiān)視會(huì)話中使用的操作的類型可經(jīng)由模型記錄緩沖器606從模型605經(jīng)由性能應(yīng)用定義的API提供給性能應(yīng)用?;蛘?,應(yīng)理解的是捕獲和分析模塊304可定義API和一個(gè)或多個(gè)應(yīng)用(例如可包括安全性應(yīng)用、性能應(yīng)用和/或其它類型應(yīng)用的檢測(cè)器108)、可經(jīng)由捕獲和分析模塊304定義的API訪問(wèn)模型605的數(shù)據(jù)(例如存儲(chǔ)在模型記錄緩沖器606中)。
[0114]
[0115]所公開(kāi)的系統(tǒng)和方法可用于會(huì)話同步的任何應(yīng)用程序級(jí)別協(xié)議。此類協(xié)議包括但不限于 Oracle?、Microsoft? SQL、Sybase?、IBM? DB2、PostgreSQL、MySQL、MongoDB 和其它數(shù)據(jù)庫(kù)使用的數(shù)據(jù)庫(kù)客戶端-服務(wù)器協(xié)議。此類協(xié)議還包括非數(shù)據(jù)庫(kù)服務(wù)器協(xié)議,諸如HTTP、HTTPS、網(wǎng)絡(luò)文件系統(tǒng)(NFS)、蘋(píng)果文件協(xié)議(AFP)、服務(wù)器信息塊(SMB)、域名系統(tǒng)(DNS)、簡(jiǎn)單郵件傳輸協(xié)議(SMTP)、互聯(lián)網(wǎng)信息訪問(wèn)協(xié)議(IMAP)、郵局協(xié)議(POP)和自定義或?qū)S袘?yīng)用程序協(xié)議。另外,應(yīng)用程序協(xié)議可通過(guò)傳輸機(jī)構(gòu)運(yùn)載除了通過(guò)IP版本4 (IPv4)的TCP,這包括但不限于通過(guò)IPv4的用戶數(shù)據(jù)包協(xié)議(UDP)、通過(guò)IP版本6 (IPv6)的UDP、通過(guò)IPv6的TCP、通過(guò)IPv4的遠(yuǎn)程桌面協(xié)議(RDP)、互聯(lián)網(wǎng)數(shù)據(jù)包交換/按序數(shù)據(jù)包交換(IPX/SPX)、通過(guò)IPv4的互聯(lián)網(wǎng)控制報(bào)文協(xié)議(ICMP)和通過(guò)IPv6的ICMP。協(xié)議可以任何組合被運(yùn)載通過(guò)布置在非非統(tǒng)一內(nèi)存訪問(wèn)(NUMA)和統(tǒng)一內(nèi)存訪問(wèn)(UMA)架構(gòu)上的層2橋接器、網(wǎng)絡(luò)地址交換(NAT)裝置、虛擬專用網(wǎng)絡(luò)(VPN)通道、VLAN技術(shù)和存儲(chǔ)器中進(jìn)程間通信(IPC)。
[0116]所公開(kāi)的系統(tǒng)和方法還可用于任何基于數(shù)據(jù)包或基于流的物理層,這包括在相同系統(tǒng)中的此類層的任意組合。這些包括通過(guò)任何支持的媒介的物理傳輸,這包括但不限于光纖分布式數(shù)據(jù)接口(FDDI)、令牌環(huán)、100兆位以太網(wǎng)、通過(guò)同軸電纜的10兆位以太網(wǎng)、10千兆位以太網(wǎng)和數(shù)字信號(hào)I(DSl)/數(shù)字信號(hào)3(DS3)信號(hào)傳遞。
[0117]所公開(kāi)的系統(tǒng)和方法可利用可以制造在網(wǎng)絡(luò)代理之間的流量的拷貝并且將這些拷貝提供給所公開(kāi)的捕獲和分析裝置107或模塊304的任何捕獲機(jī)構(gòu)。此類捕獲機(jī)構(gòu)包括但不限于電平分流器、MII代理分流器、在網(wǎng)絡(luò)代理之間路由流量并透明捕獲所路由的流量的NAT裝置、可為虛擬機(jī)(VM)管理器或管理程序的部分的虛擬SPAN或鏡像設(shè)施、在任何涉及的網(wǎng)絡(luò)代理上運(yùn)行的TCP或IPC代理和先前從存儲(chǔ)裝置捕獲的流量(例如記錄)的回放
>j-U ρ?α裝直。
[0118]所公開(kāi)的系統(tǒng)和方法不受限于為一對(duì)網(wǎng)絡(luò)代理分析流量和建立模型。相反,該系統(tǒng)和方法能夠同時(shí)監(jiān)視許多對(duì)網(wǎng)絡(luò)代理之間的許多會(huì)話。此外,可同時(shí)從多個(gè)捕獲機(jī)構(gòu)實(shí)時(shí)或從回放中捕獲流量。該系統(tǒng)和方法可基于傳輸?shù)刂?,以及諸如MAC地址、IP地址、TCP端口編號(hào)、VLAN標(biāo)簽、應(yīng)用程序?qū)犹囟?biāo)識(shí)符(例如服務(wù)名稱、用于Oracle?協(xié)議的SID等)和/或物理入口端口標(biāo)簽的其它屬性,在網(wǎng)絡(luò)代理之間進(jìn)行區(qū)分。
[0119]應(yīng)理解的是捕獲和分析裝置107和/或鏡像分流器可完全在VM環(huán)境中執(zhí)行的軟件中實(shí)施。該系統(tǒng)的部件-包括但不限于捕獲裝置或機(jī)構(gòu)-可以分布的方式在多個(gè)虛擬或物理設(shè)備和/或操作系統(tǒng)過(guò)程或驅(qū)動(dòng)器上運(yùn)行。此外,該系統(tǒng)和方法可在支持基本網(wǎng)絡(luò)和文件系統(tǒng)能力的任何操作系統(tǒng)上實(shí)施?;蛘撸撓到y(tǒng)和方法可在物理或虛擬裝置上實(shí)施而無(wú)需操作系統(tǒng)(例如將所需的硬件驅(qū)動(dòng)器并入應(yīng)用程序,這體現(xiàn)了系統(tǒng)和方法本身)。
[0120]不同的硬件架構(gòu)可用作鏡像分流器或捕獲和分析裝置107的基礎(chǔ)。這些架構(gòu)包括但不限于多CPU核系統(tǒng)和支持系統(tǒng)的性能要求的任何支持的網(wǎng)絡(luò)或存儲(chǔ)外圍設(shè)備和控制器。任何存儲(chǔ)的程序或CPU架構(gòu)(例如哈佛CPU架構(gòu))可支持所公開(kāi)的系統(tǒng)和方法。
[0121]本文所述的重組和協(xié)議解碼或解釋系統(tǒng)和方法可用與所述不同的分層來(lái)實(shí)施。例如,以太網(wǎng)、VLAN、IP和/或TCP重組模塊可為單個(gè)模塊或?qū)嶓w,并且可不支持諸如IP片段或VLAN報(bào)頭分析的項(xiàng)目。重組器可使用控制標(biāo)志(例如ACK、“完成”(FIN)、“復(fù)位”(RST)等)以幫助確定消息邊界和其它異常條件。
[0122]語(yǔ)義模型605可存儲(chǔ)在不同存儲(chǔ)架構(gòu)的永久存儲(chǔ)上。此類存儲(chǔ)架構(gòu)包括但不限于網(wǎng)絡(luò)文件系統(tǒng)、存儲(chǔ)區(qū)域網(wǎng)(SAN)存儲(chǔ)、獨(dú)立磁盤(pán)冗余陣列(RAID)存儲(chǔ)和/或閃速存儲(chǔ)器?;蛘?,模型605可完全不存儲(chǔ)在永久存儲(chǔ)中。相反,模型605可由終極、目標(biāo)應(yīng)用程序消耗(例如經(jīng)由API)并且被放棄。
[0123]應(yīng)理解的是語(yǔ)義模型605的目標(biāo)應(yīng)用程序可使用模型605的流量以執(zhí)行除了本文別處所論述的那些任務(wù)之外的其它任務(wù)。此類任務(wù)可包括但不限于通知塊代理何時(shí)保持和何時(shí)釋放流量流過(guò)捕獲和分析裝置107使其類似于入侵防御系統(tǒng)(IPS),并且用作應(yīng)用程序級(jí)別代理并修改或局部滿足用于性能或安全性目的的操作(例如實(shí)施數(shù)據(jù)庫(kù)加速計(jì))。
[0124]所公開(kāi)的系統(tǒng)和方法可處理極端的情況。此類情況可包括但不限于由于所使用的捕獲架構(gòu)接收到的完美的多個(gè)流量拷貝、在一對(duì)網(wǎng)絡(luò)代理之間完全丟失一個(gè)方向上的流量以及新版本的應(yīng)用程序協(xié)議完全未被指定。
[0125]在實(shí)施方案中,可存在講數(shù)據(jù)、通知、指示或其它信息“反向”推送回分析鏈的通信信道。此類信道可包括但不限于從TTC層到TNS層關(guān)于消息邊界的通知或異步信號(hào)通知、和/或從TNS協(xié)議解釋器601到集束器508和/或重組器507和/或506以消除確定消息結(jié)束所需的超時(shí)的消息(例如到集束器508或者重組器507或506的消息包括已經(jīng)確定消息結(jié)束的指示)。此類信道可被實(shí)施以允許模塊(例如解釋器、過(guò)濾器等)進(jìn)一步沿著分析鏈“監(jiān)看”數(shù)據(jù)并且協(xié)助分析鏈中較早的模塊。例如,由分析鏈中稍后的模塊提供給較早的模塊的該協(xié)助可包括確定消息邊界。
[0126]在實(shí)施方案中,在分析期間,集束器508和/或重組器506和507中的一個(gè)或兩個(gè)都可省略對(duì)于應(yīng)用程序?qū)訜o(wú)用的數(shù)據(jù)塊。所省略的數(shù)據(jù)在一些實(shí)例中可為明顯的,并且可包括但不限于大量原始數(shù)據(jù)和結(jié)合的參數(shù)。例如,可省略或截取手頭的應(yīng)用程序不需要的所有數(shù)據(jù)。所省了的數(shù)據(jù)可為預(yù)定的(例如通過(guò)存儲(chǔ)在配置文件中的用戶定義的參數(shù))。例如,對(duì)于不處理返回的行數(shù)據(jù)的內(nèi)容的數(shù)據(jù)庫(kù)防火墻,應(yīng)用程序可省略所得行有效負(fù)載和/或所有參數(shù)數(shù)據(jù)。
[0127]在實(shí)施方案中,集束器508和/或重組器506和507中的一個(gè)或兩個(gè)都可實(shí)施流式協(xié)議使得數(shù)據(jù)可被傳送至協(xié)議解釋器而無(wú)需緩沖數(shù)據(jù)或完全緩沖數(shù)據(jù)。
[0128]用于協(xié)議消息元素的屬性,諸如TTC協(xié)議消息元素,可直接從消息固有的線索或從其它線索推斷。這些其它線索可包括但不限于包括在交互中的網(wǎng)絡(luò)代理的已知架構(gòu)和/或版本編號(hào)。例如,這些架構(gòu)和/或版本編號(hào)可經(jīng)由來(lái)自先前消息或會(huì)話的配置或緩存數(shù)據(jù)得知。
[0129]在實(shí)施方案中,搜索屬性元素、諸如TTC屬性元素,可被省略用于一個(gè)或多個(gè)元素的子集。例如,在實(shí)施方案中,如果從連接建立協(xié)議的稍早部分提供的線索指示某些模板是不需要的,那么其可應(yīng)為性能的原因被從考慮中排除。作為說(shuō)明性實(shí)例,某些RPC結(jié)構(gòu)不可在給定版本的Oracle?客戶端庫(kù)之后使用。因此,如果連接建立確定正在使用較新的庫(kù)版本,那么解釋器可以避免試圖匹配僅僅支持較老的庫(kù)版本的任何模板。另外,可緩存搜索屬性元素的結(jié)構(gòu)以改進(jìn)性能。
[0130]每個(gè)會(huì)話模板庫(kù)906的產(chǎn)生可由相關(guān)會(huì)話的結(jié)果通知。例如,如果選擇模板庫(kù)用于從客戶端A到服務(wù)器B的第一連接,該先前選擇的庫(kù)可再用作從客戶端A到服務(wù)器B的第二和隨后連接的起始點(diǎn),因?yàn)榇嬖诤艽罂赡艿诙B接與第一連接來(lái)自相同的應(yīng)用程序。此外,可基于即時(shí)協(xié)議消息之外的屬性,諸如TNS協(xié)議報(bào)頭、配置輸入(例如由用戶手動(dòng)定義)、IP報(bào)頭字段、行或結(jié)合有效負(fù)載數(shù)據(jù)、TCP報(bào)頭字段、傳輸層報(bào)頭字段等,將協(xié)議屬性模板不包括或包括在庫(kù)906中。
[0131 ] 在實(shí)施方案中,除了本文別處所述的方法之外的額外或替代的啟發(fā)式方法可用于確定用于給定消息的數(shù)據(jù)元素的屬性中的至少一些和/或在特定會(huì)話范圍中的一組模板。例如,從會(huì)話設(shè)置協(xié)商獲取的信息可用于直接確定一個(gè)或多個(gè)屬性。例如,用于給定服務(wù)器版本編號(hào)或客戶端庫(kù)版本和服務(wù)器類型的模板的“書(shū)冊(cè)”可用于提供模板庫(kù)搜索的起始點(diǎn)。搜索模板的所有可能組合的時(shí)間可以是明顯的。因此,減少搜索空間可以是有價(jià)值的,例如以改進(jìn)性能。另外,所公開(kāi)的集束機(jī)構(gòu)可為通用的并用于除了本文別處所述的目的的其它目的。例如,集束機(jī)構(gòu)可用于確定TNS標(biāo)記消息的語(yǔ)義、確定在模型生成器中的性能相關(guān)的統(tǒng)計(jì)、解碼行數(shù)據(jù)、描述行數(shù)據(jù)特性等。
[0132]實(shí)例處理裝置
[0133]圖11是圖示可與本文所述的各種實(shí)施方案結(jié)合使用的實(shí)例有線或無(wú)線系統(tǒng)550的框圖。例如,系統(tǒng)550可用作或結(jié)合上文所述的一個(gè)或多個(gè)機(jī)構(gòu)或過(guò)程,并且可表示捕獲和分析裝置107、網(wǎng)絡(luò)代理102和/或103、網(wǎng)絡(luò)交換機(jī)101和/或本文所述的其它裝置的部件。系統(tǒng)550可以是服務(wù)器或任何常規(guī)個(gè)人計(jì)算機(jī)、或者能夠有線或無(wú)線數(shù)據(jù)通信的任何其它處理器啟用的裝置。如對(duì)于本領(lǐng)域的那些技術(shù)人員來(lái)說(shuō)將是明顯的,還可使用其它計(jì)算機(jī)系哦太難搞和/或架構(gòu)。
[0134]系統(tǒng)550優(yōu)選地包括一個(gè)或多個(gè)處理器,諸如處理器560。額外的處理器可被提供,諸如管理輸入/輸出的輔助處理器、執(zhí)行浮點(diǎn)數(shù)學(xué)運(yùn)算的輔助處理器、具有適合快速執(zhí)行信號(hào)處理算法的架構(gòu)的專用微處理器(例如數(shù)字信號(hào)處理器)、從屬于主處理系統(tǒng)的從處理器(例如后端處理器)、用于多處理器系統(tǒng)的額外的微處理器或控制器或協(xié)處理器。此類輔助處理器可謂離散的處理器或可與處理器560集成??膳c系統(tǒng)550 —起使用的處理器的實(shí)例包括但不限于Pentium?處理器、Core ι7?處理器和Xeon?處理器,所有這些可從加利福尼亞圣克拉拉的英特爾公司獲得。
[0135]處理器560優(yōu)選連接至通信總線555。通信總線555可包括用于促進(jìn)在系統(tǒng)550的存儲(chǔ)與其它外圍部件之間的信息傳送的數(shù)據(jù)信道。通信總線555還可提供用于與處理器560通信的一組信號(hào)、包括數(shù)據(jù)總線、地址總線和控制總線(未示出)。通信總線555可包括任何標(biāo)準(zhǔn)或非標(biāo)準(zhǔn)總線架構(gòu),諸如例如符合工業(yè)標(biāo)準(zhǔn)架構(gòu)(ISA)的總線架構(gòu)、擴(kuò)展工業(yè)標(biāo)準(zhǔn)架構(gòu)(EISA)、微通道架構(gòu)(MCA)、外圍設(shè)備互連(PCI)本地總線、或由電器和電子工程師協(xié)會(huì)(IEEE)公布的標(biāo)準(zhǔn)包括IEEE488通用接口總線(GPIB)、IEEE696/S-100及其類似物。
[0136]系統(tǒng)550優(yōu)選包括主存儲(chǔ)器565并且還可包括次存儲(chǔ)器570。主存儲(chǔ)器565提供存儲(chǔ)的指令和數(shù)據(jù)用于在處理器560上執(zhí)行的程序,諸如上文所論述的一個(gè)或多個(gè)功能和/或模塊。應(yīng)理解的是存儲(chǔ)在存儲(chǔ)器中并有處理器560執(zhí)行的程序可根據(jù)任何適合的語(yǔ)言(包括但不限于 C/C++、Java、JavaScript、Perl、Visual Basic、.NET 及其類似物)來(lái)編寫(xiě)和/或編譯。主存儲(chǔ)器565通常為基于半導(dǎo)體的存儲(chǔ)器,諸如動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(DRAM)和/或固態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(SRAM)。其它基于半導(dǎo)體的存儲(chǔ)器類型包括,例如同步動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(SDRAM)、存儲(chǔ)器總線式動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(RDRAM)、鐵電隨機(jī)訪問(wèn)存儲(chǔ)器(FRAM)及其類似物,這包括只讀存儲(chǔ)器(ROM)。
[0137]次存儲(chǔ)器570可選地包括內(nèi)部存儲(chǔ)器575和/或可移動(dòng)介質(zhì)580,例如軟盤(pán)驅(qū)動(dòng)器、磁盤(pán)驅(qū)動(dòng)器、光盤(pán)(⑶)驅(qū)動(dòng)器、數(shù)字通用光盤(pán)(DVD)驅(qū)動(dòng)器、其它光學(xué)驅(qū)動(dòng)器、閃存驅(qū)動(dòng)器等??梢苿?dòng)介質(zhì)580以熟知的方式讀取和/或?qū)懭?。例如,可移?dòng)存儲(chǔ)介質(zhì)580可為軟盤(pán)、磁帶、⑶、DVD、SD卡等。
[0138]可移動(dòng)存儲(chǔ)介質(zhì)580是非瞬時(shí)性計(jì)算機(jī)可讀介質(zhì),其上具有存儲(chǔ)的計(jì)算機(jī)可執(zhí)行代碼(即軟件)和/或數(shù)據(jù)。存儲(chǔ)在可移動(dòng)存儲(chǔ)介質(zhì)580上的計(jì)算機(jī)軟件或數(shù)據(jù)被讀入系哦太難搞550用于由處理器560執(zhí)行。
[0139]在替代實(shí)施方案中,次存儲(chǔ)器570可包括其它類似構(gòu)件用于允許將計(jì)算機(jī)程序或其它數(shù)據(jù)或指令加載至系統(tǒng)550。例如,此類構(gòu)件可包括外部存儲(chǔ)介質(zhì)595和接口 590。外部存儲(chǔ)介質(zhì)595的實(shí)例可包括外部硬盤(pán)驅(qū)動(dòng)器或外部光學(xué)驅(qū)動(dòng)器、或/和外部磁光驅(qū)動(dòng)器。
[0140]次存儲(chǔ)器570的其它實(shí)例可包括基于半導(dǎo)體的存儲(chǔ)器,諸如可編程的只讀存儲(chǔ)器(PROM)、可擦可編程只讀存儲(chǔ)器(EPROM)、電可擦只讀存儲(chǔ)器(EEPROM)或閃速存儲(chǔ)器(類似于EEPROM的分塊的存儲(chǔ)器)。還可包括任何其它可移動(dòng)存儲(chǔ)媒介580和通信接口 590,這允許將軟件和數(shù)據(jù)從外部媒介595傳送系統(tǒng)550。
[0141]系統(tǒng)550可包括通信接口 590。通信接口 590允許軟件和數(shù)據(jù)在系統(tǒng)550與外部裝置(例如打印機(jī))、網(wǎng)絡(luò)或信息源之間傳送。例如,可經(jīng)由通信接口 590將計(jì)算機(jī)軟件或可執(zhí)行的代碼從網(wǎng)絡(luò)服務(wù)器傳送至系統(tǒng)550。通信接口 590的實(shí)例包括內(nèi)置網(wǎng)絡(luò)適配器、網(wǎng)絡(luò)接口卡(NIC)、個(gè)人計(jì)算機(jī)存儲(chǔ)器卡國(guó)際協(xié)會(huì)(PCMCIA)網(wǎng)絡(luò)卡、卡總線網(wǎng)絡(luò)適配器、無(wú)線網(wǎng)絡(luò)適配器、通用串行總線(USB)網(wǎng)絡(luò)適配器、調(diào)制解調(diào)器、網(wǎng)絡(luò)接口卡(NIC)、無(wú)線數(shù)據(jù)卡、通信端口、紅外線接口、IEEE1394火線或能夠使系統(tǒng)550與網(wǎng)絡(luò)或另一個(gè)計(jì)算裝置交互的任何其它裝置。
[0142]通信接口 590優(yōu)選實(shí)施公布的工業(yè)協(xié)議標(biāo)準(zhǔn),諸如以太網(wǎng)IEEE802標(biāo)準(zhǔn)、光纖信道、數(shù)字用戶線(DSL)、非對(duì)稱數(shù)字用戶線(ADSL)、幀中繼、異步傳輸模式(ATM)、綜合數(shù)字業(yè)務(wù)網(wǎng)(ISDN)、個(gè)人通信業(yè)務(wù)(PCS)、傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(TCP/IP)、串行線路互聯(lián)網(wǎng)協(xié)議/點(diǎn)對(duì)點(diǎn)協(xié)議(SLIP/PPP)等等,但也可實(shí)施自定義或非標(biāo)準(zhǔn)接口協(xié)議。
[0143]經(jīng)由通信接口 590傳送的軟件和數(shù)據(jù)一般以電通信信號(hào)605的形式。這些信號(hào)605經(jīng)由通信信道600優(yōu)選提供給通信接口 590。在一個(gè)實(shí)施方案中,通信信道600可為有線或無(wú)線網(wǎng)絡(luò),或任何多樣的其它通信鏈路。通信信道600運(yùn)載信號(hào)605并可以使用多樣的有線或無(wú)線通信構(gòu)件包括導(dǎo)線或電纜、光纖、常規(guī)電話線、蜂窩電話鏈路、無(wú)線數(shù)據(jù)通信鏈路、無(wú)線電頻率(“RF”)鏈路或紅外線鏈路等等來(lái)實(shí)施。
[0144]計(jì)算機(jī)可執(zhí)行代碼(即計(jì)算機(jī)程序或軟件)存儲(chǔ)在主存儲(chǔ)器565和/或次存儲(chǔ)器570中。計(jì)算機(jī)程序也可以經(jīng)由通信接口 590接收并存儲(chǔ)在主存儲(chǔ)器565和/或次級(jí)存儲(chǔ)器570中。此類計(jì)算機(jī)程序在執(zhí)行時(shí)使系統(tǒng)550能夠執(zhí)行先前所述的本發(fā)明的各種功能。
[0145]在該描述中,術(shù)語(yǔ)“計(jì)算機(jī)可讀介質(zhì)”用于指代任何非瞬時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其用于給系統(tǒng)550提供計(jì)算機(jī)可執(zhí)行的代碼(例如軟件和計(jì)算機(jī)程序)。這些媒介的實(shí)例包括通信地與通信接口 590連接的主存儲(chǔ)器565、次存儲(chǔ)器570 (包括內(nèi)部存儲(chǔ)器575、可移動(dòng)的介質(zhì)580和外部存儲(chǔ)介質(zhì)595)和任何外圍裝置(包括網(wǎng)絡(luò)信息服務(wù)器或其它網(wǎng)絡(luò)裝置)。這些非瞬時(shí)性計(jì)算機(jī)可讀介質(zhì)是用于給系統(tǒng)550提供可執(zhí)行的代碼、編程指令和軟件的構(gòu)件。
[0146]在使用軟件實(shí)施的實(shí)施方案中,軟件可通過(guò)可移動(dòng)介質(zhì)580、I/O接口 585或通信接口 590的方式存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上并且加載至系統(tǒng)550中。在此類實(shí)施方案中,軟件以電通信信號(hào)605的形式被加載至系統(tǒng)550中。軟件在由處理器560執(zhí)行時(shí)優(yōu)選使處理器560執(zhí)行本文先前所述的發(fā)明特征和功能。
[0147]在實(shí)施方案中,I/O接口 585在系統(tǒng)550的一個(gè)或多個(gè)部件與一個(gè)或多個(gè)輸入和/或輸出裝置之間提供接口。實(shí)例輸入裝置包括但不限于鍵盤(pán)、觸摸屏或其它觸敏裝置、生物傳感裝置、計(jì)算機(jī)鼠標(biāo)、跟蹤球、基于觸控筆的點(diǎn)觸裝置及其類似物。輸出裝置的實(shí)例包括但不限于陰極射線管(CRT)、等離子顯示屏、發(fā)光二極管(LED)顯示器、液晶顯示器(LCD)、打印機(jī)、真空熒光顯示器(VFD)、表面?zhèn)鲗?dǎo)電子發(fā)射顯示器(SED)、場(chǎng)發(fā)射顯示器(FED)及其類似物。
[0148]系統(tǒng)550還包括促進(jìn)通過(guò)聲音和通過(guò)數(shù)據(jù)網(wǎng)絡(luò)的無(wú)線通信的可選的無(wú)線通信部件。無(wú)線通信部件包括天線系統(tǒng)610、無(wú)線電系統(tǒng)615和基帶系統(tǒng)620。在系統(tǒng)550中,無(wú)線電頻率(RF)信號(hào)通過(guò)空氣由無(wú)線電系哦太難搞615的管理下的天線系統(tǒng)610發(fā)送和接收。
[0149]在一個(gè)實(shí)施方案中,天線系統(tǒng)610可包括一個(gè)或多個(gè)天線以及執(zhí)行切換功能以為天線系統(tǒng)610提供傳遞和接收信號(hào)路徑的一個(gè)或多個(gè)多路復(fù)用器(未示出)。在接收路徑中,所接收的RF信號(hào)可以從多路復(fù)用器連接至低噪聲放大器(未示出),其放大所接收的RF信號(hào)并將所放大的信號(hào)發(fā)送至無(wú)線電系哦太難搞615。
[0150]在替代實(shí)施方案中,無(wú)線電系統(tǒng)615可包括被配置成在各種頻率上通信的一個(gè)或多個(gè)無(wú)線電。在一個(gè)實(shí)施方案中,無(wú)線電系統(tǒng)615可將解調(diào)器(未示出)和調(diào)制器(未示出)組合在一個(gè)集成電路(IC)中。解調(diào)器和調(diào)制器還可以是單獨(dú)的部件。在輸入路徑中,解調(diào)器去除RF載波信號(hào)留下基帶接收音頻信號(hào),其被從無(wú)線電系統(tǒng)615發(fā)送至基帶系統(tǒng)620。
[0151]如果所接收的信號(hào)含有音頻信息,則基帶系統(tǒng)620解碼信號(hào)并將其變換成模擬信號(hào)。然后,該信號(hào)被放大并發(fā)送至揚(yáng)聲器?;鶐到y(tǒng)620還從麥克風(fēng)接收模擬音頻信號(hào)。這些模擬音頻信號(hào)被變換為數(shù)字信號(hào)并由基帶系統(tǒng)620編碼。基帶系統(tǒng)620還將用于傳輸?shù)臄?shù)字信號(hào)編碼并產(chǎn)生路由至無(wú)線電系統(tǒng)615的調(diào)制器部分的基帶發(fā)射音頻信號(hào)。調(diào)制器將基帶發(fā)射音頻信號(hào)與RF載波信號(hào)混合產(chǎn)生被路由至天線系統(tǒng)并通過(guò)功率放大器(未示出)的RF發(fā)射信號(hào)。功率放大器放大RF發(fā)射信號(hào)并且將其路由至天線系統(tǒng)610,其中信號(hào)被切換至天線端口用于傳輸。
[0152]基帶系統(tǒng)620還與處理器560通信地連接。中央處理單元560可訪問(wèn)數(shù)據(jù)存儲(chǔ)區(qū)域565和570。中央處理單元560優(yōu)選地被配置成執(zhí)行可以存儲(chǔ)在存儲(chǔ)器565或從存儲(chǔ)器570中的指令(即計(jì)算機(jī)程序或軟件)。計(jì)算機(jī)程序還可以從基帶處理器610接收并存儲(chǔ)在數(shù)據(jù)存儲(chǔ)區(qū)域565中或次存儲(chǔ)器570中、或者在接受時(shí)執(zhí)行。此類計(jì)算機(jī)程序在執(zhí)行時(shí)使系統(tǒng)550能夠執(zhí)行先前所述的本發(fā)明的各種功能。例如,數(shù)據(jù)存儲(chǔ)區(qū)域565可包括各種軟件模塊(未示出)。
[0153]各種實(shí)施方案還可使用例如諸如特定用途集成電路(ASIC)或現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)的部件主要在硬件中實(shí)施。能夠執(zhí)行本文所述的功能的硬件狀態(tài)機(jī)的實(shí)施對(duì)于相關(guān)領(lǐng)域的那些技術(shù)人員也是明顯的。各種實(shí)施方案還可使用硬件和軟件的組合來(lái)實(shí)施。
[0154]此外,本領(lǐng)域的那些技術(shù)人員將了解與上文所述的附圖以及本文所公開(kāi)的實(shí)施方案結(jié)合描述的各種說(shuō)明性的邏輯塊、模塊、電路和方法步驟常??梢詫?shí)施為電子硬件、計(jì)算機(jī)軟件或兩者的組合。為了清楚說(shuō)明硬件和軟件的可互換性,各種說(shuō)明性的部件、塊、模塊、電路和步驟已經(jīng)按照其功能性在上文一般描述。將此類功能性實(shí)施為硬件還是軟件取決于施加于整個(gè)系統(tǒng)的特定應(yīng)用和設(shè)計(jì)限制。技術(shù)人員可以不同的方式實(shí)施每個(gè)特定應(yīng)用的所述的功能性,但是此類實(shí)施方式?jīng)Q定不應(yīng)被視作脫離本發(fā)明的范圍。除此之外,模塊、塊、電路或步驟內(nèi)的功能分組是為了便于描述。指定功能或步驟可以在不脫離本發(fā)明的情況下從一個(gè)模塊、塊或電路移動(dòng)至另一個(gè)。
[0155]此外,結(jié)合本文公開(kāi)的實(shí)施方案所述的各種說(shuō)明性邏輯塊、模塊、功能和方法可以使用經(jīng)設(shè)計(jì)以執(zhí)行本文所述的功能的通用處理器、數(shù)字信號(hào)處理器(DSP)、ASIC、FPGA或其它可編程邏輯裝置、離散門(mén)或晶體管邏輯、離散硬件部件或任何其組合來(lái)實(shí)施或執(zhí)行。通用處理器可以是微處理器,但是在替代方案中,處理器可以是任何處理器、控制器、微控制器或狀態(tài)機(jī)。處理器還可以實(shí)施為計(jì)算裝置的組合,例如DSP和微處理器、多個(gè)微處理器、一個(gè)或多個(gè)微處理器結(jié)合DSP核或任何其它此類配置的組合。
[0156]另外,結(jié)合本文所公開(kāi)的實(shí)施方案所述的方法或算法的步驟可以在硬件中、在處理器執(zhí)行的軟件模塊中或在兩者的組合中直接體現(xiàn)。軟件模塊可以駐留在RAM存儲(chǔ)器、閃速存儲(chǔ)器、ROM存儲(chǔ)器、EPROM存儲(chǔ)器、EEPROM存儲(chǔ)器、寄存器、硬盤(pán)、可移動(dòng)磁盤(pán)、⑶-ROM或包括網(wǎng)絡(luò)存儲(chǔ)介質(zhì)的任何其它形式的存儲(chǔ)介質(zhì)中。示例性存儲(chǔ)介質(zhì)可以連接至處理器使得處理器可以從存儲(chǔ)介質(zhì)讀取信息并將信息寫(xiě)入存儲(chǔ)介質(zhì)?;蛘撸鎯?chǔ)介質(zhì)可以集成至處理器。處理器和存儲(chǔ)介質(zhì)還可以駐留在ASIC中。
[0157]本文所述的軟件部件中的任何可采取多樣的形式。例如,部件可為獨(dú)立的軟件包,或可為作為“工具”并入較大的軟件產(chǎn)品中的軟件包。它可為從例如網(wǎng)站的網(wǎng)絡(luò)下載的獨(dú)立產(chǎn)品或用于在現(xiàn)有軟件應(yīng)用程序中安裝的插件包。它還可用作客戶端-服務(wù)器軟件應(yīng)用程序、web啟用軟件應(yīng)用程序和/或移動(dòng)應(yīng)用程序。
[0158]上述所公開(kāi)的實(shí)施方案被提供以使本領(lǐng)域的任何技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)于這些實(shí)施方案的各種修改對(duì)于本領(lǐng)域的那些技術(shù)人員將是顯而易見(jiàn)的,并且可以在不脫離本發(fā)明的精神和范圍的情況下將本文所述的一般原理施加至其它實(shí)施方案。因此,要理解的是本文呈現(xiàn)的描述和附圖表示本發(fā)明當(dāng)前優(yōu)選的實(shí)施方案并且因此表示本發(fā)明廣泛考慮其主題。還應(yīng)理解的是本發(fā)明的范圍充分包括其它實(shí)施方案,這對(duì)于本領(lǐng)域的那些技術(shù)人員變得明顯并且使本發(fā)明的范圍因此不受限制。
【權(quán)利要求】
1.一種用于產(chǎn)生在網(wǎng)絡(luò)代理之間的操作的語(yǔ)義描述的方法,所述方法包括使用至少一個(gè)硬件處理器: 捕獲在第一網(wǎng)絡(luò)代理與第二網(wǎng)絡(luò)代理之間的包級(jí)流量; 將所述包級(jí)流量集束成一個(gè)或多個(gè)消息,其中所述一個(gè)或多個(gè)消息中的每個(gè)包括一個(gè)或多個(gè)元素; 對(duì)于所述一個(gè)或多個(gè)消息中的每個(gè), 匹配所述消息的所述一個(gè)或多個(gè)元素中的一個(gè)或多個(gè)與一個(gè)或多個(gè)屬性,并且基于所匹配的一個(gè)或多個(gè)屬性將所述消息解碼成消息數(shù)據(jù);以及基于所述消息數(shù)據(jù)生成在所述第一網(wǎng)絡(luò)代理與所述第二網(wǎng)絡(luò)代理之間的操作的語(yǔ)義描述。
2.根據(jù)權(quán)利要求1所述的方法,其中捕獲在第一網(wǎng)絡(luò)代理與第二網(wǎng)絡(luò)代理之間的包級(jí)流量包括從定位在所述第一網(wǎng)絡(luò)代理與所述第二網(wǎng)絡(luò)代理之間的通信路徑上的交換機(jī)接收數(shù)據(jù)包的拷貝。
3.根據(jù)權(quán)利要求2所述的方法,其中所述交換機(jī)是虛擬交換機(jī)。
4.根據(jù)權(quán)利要求1所述的方法,其中捕獲在第一網(wǎng)絡(luò)代理與第二網(wǎng)絡(luò)代理之間的包級(jí)流量包括從定位在所述第一網(wǎng)絡(luò)代理與所述第二網(wǎng)絡(luò)代理之間的通信路徑上的網(wǎng)絡(luò)分流器接收數(shù)據(jù)包的拷貝。
5.根據(jù)權(quán)利要求4所述 的方法,其中所述網(wǎng)絡(luò)分流器是虛擬網(wǎng)絡(luò)分流器。
6.根據(jù)權(quán)利要求1所述的方法,其中將所述包級(jí)流量集束成一個(gè)或多個(gè)消息包括對(duì)于一個(gè)或多個(gè)會(huì)話中的每個(gè)重復(fù)地: 接收在所述第一網(wǎng)絡(luò)代理與所述第二網(wǎng)絡(luò)代理之間傳遞的數(shù)據(jù)包; 確定邊界條件是否已經(jīng)發(fā)生,其中所述邊界條件指示消息的結(jié)束; 如果確定所述邊界條件沒(méi)有發(fā)生,那么將所接收的數(shù)據(jù)包排隊(duì)在存儲(chǔ)器中;以及, 如果確定所述邊界條件已經(jīng)發(fā)生,那么將在所述存儲(chǔ)器中排隊(duì)的一個(gè)或多個(gè)數(shù)據(jù)包集束成消息數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的方法,其中確定邊界條件是否已經(jīng)發(fā)生包括下列中的一個(gè)或多個(gè): 檢測(cè)指示消息結(jié)束的控制信息; 基于所述接收的數(shù)據(jù)包檢測(cè)在所述第一網(wǎng)絡(luò)代理與所述第二網(wǎng)絡(luò)代理之間的通信方向的改變;以及 檢測(cè)自從接受數(shù)據(jù)包已經(jīng)發(fā)生超時(shí)。
8.根據(jù)權(quán)利要求1所述的方法,其中匹配所述消息的所述一個(gè)或多個(gè)元素中的一個(gè)或多個(gè)與一個(gè)或多個(gè)屬性包括對(duì)于在一個(gè)或多個(gè)模板的組中的每個(gè)模板: 選擇所述模板,其中所述模板包括一個(gè)或多個(gè)屬性; 比較所述模板的所述一個(gè)或多個(gè)屬性中的一個(gè)或多個(gè)與所述消息的所述一個(gè)或多個(gè)元素中的一個(gè)或多個(gè);以及 基于所述比較確定所述模板是否匹配所述消息。
9.根據(jù)權(quán)利要求8所述的方法,其還包括從多個(gè)模板選擇所述一個(gè)或多個(gè)模板的組。
10.根據(jù)權(quán)利要求9所述的方法,其中基于所述第一網(wǎng)絡(luò)代理與所述第二網(wǎng)絡(luò)代理之間的連接的啟動(dòng)數(shù)據(jù)信息選擇所述一個(gè)或多個(gè)模板的組。
11.根據(jù)權(quán)利要求9所述的方法,其中基于用于所述第一網(wǎng)絡(luò)代理與所述第二網(wǎng)絡(luò)代理之間的現(xiàn)有連接的存儲(chǔ)的一個(gè)或多個(gè)模板的組選擇所述一個(gè)或多個(gè)模板的組。
12.根據(jù)權(quán)利要求8所述的方法,其中所述消息的所述一個(gè)或多個(gè)元素包括多個(gè)元素,其中所述模板的所述一個(gè)或多個(gè)屬性包括多個(gè)屬性,并且其中匹配所述消息的所述一個(gè)或多個(gè)元素中的一個(gè)或多個(gè)與一個(gè)或多個(gè)屬性還包括對(duì)于在所述一個(gè)或多個(gè)模板的組中的每個(gè)模板,如果確定所述模板匹配所述消息,那么使用所述模板的所述多個(gè)屬性中的一個(gè)或多個(gè)推斷的屬性定位所述消息的所述多個(gè)元素中的一個(gè)或多個(gè)不匹配的元素。
13.根據(jù)權(quán)利要求8所述的方法,其中匹配所述消息的所述一個(gè)或多個(gè)元素中的一個(gè)或多個(gè)與一個(gè)或多個(gè)屬性還包括對(duì)于在所述一個(gè)或多個(gè)模板的組中的每個(gè)模板: 如果確定所述模板匹配所述消息,那么確定所述模板是否包括其它模板的一個(gè)或多個(gè)參考;以及, 如果確定所述模板包括其它模板的一個(gè)或多個(gè)參考,那么將所述其它模板中的一個(gè)或多個(gè)添加至所述一個(gè)或多個(gè)模板的組。
14.根據(jù)權(quán)利要求8所述的方法,其還包括對(duì)于所述一個(gè)或多個(gè)消息中的每個(gè): 從所述一個(gè)或多個(gè)模板的組選擇匹配所述消息的一個(gè)或多個(gè)模板;以及 基于所述選擇的一個(gè)或多個(gè)模板的所述一個(gè)或多個(gè)屬性解碼所述消息。
15.根據(jù)權(quán)利要求8所述的方法,其中所述一個(gè)或多個(gè)模板的組包括對(duì)應(yīng)于傳輸控制協(xié)議(TCP)、互聯(lián)網(wǎng)協(xié)議(IP)、超文本傳輸協(xié)議(HTTP)、文件傳輸協(xié)議(FTP)、按序數(shù)據(jù)包交換協(xié)議(SPX)、地址解析協(xié)議(ARP)、交易網(wǎng)絡(luò)服務(wù)協(xié)議(TNS)、表格格式數(shù)據(jù)流協(xié)議(TDS)、對(duì)稱多處理線程協(xié)議(SMP)、兩項(xiàng)任務(wù)共同協(xié)議(TTC)、網(wǎng)絡(luò)文件系統(tǒng)協(xié)議(NFS)、蘋(píng)果文件協(xié)議(AFP)、服務(wù)器消息塊協(xié)議(SMB)、域名系統(tǒng)協(xié)議(DNS)、簡(jiǎn)單郵件傳輸協(xié)議(SMTP)、互聯(lián)網(wǎng)消息訪問(wèn)協(xié)議(IMAP)和郵局協(xié)議(POP)中的一個(gè)或多個(gè)的一個(gè)或多個(gè)模板。
16.根據(jù)權(quán)利要求1所述的方法,其還包括在產(chǎn)生操作的所述語(yǔ)義描述之前基于一個(gè)或多個(gè)過(guò)濾器放棄包級(jí)流量和消息數(shù)據(jù)中的一個(gè)或兩個(gè)的至少部分。
17.根據(jù)權(quán)利要求1所述的方法,其中所述一個(gè)或多個(gè)消息包括用于遠(yuǎn)程程序調(diào)用(RPC)的請(qǐng)求消息和用于RPC的響應(yīng)消息中的一個(gè)或多個(gè),并且其中將所述一個(gè)或多個(gè)消息解碼成消息數(shù)據(jù)包括提取動(dòng)詞、參數(shù)和所得有效負(fù)載中的一個(gè)或多個(gè)用于RPC。
18.根據(jù)權(quán)利要求1所述的方法,其中所述捕獲由捕獲模塊執(zhí)行,其中所述集束、匹配、解碼和生成由分析模塊執(zhí)行,并且其中所述方法還包括使用至少一個(gè)應(yīng)用程序接口(API)將所述包級(jí)流量從所述捕獲模塊傳送至所述分析模塊。
19.根據(jù)權(quán)利要求18所述的方法,其中所述捕獲模塊和分析模塊在單獨(dú)的機(jī)器上執(zhí)行。
20.根據(jù)權(quán)利要求18所述的方法,其中所述捕獲模塊和分析模塊在一個(gè)機(jī)器上執(zhí)行。
21.一種用于產(chǎn)生在網(wǎng)絡(luò)代理之間的操作的語(yǔ)義描述的系統(tǒng),所述系統(tǒng)包括: 至少一個(gè)硬件處理器;以及 至少一個(gè)可執(zhí)行的軟件模塊,其在由所述至少一個(gè)硬件處理器執(zhí)行時(shí), 捕獲在第一網(wǎng)絡(luò)代理與第二網(wǎng)絡(luò)代理之間的包級(jí)流量, 將所述包級(jí)流量集束成一個(gè)或多個(gè)消息,其中所述一個(gè)或多個(gè)消息中的每個(gè)包括一個(gè)或多個(gè)元素, 對(duì)于所述一個(gè)或多個(gè)消息中的每個(gè), 匹配所述消息的所述一個(gè)或多個(gè)元素中的一個(gè)或多個(gè)與一個(gè)或多個(gè)屬性,并且基于所匹配的一個(gè)或多個(gè)屬性將所述消息解碼成消息數(shù)據(jù),以及基于所述消息數(shù)據(jù)生成在所述第一網(wǎng)絡(luò)代理與所述第二網(wǎng)絡(luò)代理之間的操作的語(yǔ)義描述。
22.根據(jù)權(quán)利要求11所述的系統(tǒng),其中捕獲在第一網(wǎng)絡(luò)代理與第二網(wǎng)絡(luò)代理之間的包級(jí)流量包括從定位在所述第一網(wǎng)絡(luò)代理與所述第二網(wǎng)絡(luò)代理之間的通信路徑上的交換機(jī)接收數(shù)據(jù)包的拷貝。
23.根據(jù)權(quán)利要求22所述的系統(tǒng),其中所述交換機(jī)是虛擬交換機(jī)。
24.根據(jù)權(quán)利要求21所述的系統(tǒng),其中捕獲在第一網(wǎng)絡(luò)代理與第二網(wǎng)絡(luò)代理之間的包級(jí)流量包括從定位在所述第一網(wǎng)絡(luò)代理與所述第二網(wǎng)絡(luò)代理之間的通信路徑上的網(wǎng)絡(luò)分流器接收數(shù)據(jù)包的拷貝。
25.根據(jù)權(quán)利 要求24所述的系統(tǒng),其中所述網(wǎng)絡(luò)分流器是虛擬網(wǎng)絡(luò)分流器。
26.根據(jù)權(quán)利要求21所述的系統(tǒng),其中將所述包級(jí)流量集束成一個(gè)或多個(gè)消息包括對(duì)于一個(gè)或多個(gè)會(huì)話中的每個(gè)重復(fù)地: 接收在所述第一網(wǎng)絡(luò)代理與所述第二網(wǎng)絡(luò)代理之間傳遞的數(shù)據(jù)包; 確定邊界條件是否已經(jīng)發(fā)生,其中所述邊界條件指示消息的結(jié)束; 如果確定所述邊界條件沒(méi)有發(fā)生,那么將所接收的數(shù)據(jù)包排隊(duì)在存儲(chǔ)器中;以及, 如果確定所述邊界條件已經(jīng)發(fā)生,那么將在所述存儲(chǔ)器中排隊(duì)的一個(gè)或多個(gè)數(shù)據(jù)包集束成消息數(shù)據(jù)。
27.根據(jù)權(quán)利要求26所述的系統(tǒng),其中確定邊界條件是否已經(jīng)發(fā)生包括下列中的一個(gè)或多個(gè): 檢測(cè)指示消息結(jié)束的控制信息; 基于所述接收的數(shù)據(jù)包檢測(cè)在所述第一網(wǎng)絡(luò)代理與所述第二網(wǎng)絡(luò)代理之間的通信方向的改變;以及 檢測(cè)自從接受數(shù)據(jù)包已經(jīng)發(fā)生超時(shí)。
28.根據(jù)權(quán)利要求21所述的系統(tǒng),其中匹配所述消息的所述一個(gè)或多個(gè)元素中的一個(gè)或多個(gè)與一個(gè)或多個(gè)屬性包括對(duì)于在一個(gè)或多個(gè)模板的組中的每個(gè)模板: 選擇所述模板,其中所述模板包括一個(gè)或多個(gè)屬性; 比較所述模板的所述一個(gè)或多個(gè)屬性中的一個(gè)或多個(gè)與所述消息的所述一個(gè)或多個(gè)元素中的一個(gè)或多個(gè);以及 基于所述比較確定所述模板是否匹配所述消息。
29.根據(jù)權(quán)利要求28所述的方法,其中所述至少一個(gè)可執(zhí)行的軟件模塊從多個(gè)模板選擇所述一個(gè)或多個(gè)模板的組。
30.根據(jù)權(quán)利要求29所述的系統(tǒng),其中基于所述第一網(wǎng)絡(luò)代理與所述第二網(wǎng)絡(luò)代理之間的連接的啟動(dòng)數(shù)據(jù)信息選擇所述一個(gè)或多個(gè)模板的組。
31.根據(jù)權(quán)利要求29所述的系統(tǒng),其中基于用于所述第一網(wǎng)絡(luò)代理與所述第二網(wǎng)絡(luò)代理之間的現(xiàn)有連接的存儲(chǔ)的一個(gè)或多個(gè)模板的組選擇所述一個(gè)或多個(gè)模板的組。
32.根據(jù)權(quán)利要求28所述的系統(tǒng),其中所述消息的所述一個(gè)或多個(gè)元素包括多個(gè)元素,其中所述模板的所述一個(gè)或多個(gè)屬性包括多個(gè)屬性,并且其中匹配所述消息的所述一個(gè)或多個(gè)元素中的一個(gè)或多個(gè)與一個(gè)或多個(gè)屬性還包括對(duì)于在所述一個(gè)或多個(gè)模板的組中的每個(gè)模板,如果確定所述模板匹配所述消息,那么使用所述模板的所述多個(gè)屬性中的一個(gè)或多個(gè)推斷的屬性定位所述消息的所述多個(gè)元素中的一個(gè)或多個(gè)不匹配的元素。
33.根據(jù)權(quán)利要求28所述的系統(tǒng),其中匹配所述消息的所述一個(gè)或多個(gè)元素中的一個(gè)或多個(gè)與一個(gè)或多個(gè)屬性包括對(duì)于在所述一個(gè)或多個(gè)模板的組中的每個(gè)模板: 如果確定所述模板匹配所述消息,那么確定所述模板是否包括其它模板的一個(gè)或多個(gè)參考;以及, 如果確定所述模板包括其它模板的一個(gè)或多個(gè)參考,那么將所述其它模板中的一個(gè)或多個(gè)添加至所述一個(gè)或多個(gè)模板的組。
34.根據(jù)權(quán)利要求28所述的系統(tǒng),其中所述至少一個(gè)可執(zhí)行的軟件模塊,對(duì)于所述一個(gè)或多個(gè)消息中的每個(gè): 從所述一個(gè)或多個(gè)模板的組選擇匹配所述消息的一個(gè)或多個(gè)模板;以及 基于所述選擇的一個(gè)或多個(gè)模板的所述一個(gè)或多個(gè)屬性解碼所述消息。
35.根據(jù)權(quán)利要求28所述的系統(tǒng),其中所述一個(gè)或多個(gè)模板的組包括對(duì)應(yīng)于傳輸控制協(xié)議(TCP)、互聯(lián)網(wǎng)協(xié)議(IP)、超文本傳輸協(xié)議(HTTP)、文件傳輸協(xié)議(FTP)、按序數(shù)據(jù)包交換協(xié)議(SPX)、地址解析協(xié)議(ARP)、交易網(wǎng)絡(luò)服務(wù)協(xié)議(TNS)、表格格式數(shù)據(jù)流協(xié)議(TDS)、對(duì)稱多處理線程協(xié)議(SMP)、兩項(xiàng)任務(wù)共同協(xié)議(TTC)、網(wǎng)絡(luò)文件系統(tǒng)協(xié)議(NFS)、蘋(píng)果文件協(xié)議(AFP)、服務(wù)器消息塊協(xié)議(SMB)、域名系統(tǒng)協(xié)議(DNS)、簡(jiǎn)單郵件傳輸協(xié)議(SMTP)、互聯(lián)網(wǎng)消息訪問(wèn)協(xié)議(IMAP)和郵局協(xié)議(POP)中的一個(gè)或多個(gè)的一個(gè)或多個(gè)模板。
36.根據(jù)權(quán)利要求21所述的系統(tǒng),其中所述至少一個(gè)可執(zhí)行的軟件模塊在產(chǎn)生操作的所述語(yǔ)義描述之前基于一個(gè)或多個(gè)過(guò)濾器放棄包級(jí)流量和消息數(shù)據(jù)中的一個(gè)或兩個(gè)的至少部分。
37.根據(jù)權(quán)利要求21所述的系統(tǒng),其中所述一個(gè)或多個(gè)消息包括用于遠(yuǎn)程程序調(diào)用(RPC)的請(qǐng)求消息和用于RPC的響應(yīng)消息中的一個(gè)或多個(gè),并且其中將所述一個(gè)或多個(gè)消息解碼成消息數(shù)據(jù)包括提取動(dòng)詞、參數(shù)和所得有效負(fù)載中的一個(gè)或多個(gè)用于RPC。
38.根據(jù)權(quán)利要求21所述的系統(tǒng),其中所述捕獲由捕獲模塊執(zhí)行,其中所述集束、匹配、解碼和生成由分析模塊執(zhí)行,并且其中所述捕獲模塊使用至少一個(gè)應(yīng)用程序接口(API)將所述包級(jí)流量傳送至所述分析模塊。
39.根據(jù)權(quán)利要求38所述的系統(tǒng),其中所述系統(tǒng)還包括第一機(jī)器和第二機(jī)器,并且其中所述捕獲模塊被容納在所述第一機(jī)器上且所述分析模塊被容納在所述第二機(jī)器上。
40.根據(jù)權(quán)利要求39所述的系統(tǒng),其中所述系統(tǒng)還包括單個(gè)機(jī)器,所述單個(gè)機(jī)器包括所述至少一個(gè)硬件處理器、所述捕獲模塊和所述分析模塊。
【文檔編號(hào)】H04L12/70GK104081730SQ201380006892
【公開(kāi)日】2014年10月1日 申請(qǐng)日期:2013年1月28日 優(yōu)先權(quán)日:2012年1月31日
【發(fā)明者】T·W·魯?shù)峡? E·瓦爾三義, C·A·帕特森, D·A·羅森伯格 申請(qǐng)人:Db網(wǎng)絡(luò)公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
宣汉县| 上犹县| 鄂尔多斯市| 和平区| 和田市| 故城县| 承德县| 佳木斯市| 交城县| 富平县| 潞西市| 大竹县| 江山市| 焦作市| 金华市| 沅江市| 从江县| 阿图什市| 阜阳市| 定安县| 胶州市| 曲阳县| 蚌埠市| 孝感市| 马山县| 全椒县| 印江| 杭州市| 张家港市| 波密县| 林甸县| 兖州市| 德兴市| 昭觉县| 台北县| 苍溪县| 阳谷县| 兴和县| 精河县| 云梦县| 腾冲县|