[发明专利]一种IP包分类方法和设备有效
| 申请号: | 200810116129.3 | 申请日: | 2008-07-03 |
| 公开(公告)号: | CN101309216A | 公开(公告)日: | 2008-11-19 |
| 发明(设计)人: | 刘兴奎;刘新春;曹政;杨卫兵;王达伟;窦晓光;王文迪 | 申请(专利权)人: | 中国科学院计算技术研究所 |
| 主分类号: | H04L12/56 | 分类号: | H04L12/56 |
| 代理公司: | 北京泛华伟业知识产权代理有限公司 | 代理人: | 王勇 |
| 地址: | 100190北京*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 ip 分类 方法 设备 | ||
技术领域
本发明涉及网络识别技术领域,更具体地,本发明涉及一种IP包分类方法和设备。
背景技术
IP包分类(packet classification)技术广泛应用于各种网络环境和设备中,例如,在路由器里,包分类可以用于决定一个包从哪个端口输出;在防火墙中,包分类可以决定一个包是否应该被过滤。
包分类方法目前最常用的是根据IP包头中的五元组:源IP地址(SIP)、目的IP地址(DIP)、源端口(SP)、目的端口(DP)以及协议(PRO)。网络设备收到IP包后,提取出所述五元组,确定该五元组是否命中已经存储的规则,然后对IP包执行相应的操作。
包分类过程可以通过一定方法以软件完成,也可以直接在硬件平台上完成。传统上,包分类过程基于软件实现,随着网络速度的飞速发展,特别是千兆网、万兆网的应用,完全基于软件的方法很难实现线速处理IP包,经常出现丢包现象。此外,如果包分类过程只是整个系统实现的一部分,那么基于软件的分类方法将占用大量的计算能力,导致整个系统的性能下降。
基于硬件的包分类方法可以分为两类,一类是采用诸如三态内容寻址存储器(ternary content addressable memory,TCAM)的结构,另一类是对现有方法进行硬件加速。目前实际应用中,基于硬件的包分类算法大多采用TCAM。基于TCAM分类速度快,对于一个五元组,只需一个周期就可以判断是否命中某条规则。但TCAM同时也存在诸多缺点,例如,TCAM价格较高,功耗比普通DRAM/SRAM大。更重要地,TCAM容量小,不适合规则较多的情形。而且,TCAM本身不支持范围查询,对于t位的范围查询,需要2(t-1)个TCAM项来表示。针对TCAM的诸多缺陷,出现扩展的TCAM结构:ETCAM。与TCAM相比,ETCAM主要有两个方面的改进,一是通过将规则分别存储在多个部分以减少并行比较的数目,大大降低了功耗;二是通过在硬件中实现范围查找,每条规则只需一个ETCAM项,节省了空间。但是ETCAM的这些措施都要付出昂贵的代价,并且缺乏灵活性。除了TCAM之外,有许多研究工作对现有分类方法进行硬件加速,但仍然面临算法的固有问题,如访存次数多、规则更新复杂、难以支持大规则集等。
当前,许多应用的规则集包含几十K甚至是上百K规则,并且要求规则集可以实时更新,目前的包分类方法对这种情况几乎无能为力。
发明内容
为克服现有IP包分类不能处理海量规则以及不能实时处理更新的缺陷,本发明提出了一种IP包分类方法和设备。
根据本发明的一个方面,提出了一种IP包分类方法,包括:
步骤10)、网络设备提取接收到的IP包的五元组,对所述五元组执行基于Counting Bloom Filter预测,获取预测结果;
步骤20)、根据所述预测结果,与组织成Ha sh表的规则表进行匹配,根据匹配后的规则,确定IP包分类结果。
其中,步骤10)进一步包括:
步骤110)、根据具体应用规则,确定所述五元组所需的掩码,决定所述Counting Bloom Filter预测的轮数;
步骤120)、对所述五元组进行Hash运算,得到中间结果;
步骤130)、将所述中间结果作为k个Hash函数的输入,产生k个地址,以所述k个地址访问位组,得到k个位;
步骤140)、当所述k个位都为1,将所述k个地址作为预测结果。
其中,步骤110)还包括使用掩码屏蔽预测不关心的五元组的域。
其中,步骤120)可以进一步包括:将源IP、目的IP、源端口、目的端口进行按位异或,得到一个32位的值tmp1,将tmp1右移n位后与tmp1按位异或得到tmp2,将tmp2左移m位后与tmp2按位异或得到中间结果,其中,所述n与m小于32。
其中,步骤130)中,所述位组可以是多端口存储器,所述访问位组可以为读取多端口存储器。
其中,步骤20)进一步包括:
步骤210)、根据所述k个Ha sh函数产生的地址中的第一个地址访问片外SRAM,获取规则,如果规则无效,执行下一轮匹配;
步骤220)、如果规则有效且被命中并具有最高优先级,那么匹配成功;
步骤230)、如果规则不被命中,那么继续以k个地址中其它地址执行同样匹配过程;如果所述k个地址用尽,那么将第k个地址加1,继续尝试,最后将命中最高优先级规则的结果确定为匹配结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810116129.3/2.html,转载请声明来源钻瓜专利网。





