[發(fā)明專利]基于Hash折疊方法的Ipv6深度包檢測方法有效
| 申請?zhí)枺?/td> | 201310326817.3 | 申請日: | 2013-07-31 |
| 公開(公告)號: | CN103414603A | 公開(公告)日: | 2013-11-27 |
| 發(fā)明(設(shè)計(jì))人: | 趙有健;楊繼磊;全成斌 | 申請(專利權(quán))人: | 清華大學(xué) |
| 主分類號: | H04L12/26 | 分類號: | H04L12/26;H04L29/06 |
| 代理公司: | 西安智大知識產(chǎn)權(quán)代理事務(wù)所 61215 | 代理人: | 賈玉健 |
| 地址: | 100084 北京市海淀區(qū)1*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 hash 折疊 方法 ipv6 深度 檢測 | ||
技術(shù)領(lǐng)域
本發(fā)明屬于互聯(lián)網(wǎng)網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,特別涉及一種基于Hash折疊方法的Ipv6深度包檢測方法。
背景技術(shù)
互聯(lián)網(wǎng)的蓬勃發(fā)展給人們的生活帶來了極大的便利。同時,諸多安全問題也在威脅著互聯(lián)網(wǎng)用戶。針對于此,大型的ISP服務(wù)商都會在相應(yīng)的網(wǎng)絡(luò)入口位置布置諸如防火墻一類的設(shè)備,用來對有害信息進(jìn)行相應(yīng)的過濾。這種“過濾”機(jī)制需要對相應(yīng)的流量進(jìn)行相應(yīng)的分析、聚類,然后采取相應(yīng)的動作,這就需要深度包檢測技術(shù)來幫助完成。
深度包檢測技術(shù)的實(shí)現(xiàn),主要可以分為兩類,軟件實(shí)現(xiàn)和硬件實(shí)現(xiàn)。一般情況下,軟件實(shí)現(xiàn)的算法復(fù)雜性較高,針對大型的流量,不能夠滿足線速查找匹配的要求。為了解決這種問題,提出來硬件實(shí)現(xiàn)的方法。硬件實(shí)現(xiàn)的深度包檢測技術(shù)借助于硬件設(shè)備的優(yōu)點(diǎn),能夠快速地對流量進(jìn)行查找匹配,從而滿足了線速的要求。
基于硬件的深度包檢測技術(shù),通常采用FPGA、TCAM、SRAM和網(wǎng)絡(luò)處理器等硬件技術(shù)來加速檢測速率,從而實(shí)現(xiàn)線速查找。在上述的硬件資源中,如TCAM是比較昂貴,且容量是有限的。相較于Ipv4的32位地址而言,Ipv6擁有長度為128位的地址,這樣一來,就會使得每個匹配條目的位寬變得比較大。由于TCAM的每個表項(xiàng)(entry)的長度是一定的,在匹配條目位寬變大的情況下,存儲單個匹配條目的表項(xiàng)將會增多,這樣就會造成TCAM能夠存儲的匹配條目較少,從而帶來匹配精度下降等問題。
發(fā)明內(nèi)容
為了克服上述現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供一種基于Hash折疊方法的Ipv6深度包檢測方法,在IP數(shù)據(jù)包中的URL信息提取之后降低URL關(guān)鍵字的位寬長度,進(jìn)而減少對硬件系統(tǒng)中TCAM資源的消耗。
為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:
一種基于Hash折疊方法的Ipv6深度包檢測方法,將數(shù)據(jù)包送入查找引擎,提取數(shù)據(jù)包中的URL形成關(guān)鍵字Key,然后再將獲得的關(guān)鍵字Key發(fā)送給TCAM進(jìn)行查找并獲取結(jié)果,其中所述關(guān)鍵字Key的提取方法如下:
1)設(shè)定位寬長度為N的Req_url_Key[N]每一位都為0;
2)從包頭開始順序接收IP數(shù)據(jù)包,并根據(jù)http協(xié)議格式獲取Request_URL的位置信息;
3)根據(jù)已經(jīng)獲得的Request_URL位置信息,提取IP數(shù)據(jù)包中的URL字符串,存放在temp[N]中;
4)每提取N位字符串,將提取到的N位字符串與Req_url_Key[N]進(jìn)行異或運(yùn)算,并將結(jié)果存放在Req_url_Key[N]中;
5)如果到達(dá)結(jié)尾,提取的字符串長度小于N,則用0將其補(bǔ)齊為N位;
6)如果存在Host域,則設(shè)定位寬長度為N的host_url_Key[N]每一位都為0;
7)獲取主機(jī)名位置信息,每提取N位與host_url_Key[N]進(jìn)行異或運(yùn)算,并將結(jié)果存放于host_url_Key[N];
8)提取結(jié)束時,如果提取的字符串的長度小于N,則用0將其補(bǔ)齊為N位,然后與host_url_Key[N]進(jìn)行異或操作,結(jié)果存放于host_url_Key[N];
9)計(jì)算循環(huán)右移的位數(shù)m=N-(hostlength%N);
10)將Req_url_Key[N]循環(huán)右移m位后與host_url_Key[N]進(jìn)行按位異或運(yùn)算,得到URL關(guān)鍵字Key;
其中:
Req_url_Key[N]表示用于存儲http協(xié)議中的request-line行中請求方法URL信息折疊之后的信息;
Request_URL表示會給出URL信息在IP數(shù)據(jù)包中的起始位置以及長度的信息,在http協(xié)議報(bào)文的頭部會給出Request_URL信息;
host_url_Key[N]表示用于存儲http協(xié)議中Host主機(jī)信息折疊之后的信息;
N表示URL折疊的維度,即按照每N位進(jìn)行折疊;
hostlength表示標(biāo)示http協(xié)議中攜帶的有關(guān)host主機(jī)信息的字符串的長度。
所述提取方法在硬件系統(tǒng)中使用FPGA實(shí)現(xiàn)。
所述TCAM連續(xù)接收關(guān)鍵字Key,在關(guān)鍵字Key完全輸入之后的固定延時時間,TCAM輸出命中標(biāo)識和地址指針,然后使用地址指針從SRAM中讀取查找結(jié)果,將結(jié)果和緩存的數(shù)據(jù)包合并后輸出。
所述TCAM接收的相鄰兩個關(guān)鍵字Key的輸入中間沒有空的時鐘周期。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于清華大學(xué),未經(jīng)清華大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310326817.3/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 一種讀取網(wǎng)絡(luò)資源站點(diǎn)信息的方法及其系統(tǒng)以及搜索引擎
- 一種密碼的管理方法和設(shè)備
- 一種基于hash處理的詞匯管理方法和設(shè)備
- 一種支持多hashmap數(shù)據(jù)庫集群系統(tǒng)不停機(jī)的擴(kuò)容方法
- 一種Linux操作系統(tǒng)中數(shù)據(jù)的保護(hù)方法
- 一種獲取終端屬性的方法及系統(tǒng)
- 一種批量獲取終端屬性的方法及系統(tǒng)
- 一種通過構(gòu)建hash鏈表獲取終端屬性的方法及系統(tǒng)
- 一種基于Hashmap緩存機(jī)制的SD卡讀寫方法及系統(tǒng)
- 一種報(bào)文轉(zhuǎn)發(fā)方法及裝置





