新四季網

規則匹配裝置和方法

2023-06-25 07:55:11

專利名稱:規則匹配裝置和方法
技術領域:
本發明涉及數據處理,特別是數據過濾技術。
背景技術:
計算機系統現在運行在一個近乎無所不在的互連環境中, 無論是連接到網際網路和網絡還是通過有線或無線技術。雖然在 線通訊的採用已經為商務網絡和信息共享建立了無數新機會, 但是也同時增加了網絡安全被試圖侵害、駭客攻擊、意圖訪問 保密信息,或者其他妨礙網絡通訊的行為的頻率。
最近,大量以偵測和阻止網絡中攻擊為目標的計算機軟體 程序出現,包括反病毒數據過濾,防火牆,侵入偵測/阻止和網 絡保護。幾乎每個現代網絡安全系統的核心都是 一 個內容匹配 引擎,其掃描一個輸入數據流以尋找特定的內容,這些內容是 已知有威脅或危險的數據。內容匹配引擎也是一個已知的模式 匹配引擎,並且被掃描的特定內容(模式)通常被稱作內容(模 式)標誌存在於標誌資料庫中。如果在被掃描的數據流和在標 志資料庫中的一個內容標誌之間找到一個匹配, 一個警報就會 發出,並且被掃描的數據流會在其造成任何損害之前被捕捉住。 除了在網絡安全計算機軟體中的應用,內容匹配也被用於因特
網通訊協議(IP, internet protocol)路徑,其中每個穿過IP路 徑的數據流都可以;故追溯到其IP位址。
內容匹配引擎的一個實施方式是利用一個處理器 (CPU/NPU)。在運行中,標誌資料庫的內容組^皮存儲在一個 夕卜部同步隨機存取存々者器(SRAM, synchronous random access memory,)或者 一 個動態隨機存取存儲器(DRAM, (dynamicrandom access memory )中。被處理器運行的軟體比4交輸入數據 流和標誌資料庫中的內容組以執行內容匹配功能。因為處理器
(CPU/NPU)不是專門用於執行內容匹配的,因此基於處理器 運行的匹配速度十分慢。
內容匹配引擎的另外一個實施方式是利用內容可尋址存儲 器(CAM, content addressable memory)或者三重內容可尋址 存儲器(TCAM, ternary content addressable memory )。 CAM
(TCAM)是一個存儲裝置,其尤其適用於匹配功能。然而, CAM (TCAM)是一個特別昂貴的存儲元件,其一般的費用是 SRAM的五倍。而且,CAM ( TCAM)的存儲容量特別小並且
不能隨著標誌資料庫中內容組的增加而調整。
內容匹配引擎的另外一個實施方式是利用 一個現場可再編 牙呈門P車歹i] (( FRGA, field reprogrammable gate array ))。在運4亍 中,在標誌資料庫中的內容組被轉換成狀態圖並且在FRGA中 作為狀態機實施。FRGA被編程用來掃描輸入數據流以在其中 尋找標誌資料庫中已經在FRGA中被轉換成狀態圖的內容組。 然而, 一旦標誌資料庫中的內容組被修改,FRGA必須被相應 重新配置。 一般來說,此類重新配置需要大量時間以至於FRGA 的靈活性會受到影響。
總的來說,以上實施方式具有多種缺點。

發明內容
為了解決上述問題,本發明提供了一種用於對數據流實現 規則匹配的裝置,包括內容匹配模塊,其用來搜索所述數據 流以尋找多個內容;和
第一規則匹配模塊,其連接到所述內容匹配模塊,根據所 述搜索結果,用來更新多個狀態寄存器,並且根據所述多個狀態寄存器,用來判斷規則組是否被所述數據流匹配;
其中所述規則組包含從所述內容組中選出的具有 一個單一
內容的簡單規則,和從所述多個內容中選出的具有多重內容的
複雜規則,並且其中每個所述狀態寄存器表示其中一個規則是
否#皮所述悽t據流匹配。
本發明進一步提供了 一種用來對數據流實現規則匹配的方
法,包括
搜索所述數據流尋找多個內容;
根據所述搜索結果更新多個狀態寄存器;並且
根據所述多個狀態寄存器判斷所述規則組是否被所述數據
流匹配,
其中所述規則組包含具有一個單一內容的簡單規則和具有 多重內容的複雜規則,並且其中所述多個狀態寄存器中的每個 狀態寄存器表示所述規則組中的 一 個規則是否被所述數據流匹 配。
本發明所述的規則匹配裝置和方法,可有效利用資源,並 具有相對高的靈活性和相對低的價格。


本發明的優點將會通過如下說明書典型實施例的詳細說明 變得明顯,其中說明書應該結合附圖理解,其中
圖l是根據本發明實施例的一個規則匹配系統的框圖; 圖2是根據本發明實施例的第 一規則匹配模型的框圖; 圖3是根據本發明實施例的 一 個狀態寄存器的結構圖; 圖4是根據本發明實施例的一種用來對數據流實現規則匹 配方法的流程圖。
具體實施例方式
現在將會詳細參考本發明實施例。雖然本發明將會結合具 體實施例進行說明,但是可以理解,如下說明不是意圖將本發 明限制在實施例中。相反,本發明覆蓋了所有的替代,修改和 等同方式,只要這些相關技術特徵包含在本發明隨附的權利要 求書定義的主旨和範圍中。
圖l所示的是根據本發明一個實施例中 一個規則匹配系統
100的框圖。系統100包含一個匹配引擎110和一個標誌資料庫 120。標誌資料庫120存在於一個存儲元件中,例如SRAM或 DRAM,並包含內容組,該內容組進一步^皮整理成規則組,該內 容組可以包含具有一個單一內容的簡單規則組和具有多個內容 的複雜規則組。匹配引擎110掃描數據流101,以在其中尋找在 標誌資料庫120中的規則組。在一個實施例中,為了加快規則匹 配, 一個數據過濾模塊103能被連接於數據流101和匹配引擎IIO 之間。 一個輸出模塊130也能被連接到匹配引擎IIO,以當在數 據流101和在標誌資料庫12 0中的規則組之間找到 一 個匹配時, 輸出模塊130提供一個警報信號。在一個實施例中,匹配引擎IIO 能進一步包括一個內容匹配模塊105,第一^L則匹配才莫塊107和 第二規則匹配模塊109。
數據過濾模塊103過濾數據流101,以便只有那些有可能與 在標誌資料庫12 0中的規則組匹配的數據被輸出到匹配引擎110 以進行進一步檢查。這樣,系統100的處理速度能被明顯提高。 在一個實施例中,數據過濾模塊103能在數據流101中尋找標誌 資料庫120中規則組的部分字符串,並且只有包含該部分字符串 的數據被輸出以便進一步檢查。例如,在標誌資料庫120中的一 第一規則包含字符串"hinthint"其後跟有"virusvirusvirus",並 且在標誌資料庫120中的一第二規則包含字符串"playplay"其後跟有"basketbasketbasket"。不是在數據流101中尋找這些規則組 的全部字符串(例如,"hinthintvirusvirusvirus,,和 "playplaybasketbasketbasket"),而是由悽史據過濾才莫塊103尋找部 分字符串(例如,"hinthint"和"playplay"),並且只有在數據流 101中包含"hinthint"或"playplay"的數據被輸出到匹配引擎110 以便進一步^r查。
為了進一步加快系統100的處理速度,部分字符串可以採用 壓縮算法,例如哈希算法(hashing),被壓縮到同樣更短的部 分字符串。例如,包含"hinthint"和"playplay"的8位部分字符 串能被哈希壓縮成同樣的3位部分字符串(例如"abc")。在這種 情況下,數據過濾模塊103首先在數據流101中尋找3位被哈希壓 縮過的部分字符串"a b c ,,;如果在數據流101中找到被哈希壓縮 過的部分字符串"abc",從"abc"解壓出來的8位部分字符串(例 如"hinthint,,和"playplay,,)在數據流101中被進一步搜索。以這 種方式,數據過濾模塊103的過濾速度被進一 步提高使得系統 IOO達到一個進一步提高的處理速度。
內容匹配模塊105從被數據過濾模塊103過濾的數據中搜索 在標誌資料庫12 0中的內容組,並且只有那些在被過濾的數據中 被找到的內容組被輸出到第 一規則匹配模塊107。在 一個實施例 中,在標誌資料庫120中每個獨一無二的內容由一個獨一無二的 內容標識符(CID, content identifier )所標記,並且在被過濾的 數據中找到的內容組的CID組被匯報給第 一規則匹配模塊107 從而方便分類。例如,標誌資料庫120包含內容組"abcdefg", "bla-bla-bla-bla,,, "hkejljmoetp,, , " 1 23455432 1 abcde,,, "leddisplay,,, "vpnfirewall","batterycollcharging", 等等。內容 "abcdefg,, , "bla-bla-bla-bla,, , "hke川moetp,,, "1 23455432 labcde,,, "leddisplay", "vpnfirewall,,,"batterycollcharging,,分另ij淨皮才示i己成CID畫l , CID-2, CID-3, CID-4, CID-5, CID-6, CID-7。被過濾的數據包含一個字符串 "123國455xxxbbbbla一 bla畫bla- blaa",,dfafahkejljmoetpadjqer,H gadfleddisplay.... bafgsgvpnfirewa11….aabatterycollcharging"。在 被內容匹配模塊105掃描後,內容組"bla-bla-bla-bla", "hkejljmoetp,', "leddisplay,,, "vpnfirewall,' 和 "batterycollcharging,,能在被過濾的數據中被找到,並且每個 CID組(CID國2, CID-3, CID-5, CID畫6, CID-7)作為匹配的 C I D組被匯報給第 一 規則匹配模塊1 0 7 。
如前所述,在標誌資料庫12 0中的多個內容組3皮整理成規則 組。為了判斷數據流101與規則組是否匹配,第一規則匹配模塊 107能夠觸發包含由匹配的CID組所標記的內容組的相關規則 組以進一步檢查。例如,內容"abcdefg"構成一個規則-l,內容 組"bla-bla-bla-bla", "hkejljmoetp"和"vpnfirewall"構成一個規則 -2,並且內容組"bla-bla-bla-bla"和"1234554321abcde,,構成 規則-3。因此,規則-l是一個簡單規則並且規則-2和規則-3是 複雜規則組。 一個代表這些規則組的CID組如下規則-l:CID-l; 規則-2:CID-2, CID-3, CID-6;少見則-3: CID-2, CID-4。如前 假設,CID-2, CID-3, CID-5, CID-6和CID-7作為匹配的CID 組被匯報。隨後,和規則-3 (其包含糹皮匹配的CID組標 記的內容組)被觸發以在第一規則匹配模塊107中進一步檢查。 然而,規則-l被第一規則匹配模塊107忽略,因為所述規則-l不 包含任何被匹配的CID組標記的內容。並且,第一規則匹配模 塊10 7能作為 一 個狀態機被運行,用來偵測是否所有被包含在被 觸發規則組中的所有內容都被數據流101找到,並基於偵測結果 作出一個匹配的判斷,這一點會在以下部分詳細說明。因此, 第 一 規則匹配才莫塊107能作出規則-2被數據流101匹配的匹配判斷。然而,規則-3沒有被匹配,因為數據流101不含有CID-4標 記的內容。以這種方式,系統100能夠在掃描數據流101尋找一 個複雜規則時,和尋找一個簡單規則時一樣高效。並且,被第 一規則匹配模塊107作出的匹配判斷可以被提供給輸出模塊130 (應為130 ),以發出警報。
並且,對於一個在標誌資料庫120中具有多重內容的複雜規 則,可以有附加的要求,例如一個順序要求,其用來在複雜頭見 則之內為多重內容設定一個順序,或者一個預定距離要求,其 用來在複雜規則之內為內容組設定一個距離限制。對於一個順 序要求,第一規則匹配模塊107能被設計成以一個嚴格的連續順 序從內容匹配模塊105中接收被匹配的CID組,並且也作出匹配 判斷,這將在以後部分詳細說明。對於一個預定距離要求,當 第一規則匹配模塊107已經識別了所有由匹配的CID組標記的 內容組構成的規則組後,第二規則匹配模塊109被專用於處理這 個限制。在下面的部分中對第二M^則匹配才莫塊109會作 一個更加 詳細的i兌明。
參考圖l能夠推導出,系統100採用一個多步驟方法,通過 不同的模塊一步一步檢查數據流IOI。以這種方式,在標誌數據 庫120中每個被匹配的規則都能被快速識別以至於系統效率械_ 提高。還有,系統100提供一個徹底的解決方案掃描數據流101, 以便查找具有多重內容的複雜規則組和附加要求。另外,標誌 資料庫120能被容易地修改或者擴充,因為標誌資料庫120位於 SRAM或者DRAM中,其具有大的存儲空間並可以被重寫。 SRAM或DRAM是相對便宜的存儲元件。系統100能在一個集成 邏輯電路中運行,例如, 一個在100k門(gate)範圍的現場可 編程門陣列(FPGA, ( Field Programmable Gate Array ))或專用 集成電路(ASIC, (Application Specific Integrated Circuit)),其資源可以被有效利用。因此,系統100也有相對高的靈活性和
相對低的價格。
圖2顯示了根據本發明實施例第一 則匹配才莫塊10 7的 一 個 框圖。圖2中標註相同標記的元件具有相同的功能並且在此為了 簡明起見不再贅述。第一規則匹配模塊107在此作為一個狀態機 203被運行。狀態機203根據被匯報給狀態機203的所匹配CID 組,能判斷出在標誌資料庫120中的規則組是否被匹配。匹配的 CID組在此被標記為201。並且,標誌資料庫120#:分成一個規 則塊205和一個狀態寄存器塊207。規則塊205存儲規則組,如上, 其具有以上述CID的表示。狀態寄存器塊207包含對應規則組的 狀態寄存器組,其用來跟蹤對應規則組的匹配結果。例如,狀 態寄存器l對應規則-l並且跟蹤規則-l的匹配結果,狀態寄存器 2對應規則-2並且跟蹤規則-2的匹配結果,狀態寄存器3對應規 則-3並且跟蹤規則-3的匹配結果,並且狀態寄存器N對應規則-N 並且跟蹤規則-N的匹配結果。每個狀態寄存器具有一定數量的 位。位數量取決於規則組中其中 一 個規則所具有的最大內容數。
在運行中,狀態機203能觸發包含所匹配CID組標記的內容 組的相關規則組,以進行檢查。如前所假設,包含所匹配的 CID組的相關規則-2和規則-3被狀態機203觸發以進行檢查。特 別地,每個狀態寄存器的每個位被設成邏輯l或者邏輯O,以表 示在每個規則中的內容組中的某一個內容是否在數據流IOI中 被發現。根據每個狀態寄存器的位值,狀態機203能判斷每個規 則是否^L數據流101匹配。
圖3是根據本發明 一 個實施例中 一 個狀態寄存器300的 一 個 結構圖。對圖3的說明結合圖2。寄存器300具有M位,其表示在 數據流101中的規則組中其中 一 個規則具有最大的內容數為M 。 在其中一個實施例中,最左邊的N位表示對應狀態寄存器300的規則由N個內容構成,並且N個內容的每個匹配結果被最左邊的 N位中的某一位追蹤。在一個實施例中,最左邊N位初始化為邏 輯0而其他的M-N位-故初始化為邏輯1。例如,對應狀態寄存器 300的規則#皮歸屬於*見則-4,其由3個內容構成,該內容組^皮分 別標記為CID-1, CID-3和CID-5。這樣,N等於3。在運行中, 最左邊3位被初始化為邏輯0同時其餘M-3 (M減去3)位淨皮初始 化為邏輯l一位l ( Bl )位對應CID-1,位2 ( B2 )對應CID-3,並 且位3 ( B3 )對應CID-5。如前所假設,CID-3和CID-M乍為匹 配的CID組被匯報。因此,狀態寄存器300的位2 ( B2 )被更新 成邏輯l。相似地,位3(B3)也被更新成邏輯1。然而,位1(B1 ) 仍舊是邏輯0,因為CID-1不屬於被匹配的CID組。隨後,狀態 機2 0 3能判斷規則-4不被數據流101匹配,因為不是狀態存儲器 300的所有位都被設置成邏輯1。
另外,表示內容組的匹配結果的N位能具有各種各樣的位 置分布於狀態寄存器300中,而不是被限制在最左邊的N個位 中。還有,只要如上功能能夠實現,狀態寄存器300能以不同的 方式被初始化。
並且,當有一個如上所討i侖的順序要求時,狀態4幾203被設 計成能以一個嚴格的連續順序接收被匹配的CID組。例如,當 規則-4中的內容組被要求具有順序CID-1, CID-3, CID-5時,狀 態機203能被設計成,只有當左邊臨近位已經被設成邏輯1時, 狀態機300的最左邊3個位才被設置成狀態1。優點是,不必考慮 什麼樣的順序被規則組要求,狀態機2 0 3都能夠選擇 一 個結構來
存儲被要求的順序。
在一個實施例中,假設最大內容數是16,對應規則-l的狀 態寄存器1被初始化成0111-1111-1111-1111 (從最左邊B1到最右 邊B16),這是因為,如前所述的例子中,^L則-1包含一單獨CID(CID-1)並因此只有一單獨位(最左邊位B1)被設成邏輯O。 類似地,對應規則-2的狀態寄存器2被初始化成 0001-1111-1111-1111 (從最左邊B1到最右邊B16 ),因為,在如 上例子中,規則-2包含3個CID組(CID-2, CID-3和CID-6)並 因此這3個最左邊位B1—B3被設成邏輯0。以一個相似的方式, 對應規則-3的狀態寄存器3被初始化成0011-1111-1111-1111 (從 最左邊B1到最右邊B16)。
假設(通過舉例方式)被匹配的CID組被狀態機203接收的 順序是CID-3, CID-5, CID-2, CID-6和CID-7,則狀態機203將 有次序地執行隨後的操作。當CID-3被接收後,狀態寄存器2將 被更新成OlOl-llll-llll-llll,因為規則-2包含CID-3,而狀態 寄存器2對應規則-2,並且第二個位對應CID-3;狀態寄存器l 和3將會保持原來的值,分別為0111-1111-1111-1111和 0011-1111-1111-1111。以一個相似的方式,當CID-5祐J妄收後, 狀態寄存器l, 2和3將會保持他們的原來的值,因為CID-5沒有 被包含在對應規則組中。當CID-2被接收後,狀態寄存器2和3 將4皮分別更新成1101-1111-1111-1 lll和1011-1111-1111-1111,因 為CID-2被包含在規則-2和規則-3中,並且對應狀態寄存器2 和3的第 一 位;狀態寄存器1將會保持原來的值為 0111-1111-1111-1111。當CID-6被接收後,狀態寄存器2將會被 更新成1111-1111-1111-1111,同時狀態寄存器1和3將會保持保 持它們原來的值為0111-1111-1111-1 lll和1011-1111-1111-1111。 當CID-7被接收,狀態寄存器組l, 2和3將會保持他們原來的值, 因為CID-7沒有^皮包含在相應規則組中。當所有被匹配的CID組 被搜索到後,狀態機2 0 3能夠判斷是否對應規則組被數據流101 匹配。例如,狀態機203能判斷規則-2被^t據流101匹配,因為 狀態寄存器2的所有位都被設成邏輯1,同時規則-l和規則-3不被數據流101匹配,因為狀態寄存器1和3中不是所有位都被設成 邏輯l。
在一個實施例中,規則-2能包含一個附加的順序要求。例 如,規則-2中的內容組被預設成順序CID-2,CID-3和CID-6。在 這種情況下,狀態機203能被設計成只有當左邊臨近位已經一皮設 成邏輯1時,狀態寄存器2中的B1,B2和B3才能被設成邏輯1。這 樣,在以上例子中,狀態機203能判斷出,在CID-3被第一次接 收時,規則-2沒有被數據流101匹配,因為狀態寄存器2將被更 新成0101-1111-1111-1111-1111,其不滿足狀態機203的預設構 造。
再次參考圖1,標誌資料庫120可以包含具有多重內容的復 雜規則和預設距離要求。例如, 一個在標誌資料庫120中的複雜 頭見則-5可以如下所示
規則畫5: "leddisplay,,,後面跟著"batterycollcharging,,,距 離剛好是50個字符,接著跟著"bla-bla-bla-bla",並且不超過 20個字符。
^口前戶斤*支i殳,"leddisplay,, , "batterycoolcharging,,牙口 "bla-bla-bla-bla,,分別被標記為CID-5, CID-7和CID-2。 CID代表 的複雜規則-5如下
^見則-5: CID-5:, CID-7:=50, CID-2:<20
為了處理預設距離要求,內容匹配模塊105將會不僅匯報被 匹配CID組給第 一 規則匹配模塊10 7,還會偵測在數據流101中 找到的內容組的位置並發送被偵測到的位置給第二規則匹配模 塊109。如前假設,CID-2, CID-3, CID-5, CID-6和CID-7作為 被匹配的CID組被內容匹配模塊105匯報。另外,內容匹配模塊 105也將會偵測在數據流101中被標示為CID-2, CID-3, CID-5 CID-6,和CID-7的內容的位置。其結果就是,內容匹配模塊105將要獲得與這些位置結合的被匹配CID組。例如,內容匹配模 塊105將獲得如下信息CID-5: 25, CID-7: 75, CID-2:100, CID-6:125, CID-3: 130,而這組信息則表示CID-5 , CID-7, CID-2 , CID-6和CID-3在數據流101中被找到的位置分別在25 , 75, 100, 125和130。
如前所討論,在數據流101通過第一規則匹配模塊105後, 與規則組相關的、沒有預設距離要求的匹配判斷能被直接匯報 給輸出模塊130。而且,對於具有預設距離要求的複雜規則-5, 第二規則匹配模塊109將開始檢查在規則-5中的多重內容之間 的距離。
在這種情況下,第二規則匹配模塊109將要接收來自內容匹 配模塊105的、被包含在複雜規則-5中的多重內容的位置,以便 計算這些內容之間的距離。例如,基於CID-5, CID-7和CID-2 的位置,第二規則匹配模塊109計算CID-5和CID-7之間的距離 是50個字符並且CID-7和CID-2之間的距離是25個字符。這樣, CID-7和CID-2之間的距離不滿足不大於20個字符的預設距離 要求。因此,第二規則匹配模塊109能做出匹配判斷,即複雜規 則-5不被數據流101匹配。
圖4是根據本發明一實施例中對數據流執行規則匹配方法 的流程圖400。雖然在圖4中揭示了單個步驟作為示例,但這些 步驟只是舉例。就是說,本發明十分適合於圖4中引用示例的各 種各樣的其他實施步驟或者其他的變型。對圖4的說明是結合圖 l和圖2進行的。
在框圖410中,數據流被過濾以便加快規則匹配。在一個實 施例中,數據過濾模塊103能搜索數據流101以尋找規則組的部 分字符串,從而根據搜索結果過濾數據流IOI。數據過濾步驟對 規則匹配是有益的但不是不可缺少的。在框圖420中,被過濾的數據流被搜索以尋找內容組,從而 得到被匹配的內容標識符組。在一個實施例中,內容匹配模塊 10 5能搜索來自數據過濾模塊10 3的被過濾的數據流以便尋找多 個內容,並把在被過濾數據流中找到的內容中的內容標識符組 作為被匹配的內容標識符組匯報。在框圖430中,根據被匹配內容標識符組,狀態寄存器組被 更新以判斷是否規則組被數據流匹配。在一個實施例中,第一 規則匹配模塊10 7能被作為 一 個狀態機2 0 3運行,根據被匹配的 內容標識符組,用來更新在標誌資料庫120中的狀態寄存器組。 狀態寄存器組的位值能判斷規則組是否被數據流101匹配。在框圖440中,如果規則組要求一個預設距離要求,那麼被 包含在規則組中的內容之間的距離被衝企查以判斷是否該規則組 被數據流匹配。在一個實施例中,規則組包含具有單一內容的 簡單規則組和具有多重內容的複雜規則組。複雜規則組能進一 步包含一個預設距離要求。在這種情況下,第二規則匹配模塊 109被用來檢查多重內容之間的距離。當在檢查後,預設距離要 求被滿足,第二規則匹配模塊10 9能判斷複雜規則組被數據流 101匹配。在此所用的術語和表述是用來說明的術語,並不是限制, 並且沒有意圖,用這些術語和表述排除任何顯示和說明(或者 部分顯示和說明)的技術特徵的等同特徵,並且承認在權利要 求範圍內有各種各樣的修改是可能的。其他的修改,各種形式, 和變形也是可能的。因此,權利要求的意圖是覆蓋所有這些等 同和變形的方式。
權利要求
1.一種用於對數據流執行規則匹配的裝置,其特徵在於,包括內容匹配模塊,其用來搜索所述數據流以尋找多個內容;和第一規則匹配模塊,其連接到所述內容匹配模塊,根據所述搜索結果,用來更新多個狀態寄存器,並且根據所述多個狀態寄存器,判斷規則組是否被所述數據流匹配;其中所述規則組包含從所述內容組中選出的具有一個單一內容的簡單規則,和從所述多個內容中選出的具有多重內容的複雜規則,並且其中每個所述狀態寄存器表示其中一個規則是否被所述數據流匹配。
2. 根據權利要求l所述的裝置,其特徵在於,進一步包括 數據過濾模塊,其連接到所述內容匹配模塊以搜索所述數據流,以在其中尋找所述規則組的部分字符串,並且在所述數 據流被所述內容匹配模塊搜索尋找所述多個內容之前,根據所 述搜索結果過濾所述數據流。
3. 根據權利要求2所述的裝置,其特徵在於,所述部分字 符串被哈希壓縮成一個部分字符串並且所述數據流被搜索尋找 所述被哈希壓縮的部分字符串。
4. 根據權利要求l所述的裝置,其特徵在於,所述多個內 容由多個內容標識符分別標示,並且其中,根據被匹配的內容 標識符,相關規則組4皮觸發以用來檢查,所述^皮匹配內容標識 符標示在所述數據流中被找到的所述內容。
5. 根據權利要求l所述的裝置,其特徵在於,所述第一規 則匹配模塊被作為一個狀態機運行。
6. 根據權利要求l所述的裝置,其特徵在於,所述第一規 則匹配模塊對在所述數據流中找到的所迷多個內容規定 一 個順據流匹配。
7. 根據權利要求l所述的裝置,其特徵在於,所述複雜規則具有 一 個預設的距離要求。
8. 根據權利要求7所述的裝置,其特徵在於,進一步包括 第二規則匹配模塊,其連接到所述第一規則匹配模塊用來檢查在所述多重內容之間的距離是否滿足所述預設距離要求,並且根據所述檢查結果判斷所述複雜規則是否被所述數據流匹配。
9. 根據權利要求8所述的裝置,其特徵在於,所述內容匹 配模塊在所述數據流中偵測所述多重內容的位置,並且其中所述第二規則匹配才莫塊#:連接到所述內容匹配才莫塊以便基於所述被偵測的位置計算所述多重內容之間的距離。
10. 根據權利要求l所述的裝置,其特徵在於,用來執行所述規則匹配的所述裝置在一個硬體中^皮運4亍,所述石更件從至少 一個現場可編程門陣列和一個專用集成電路中選擇。
11. 根據權利要求l所述的裝置,其特徵在於,所述多個內 容被存儲在一個存儲元件中,所述存儲元件從至少一個同步隨 機存取器和一個動態隨機存儲器中選擇。
12. —種用來對數據流執行規則匹配的方法,其特徵在於, 包括搜索所述數據流以尋找多個內容;根據所述搜索結果更新多個狀態寄存器;並且根據所述多個狀態寄存器判斷規則組是否被所述數據流匹配,其中所述規則組包含具有一個單一內容的簡單規則和具有 多重內容的複雜規則,並且其中所述多個狀態寄存器中的每個狀態寄存器表示所述規則組中的一個規則是否被所述數據流匹 配。
13. 根據權利要求12所述的方法,其特徵在於,進一步包括搜索所述數據流尋找所述規則組中的部分字符串;並且 在搜索所述數據流尋找所述多個內容組之前根據所述搜索 結果過濾所述數據流。
14. 根據權利要求13所述的方法,其特徵在於,進一步包括哈希壓縮所述字符串成一個被哈希壓縮的部分字符串;並且搜索所述數據流尋找所述被哈希壓縮的部分字符串。
15. 根據權利要求12所述方法,其特徵在於,進一步包括 用多個內容標識符分別標識所述多個內容; 匯報所述多個內容標識符中其中 一個內容標識符,作為一個被匹配的內容標識符,其中所述被匹配的內容標識符標識的 內容在所述數據流中被找到;並且觸發相關規則組以根據所述被匹配的內容標識符檢查。
16. 根據權利要求12所述的方法,其特徵在於,進一步包括對在所述數據流中找到的多個內容規定 一 個順序;並且 根據所述被規定的順序判斷所述規則組是否被所述數據流 匹配。
17. 根據權利要求12所述的方法,其特徵在於,所述複雜 規則具有一個預設的距離要求。
18. 根據權利要求17所述的方法,其特徵在於,進一步包括檢查在所述多重內容之間的距離是否滿足所述預設距離要 求,並且根據所述檢查結果判斷所述多重規則是否被所述數據流匹配。
19. 根據權利要求18所述的方法,其特徵在於,進一步包括在所述數據流中偵測所述多重內容的位置;並且 基於所述被偵測的位置計算所述多重內容之間的距離。
20. —種用來對數據流執行規則匹配的系統,其特徵在於, 包括具有規則組的標誌資料庫,所述規則組包含多個內容;並且匹配引擎連接到所述標誌資料庫用來搜索所述數據流以便 尋找所述多個內容,並根據所述搜索結果更新多個狀態寄存器, 並且根據所述多個狀態寄存器判斷所述規則組是否被所述數據 流匹配;其中所述狀態寄存器組中的每個狀態寄存器顯示所述規則 組中其中規則是否被所述數據流匹配。
21. 根據權利要求20所述的系統,其特徵在於,所述標誌 資料庫存在於一個存儲元件中,所述存儲元件從至少一個同步 隨機存取器和一個動態隨機存儲器中選擇。
22. 根據權利要求20所述系統,其特徵在於,所述匹配引 擎在一個硬體中被運行,所述硬體從至少一個現場可編程門陣列和一個專用集成電路中選擇。
23. 根據權利要求20所述的系統,其特徵在於,進一步包括數據過濾模塊,用來搜索所述規則組的部分字符串,並且在所述數據流被所述匹配引擎搜索尋找所述多個內容之前,根 據所述搜索結果過濾所述數據流。
24. 根據權利要求20所述的系統,其特徵在於,所述規則 組包含具有多重內容的複雜規則和預設距離要求,並且其中所 述匹配引擎進一步包括第一規則匹配模塊和第二規則匹配模 塊,通過檢查是否所述多重內容在所述數據流中被找到,所述 第 一規則匹配模塊判斷所述複雜規則是否被所述數據流匹配, 並且通過檢查所述多重內容之間的距離是否滿足所述預設距離 要求,所述第二規則匹配模塊判斷所述複雜規則是否被所述數 據流匹配。
25. 根據權利要求20所述的系統,其特徵在於,所述匹配 引擎把在所述數據流中找到的所述多個內容規定 一 個順序,並 且根據所述被規定的順序判斷是否所述規U 'J組被所述數據流匹 配。
全文摘要
本發明公開了一種規則匹配裝置和方法。所述規則匹配的裝置包含內容匹配模塊和第一規則匹配模塊;所述內容匹配模塊搜索所述數據流尋找內容組;所述內容組被整理成規則組,所述規則組包含具有單一內容的簡單規則和具有多重內容的複雜規則;所述第一規則匹配模塊連接到所述內容匹配模塊,根據所述內容匹配模塊的一個搜索結果判斷是否所述規則組被所述數據流匹配;所述第一規則匹配模塊根據所述搜索結果更新多個狀態寄存器,並且每個狀態寄存器能顯示規則組中的一個規則是否被所述數據流匹配。本發明所述的規則匹配裝置和方法,可有效利用資源,並具有相對高的靈活性和相對低的價格。
文檔編號H04L29/06GK101409624SQ20081017020
公開日2009年4月15日 申請日期2008年10月9日 優先權日2007年10月9日
發明者林明元, 符永貴 申請人:凹凸電子(武漢)有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀