亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種對(duì)網(wǎng)絡(luò)應(yīng)用層協(xié)議識(shí)別方式的識(shí)別方法

文檔序號(hào):7694009閱讀:344來(lái)源:國(guó)知局
專利名稱:一種對(duì)網(wǎng)絡(luò)應(yīng)用層協(xié)議識(shí)別方式的識(shí)別方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種對(duì)網(wǎng)絡(luò)應(yīng)用層不同的協(xié)議識(shí)別方式的識(shí)別方法。
背景技術(shù)
隨著網(wǎng)絡(luò)應(yīng)用的普及與網(wǎng)絡(luò)技術(shù)的發(fā)展,新的網(wǎng)絡(luò)應(yīng)用業(yè)務(wù)層出不 窮,隨之而來(lái)的是應(yīng)用層流量特征的多樣化以及對(duì)應(yīng)識(shí)別方式的復(fù)雜 化。傳統(tǒng)的網(wǎng)絡(luò)應(yīng)用服務(wù)使用固定的服務(wù)端口 ,能夠很容易的通過(guò)應(yīng)
用端口進(jìn)行應(yīng)用層協(xié)議識(shí)別。隨著P2P, VOD以及VoIP技術(shù)的使用, 如今的網(wǎng)絡(luò)應(yīng)用協(xié)議主要適用動(dòng)態(tài)端口的方式進(jìn)行通信,因此傳統(tǒng)的 通過(guò)端口實(shí)現(xiàn)應(yīng)用協(xié)議識(shí)別的方法不再適用。
為解決這樣的情況,現(xiàn)在主要有兩大類識(shí)別方式第一類方式深度 包解析,通過(guò)對(duì)單個(gè)或多個(gè)數(shù)據(jù)包內(nèi)容的某些特征進(jìn)行匹配來(lái)達(dá)到識(shí) 別的目的,能夠很準(zhǔn)確的進(jìn)行識(shí)別,但是識(shí)別周期相對(duì)長(zhǎng)且對(duì)某些特 征需要通過(guò)多包特征綜合識(shí)別;第二類方式流量統(tǒng)計(jì)特征匹配,通過(guò) 對(duì)目標(biāo)應(yīng)用流量的平均包大小,平均流速率等統(tǒng)計(jì)量的特征進(jìn)行分析 來(lái)實(shí)現(xiàn)識(shí)別功能,識(shí)別速度快但準(zhǔn)確率低。時(shí)下網(wǎng)絡(luò)應(yīng)用服務(wù)的另一 大特點(diǎn)則是協(xié)議更新頻繁,隨之而來(lái)的問(wèn)題則是協(xié)議識(shí)別系統(tǒng)需要經(jīng) 常對(duì)識(shí)別特征乃至識(shí)別方式進(jìn)行更新,這就對(duì)協(xié)議識(shí)別系統(tǒng)中對(duì)識(shí)別 方式的組織結(jié)構(gòu)提出了新的要求。
目前對(duì)協(xié)議識(shí)別方式的實(shí)現(xiàn)主要有兩種結(jié)構(gòu)其一,通過(guò)代碼實(shí) 現(xiàn)針對(duì)每一種協(xié)議識(shí)別的程序,效率高但難于更新特征。對(duì)于這樣的 識(shí)另'j系統(tǒng),每次對(duì)識(shí)別特征的更新或識(shí)別方式的改變都需要重編譯識(shí) 別程序。其二,通過(guò)正則表達(dá)式來(lái)存儲(chǔ)特征。能夠?qū)崿F(xiàn)不需重編譯的
特征更新,但是正則表達(dá)式匹配速度相對(duì)匹配函數(shù)較慢,且對(duì)于某些 特征無(wú)法匹配,例如數(shù)據(jù)包內(nèi)容與數(shù)據(jù)包長(zhǎng)度的相關(guān)特征。而且正則 表達(dá)式的特征描述方式較為抽象,增加了管理人員自行增加識(shí)別方式 的難度?,F(xiàn)有的方式中對(duì)于多個(gè)數(shù)據(jù)包中的組合特征是通過(guò)將多個(gè)數(shù) 據(jù)包存儲(chǔ)下來(lái)再組合在一起做綜合特征匹配來(lái)實(shí)現(xiàn)的,這種方式效率 低,存儲(chǔ)空間需求大,在高速鏈路中使用的時(shí)候存在較大性能缺陷。針對(duì)現(xiàn)在網(wǎng)絡(luò)應(yīng)用服務(wù)特征多樣協(xié)議更新頻繁的特點(diǎn),應(yīng)用層流 量識(shí)別需要一種能夠?qū)崿F(xiàn)多類型和多狀態(tài)的識(shí)別方式同時(shí)高效并易于 更新的結(jié)構(gòu)。

發(fā)明內(nèi)容
本發(fā)明的目的在于提出了一種對(duì)應(yīng)用層的協(xié)議識(shí)別方式的識(shí)別方
法AIMDL。主要內(nèi)容包括設(shè)定AIMDL的主要元素以實(shí)現(xiàn)對(duì)于多類型和多 狀態(tài)的協(xié)議識(shí)別方式的有效描述同時(shí)滿足方便更新的需求。設(shè)計(jì)并實(shí) 現(xiàn)能夠利用AIMDL所描述的不同識(shí)別方式進(jìn)行應(yīng)用協(xié)議識(shí)別工作的識(shí) 別方法。
根據(jù)本發(fā)明,提供了 一種對(duì)網(wǎng)絡(luò)應(yīng)用層的協(xié)議識(shí)別方式的識(shí)別方 法,其特征在于包括以下步驟
對(duì)多類型和多狀態(tài)的網(wǎng)絡(luò)應(yīng)用層的協(xié)議識(shí)別方式和識(shí)別方式的結(jié) 構(gòu)以及支持識(shí)別的操作進(jìn)行描述設(shè)定;
根據(jù)描述的設(shè)定,生成識(shí)別方式的描述文件;
經(jīng)描述文件解釋器的解析為可執(zhí)行的Method List數(shù)據(jù)結(jié)構(gòu)并由 協(xié)議識(shí)別執(zhí)行單元完成協(xié)議的識(shí)別。
優(yōu)選地,所述的網(wǎng)絡(luò)應(yīng)用層的協(xié)議識(shí)別方式包括下列的 一 個(gè)或多
個(gè)
應(yīng)用層數(shù)據(jù)包的內(nèi)容與靜態(tài)特征匹配方式;
應(yīng)用層數(shù)據(jù)包的基本屬性元素的關(guān)系特征匹配方式;以及
應(yīng)用層數(shù)據(jù)包的狀態(tài)識(shí)別方式。
優(yōu)選地,所述的支持識(shí)別的操作為buffer操作。
優(yōu)選地,所述的描述設(shè)定是基于XML語(yǔ)言平臺(tái)。
本發(fā)明能夠被應(yīng)用來(lái)實(shí)現(xiàn)多種類型的協(xié)議識(shí)別方式,同時(shí)又能方便 對(duì)特征與識(shí)別方式進(jìn)行更新;并能夠利用基于狀態(tài)機(jī)的識(shí)別方法實(shí)現(xiàn) 多狀態(tài)協(xié)議識(shí)別。


下面將參照附圖對(duì)本發(fā)明的具體實(shí)施方案進(jìn)行更詳細(xì)的說(shuō)明,其

圖1是本發(fā)明應(yīng)用層協(xié)議識(shí)別系統(tǒng)的工作示意圖2是本發(fā)明的協(xié)議識(shí)別方式描述方法解釋器模塊的流程5圖3是本發(fā)明的Method List數(shù)據(jù)結(jié)構(gòu)模塊的結(jié)構(gòu)圖;以及 圖4是本發(fā)明的協(xié)議識(shí)別操作執(zhí)行模塊的流程圖。
具體實(shí)施例方式
為了實(shí)現(xiàn)多類型和多狀態(tài)的網(wǎng)絡(luò)應(yīng)用層協(xié)議識(shí)別方式同時(shí)又能方 便對(duì)特征與識(shí)別方式進(jìn)行更新,本發(fā)明提供了 一種對(duì)網(wǎng)絡(luò)應(yīng)用層協(xié)議 識(shí)別方式的描述方法及基于該方法的協(xié)i義識(shí)另'J系統(tǒng)。
描述方法綜述
應(yīng)用層協(xié)議識(shí)別方式的描述方法(AIMDL)能夠通過(guò)描述幾種基本 識(shí)別操作的組合來(lái)構(gòu)成一個(gè)完整的復(fù)雜操作。這些操作是通過(guò)對(duì)現(xiàn)有 的協(xié)議識(shí)別方式進(jìn)行分析得到的。
一個(gè)應(yīng)用層數(shù)據(jù)包主要包含payload內(nèi)容,數(shù)據(jù)包長(zhǎng)度,端口這 三個(gè)與所屬協(xié)議相關(guān)的屬性,因此基本的識(shí)別操作也主要是針對(duì)這三
個(gè)屬性進(jìn)行的。特征也可以由匹配對(duì)象分為兩種 一種是基本屬性中 的內(nèi)容與靜態(tài)特征之間的匹配,比如數(shù)據(jù)包中出現(xiàn)某一特征字段或是 通信端口為某特征值;另一種則是基本屬性之間的關(guān)系,例如payload 中某特定位置的數(shù)據(jù)值與數(shù)據(jù)包長(zhǎng)度或是通信端口號(hào)存在某特定關(guān)系 的特征。
多包組合特征識(shí)別方式在AIMDL中是通過(guò)基于狀態(tài)機(jī)的架構(gòu)和構(gòu) 建臨時(shí)存儲(chǔ)buffer來(lái)實(shí)現(xiàn)的。基于狀態(tài)機(jī)實(shí)現(xiàn)的識(shí)別方式中,每一組 識(shí)別操作表征能夠確認(rèn)從狀態(tài)機(jī)的 一個(gè)狀態(tài)進(jìn)入最終狀態(tài),當(dāng)達(dá)到最 終狀態(tài)的時(shí)候說(shuō)明識(shí)別成功。因此需要能夠?qū)σ唤M操作所對(duì)應(yīng)的匹配 狀態(tài),以及各狀態(tài)之間的關(guān)系進(jìn)行描述。AIMDL能夠描述一組操作是否 屬于 一 個(gè)狀態(tài)機(jī)識(shí)別架構(gòu)的 一 個(gè)識(shí)別狀態(tài),以及這 一 識(shí)別狀態(tài)所要求 的前項(xiàng)狀態(tài)是什么,這樣就能夠獨(dú)立的表述整個(gè)狀態(tài)機(jī)識(shí)別架構(gòu)的每 一個(gè)部分。有些基于狀態(tài)機(jī)的識(shí)別操作是需要存儲(chǔ)一些數(shù)據(jù)的,例如 第 一 個(gè)數(shù)據(jù)包中的某個(gè)偏移與后續(xù)數(shù)據(jù)包中特定偏移的數(shù)據(jù)值有可以 作為識(shí)別特征的關(guān)系。在本發(fā)明的協(xié)議識(shí)別架構(gòu)中是通過(guò)給每一個(gè)流 記錄中設(shè)置一個(gè)buffer來(lái)保存數(shù)據(jù),通過(guò)在AIMDL中支持有關(guān)buffer 的操作實(shí)現(xiàn)對(duì)此類特征識(shí)別方式的支持。
一個(gè)應(yīng)用層的識(shí)別系統(tǒng)中包含很多個(gè)應(yīng)用的識(shí)別方式,每個(gè)應(yīng)用 也包括很多種不同的特征流量,需要很多種不同的特征識(shí)別方式。因 此AIMDL包含了結(jié)構(gòu)描述元素對(duì)這些不同的應(yīng)用和不同的識(shí)別方式之 間的結(jié)構(gòu)關(guān)系進(jìn)行描述。
以基于XML為例的具體描述方法i兌明網(wǎng)絡(luò)應(yīng)用層協(xié)議識(shí)別方式的描述方法AIMDL是一種基于XML的描 述。通過(guò)設(shè)置特定的element元素標(biāo)簽來(lái)達(dá)到對(duì)各種結(jié)構(gòu)的描述。以 下是對(duì)上述幾類描述對(duì)象的實(shí)例與詳細(xì)說(shuō)明
一.靜態(tài)特征匹配方法描述 1. payload包含特征字段的檢驗(yàn)操作描述
<payload>
<content>Bi tTorrent protocoK/content〉 <offset>l</offset〉 <length>19<7length> </ payload〉
該元素表示識(shí)別方式中包含一個(gè)payload特征字段4企驗(yàn)。包含三 個(gè)子元素
"content":特征字段的內(nèi)容,此處表示為字符串"BitTorrent protocol" j
"offset":特;f正字^:所處在payload中的位置。如果為負(fù)數(shù)表 示是從payload的尾部向前的偏移量。特征值"SEARCH"表示沒(méi)有固 定偏移,特征字段在數(shù)據(jù)包中的位置不固定。例子中的偏移表示從 payload的第二個(gè)字節(jié)開(kāi)始,第一個(gè)字節(jié)偏移為0;
"length":存儲(chǔ)特征字段的長(zhǎng)度,例子中長(zhǎng)度19為"BitTorrent protocol"的長(zhǎng)度。
2. payload length為特征值的檢驗(yàn)操作描述
<payload_length〉68</payload—length>
payload length特征的校驗(yàn)一般使用在一組完整的識(shí)別操作的第一 個(gè)。很多特征只會(huì)出現(xiàn)在具有固定包長(zhǎng)或者包長(zhǎng)為某一特定范圍的數(shù)據(jù)包 中。其內(nèi)容表示特征數(shù)據(jù)包的值,若包含" >,號(hào)則表示為范圍限制。 3.端口號(hào)為特征值的檢驗(yàn)操作描述 <port>
<group>
<start>6881</start> <end>6889</end〉 </group> <group〉
<start>10044</start〉 <end〉10044</end〉 </group ></port>port特征的校驗(yàn)并不具有確定協(xié)議的準(zhǔn)確性,可能與動(dòng)態(tài)端口的協(xié) 議發(fā)生誤識(shí)別,因此port的識(shí)別方式是在其他識(shí)別方式無(wú)法正確識(shí)別的 情況下使用的。"group":包含兩個(gè)元素"start"和"end",表示從"start"開(kāi)始 到"end"的端口都是協(xié)議的特征端口。二. 基本元素相關(guān)特征匹配描述方法1. payload內(nèi)容與包長(zhǎng)相關(guān)的 <content_length><offset>0</offset〉 <byte—width>l</byte_width> <multiple—number〉l</ multiple —number> <differ_value〉3</diff er—value〉 </content—length〉針對(duì)payload內(nèi)容中包含payload長(zhǎng)度信息的特征。 "offset": payload特征數(shù)據(jù)位置;"byte-width":表示數(shù)據(jù)位大小,例子中的1表示數(shù)據(jù)寬度為一個(gè)字節(jié);"multiple—number": 4咅凄丈。匹酉己方式為payload長(zhǎng)度-payload內(nèi) 容x倍數(shù)+差值;"differ—value":表示上式中的差值。例子中payload length-第一個(gè)字節(jié)的大小x l + 3 ;2. payload內(nèi)容自相關(guān) <content—content〉<offset0>2</offsetO> <offsetl>3</offsetl〉 <diff er —value〉3</diff er-value〉 </content-content〉content—content元素用以描述payload中兩個(gè)固定偏移的數(shù)據(jù)具 有固定關(guān)系的特征。根據(jù)對(duì)數(shù)據(jù)包內(nèi)容的分析,關(guān)系一般是相等或有 固定偏差,因此設(shè)計(jì)了對(duì)應(yīng)的元素用以描述這樣的識(shí)別操作。 "offsetX":兩個(gè)比較目標(biāo)參數(shù)的位置。 "differ — value":兩個(gè)比較目標(biāo)之間有固定差值的描述。三. 狀態(tài)描述方法 <state〉<pre—state>NO_STATUS</pre_state> <finalstate〉0</finalstate> <ident if ier —state>BTO</ident ifier — s tate〉 </state>state標(biāo)簽被用來(lái)實(shí)現(xiàn)基于狀態(tài)的識(shí)別架構(gòu)。其主要元素包括 "pre—state":在基于狀態(tài)機(jī)的識(shí)別方式中,狀態(tài)之間的關(guān)系是實(shí)現(xiàn)正確的識(shí)別,捧作的保證。通過(guò)描述前項(xiàng)狀態(tài)實(shí)現(xiàn)對(duì)多狀態(tài)識(shí)別過(guò)程中的識(shí)別流程的控制。"finalstate":表示是否是一組多狀態(tài)識(shí)別的最后一個(gè)狀態(tài)。如果在finalstate的匹配操作通過(guò)的情況下,即是完成了多狀態(tài)的匹配流程。"identifier-state":對(duì)通過(guò)該組匹配操作的流的狀態(tài)標(biāo)簽進(jìn)行 賦值,使得流中的后續(xù)數(shù)據(jù)包能夠順利的進(jìn)入后續(xù)的狀態(tài)進(jìn)行特征匹 配。四.buffer才乘作描述方法 1. store buffer操作描述 <store—buffer><buffer-offset>0</buffer—offset〉 <payload_off set>2</payload—off set〉 </ store_buffer> 將pay load中的數(shù)據(jù)存儲(chǔ)在buffer中方便后續(xù)操作時(shí)使用。 "payload-offset": payload中待存儲(chǔ)的數(shù)據(jù)的偏移位置。 "buffer—offset": buffer中欲存儲(chǔ)數(shù)據(jù)的位置。 2.Modify buffer才喿作描述 <modify—buffer><buffer_offset>l</buffer_offset> <add-value>l</add-value〉 </modify-buffer>在某些匹配過(guò)程中需要對(duì)buffer中數(shù)據(jù)進(jìn)行操作然后再進(jìn)行匹配。 此元素就是用以對(duì)此類操作進(jìn)行描述。根據(jù)分析只有數(shù)值增加的特征出 現(xiàn)。所以設(shè)置元素如下"buffer—offset":被操作buffer元素的位置"add—value":增加的量3. judge buffer操作描述<judge—buffer〉<buffer_offset>2</buffer_offset> <payload_off set>8</payload_off set> <width>4</width> </judge—buffer>在前項(xiàng)狀態(tài)的操作過(guò)程中完成對(duì)數(shù)據(jù)的存儲(chǔ)和特定修改操作后,通過(guò) 匹配buffer中的數(shù)據(jù)與新的被檢測(cè)數(shù)據(jù)包中的特定位置數(shù)據(jù)實(shí)現(xiàn)應(yīng)用協(xié) 議特4正匹配的目的。"buffer-offset": buffer中被匹配特;f正凄t據(jù)的偏移位置。 "payload一offset": payload中^皮用來(lái)與buffer中內(nèi)容進(jìn)行匹配的 數(shù)據(jù)的偏移位置。"width":匹配數(shù)據(jù)的位數(shù)。例子中的4表示4個(gè)字節(jié)的數(shù)據(jù)進(jìn)行匹 配操作。五.識(shí)別方式的結(jié)構(gòu)描述方法<protocol—name〉<tcp〉</tcp> <udp> <method> <statu></statu><payload—length>X</ pay load—length 〉</ method > < method ></ method ></udp> </protocol_name>上述是^f吏用AIMDL描述一種應(yīng)用的識(shí)別方式的文件結(jié)構(gòu) 根元素"protocol-name":用以表示此元素是描述的何種應(yīng)用的 識(shí)別方式。次級(jí)標(biāo)簽 "tcp"和"udp":區(qū)分同種應(yīng)用的tcp和udp流不同的識(shí)別方式。在構(gòu)建協(xié)議識(shí)別方式表的時(shí)候?qū)Σ煌膽?yīng)用層協(xié)議分別 構(gòu)建特征匹配方法表使得識(shí)別流程更快。"method"標(biāo)簽method標(biāo)簽由 "state"標(biāo)簽、"payload,,標(biāo) 簽和其他操作標(biāo)簽組成,表示一個(gè)獨(dú)立的識(shí)別方式。這個(gè)識(shí)別方式包 含由此方法對(duì)應(yīng)的狀態(tài)信息、包長(zhǎng)限制以及包含的微操作組合。這個(gè) 獨(dú)立的方法能夠根據(jù)其狀態(tài)信息確定是否是多狀態(tài)識(shí)別的一個(gè)狀態(tài)或 是 一 個(gè)能夠獨(dú)立完成 一 種應(yīng)用協(xié)議識(shí)別的 一 組操作。包長(zhǎng)限制能夠幫 助快速審查此數(shù)據(jù)包是否符合基本的進(jìn)行后續(xù)檢查的要求。剩下所羅 列的 一組操作時(shí)完成一個(gè)完整獨(dú)立識(shí)別方式所需要的 一組微元操作。協(xié)議識(shí)別綜述本發(fā)明的應(yīng)用層協(xié)議識(shí)別系統(tǒng)是利用AIMDL所描述的識(shí)別方式高 效地進(jìn)4亍應(yīng)用流量識(shí)別工作的識(shí)別架構(gòu)。通過(guò)對(duì)網(wǎng)絡(luò)應(yīng)用流量識(shí)別方式進(jìn)行統(tǒng)計(jì)與分析,得到了若干基本的 特征匹配方法。這些方式以網(wǎng)絡(luò)數(shù)據(jù)包所具有的內(nèi)容,包長(zhǎng),端口信 息這幾個(gè)屬性為特征匹配對(duì)象,實(shí)現(xiàn)針對(duì)這些屬性與靜態(tài)的特征內(nèi)容 匹配以及這些屬性之間相關(guān)關(guān)系的特征校驗(yàn)操作。這些基本的識(shí)別操 作是針對(duì)網(wǎng)絡(luò)數(shù)據(jù)所能夠被用以匹配的屬性以及匹配操作而構(gòu)建的, 因此所有現(xiàn)存的流量識(shí)別方式都能夠通過(guò)將這幾個(gè)基本的操作進(jìn)行組 合來(lái)實(shí)現(xiàn)。經(jīng)過(guò)對(duì)實(shí)際的協(xié)議識(shí)別方式進(jìn)行統(tǒng)計(jì)驗(yàn)i正這一設(shè)計(jì)的正確 性。因此能夠通過(guò)將這幾個(gè)基本操作及其對(duì)應(yīng)的參數(shù)描述方法設(shè)計(jì)在 AIMDL中實(shí)現(xiàn)利用AIMDL對(duì)任意協(xié)議識(shí)別方式進(jìn)行描述的需求。隨著網(wǎng) 絡(luò)協(xié)議的多變,很多協(xié)議的識(shí)別特征都分布在多個(gè)數(shù)據(jù)包中,因此需 要將這些信息綜合在一起才能有效的實(shí)現(xiàn)識(shí)別功能。本發(fā)明采用了基 于狀態(tài)機(jī)與臨時(shí)存儲(chǔ)器的特征匹配架構(gòu)實(shí)現(xiàn)對(duì)于此類特征的識(shí)別功 能,同時(shí)在AIMDL中設(shè)計(jì)了與此相關(guān)的操作與元素的描述功能。通過(guò)設(shè)計(jì)基于AIMDL的內(nèi)容解釋器與協(xié)議識(shí)別模塊,使得能夠利用 AIMDL實(shí)現(xiàn)高效的協(xié)議識(shí)別系統(tǒng)。AIMDL內(nèi)容解釋器能夠?qū)⒒贏IMDL 的協(xié)議識(shí)別方式的描述文件中的基本識(shí)別操作的組織模式以及對(duì)應(yīng)的 參數(shù)信息存儲(chǔ),在特別設(shè)計(jì)的可擴(kuò)展識(shí)別方式存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)method list中, 一方面能夠在更新操作時(shí)重新解析AIMDL描述文件內(nèi)容實(shí)現(xiàn) 更新,另 一方面此結(jié)構(gòu)為識(shí)別操作執(zhí)行模塊提供識(shí)別方式的實(shí)現(xiàn)方式。 協(xié)議識(shí)別操作執(zhí)行模塊根據(jù)method 1 ist的內(nèi)容正確高效的實(shí)現(xiàn)協(xié)議 識(shí)別工作。本發(fā)明的協(xié)議識(shí)別系統(tǒng)能夠被應(yīng)用來(lái)實(shí)現(xiàn)多種類型的協(xié)議識(shí)別方式, 同時(shí)又能方便對(duì)特征與識(shí)別方式進(jìn)行更新。通過(guò)對(duì)多種識(shí)別方式的支持使得能夠在系統(tǒng)中使用不受限制的使用高效的識(shí)別方式,同時(shí)這些多樣的方式有能夠利用AIMDL來(lái)方便的描述,使得能夠通過(guò)簡(jiǎn)單的更新描述文件實(shí) 現(xiàn)識(shí)別方式的更新。利用XML的易于表述可擴(kuò)展的特性,方便了操作人員 設(shè)計(jì)并更新識(shí)別方式的過(guò)程。實(shí)現(xiàn)了兼具識(shí)別效率和可擴(kuò)展性的應(yīng)用層協(xié) 議識(shí)別架構(gòu)。另一方面,能夠利用狀態(tài)識(shí)別實(shí)現(xiàn)多狀態(tài)流量識(shí)別方式。現(xiàn) 有技術(shù)中沒(méi)有通用的多狀態(tài)解決方式。只有將多個(gè)數(shù)據(jù)包內(nèi)容整合成一個(gè) 整體進(jìn)行匹配用以實(shí)現(xiàn)類似的功能或是為特定協(xié)議設(shè)計(jì)特定的多狀態(tài)識(shí) 別方式。圖1是本發(fā)明的應(yīng)用層協(xié)議識(shí)別系統(tǒng)的工作示意圖。如圖l所示, 該協(xié)議識(shí)別系統(tǒng)包括協(xié)議識(shí)別方式的描述方法解釋器、Me thod U s t數(shù) 據(jù)結(jié)構(gòu)模塊、協(xié)議識(shí)別操作執(zhí)行模塊。整體系統(tǒng)流程分為下面幾個(gè)階段1)根據(jù)識(shí)別方式結(jié)合NAIMDL語(yǔ)法規(guī)則設(shè)計(jì)對(duì)應(yīng)的配置文件; 2 )程序在初始化數(shù)據(jù)過(guò)程中調(diào)用解釋器模塊解析配置文件的內(nèi)容并 依據(jù)內(nèi)容在程序中構(gòu)建method list數(shù)據(jù)結(jié)構(gòu);3)程序的識(shí)別模塊調(diào)用method list結(jié)構(gòu)中的內(nèi)容實(shí)現(xiàn)協(xié)議識(shí)別操作。以基于XML平臺(tái)的協(xié)議識(shí)別系統(tǒng)的具體結(jié)構(gòu)說(shuō)明 一.AIMDL協(xié)議識(shí)別方式的描述方法解釋器AIMDL解釋器負(fù)責(zé)從識(shí)別方式描述文件中解析出識(shí)別方式組織與 對(duì)應(yīng)參數(shù)并存儲(chǔ)在對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)method list中。AIMDL基于XML進(jìn) 行設(shè)計(jì),因此AIMDL解釋器利用現(xiàn)有的XML解釋器實(shí)現(xiàn)對(duì)文件中各個(gè) XML基本元素的遍歷以及內(nèi)容的獲取,對(duì)內(nèi)容語(yǔ)義的解析根據(jù)AIMDL的 設(shè)定在程序中完成相關(guān)邏輯即可。具體實(shí)現(xiàn)上利用由開(kāi)放源代碼的軟 件庫(kù)libxml2為基礎(chǔ)實(shí)現(xiàn)遍歷與解析文件中XML元素內(nèi)容的目的,語(yǔ) 義解析代碼為對(duì)應(yīng)元素內(nèi)容按照語(yǔ)法以及method list的設(shè)計(jì)結(jié)構(gòu)在 method list中構(gòu)建相應(yīng)的存儲(chǔ)空間用以保存信息。圖2示出圖1中的協(xié)議識(shí)別方式描述解釋器模塊的流程圖;如圖2 所示,整個(gè)AIMDL解析器模塊就由兩部分組成。在階段200獲取描述 文件結(jié)構(gòu),接著在階段202判斷是否存在下一種協(xié)議,如果沒(méi)有存在 下一種協(xié)議,則進(jìn)入階段210,解析程序結(jié)束;如果存在,進(jìn)入階段 204,獲取狀態(tài)信息、包長(zhǎng)限制構(gòu)建協(xié)議頭并加載在method list中。 在階段206中,接著判斷是否存在下一種協(xié)議,如果否,跳轉(zhuǎn)到階段 202開(kāi)始之前;如果是,則進(jìn)入階段208,獲取基本操作參數(shù)等信息。 將結(jié)構(gòu)加載到method list對(duì)應(yīng)的位置。最后根據(jù)操作的具體情況,要么返回階段206開(kāi)始之前,要么進(jìn)入階段210解析程序結(jié)束。二. Method list數(shù)據(jù)結(jié)構(gòu)模塊method 1 ist用以在協(xié)議識(shí)別程序中保存識(shí)別方式,其結(jié)構(gòu)采用動(dòng) 態(tài)鏈表和無(wú)類型指針構(gòu)成,方便動(dòng)態(tài)擴(kuò)展協(xié)議識(shí)別方式。同時(shí)通過(guò)對(duì) 結(jié)構(gòu)的設(shè)計(jì)高效的實(shí)現(xiàn)協(xié)議識(shí)別流程。圖3示出圖1中的Method List數(shù)據(jù)結(jié)構(gòu)模塊的結(jié)構(gòu)圖。如圖3 所示,其具體結(jié)構(gòu)圖忽略了鏈表元素之間連接的指針元素。識(shí)別方式頭引導(dǎo) 一 組基本識(shí)另'J操作以實(shí)現(xiàn) 一 個(gè)獨(dú)立的識(shí)別方式。 這個(gè)方式可以是能夠直接識(shí)別數(shù)據(jù)包所屬流為何種應(yīng)用協(xié)議的方式也 可以是多狀態(tài)識(shí)別方式中對(duì)某 一 狀態(tài)的校驗(yàn)方法。該識(shí)別頭中主要包 含的元素為此方式的狀態(tài)信息、包長(zhǎng)限制信息、應(yīng)用名稱以及指向 所屬基本操作和下一識(shí)別頭的指針。狀態(tài)信息存儲(chǔ)了這個(gè)識(shí)別方式是 否是多狀態(tài)識(shí)別方式的一部分,如果是的話對(duì)前項(xiàng)狀態(tài)的要求是什么, 識(shí)別后賦予的狀態(tài)名是什么這些信息。包長(zhǎng)限制信息表示此類識(shí)別方 式針對(duì)的是包長(zhǎng)在某個(gè)限制條件下的數(shù)據(jù)包。包長(zhǎng)限制信息以及前項(xiàng) 狀態(tài)要求信息能夠有效對(duì)數(shù)據(jù)包是否有資格進(jìn)行后續(xù)的 一連串基本識(shí) 別操作哦進(jìn)行判斷。這 一 結(jié)果能夠有效的加快平均檢測(cè)流程?;咀R(shí)別操作根據(jù)其類型和參數(shù),識(shí)別操作執(zhí)行模塊能夠完成 識(shí)別方式的各個(gè)基本操作。因?yàn)榛静僮黝愋洼^多,鏈表各元素使用 無(wú)類型指針鏈接,下一操作類型用以正確解析下一個(gè)基本操作元素的 內(nèi)容。三. 協(xié)議識(shí)別操作執(zhí)行模塊協(xié)議識(shí)別操作執(zhí)行模塊結(jié)合對(duì)象數(shù)據(jù)包的信息以及該數(shù)據(jù)包所屬 流記錄中的識(shí)別狀態(tài)信息以及buffer內(nèi)容信息使用method list中存 儲(chǔ)的識(shí)別方式完成協(xié)議識(shí)別操作。圖4示出圖1中的協(xié)議識(shí)別操作執(zhí)行模塊的流程圖。如圖4所示, 每個(gè)數(shù)據(jù)包進(jìn)入識(shí)別流程后按照method list的逐條匹配方法依次完 成匹配操作。在每個(gè)獨(dú)立的匹配操作中按照1. 包長(zhǎng)限制檢測(cè);2. 狀態(tài)信息檢測(cè);3. 基本;f企測(cè)才喿作的順序完成識(shí)別方式。如果通過(guò)上述三個(gè)檢測(cè),則識(shí)別狀態(tài)成功或是識(shí)別所屬應(yīng)用成果 退出流程。未通過(guò)檢測(cè)的繼續(xù)流程中的下 一 組識(shí)別操作直到被識(shí)別或是完成整個(gè)識(shí)別流考呈?;赬ML平臺(tái)的協(xié)議識(shí)別系統(tǒng)的流程說(shuō)明下面通過(guò) 一 個(gè)實(shí)際的例子說(shuō)明協(xié)議識(shí)別系統(tǒng)的整體工作流程: 一. 一個(gè)實(shí)際的識(shí)別方式描述文件內(nèi)容 < xml version-". 0" encoding="UTF-8" > <bi t torrent> <tcp<type value="l"> <byte〉<content>0xl3</content〉 <offset>0</offset〉 </byte> <string〉<content>BitTorrent protocol</content><offset〉l</offset><string—length>19</string—length〉 </string〉 </type> </tcp〉 <udp〉<type value=""><payload—length>21</pay load—length〉 <byte><content〉OxOO</content〉<offset>0</offset> </byte> <byte><content>OxOO</content><offset>l</offset> </byte> <byte><content〉0x04</content〉<offset>2</offset> </byte> <byte><content〉0x01</content><offset>3</offset></byte〉 </type> </udp> </bUtorrent>以上是一個(gè)描述識(shí)別BT流量的以NAIMD實(shí)現(xiàn)的配置文件。這里具 體實(shí)現(xiàn)了針對(duì)tcp和udp的各一種特征識(shí)別方式。它們分別是1. Payload首字節(jié)內(nèi)容為0x13,從第二個(gè)字節(jié)開(kāi)始的19個(gè)字節(jié) 為字符串"BitTorrent protocol",針對(duì)的是tcp流量。2. Payload長(zhǎng)度為21的數(shù)據(jù)包,第 一到四個(gè)字節(jié)內(nèi)容分別是0x00 0x00 0x04 0x01二. 初始化解析過(guò)程內(nèi)容解析模塊根據(jù)配置文件將導(dǎo)入(一)中所述文件中描述的識(shí) 別方式。1. 首先根據(jù)主元素內(nèi)容"bittorrent"確定了即將引入的識(shí)別方 式是針對(duì)BT協(xié)議的;2. 分別提取t c p和u d p標(biāo)簽下的識(shí)別方式內(nèi)容,將其內(nèi)部的識(shí)別 方式力口入到對(duì)應(yīng)的method list中(系統(tǒng)中包含兩個(gè)method list,分別表示tcp和udp的流量識(shí)別方式);3. 在解析過(guò)程中為每一個(gè)"type"標(biāo)簽下的內(nèi)容在method list 中構(gòu)建一個(gè)識(shí)另J方式頭(identifier—header ) , type中的每 一個(gè)基本識(shí)別元素為這個(gè)識(shí)別方式頭鏈接的基本識(shí)別方式中 的一個(gè)。例如TCP標(biāo)簽下的type l構(gòu)建一個(gè)識(shí)別方式頭,鏈 接兩個(gè)識(shí)別方式分別是判斷首字節(jié)內(nèi)容是否是0x13和判斷第 二個(gè)字節(jié)開(kāi)始的19個(gè)字節(jié)內(nèi)容是否是"BitTorrent Protocol"。三. 識(shí)別執(zhí)行過(guò)程在具體的識(shí)別執(zhí)行過(guò)程中,識(shí)別執(zhí)行模塊按照method list中的 內(nèi)容實(shí)現(xiàn)具體的識(shí)別工作。 具體流程如下1. 根據(jù)傳輸層協(xié)議決定參照TCP或UDP的method list來(lái)進(jìn)行識(shí) 別工作;2. 對(duì)數(shù)據(jù)包內(nèi)容和其所屬流信息用method list中的識(shí)別方式頭 指定的 一 些基本信息和鏈接的 一組基本識(shí)別操作進(jìn)行識(shí)別工 作;如果未完成任何 一 個(gè)獨(dú)立的識(shí)別操作就被認(rèn)為是不能滿足 這一識(shí)別方式對(duì)應(yīng)的特征,于是繼續(xù)進(jìn)入method 1 i s t中的下一條識(shí)別方式頭指定的識(shí)別方式進(jìn)行判斷。如果完成了 一個(gè)識(shí) 別方式頭所指定的所有操作,則被認(rèn)為滿足了識(shí)別特征(或者 是滿足了多狀態(tài)識(shí)別中進(jìn)入下一狀態(tài)的特征),則該流就可以 被識(shí)別未對(duì)應(yīng)的流量。 四.實(shí)例完整的工作流程當(dāng) 一個(gè)數(shù)據(jù)包以及其所屬流的信息進(jìn)入^r測(cè)流程之后,識(shí)別執(zhí)行 模塊根據(jù)method 1 is t信息對(duì)其進(jìn)行流量識(shí)別。首先根據(jù)其所屬的傳 專t層十辦i義選捧^"應(yīng)的method list ( tcp禾口 udp各自維護(hù)了 一個(gè)method list)。在依據(jù)method 1 i s t中的識(shí)別方式頭指定的識(shí)別方式進(jìn)行識(shí) 別操作,假如一個(gè)數(shù)據(jù)包被上述識(shí)別方式描述文件中的tcp的第一個(gè) type指定的方法所檢測(cè)的時(shí)候,首先進(jìn)行第一個(gè)操作檢測(cè)首個(gè)字符是 否是0xl3 (這個(gè)操作存儲(chǔ)在識(shí)別方式頭指定的第一個(gè)操作結(jié)構(gòu)中,識(shí) 別方式頭中包含這個(gè)操作的類型和其指針使得識(shí)別執(zhí)行模塊能夠正確 地找到這個(gè)存儲(chǔ)這個(gè)操作的結(jié)構(gòu)。這個(gè)結(jié)構(gòu)中存儲(chǔ)了其比較參數(shù)為 0x13,于是執(zhí)行模塊根據(jù)參數(shù)和操作類型對(duì)數(shù)據(jù)包和流信息進(jìn)行特征 匹配)。如果不符合這個(gè)特征就直接結(jié)束這個(gè)識(shí)別方式頭指定的識(shí)別 操作,進(jìn)入下一識(shí)別方式頭指定的識(shí)別過(guò)程中。如果符合這個(gè)特征就 繼續(xù)后續(xù)的識(shí)別操作,比如比較第二個(gè)字節(jié)開(kāi)始是否是字符串"BitTorrent Protocol",如果不是就進(jìn)入下一識(shí)別方式中。如果是 則告知識(shí)別執(zhí)行模塊,完成特征匹配,這個(gè)數(shù)椐包所屬于的流可以被 標(biāo)識(shí)為屬于BT應(yīng)用。以上對(duì)本發(fā)明的具體描述旨在說(shuō)明具體實(shí)施方案的實(shí)現(xiàn)方式,不 能理解為是對(duì)本發(fā)明的限制。本領(lǐng)域普通技術(shù)人員在本發(fā)明的教導(dǎo)下, 可以在詳述的實(shí)施方案的基礎(chǔ)上做出各種變體,這些變體均應(yīng)包含在 本發(fā)明的構(gòu)思之內(nèi)。本發(fā)明所要求保護(hù)的范圍僅由所述的權(quán)利要求書(shū) 進(jìn)行限制。
權(quán)利要求
1.一種對(duì)網(wǎng)絡(luò)應(yīng)用層的協(xié)議識(shí)別方式的識(shí)別方法,其特征在于包括以下步驟對(duì)多類型和多狀態(tài)的網(wǎng)絡(luò)應(yīng)用層的協(xié)議識(shí)別方式和識(shí)別方式的結(jié)構(gòu)以及支持識(shí)別的操作進(jìn)行描述設(shè)定;根據(jù)描述的設(shè)定,生成識(shí)別方式的描述文件;經(jīng)描述文件解釋器解析為可執(zhí)行的Method List數(shù)據(jù)結(jié)構(gòu)并由協(xié)議識(shí)別執(zhí)行單元完成協(xié)議的識(shí)別。
2. 根據(jù)權(quán)利要求1所述的識(shí)別方法,其特征在于所述的網(wǎng)絡(luò)應(yīng) 用層的協(xié)議識(shí)別方式包括下列的 一個(gè)或多個(gè)應(yīng)用層數(shù)據(jù)包的內(nèi)容與靜態(tài)特征匹配方式;應(yīng)用層數(shù)據(jù)包的基本屬性元素的關(guān)系特征匹配方式;以及應(yīng)用層數(shù)據(jù)包的狀態(tài)識(shí)別方式。
3. 根據(jù)權(quán)利要求2所述的識(shí)別方法,其特征在于,所述的應(yīng)用層 數(shù)據(jù)包的內(nèi)容與靜態(tài)特征匹配方式包括下列的一個(gè)或多個(gè)payload包含特征字段的檢驗(yàn)操作; pay 1 oad 1 ength為特征值的檢驗(yàn)操作; 端口號(hào)為特征值的檢驗(yàn)操作。
4. 根據(jù)權(quán)利要求2所述的識(shí)別方法,其特征在于,所述的應(yīng)用層 數(shù)據(jù)包的基本屬性元素的關(guān)系特征匹配方式包括payload內(nèi)容與包長(zhǎng)相關(guān)的匹配;和/或 payload內(nèi)容自4目關(guān)的匹配。
5. 根據(jù)權(quán)利要求1或2所述的識(shí)別方法,其特征在于所述支持 識(shí)別的操作是對(duì)協(xié)議識(shí)別提供操作支持的buffer操作方式。
6. 根據(jù)權(quán)利要求3所述的識(shí)別方法,其特征在于,所述的對(duì)協(xié)議 識(shí)別提供操作支持的buffer操作方式包括下列的一個(gè)或多個(gè)store buffer操作; Modify buffer :操作;以及 judge buffer操作。
7. 根據(jù)權(quán)利要求1至6任一項(xiàng)所述的識(shí)別方法,其特征在于所述的描述設(shè)定是基于XML語(yǔ)言平臺(tái)。
全文摘要
本發(fā)明披露了一種對(duì)網(wǎng)絡(luò)應(yīng)用層的協(xié)議識(shí)別方式的識(shí)別方法,主要對(duì)AIMDL的主要元素進(jìn)行描述設(shè)定并實(shí)現(xiàn)能夠利用AIMDL所描述的不同識(shí)別方式對(duì)不同協(xié)議進(jìn)行識(shí)別。主要步驟包括對(duì)多類型和多狀態(tài)的網(wǎng)絡(luò)應(yīng)用層的協(xié)議識(shí)別方式和識(shí)別方式的結(jié)構(gòu)以及支持識(shí)別的操作進(jìn)行描述設(shè)定;根據(jù)描述的設(shè)定生成識(shí)別方式的描述文件;經(jīng)描述文件解釋器的解析為Mthod List數(shù)據(jù)結(jié)構(gòu),并由協(xié)議識(shí)別執(zhí)行單元完成協(xié)議的識(shí)別。該方法實(shí)現(xiàn)了對(duì)于多類型和多狀態(tài)的協(xié)議識(shí)別方式的有效描述設(shè)定并對(duì)其加以識(shí)別,同時(shí)滿足了方便更新的需求。
文檔編號(hào)H04L29/06GK101577706SQ20081010607
公開(kāi)日2009年11月11日 申請(qǐng)日期2008年5月8日 優(yōu)先權(quán)日2008年5月8日
發(fā)明者眾 張, 楊建華 申請(qǐng)人:北京東華合創(chuàng)數(shù)碼科技股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1