[发明专利]一种基于hash表实现的带掩码五元组规则的匹配方法有效

专利信息
申请号: 201010611764.6 申请日: 2010-12-17
公开(公告)号: CN102111331A 公开(公告)日: 2011-06-29
发明(设计)人: 刘朝辉;刘兴奎;张英文;李静;刘灿;李锋伟 申请(专利权)人: 曙光信息产业(北京)有限公司
主分类号: H04L12/56 分类号: H04L12/56;H04L29/06
代理公司: 北京安博达知识产权代理有限公司 11271 代理人: 徐国文
地址: 100084 *** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 hash 实现 掩码 五元组 规则 匹配 方法
【说明书】:

技术领域

发明涉及网络数据处理领域,具体涉及一种基于hash表实现的带掩码五元组规则的匹配方法。

背景技术

在网络报文分类系统中,很多系统是把报文的五元组(协议,源ip,目的ip,源端口,目的端口)作为分类的规则。五元组规则可能是精确的,要求每一项都要精确比对,比如一个规则的精确五元组(tcp,10.0.0.1,10.0.0.2,80,1234)指定了一个特定tcp连接,每个报文都要和它精确比对。五元组规则也可能包含掩码,被掩码掩掉的部分是不需要比对的,比如一个规则的带掩码的五元组(tcp,10.0.0.1,10.0.0.x,80,x)指定了一个网段10.0.0.x内所有的tcp连接,每个报文和该规则比对时,不需要考虑x的值。

一般对少量的带掩码规则,需要使用tcam芯片实现;对大量的精确规则,需要使用hash表实现。

在某些系统上,需要有大量的五元组规则,tcam芯片受限于容量大小,无法支持,必须采用hash表实现。但是,采用hash表结构存储五元组规则,当五元组规则带掩码时,需要把掩码规则扩展成精确规则,比如对包含掩码的一条规则,10.0.0.x的网段要扩展成10.0.0.0,10.0.0.1,…,10.0.0.255共256条精确规则,这会导致规则表容量迅速扩大,带来存储资源的巨大浪费。

在一般应用系统中,带掩码的五元组规则的掩码位置不是随机的,往往比较固定,也就是说掩码格式不多,比如在某真对局域网报文分类的系统中,只有ip的第四个字段会带掩码,也就是说,规则格式只有下列几种:

1.精确规则(protocol,sip1.sip2.sip3.sip4,dip1.dip2.dip3.dip4,sport,dport)

2.源ip网段掩码(protocol,sip1.sip2.sip3.x,dip1.dip2.dip3.dip4,sport,dport)

3.目的ip网段掩码(protocol,sip1.sip2.sip3.sip4,dip1.dip2.dip3.x,sport,dport)

4.源目ip网段掩码(protocol,sip1.sip2.sip3.x,dip1.dip2.dip3.x,sport,dport)

发明内容

本发明目的是提供一种方法解决hash表存储五元组规则是规则表过大的问题。

一种基于hash表实现的带掩码五元组规则的匹配方法,步骤如下:

A、依次读取每条掩码规则,修改掩码规则,将掩码屏蔽的字段设置为特定值,通过hash运算把新掩码规则存储到hash表中;

B、从输入报文中提取要比对的五元组;

C、将五元组输入掩码计算模块,对系统需要支持的每种掩码规则,分别计算出一个新的五元组;

D、依次循环,用每个计算出的新五元组查找hash表,若找到,则匹配该规则,若掩码计算模块计算出的所有的掩码五元组,都在hash表中找不到对应规则,则该报文不匹配任何规则。

本发明的一种优选技术方案在于:步骤A中掩码的屏蔽字段设置的特定值可以为0。

本发明的用计算资源代替存储资源完成系统功能,虽然增加了多次匹配的计算量,但是对目前的多核cpu或专用芯片来说,计算资源是足够的,用多余的计算资源避免稀缺的存储资源浪费,可以使整个系统达到应用要求。

附图说明

图1是本发明实现原理图

具体实施方式

本发明与一般使用hash表的方法不同,在创建hash表时,把带掩码的规则中掩掉的不关心字段设置为特定值(比如0),存入hash表。在根据hash表查找之前,增加了一个掩码计算模块,该模块对每一个从报文中提取出的要到hash表中比对规则的五元组,先按照系统预设的每种掩码格式修改五元组,再拿每个修改后的五元组到hash表中查找。

实现方法和过程如下:

(1)掩码规则存入hash表

依次读取每条掩码规则,修改掩码规则,把掩掉的不关心字段设置为预设置,通过hash运算把该规则存到hash表中。

(2)从输入报文中提取要比对的五元组

(3)计算掩码后的五元组

把报文五元组输入掩码计算模块,对系统需要支持的每种掩码规则格式,计算出一个新的五元组。

(4)查找hash表

依次循环,用每个计算出的掩码五元组查找hash表,如果找到,则该报文匹配上了该五元组规则,如果掩码计算模块计算出的所有的掩码五元组,都在hash表中找不到对应规则,则该报文不匹配任何规则。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于曙光信息产业(北京)有限公司,未经曙光信息产业(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201010611764.6/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top