[发明专利]基于Hash折叠方法的Ipv6深度包检测方法有效
| 申请号: | 201310326817.3 | 申请日: | 2013-07-31 |
| 公开(公告)号: | CN103414603A | 公开(公告)日: | 2013-11-27 |
| 发明(设计)人: | 赵有健;杨继磊;全成斌 | 申请(专利权)人: | 清华大学 |
| 主分类号: | H04L12/26 | 分类号: | H04L12/26;H04L29/06 |
| 代理公司: | 西安智大知识产权代理事务所 61215 | 代理人: | 贾玉健 |
| 地址: | 100084 北京市海淀区1*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 hash 折叠 方法 ipv6 深度 检测 | ||
1.一种基于Hash折叠方法的Ipv6深度包检测方法,将数据包送入查找引擎,提取数据包中的URL形成关键字(Key),然后再将获得的关键字(Key)发送给TCAM进行查找并获取结果,其特征在于,所述关键字(Key)的提取方法如下:
1)设定位宽长度为N的Req_url_Key[N]每一位都为0;
2)从包头开始顺序接收IP数据包,并根据http协议格式获取Request_URL的位置信息;
3)根据已经获得的Request_URL位置信息,提取IP数据包中的URL字符串,存放在temp[N]中;
4)每提取N位字符串,将提取到的N位字符串与Req_url_Key[N]进行异或运算,并将结果存放在Req_url_Key[N]中;
5)如果到达结尾,提取的字符串长度小于N,则用0将其补齐为N位;
6)如果存在Host域,则设定位宽长度为N的host_url_Key[N]每一位都为0;
7)获取主机名位置信息,每提取N位与host_url_Key[N]进行异或运算,并将结果存放于host_url_Key[N];
8)提取结束时,如果提取的字符串的长度小于N,则用0将其补齐为N位,然后与host_url_Key[N]进行异或操作,结果存放于host_url_Key[N];
9)计算循环右移的位数m=N-(hostlength%N);
10)将Req_url_Key[N]循环右移m位后与host_url_Key[N]进行按位异或运算,得到URL特征串关键字(Key);
其中:
Req_url_Key[N]表示用于存储http协议中的request-line行中请求方法URL信息折叠之后的信息;
Request_URL表示会给出URL信息在IP数据包中的起始位置以及长度的信息,在http协议报文的头部会给出Request_URL信息;
host_url_Key[N]表示用于存储http协议中Host主机信息折叠之后的信息;
N表示URL折叠的维度,即按照每N位进行折叠;
hostlength表示标示http协议中携带的有关host主机信息的字符串的长度。
2.根据权利要求1所述的基于Hash折叠方法的Ipv6深度包检测方法,其特征在于:所述提取方法在硬件系统中使用FPGA实现。
3.根据权利要求1所述的基于Hash折叠方法的Ipv6深度包检测方法,其特征在于,所述TCAM连续接收关键字(Key),在关键字(Key)完全输入之后的固定延时时间,TCAM输出命中标识和地址指针,然后使用地址指针从SRAM中读取查找结果,将结果和缓存的数据包合并后输出。
4.根据权利要求3所述的基于Hash折叠方法的Ipv6深度包检测方法,其特征在于,TCAM接收的相邻两个关键字(Key)的输入中间没有空的时钟周期。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310326817.3/1.html,转载请声明来源钻瓜专利网。





