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

一種構(gòu)造匹配規(guī)則表及識別報文類型的方法和裝置的制作方法

文檔序號:7700615閱讀:174來源:國知局
專利名稱:一種構(gòu)造匹配規(guī)則表及識別報文類型的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信領(lǐng)域,特別是指一種構(gòu)造匹配規(guī)則表及識別報文類型的方 法和裝置。
背景技術(shù)
在許多網(wǎng)絡(luò)設(shè)備(例如交換機、路由器)中,需要對接收到的各種報文進行 處理,其中,有一些處理需要知道報文的類型,以便進行統(tǒng)計、監(jiān)控等。報文 的類型由報文中一些特定字段的值來表示,不同類型的報文在某些字段的取值 不同,要判斷一個報文是否屬于某一報文類型,需要從這個報文中獲取這些字 段的值,并與一個已知的對應(yīng)字段值的組合對比,如果兩者完全一致,則可以 斷定當(dāng)前的報文是預(yù)期的報文類型。
判斷一個報文是否某屬于一預(yù)期報文類型的過程,稱為報文匹配,其中, 已知的字段值的組合是判斷的標(biāo)準(zhǔn),稱為匹配規(guī)則。滿足一個匹配規(guī)則的報文 必然屬于該匹配規(guī)則對應(yīng)的報文類型,反之,某一報文類型的所有報文都具有 相同的匹配規(guī)則。報文符合特定匹配規(guī)則,是報文屬于特定報文類型的充要條 件。據(jù)此,可以將每個報文類型與一個確定的匹配規(guī)則——對應(yīng),要判斷任一 報文類型,也就是將此報文中的某些字段的值與一系列匹配規(guī)則相對比,如果 找到一個匹配的規(guī)則,那么該報文就屬于該匹配規(guī)則對應(yīng)的報文類型?,F(xiàn)有技 術(shù)中,常使用基于報文特定字段的識別方法,可以對報文的內(nèi)容進行解析并逐 層分析,以確定報文類型。
發(fā)明人在實現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題對報
類似交換機、路由器等網(wǎng)絡(luò)設(shè)備對報文類型識別性能較高要求的場合;對于大 量的匹配規(guī)則,如果以線性表的方式來存放這些匹配規(guī)則,則在一個有n個匹 配規(guī)則的匹配規(guī)則表中進行匹配的時間復(fù)雜度為O(n)。

發(fā)明內(nèi)容
本發(fā)明的目的是提供一種構(gòu)造匹配規(guī)則表及識別報文類型的方法和裝置, 用于解決現(xiàn)有技術(shù)中,對報文的內(nèi)容進行解析并逐層分析以獲取報文類型所采 用的技術(shù)效率低,不適用于類似交換機、路由器等網(wǎng)絡(luò)設(shè)備對類型識別性能較 高要求的場合的問題。
一種構(gòu)造匹配規(guī)則表的方法,包括計算報文類型對應(yīng)的匹配規(guī)則所對應(yīng) 的哈希值;所述匹配規(guī)則根據(jù)報文特征構(gòu)造而成,描述了一報文的類型為所述 報文類型需要滿足的條件;根據(jù)所述哈希值將所述匹配規(guī)則存入一哈希表中, 形成一用于報文類型識別的匹配規(guī)則表。
一種構(gòu)造匹配規(guī)則表的裝置,包括哈希值計算模塊,用于計算報文類型 對應(yīng)的匹配規(guī)則的哈希值;所述匹配規(guī)則根據(jù)報文特征構(gòu)造而成,描述了報文 的類型為所述報文類型需要滿足的條件;匹配規(guī)則表建立模塊,用于根據(jù)所述 哈希值將所述匹配規(guī)則存入一哈希表中,形成一用于報文類型識別的匹配規(guī)則 表。
一種識別報文類型的方法,包括接收到一報文;提取所述報文中特征字 段的值,生成一報文特征;根據(jù)所述報文特征計算出一哈希值;根據(jù)所述哈希 值在匹配規(guī)則表中查找對應(yīng)的匹配規(guī)則,將所述報文特征與該匹配規(guī)則進行匹 配;所述的匹配規(guī)則表為一保存有匹配規(guī)則的哈希表;匹配成功之后,確定所 述匹配規(guī)則所對應(yīng)的報文類型為所述報文的報文類型。
一種能夠識別報文類型的裝置,包括報文接收模塊,用于接收報文;報 文特征提取模塊,用于提取所述報文中的特征字段,生成一報文特征;報文特 征哈希值計算模塊,用于根據(jù)所述報文特征計算出一哈希值;匹配規(guī)則查找模 塊,用于依據(jù)所述哈希值在所述匹配規(guī)則表中查找對應(yīng)的匹配規(guī)則并與該匹配 規(guī)則進行匹配;所述的匹配規(guī)則表為一保存有匹配規(guī)則的哈希表;匹配成功之 后,確定所述匹配規(guī)則所對應(yīng)的報文類型為所述報文的報文類型。
應(yīng)用本發(fā)明實施例提供的技術(shù),? 1入哈希表作為匹配規(guī)則表來存儲匹配規(guī) 則,通過提取報文的特征字段,將它與預(yù)先存儲在哈希表中的匹配規(guī)則進行比 對,實現(xiàn)報文類型的快速識別,從而將匹配的時間復(fù)雜度由O(n)降低到了常 數(shù)級別的O(l)。


圖1為本發(fā)明實施例構(gòu)造匹配規(guī)則表方法流程示意圖一; 圖2為本發(fā)明實施例構(gòu)造匹配規(guī)則表方法流程示意圖二; 圖3為本發(fā)明實施例構(gòu)造匹配規(guī)則表的裝置結(jié)構(gòu)示意圖; 圖4為本發(fā)明實施例識別報文類型的方法流程示意圖一; 圖5為本發(fā)明實施例識別報文類型的方法流程示意圖二; 圖6為本發(fā)明實施例識別報文類型的裝置結(jié)構(gòu)示意圖。
具體實施例方式
為使本發(fā)明的目的、技術(shù)特征和實施效果更加清楚,下面將結(jié)合附圖及具 體實施例對本發(fā)明的技術(shù)方案進行詳細(xì)描述。本發(fā)明提供的實施例用以克服現(xiàn) 有技術(shù)中存在的匹配規(guī)則表查找效率低的問題和缺陷,提供基于哈希表建立匹 配規(guī)則表以及進行報文匹配的方法。
本發(fā)明提供的實施例中,提供一種構(gòu)造匹配規(guī)則表的方法,如圖l所示, 包括
步驟IOI,計算報文類型對應(yīng)的匹配規(guī)則所對應(yīng)的哈希值;所述匹配規(guī)則 根據(jù)報文特征構(gòu)造而成,描述了一報文的類型為所述報文類型需要滿足的條 件;
步驟102,根據(jù)所述哈希值將所述匹配規(guī)則存入一哈希表中,形成一用于 報文類型識別的匹配關(guān)見則表。
應(yīng)用本實施例提供的技術(shù),以匹配規(guī)則表記錄不同的報文類型,為在交換 機、路由器等需要處理多種報文類型的網(wǎng)絡(luò)設(shè)備上實現(xiàn)快速識別報文類型提供 了可行方案。
本實施例中為充分揭示構(gòu)造一匹配規(guī)則表的流程,不失一般性,設(shè)定存在 一具體的報文類型type,報文pkt,則將匹配規(guī)則R(type)和報文的特征字段 C(pkt)分別表示成
R(type) = {Condition 1, Condition2,…, Conditionn } (1) C(pkt) = {Field 1:value 1 , Field2:value2, …,F(xiàn)ieldn:valuen} (2)式(l)中,Conditionl, Condition2等給出了報文類型type需要滿足的一系 列條件;式(2)中,給出了報文pkt的各個特征字段的名稱和值。
匹配過程中,將報文的一個或多個特征字段的值提取出來,記作C(pkt), 將C(pkt)與已經(jīng)確定的匹配規(guī)則R(type)進行對比,根據(jù)對比結(jié)果得出結(jié)論; 如果C(pkt)滿足R(type)所描述的條件,則pkt就是type這一報文類型的報文, 否則pkt不是type報文。
例如, 一個報文的報文類型為ARP的充要條件是由于是以太報文類型, 因此該報文中存在取值為0x0806的以太類型字段EthType,可以將ARP報文 的匹配身見則記為
R(arp) = { EthType=0x0806 }
因此,根據(jù)給定的任一報文pkt,提取該報文pkt的以太類型構(gòu)成報文特 征字段,記為
C(pkt) = { EthType:<ethType>}。其中,〈ethType〉為該報文pkt的實際以太 類型的值;如果〈ethType〉的值為0x0806,說明報文pkt滿足匹配規(guī)則R(arp), 可以判定pkt是一個arp報文,否則不是arp報文。
同理,ospf報文的匹配規(guī)則記為
R(ospf)= { EthType=0x0800, IPVersion=4, Protocol=0x59} 即,當(dāng)報文的以太類型為0x0800、 IP版本號為4、協(xié)議號為0x59時,該 報文才會被認(rèn)為是ospf報文。
由上述描述可知,對于報文類型的識別,依賴于報文中一個或多個特定字 段的取值,而報文中其他字段的信息(如用戶數(shù)據(jù))不會影響報文類型的判斷。 這些特定字段多位于報文的各層包頭中,相對位置固定,因此使用本實施例提
比較,就可以判定報文是否對應(yīng)的報文類型,相比于逐字節(jié)解析報文的做法, 提高了判斷報文類型的效率。
本實施例中,給出了一種較為通用的定義匹配規(guī)則的結(jié)構(gòu)的方法
{Valid, DstMac=DST_MAC}, {Valid, EthType=ETHTYPE},{Valid, Protocol=PROTOCOL}, {Valid, SrcPort=SRC—PORT}, {Valid, DstPort=DST—PORT}, {Valid, ExtendedCondition}
顯然,匹配規(guī)則R由6個檢查條件構(gòu)成,每個檢查條件包含一個標(biāo)志Valid 和右面的取值要求,其中,標(biāo)志Valid用來指出本條^^查條件中,右面對應(yīng)的 條件是否必須被滿足如果此標(biāo)志Valid為真,則按照給定的字段值對報文進 行檢查,如果為假,則對報文不必滿足該對應(yīng)的條件。最后一項檢查條件可以 是任意一個必檢的擴展^r查條件,可以采用 一個等式或者其他任何形式的表達 式,例如可以用復(fù)雜的函數(shù)來表示,以便滿足某些特殊的匹配需求。
以太網(wǎng)中傳輸?shù)乃械膱笪念愋偷钠ヅ湟?guī)則均可以用上述結(jié)構(gòu)來描述,一 系列匹配規(guī)則插入一哈希表中即構(gòu)成一匹配規(guī)則表。匹配規(guī)則表的建立需要確 定每個匹配規(guī)則的哈希值,該匹配規(guī)則的哈希值需要與計算所得的哈希值對應(yīng) 起來,因此,只能根據(jù)匹配規(guī)則中的某一個特定檢查字段來計算,這個特定檢 查字段即此匹配規(guī)則的關(guān)4建字段,記為key。
不同的匹配規(guī)則并不一定都會4企查同 一個關(guān)4建字段,因此無法使用某個固 定的特征字段來做為匹配規(guī)則的關(guān)鍵字段。哈希值的計算需要根據(jù)每條匹配規(guī) 則各自的特點,選擇一個合適的關(guān)鍵字段來計算。
本實施例中,對于Ethernet格式報文,該格式報文EthType/Len字段大于 0x0600,代表報文的以太類型,是這類報文匹配規(guī)則的必檢字段;對于非 Ethernet格式報文,其EthType/Len字段不大于0x0600,不代表報文的以太類 型,但其目的MAC通常都具有明確特征,可以用來識別才艮文類型。因此,每 條匹配規(guī)則,在目的MAC字段和EthType/Len字段中,至少有一個是需要檢 查的必檢字段。
以下所描述的哈希值計算方法,正是基于這一特點,確定了匹配規(guī)則的關(guān) 鍵字段,就可以根據(jù)其值使用一個哈希函數(shù)計算出當(dāng)前匹配規(guī)則的哈希值 hash_code:
hash_code = Hash(ke力 (3)
9通常應(yīng)用中,均需要按協(xié)議應(yīng)用來區(qū)分報文類型;通過分析各種報文的格 式發(fā)現(xiàn),在應(yīng)用于以太網(wǎng)的報文中,可以根據(jù)以下各特征字段中的一個或幾個 的取值來識別
目的MAC(DstMac)、以太類型(EthType)、 IP報文協(xié)議號(Protocol)、源端 口號(SrcPort)、目的端口號(DstPort)等。
有了匹配規(guī)則對應(yīng)的確定的哈希值,匹配規(guī)則就可以根據(jù)此哈希值插入哈 希表構(gòu)成所述匹配規(guī)則表。如圖2所示,給出了基于上述特征字段作為關(guān)鍵字 段建立匹配規(guī)則表的流程
步驟201 ,確定需要被識別的報文類型。
步驟202,將此報文類型所需滿足的不同特征轉(zhuǎn)換成當(dāng)前匹配規(guī)則;具體 包括將不同特征字段作為必檢字段,在匹配規(guī)則中記錄對應(yīng)的值。
步驟203,判斷EthType是否當(dāng)前匹配規(guī)則的必檢字段,如果不是轉(zhuǎn)步驟 204,否則轉(zhuǎn)步驟205;
步驟204,表明當(dāng)前匹配規(guī)則對應(yīng)的報文類型非Ethernet格式,選擇目的 MAC做為關(guān)鍵字段,轉(zhuǎn)步驟208。
步驟205,判斷Protocol是否當(dāng)前匹配規(guī)則的必檢字段,如果不是轉(zhuǎn)步驟 206,如果是,轉(zhuǎn)步驟207。
步驟206, EthType是當(dāng)前的匹配規(guī)則的必檢字段,以該EthType作為關(guān) 鍵字段,表明當(dāng)前匹配規(guī)則非IPV4或者IPV6報文,當(dāng)前匹配規(guī)則對應(yīng)的報 文類型是Ethernet格式,轉(zhuǎn)步驟208。
步驟207,選擇Protocol做為關(guān)鍵字段,轉(zhuǎn)步驟208。
步驟20S,根據(jù)選擇的關(guān)鍵字段的值,計算出哈希值hash一code。
步驟209,根據(jù)計算出來的哈希值hash—code,將匹配規(guī)則插入匹配規(guī)則 表中。
步驟210,判斷是否還有更多需要被識別的報文類型,如果沒有轉(zhuǎn)步驟 211,如果有則返回步驟201。
步驟211,構(gòu)造匹配規(guī)則表的流程結(jié)束。
由于不同匹配規(guī)則中對哈希值的計算并不一定是依據(jù)相同的關(guān)鍵字段,因 此不同的匹配規(guī)則存在哈希值相同的可能,即匹配規(guī)則表中不同匹配規(guī)則之間可能存在沖突;因此,所述哈希值將所述匹配規(guī)則存入一哈希表中進一步包括 所述哈希表能夠支持沖突鏈;當(dāng)出現(xiàn)過多匹配規(guī)則具有相同哈希值的匹配規(guī)則 插入所述匹配規(guī)則表時,所述哈希表自行建立并維護一個沖突鏈以實現(xiàn)這些匹 配規(guī)則的保存。即當(dāng)不同匹配規(guī)則的哈希值相同,哈希表會自動建立一個沖突 鏈來保存這些匹配規(guī)則。如能合理設(shè)置匹配規(guī)則表的初始的表空間大小,或者 更換哈希值計算函數(shù)Hash(key),可以減少甚至消除出現(xiàn)沖突的可能。本實施 例中的"出現(xiàn)過多"是指具有相同哈希值的匹配規(guī)則的數(shù)目超出了一個預(yù)先設(shè) 定的能夠容忍的限度。
上述實施例提供的方法可以應(yīng)用于網(wǎng)絡(luò)安全的各個領(lǐng)域。 與所提供的方法對應(yīng),本實施例提供了一種構(gòu)造匹配規(guī)則表的裝置,如圖 3所示,至少包括
哈希值計算模塊301,用于計算報文類型對應(yīng)的匹配規(guī)則對應(yīng)的哈希值; 所述匹配規(guī)則根據(jù)報文特征構(gòu)造而成,描述了報文的類型為所述報文類型需要 滿足的條件;
匹配規(guī)則表建立模塊302,用于根據(jù)所述哈希值將所述匹配規(guī)則存入一哈 希表中,形成一用于報文類型識別的匹配規(guī)則表。
應(yīng)用本實施例提供的技術(shù),用匹配規(guī)則表記錄不同的報文類型,為在交換 機、路由器等需要處理多種類型報文的網(wǎng)絡(luò)設(shè)備上實現(xiàn)快速的報文類型識別提 供了可依賴的技術(shù)。
還可以包括修正模塊303,與哈希值計算模塊301連接,統(tǒng)計不同匹配 規(guī)則出現(xiàn)哈希值相同的情況,用于當(dāng)出現(xiàn)過多匹配規(guī)則的哈希值相同時,重新 設(shè)置所述哈希表的表空間大小,或者更換用于計算所述哈希值的哈希函數(shù);與 匹配規(guī)則表建立模塊302連接,為所述匹配規(guī)則表建立模塊302重新建立一匹 配規(guī)則表,直至不同匹配規(guī)則的哈希值之間的沖突降低到一預(yù)定程度;以此改 善存在匹配規(guī)則沖突時的性能。這些調(diào)整應(yīng)當(dāng)在設(shè)計階段確定。
本實施例中,基于上述提供的技術(shù)方案所構(gòu)建匹配規(guī)則表,應(yīng)用該匹配規(guī) 則表進行報文匹配,提供一種識別報文類型的方法,如圖4所示,具體包括 步驟401,接收到一報文;步驟402,提取所述報文中特征字段的值,生成一報文特征; 步驟403,根據(jù)所述報文特征計算出一哈希值;
步驟404,依據(jù)所述哈希值在一匹配規(guī)則表中查找對應(yīng)的匹配規(guī)則并與該 匹配規(guī)則進行匹配;所述的匹配規(guī)則表為 一保存有匹配規(guī)則的哈希表;
步驟405,匹配成功之后,確定所述匹配規(guī)則所對應(yīng)的報文類型為所述報 文的報文類型。
應(yīng)用本實施例提供的技術(shù),針對現(xiàn)有技術(shù)中存在的匹配規(guī)則表查找效率較 低的問題和缺陷進行了改進,引入了哈希表來存儲匹配規(guī)則表,通過提取報文 的特征字段,將它與預(yù)先存儲在哈希表中的匹配規(guī)則進行比對,實現(xiàn)報文類型 的快速識別,從而將匹配的時間復(fù)雜度由O(n)降低到了常數(shù)級別的O(l)。
報文匹配是由報文特征選擇關(guān)鍵字段并計算哈希值,據(jù)此哈希值在匹配規(guī) 則表中與不同的匹配規(guī)則進行對比。由于匹配規(guī)則表中有存在沖突的可能,根 據(jù)哈希值找到的第一條匹配規(guī)則并不一定能夠匹配成功,因此可能需要遍歷沖 突鏈,依次與沖突鏈上的部分或全部匹配規(guī)則進行匹配,直至匹配成功或者全 部不成功。
大部分報文都可以根據(jù)以下各字段中的一個或幾個的取值來識別目的介 質(zhì)訪問控制地址(DstMAC)、以太類型(EthType)、 IP報文協(xié)議號(Protocol)、源 端口號(SrcPort)、目的端口號(DstPort)等。如圖5所示的報文匹配的流程圖, 對于任意報文,包括
步驟501,解析報文,提取報文中一特征字段EthType/Len的值。 步驟502,判斷EthType/Len的值是否大于0x0600,如果是轉(zhuǎn)步驟504, 否則轉(zhuǎn)步驟503。
步驟503,此特征字段為Len,非Ethernet格式的報文,需要選擇報文的 目的MAC作為關(guān)4建字段Key。
步驟504,此特征字段為EthType,需要進一步進行判斷EthType的值是 否為0x0800或0x86dd,如果是轉(zhuǎn)步驟506,否則轉(zhuǎn)步驟505。
步驟505,需要選擇EthType作為關(guān)鍵字段Key并轉(zhuǎn)步驟507。
步驟506,報文是IPV4或IPV6報文,需要選擇報文的Protocol作為關(guān)鍵 字段Key。
12步驟507,提取報文中由步驟503、步驟505或步驟506中得到的關(guān)鍵字 段Key的值,計算出該報文的哈希值hash一code。本步驟507實質(zhì)上處理的是 非IP的ETHERNET格式的報文,因此用EthType做關(guān)44字4更Key。
步驟508,使用所述hash—code對匹配規(guī)則表進行哈希查找,嘗試找到此 hash—code對應(yīng)的下一條匹配MJ'J R(hash—code);
步驟509,判斷查找匹配規(guī)則R(hash—code)是否存在,如果存在轉(zhuǎn)步驟510, 否則轉(zhuǎn)步驟512。
步驟510,已找到R(hash_code),將報文的報文特征與此匹配規(guī)則進行比 壽交匹配;
判斷是否匹配成功,如果是轉(zhuǎn)步驟511,否則轉(zhuǎn)步驟508。
步驟511,匹配規(guī)則中所有對應(yīng)的必檢字段的值與報文對應(yīng)的特征字段的
值都完全相同,且滿足擴展檢查條件,則報文匹配成功,當(dāng)前匹配規(guī)則對應(yīng)的
報文類型就是待識別的報文的報文類型,轉(zhuǎn)步驟513。
步驟512,報文無法匹配成功,匹配失敗不再需要進行任何對比,因此轉(zhuǎn)
步驟513。
匹配不成功的原因是在匹配規(guī)則表中沒有找到能夠描述待匹配報文的特 征的匹配失見則。
步驟513,匹配流程結(jié)束。
根據(jù)報文選擇不同的特征字段作為關(guān)鍵字段,與前述實施例中根據(jù)匹配規(guī) 則的特點選擇關(guān)鍵字段是對應(yīng)的,并且也使用相同的哈希函數(shù)計算各自的哈希 值,從而快速找到匹配規(guī)則。
與報文匹配方法對應(yīng)地,本實施例提供了一種能夠識別報文類型的裝置, 如圖6所示,包括
報文接收模塊601,用于接收報文。
報文特征提取模塊602,用于提取所述報文中的特征字段,生成一報文特征。
報文特征哈希值計算模塊603,用于根據(jù)所述報文特征計算出 一哈希值。 匹配規(guī)則查找模塊604,用于依據(jù)所述哈希值在一匹配規(guī)則表中查找對應(yīng) 的匹配規(guī)則并與該匹配規(guī)則進行匹配;所述的匹配規(guī)則表為 一保存有匹配規(guī)則的哈希表;
匹配成功之后,確定所述匹配規(guī)則所對應(yīng)的報文類型為所述報文的報文類型。
應(yīng)用本實施例提供的技術(shù),針對現(xiàn)有技術(shù)中存在的匹配規(guī)則表查找效率較 低的問題和缺陷進行了改進,引入了哈希表來存儲匹配規(guī)則表,通過提取報文 的特征字段,將它與預(yù)先存儲在哈希表中的匹配規(guī)則進行比對,實現(xiàn)報文類型 的快速識別,相對于采用線性表存儲匹配規(guī)則的方式,將匹配的時間復(fù)雜度由 O(n)降低到了常數(shù)級別的0(1)。
為了在任意報文pkt被裝置接收到時均可以被處理,匹配規(guī)則和匹配規(guī)則 表應(yīng)當(dāng)在對裝置進行初始化時準(zhǔn)備好,因此還包括
匹配規(guī)則表存儲模塊,用于存儲所述匹配規(guī)則和匹配規(guī)則表,即匹配規(guī)則 是事先已經(jīng)確定的,并以匹配規(guī)則表的形式存儲在裝置中備用。
本發(fā)明的實施例具有以下有益效果,針對現(xiàn)有技術(shù)中存在的匹配規(guī)則表查 找效率較低的問題和缺陷進行了改進,引入了哈希表來存儲匹配規(guī)則表,從而 將匹配的時間復(fù)雜度降低到0(1)。
應(yīng)當(dāng)說明的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制,所有 的參數(shù)取值可以根據(jù)實際情況調(diào)整,且在該權(quán)利保護范圍內(nèi)。本領(lǐng)域的普通技 術(shù)人員應(yīng)當(dāng)理解,可以對本發(fā)明的技術(shù)方案進行修改或者等同替換,而不脫離 本發(fā)明技術(shù)方案的精神范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
1權(quán)利要求
1.一種構(gòu)造匹配規(guī)則表的方法,其特征在于,包括計算報文類型對應(yīng)的匹配規(guī)則的哈希值;所述匹配規(guī)則根據(jù)報文特征構(gòu)造而成,描述了一報文的類型為所述報文類型需要滿足的條件;根據(jù)所述哈希值將所述匹配規(guī)則存入一哈希表中,形成一用于報文類型識別的匹配規(guī)則表。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述匹配規(guī)則包含至少一 個應(yīng)滿足的條件,每一條件為一特征字段應(yīng)取的值;在以太網(wǎng)中所傳輸?shù)膱笪闹?,所述特征字段包括目的介質(zhì)訪問控制地址、以太類型、IP報文協(xié)議號、源端口號、目的端 口號中的至少一個。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,計算所述匹配規(guī)則的哈希 值進一步包括確定一所述匹配規(guī)則的一關(guān)鍵字段,使用一哈希函數(shù)根據(jù)所述關(guān)鍵字段計 算出所述匹配規(guī)則的哈希值。
4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述哈希值將所述匹 配規(guī)則存入一哈希表中進一步包括所述哈希表能夠支持沖突鏈;當(dāng)出現(xiàn)過多具有相同哈希值的匹配規(guī)則插入所述匹配規(guī)則表時,所述哈希 表自行建立并維護所述沖突鏈以實現(xiàn)這些所述匹配規(guī)則的保存。
5. —種構(gòu)造匹配規(guī)則表的裝置,其特征在于,包括 哈希值計算模塊,用于計算報文類型對應(yīng)的匹配規(guī)則的哈希值;所述匹配規(guī)則根據(jù)報文特征構(gòu)造而成,描述了報文的類型為所述報文類型需要滿足的條 件;匹配規(guī)則表建立模塊,用于根據(jù)所述哈希值將所述匹配規(guī)則存入一哈希表 中,形成一用于報文類型識別的匹配規(guī)則表。
6. 根據(jù)權(quán)利要求5所述的裝置,其特征在于,修正模塊,用于當(dāng)出現(xiàn)過多匹配規(guī)則的哈希值相同時,重新設(shè)置所述哈希表的表空間大小,或者更換用于計算所述哈希值的哈希函數(shù);重新建立一匹配 規(guī)則表,直至不同匹配規(guī)則的哈希值之間的沖突降低到一預(yù)定程度。
7. —種識別報文類型的方法,其特征在于,包括 接收到一報文;提取所述報文中特征字段的值,生成一報文特征; 根據(jù)所述報文特征計算出 一哈希值;根據(jù)所述哈希值在匹配規(guī)則表中查找對應(yīng)的匹配規(guī)則,將所述報文特征與 該匹配規(guī)則進行匹配;所述匹配規(guī)則表為 一保存有匹配^見則的p合希表;匹配成功之后,確定所述匹配規(guī)則所對應(yīng)的報文類型為所述報文的報文類型。
8. 根據(jù)權(quán)利要求7所述的方法,其特征在于,根據(jù)所迷,合希值在匹配規(guī)則表中查找對應(yīng)的匹配規(guī)則,將所述報文特征與 該匹配規(guī)則進行匹配進一 步包括的特征字段的值一致時,匹配成功;當(dāng)所述匹配規(guī)則中還包括必檢的擴展檢查條件,則所述報文還需滿足所述 擴展檢查條件方能匹配成功。
9. 根據(jù)權(quán)利要求7所述的方法,其特征在于,根據(jù)所述哈希值在一匹配 規(guī)則表中查找對應(yīng)的匹配規(guī)則,將所述報文特征與該匹配規(guī)則進行匹配進一步 包括當(dāng)根據(jù)所述哈希值找到 一所述匹配規(guī)則后,所述報文特征與所述匹配規(guī)則 不匹配,且匹配規(guī)則表中有更多與該哈希值對應(yīng)的匹配規(guī)則時,遍歷所述匹配 規(guī)則表中的與該哈希值對應(yīng)的其他匹配規(guī)則,依次與查找到的每條匹配規(guī)則進 4亍匹配。
10. 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述匹配規(guī)則包含至少一 個應(yīng)滿足的條件,每一條件為一特征字段應(yīng)取的值;在以太網(wǎng)中所傳輸?shù)膱笪闹?,所述特征字段包?目的介質(zhì)訪問控制地址、以太類型、IP報文協(xié)議號、源端口號、目的端 口號中的至少一個。
11. 根據(jù)權(quán)利要求7所述的方法,其特征在于,將所述^J艮文特征與該匹配 規(guī)則進行匹配進一步包括所述報文滿足預(yù)先設(shè)置的擴展檢查條件。
12. —種能夠識別報文類型的裝置,其特征在于,包括 報文接收模塊,用于接收報文;報文特征提取模塊,用于提取所述報文中的特征字段,生成一報文特征; 報文特征哈希值計算模塊,用于根據(jù)所述報文特征計算出 一哈希值; 匹配規(guī)則查找模塊,用于根據(jù)所述哈希值在所述匹配規(guī)則表中查找對應(yīng)的匹配規(guī)則并與該匹配規(guī)則進行匹配;所述匹配規(guī)則表為 一保存有匹配規(guī)則的哈希表;匹配成功之后,確定所述匹配規(guī)則所對應(yīng)的報文類型為所述報文的報文類型。
全文摘要
本發(fā)明提供一種構(gòu)造匹配規(guī)則表及識別報文類型的方法和裝置,其中方法包括計算報文類型對應(yīng)的匹配規(guī)則的哈希值;所述匹配規(guī)則根據(jù)報文特征構(gòu)造而成,描述了一報文的類型為所述報文類型需要滿足的條件;根據(jù)所述哈希值將所述匹配規(guī)則存入一哈希表中,形成一用于報文類型識別的匹配規(guī)則表。應(yīng)用本發(fā)明實施例提供的技術(shù),通過提取報文的特征字段,將它與預(yù)先存儲在哈希表中的特定匹配規(guī)則進行比對,實現(xiàn)報文類型的快速識別,從而將報文匹配的時間復(fù)雜度由O(n)降低到了常數(shù)級別的O(1)。
文檔編號H04L29/06GK101562612SQ200910085600
公開日2009年10月21日 申請日期2009年5月26日 優(yōu)先權(quán)日2009年5月26日
發(fā)明者周鵬輝 申請人:中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
温宿县| 平武县| 江都市| 大宁县| 晋江市| 屏东市| 噶尔县| 股票| 资溪县| 阳原县| 平舆县| 惠水县| 重庆市| 英吉沙县| 聂拉木县| 图们市| 张家口市| 稷山县| 思茅市| 区。| 巴林左旗| 江陵县| 祁阳县| 鸡泽县| 温州市| 南宁市| 息烽县| 新郑市| 罗源县| 南漳县| 武宁县| 泾川县| 宁都县| 兴海县| 东方市| 泸州市| 西充县| 汝城县| 南川市| 崇州市| 涡阳县|