[發明專利]一種基于硬件CAM芯片的高效能網絡數據包過濾方法有效
| 申請號: | 201210277909.2 | 申請日: | 2012-08-06 |
| 公開(公告)號: | CN102801617A | 公開(公告)日: | 2012-11-28 |
| 發明(設計)人: | 火一莽;史延濤;董雪 | 申請(專利權)人: | 北京銳安科技有限公司 |
| 主分類號: | H04L12/56 | 分類號: | H04L12/56 |
| 代理公司: | 北京君尚知識產權代理事務所(普通合伙) 11200 | 代理人: | 余功勛 |
| 地址: | 100044 北京市海*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 硬件 cam 芯片 高效能 網絡 數據包 過濾 方法 | ||
技術領域
本發明涉及網絡信息處理領域,具體地說,屬于網絡原始數據過濾還原領域,通過硬件芯片加速對符合五類源協議傳輸的TCP/IP數據包進行關鍵字高速過濾和匹配方法。
背景技術
網絡上的數據傳輸都是以TCP/IP數據包為單位進行的,每個數據包內包含有諸多信息。常規協議還原的做法是由硬件完成包的接收后,由軟件逐項比較接收到數據包內的協議信息后,進行分類,并根據包序號對收到的數據包進行數據段抽取排序,對已完成排序還原后的數據段一般稱為文件。對文件內容與關鍵字逐字比對的工作稱為內容匹配。內容匹配的關鍵是比對對象是文件而不是包且比對過程需要逐字節移位后與關鍵字進行比對。只有保證這兩點才能做到對針對內容的精確匹配。
協議還原過程中,數據包排序和內容匹配致頻繁的內存搬移,使整個系統的處理效率降低,在單機多協議還原情況下尤為明顯。而不對數據包進行按協議分類、重新排序實現關鍵字過濾就成為難題。
發明內容
針對現有技術中存在的技術問題,本發明的目的是提供一種基于硬件CAM芯片的高效能網絡數據包過濾方法;本發明通過關鍵字偏移實現傳輸時的識別技術,以數據包為對象不進行數據段抽取和排序,直接移動數據段的數據內容與關鍵字進行移位匹配;當發現比較器當前窗口內部分數據和關鍵字前半段匹配,或者和關鍵字后半段匹配,即認為部分匹配,亦叫半中標;如果數據包在移位比對中出現和關鍵字完全匹配的字段,即認為完全匹配,即中標,將相關的網絡數據包全部過濾出來,存儲到某地;其中窗口內前段部分數據與關鍵字后半段部分數據匹配,稱為窗口前中標,窗口內后半段部分數據與關鍵字前半段部分數據匹配,稱為窗口后中標。
為實現上述目的,本發明的解決方案是:
一種基于硬件CAM芯片的高效能網絡數據包過濾方法,其步驟為:
1)根據CAM芯片比較器的窗口寬度設定輸入關鍵字的最大長度;其中,比較器的窗口寬度為n字節,關鍵字的最大長度小于或等于n字節;
2)所述比較器從網絡數據包數據段中順序移位讀取n個字節作為比較器的窗口數據與輸入的關鍵字進行匹配;
21)如果窗口數據包含匹配的關鍵字,則視為中標,將當前數據包作為匹配網絡數據包過濾出來;
22)如果窗口后半段部分數據與關鍵字前半段部分匹配,即發生窗口后中標,則比較器移位讀取當前數據包數據段中后續n個字節作為比較器的窗口數據與該關鍵字進行匹配,如果當前窗口數據前半段部分數據與該關鍵字剩余未匹配數據匹配,即發生窗口前中標,則視為中標,將當前數據包作為匹配網絡數據包過濾出來;否則視為當前數據包未中標,比較器繼續移位讀取當前數據段中后續n個字節與關鍵字進行匹配。
進一步的,如果前一個數據包數據段的最后一個窗口數據與關鍵字發生窗口后中標,則在后續相鄰數據包的第一個比較窗口數據與關鍵字比較時,判斷是否發生窗口前中標,如果是則視為中標,將相關的兩個數據包作為匹配網絡數據包過濾出來。
進一步的,如果比較器移位讀取到當前網絡數據包數據段段尾,移位讀取的數據長度不足n字節時,比較器根據上一窗口的比較結果進行判斷;如果上一窗口比較時發生了窗口后中標,則比較器將上一窗口未匹配的剩余數據先左對齊與關鍵字進行一次匹配,如果存在窗口前中標,則視為中標;否則,再取當前網絡數據包數據段最后n個字節與關鍵字進行比較,如果發生窗口前中標,則為中標。
進一步的,當發生窗口前中標或窗口后中標時,比較器反饋預警提示信息給過濾模塊;所述反饋信息包括:網絡數據包的編號、中標位置、中標碼及對應的處理方式。
進一步的,當窗口后半段部分數據與關鍵字后半段部分匹配,或窗口前半段部分數據與關鍵字前半段部分匹配時,比較器反饋預警提示信息給過濾模塊;所述反饋信息包括:網絡數據包的編號、中標位置、中標碼及對應的處理方式。
進一步的,所述預警提示信息包括預警優先級信息。
進一步的,比較器根據窗口數據與關鍵字的匹配長度設定預警優先級,匹配長度越長優先級越高。
本發明的方法流程圖如圖1所示,關鍵字如果正處于相鄰兩個網絡數據包之間時,即前一個數據包數據段的最后一個比較窗口內的后半段部分數據與關鍵字前半段部分內容匹配,發生窗口后中標,則在下一個窗口比較時,即后續相鄰數據包的第一個比較窗口內的數據與關鍵字比較時,就會關注相應的窗口前半段部分數據內容與關鍵字剩余后半段未匹配內容是否匹配,即是否發生窗口前中標,如果匹配則視為“中標”,將相關的網絡數據包全部過濾出來,存儲到某地,否則忽略。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京銳安科技有限公司,未經北京銳安科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210277909.2/2.html,轉載請聲明來源鉆瓜專利網。





