[发明专利]一种IP包分类方法和设备有效
| 申请号: | 200810116129.3 | 申请日: | 2008-07-03 |
| 公开(公告)号: | CN101309216A | 公开(公告)日: | 2008-11-19 |
| 发明(设计)人: | 刘兴奎;刘新春;曹政;杨卫兵;王达伟;窦晓光;王文迪 | 申请(专利权)人: | 中国科学院计算技术研究所 |
| 主分类号: | H04L12/56 | 分类号: | H04L12/56 |
| 代理公司: | 北京泛华伟业知识产权代理有限公司 | 代理人: | 王勇 |
| 地址: | 100190北京*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 ip 分类 方法 设备 | ||
1.一种IP包分类方法,包括:
步骤10)、网络设备提取接收到的IP包的五元组,对所述五元组执行基于Counting Bloom Filter预测,获取预测结果;
步骤20)、根据所述预测结果,与组织成Hash表的规则表进行匹配,根据匹配后的规则,确定IP包分类结果;
其中,步骤10)进一步包括:
步骤110)、根据具体应用规则,确定所述五元组所需的掩码,决定所述Counting Bloom Filter预测的轮数;
步骤120)、对所述五元组进行Hash运算,得到中间结果;
步骤130)、将所述中间结果作为k个Hash函数的输入,产生k个地址,以所述k个地址访问位组,得到k个位;
步骤140)、当所述k个位都为1,将所述k个地址作为预测结果;
步骤20)进一步包括:
步骤210)、根据所述k个Hash函数产生的地址中的第一个地址访问片外SRAM,获取规则,如果规则无效,执行下一轮匹配;
步骤220)、如果规则有效且被命中并具有最高优先级,那么匹配成功;
步骤230)、如果规则不被命中,那么继续以k个地址中其它地址执行同样匹配过程;如果k个地址用尽,那么将第k个地址加1,继续尝试,最后将命中最高优先级规则的匹配结果确定为匹配结果;
其中,所述Counting Bloom Filter是指带有计数器的Bloom Filter数据结构。
2.权利要求1的方法,其中,步骤110)还包括通过掩码屏蔽不关心的五元组的域。
3.权利要求1的方法,其中,步骤120)可以进一步包括:将源IP、目的IP、源端口、目的端口进行按位异或,得到一个32位的值tmp1,将tmp1右移n位后与tmp1按位异或得到tmp2,将tmp2左移m位后与tmp2按位异或得到中间结果,其中,所述n与m小于32。
4.权利要求1的方法,其中,步骤130)中,所述位组对应于多端口存储器,所述访问位组是读取对应的多端口存储器。
5.权利要求1的方法,其中,步骤210)中,所述SRAM中存储规则,并组织成Hash表。
6.权利要求1的方法,其中,步骤210)还包括向所述SRAM中添加规则的过程:利用第一个hash函数计算出一个地址,如果该地址处已经有规则但不是待加入的规则,则以同样的方式尝试下一个Hash函数,直到使用过所有的Hash函数;如果还有冲突,那么将地址加1,继续尝试,直到目的地址处空闲或者找到相同的规则。
7.权利要求1的方法,其中,Counting Bloom Filter预测和规则匹配时所使用的Hash函数部分或者全部共享。
8.一种IP包分类设备,包括:
Counting Bloom Filter预测模块,用于对网络设备提取接收到的IP包的五元组执行基于Counting Bloom Filter预测,获取预测结果;
规则匹配模块,用于根据所述预测结果,与组织成Hash表的规则表进行匹配,根据匹配后的规则,确定IP包分类结果;
其中,所述Counting Bloom Filter预测模块根据具体应用规则,确定所述五元组所需的掩码,决定所述Counting Bloom Filter预测的轮数;所述Counting Bloom Filter预测模块对所述五元组进行Hash运算,得到中间结果,将所述中间结果作为k个Hash函数的输入,产生k个地址,以所述k个地址访问位组,得到k个位;当所述k个位都为1,所述Counting Bloom Filter预测模块将所述k个地址作为预测结果,并进入下一轮预测;当所述k个位包括至少一个0时,直接进入下一轮预测;
其中,所述规则匹配模块还用于根据所述k个Hash函数产生的地址中的第一个地址访问SRAM,获取规则,如果规则无效,执行下一轮匹配;如果规则有效且被命中并具有最高优先级,那么匹配成功;如果规则不被命中,那么继续以k个地址中其它地址执行同样匹配过程,如果k个地址用尽,那么将第k个地址加1,继续尝试,最后将所述规则匹配模块将命中最高优先级规则的匹配结果确定为匹配结果;
其中,所述Counting Bloom Filter是指带有计数器的Bloom Filter数据结构。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810116129.3/1.html,转载请声明来源钻瓜专利网。





