[发明专利]一种数据包分类方法及装置有效
申请号: | 201410745366.1 | 申请日: | 2014-12-08 |
公开(公告)号: | CN104486240B | 公开(公告)日: | 2018-03-06 |
发明(设计)人: | 何涛 | 申请(专利权)人: | 福建星网锐捷网络有限公司 |
主分类号: | H04L12/813 | 分类号: | H04L12/813 |
代理公司: | 北京同达信恒知识产权代理有限公司11291 | 代理人: | 黄志华 |
地址: | 350002 福建省福州市仓*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据包 分类 方法 装置 | ||
技术领域
本发明涉及数字通信技术领域,尤其涉及一种数据包分类方法及装置。
背景技术
数据包分类是根据数据包包头中的一个或几个匹配域来划分数据包所归属的流,即将到达的数据包分为不同的数据流,再对不同的数据流进行相应的处理。其中,常用的匹配域有:源IP地址、目的IP地址、源端口、目的端口、协议等。
数据包分类的设置可以通过匹配ACL(Access Control List,,访问控制列表)来完成。ACL大量应用在报文过滤等应用中。
一个ACL通常是若干具有优先级的过滤规则组成,每条过滤规则,用以描述对数据报文的头部中的几个匹配域进行匹配的特征条件,以及对应的动作(例如permit和deny),该动作用来决定如何处理报文。
ACL的实现可基于硬件实现,也可基于软件实现。因基于硬件实现时灵活性差,且支持的匹配域有限,不利于修改和扩展,故一般使用软件实现的方法。
当基于软件实现时,ACL中表项的生成、存储和修改,数据流的分析,匹配和流处理均由软件实现。目前的ACL匹配算法主要使用的是线性匹配算法,即以ACL表项规则的序数从小到大(即规则的优先级从高至低)进行查找匹配,在匹配成功后即退出,根据匹配的结果对数据流进行处理。这种方法在表项条目数较多,列表规模较大的情况下,因需要逐项匹配,所以匹配性能极低。
为克服以上匹配性能低的问题,目前应用比较多的软件包分类算法是基于计算几何学点定位算法思想的各种变通算法,如HiCuts算法(Hierarchical Intelligent Cuttings,智能层次分割算法)、在HiCuts算法基础上改进而来的算法(如HyperCuts)、RFC算法(Recursive Flow Classification,RFC算法)等。其中,RFC算法的主要思想是将数据包分类问题看成一个将包头中的S比特数据到T比特的classID的一个映射(T=logN且N<<S,N是过滤规则的总数)。如果预先计算出包头中的这S位共2s种不同情况中每种情况所对应的classID值。那么每一个包只需要一次查表,即一次内存访问就可以得到相应的classID,但是这样会消耗极大的空间。RFC的思想是映射不是通过一步来完成,而是通过多个阶段(phase)完成,在进行数据包分类之前已经为每个阶段建立的用于查找的映射表。然而,这些数据包分类算法虽然通过不同的方法提高了数据包分类速度,但由于它们一般都采用了决策树结构,因此需要较大的内存消耗。
综上可以看出,现有技术的数据包分类算法不是匹配速度慢就是内存消耗多,面对数据量日益庞大的待分类数据包,如何均衡内存消耗和匹配速度从而进一步提高匹配效率是一个亟需解决的问题。
发明内容
本发明的目的是提供一种,以克服相关技术中数据包分类效率低的问题。
一方面,本发明提供一种数据包分类方法,包括:
接收待分类数据包,并确定对该待分类数据包进行分类的访问控制列表ACL;
根据所述ACL所属的预设匹配方法,将所述待分类数据包与所述ACL进行匹配,并根据匹配结果对所述待分类数据包进行分类;其中,根据以下方法确定ACL所属的预设匹配方法:当ACL的过滤规则数小于等于第一预设数值时,确定该ACL采用线性匹配算法进行匹配;当ACL的过滤规则数大于第一预设数值时,采用非线性匹配算法的包分类算法进行匹配。
另一方面,本发明还提供一种数据包分类装置,包括:
第一确定模块,用于接收待分类数据包,并确定对该待分类数据包进行分类的访问控制列表ACL;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建星网锐捷网络有限公司,未经福建星网锐捷网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410745366.1/2.html,转载请声明来源钻瓜专利网。