[發(fā)明專利]一種在大流量下進行深度包檢測的方法有效
| 申請?zhí)枺?/td> | 201210004781.2 | 申請日: | 2012-01-09 |
| 公開(公告)號: | CN102546299A | 公開(公告)日: | 2012-07-04 |
| 發(fā)明(設計)人: | 岳培培 | 申請(專利權)人: | 北京銳安科技有限公司 |
| 主分類號: | H04L12/26 | 分類號: | H04L12/26;H04L29/06 |
| 代理公司: | 北京君尚知識產(chǎn)權代理事務所(普通合伙) 11200 | 代理人: | 余功勛 |
| 地址: | 100044 北京市海*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 流量 進行 深度 檢測 方法 | ||
1.一種在大流量下進行深度包檢測的方法,包括:
在FPGA內(nèi)部搭建3層過濾模塊,并行放置L個第一層過濾模塊;每第一層過濾模塊內(nèi)部并行放置M個第二層過濾模塊;每第二層過濾模塊內(nèi)部并行放置N個第三層過濾模塊,由多個塊狀隨機存儲器組成基礎布隆過濾器;在主控單元的內(nèi)存中保存一個過濾模塊的存儲空間,構建與FPGA對應的3層結構,其中第三層組成計數(shù)型布隆過濾器;
主控單元對關鍵字取其字節(jié)前綴作運算,把運算結果配置為初始化地址,并根據(jù)第三層計數(shù)型布隆過濾器的存儲單元內(nèi)的值的變化更新FPGA內(nèi)L個對應的存儲單元的值;
以及檢測過程,步驟包括:
a)輸入數(shù)據(jù)分別送到L個第一層過濾模塊中,并截取相應的字節(jié)前綴,同時送入M個第二層過濾模塊;
b)在第二層過濾模塊內(nèi)部,截取的字節(jié)前綴分別進行hash運算,并根據(jù)結果查詢第三層的基礎布隆過濾器的配置地址并進行匹配;
c)根據(jù)待匹配內(nèi)容在FPGA的第三層基礎布隆過濾器內(nèi)的各個運算結果,記錄對應的第一層過濾模塊所在的偏移位置,存儲進FPGA的緩存器中;
d)將被記錄下來的偏移位置對應的待匹配內(nèi)容,從數(shù)據(jù)包中重新提取出來,送入TCAM進行精匹配。
2.如權利要求1所述的方法,其特征在于,所述L個第一層過濾模塊結構、大小相同。
3.如權利要求1所述的方法,其特征在于,待匹配內(nèi)容輸入所述L個第一層過濾模塊時依次偏移1個字節(jié)。
4.如權利要求1所述的方法,其特征在于,初始化過程包括對關鍵字的添加或刪除操作。
5.如權利要求1所述的方法,其特征在于,L的值由需要進行深度包檢測的數(shù)據(jù)流量和FPGA的工作時鐘決定;M的值由關鍵字的長度分布情況決定;,N的值由根據(jù)關鍵字長度采用的hash算法的種類除以2得到。
6.如權利要求1所述的方法,其特征在于,所述字節(jié)前綴的截取值為存儲空間中小于關鍵字字節(jié)的最大匹配長度。
7.如權利要求1所述的方法,其特征在于,每個第二層過濾模塊包含不同的存儲單元數(shù)。
8.如權利要求1所述的方法,其特征在于,所述第二層過濾模塊進行“或操作”后輸出結果;所述基礎布隆過濾器的匹配結果需要進行“與運算”后輸出。
9.如權利要求1所述的方法,其特征在于,所述第三層過濾模塊同時進行雙端口匹配操作,其中一個端口在進行關鍵字更新時進行配置操作。
10.如權利要求1所述的方法,其特征在于,所述主控單元使用與FPGA中完全相同的hash運算。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京銳安科技有限公司,未經(jīng)北京銳安科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210004781.2/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





