一种通过软件提高硬件报文分类规则匹配效率的方法

文档序号:6339298阅读:285来源:国知局
专利名称:一种通过软件提高硬件报文分类规则匹配效率的方法
技术领域
本发明涉及网络数据管理领域,具体涉及一种通过软件提高硬件报文分类规则 匹配效率的方法。
背景技术
在硬件报文分类系统中,对于报文规则的存储,一般最常用的方式是顺序数组 的方式存储,新配置到硬件中的报文分类规则放到规则表的末尾,然而由于新添加的规 则一般是当时最常用的,随着规则容量的增大,这种机制匹配效率会降低。在硬件报文分类系统中,根据业务需要,需要频繁的对报文分类规则进行增 加、删除等操作,由于原有系统中,规则容量不是很大,一般都采用顺序数组的方式存 储,这种存储对于小容量规则来说,对查找、增加、删除影响都不是很大,但是随着容 量增大,这种机制的弊端一效率低就慢慢暴露出来。在传统的顺序数组方式存储中,当增加一个规则,根据数组信息,在数组的末 尾增加规则,当删除一个规则时,扫描该数组定位到该规则位置,然后删除该规则,并 把后续的规则都向前移动一个位置。但随着业务需求,规则容量越来越大,这种效率就 会越来越低。实现高效的匹配规则,一般方式是把所有规则数组组成一个数组索引,每次都 把最新的规则放在整个数组指针的最前面,当有新增加规则或删除规则,调整规则的索 引,保证最新的规则在数组的最前面。但是随着规则容量的增加,现有技术方案出现了 匹配效率差的缺点,因为对于高速网上的报文需要快速匹配规则,而这种方案中,查找 一个规则需要太常的时间,基本上需要查找整个规则数组表,也就是复杂度为OCn)的规 模,才能匹配规则。

发明内容
本发明的目的在于解决上述现有技术方案的缺点,通过设置冲突链的方式,根 据规则的特点,设计出一个hash函数,尽可能保证每个规则的hash数唯一性以及冲突最 小化,这样,当需要匹配一个规则,只需要计算该规则的hash数,就可以在hash位置以 及hash冲突位置找到该规则,在硬件中的数据来临,需要匹配规则时,保证了匹配的效 率。当要增加、删除规则时,只需要根据hash数以及hash冲突链表调整相应位置即可。—种通过软件提高硬件报文分类规则匹配效率的方法,其特征在于步骤如 下A、在主机内存中申请一块内存区域,其中一部分用来存储规则,另一部分用来 存储hash表;B、通过接口库,为每个规则生成hash关键字,并根据hash关键字把规则添加 到主机内存规则表以及硬件规则表中;C、当需要增加或删除规则时,接口函数通过hash函数,查找该规则对应的hash关键字所在的位置,查找是否存在冲突,若不存在冲突,直接把该规则放进规则表与规 则冲突链中;若存在冲突,则把该规则填加到冲突链所在链表的头位置;D、接口库更新主机内存中的存储规则,主机内存中存储规则更新完毕后,再根 据调整后的规则表,更新硬件端的规则表;E、当数据包需要规则匹配时,通过hash函数,查找硬件中的规则,根据hash
关键字,在hash关键字位置以及冲突位置匹配规则。本发明根据规则的特性,创建一个hash函数,并为每一个规则生成一个hash 数,通过hash数,把规则散落在数组中,当几个规则具有相同的hash数时,他们之间就 存在冲突,根据冲突关系查找具体规则。这样查找一个规则效率要比顺序存储在数组效 率要高,同时,由于最新的规则总是在冲突链的头上,匹配效率也最高。


图1是本发明工作示意图
具体实施例方式本发明通过hash表查找快速的特点,在系统内存中建立一个规则的hash表,通 过hash表实现硬件报文分类的高效匹配。具体方案如下(1)在主机内存中申请一块内存区域,其中在这块内存区域中,一部分存储规 则,一部分存储hash表。(2)通过接口库,为每个规则生成hash数,并根据hash数把规则添加到主机规 则表以及硬件规则表中。(3)当需要增加、删除规则,接口函数通过hash函数,查找该规则对应的hash 数所在的位置,查找是否存在冲突,如果不存在冲突,直接把该规则放进规则表与规则 冲突链中;如果存在冲突,则把该规则加到冲突链所在链表的头位置。(4)为了防止在操作规则的过程中,影响硬件报文分类,接口库首先更新主机端 的存储规则,当更新完主机端规则后,再根据调整后的规则表,更新硬件端的规则表。(5)当数据包需要匹配规则时,通过hash函数,查找硬件中的规则,根据hash 数,在hash数位置以及冲突位置匹配规则。本发明已经在曙光生产的网络安全专用服务器中使用,证明可以实现对大容量 规则进行管理,提高了规则的匹配效率。
权利要求
1. 一种通过软件提高硬件报文分类规则匹配效率的方法,其特征在于步骤如下A、在主机内存中申请一块内存区域,其中一部分用来存储规则,另一部分用来存储 hash 表;B、通过接口库,为每个规则生成hash关键字,并根据hash关键字把规则添加到主 机内存规则表以及硬件规则表中;C、当需要增加或删除规则时,接口函数通过hash函数,查找该规则对应的hash关 键字所在的位置,查找是否存在冲突,若不存在冲突,直接把该规则放进规则表与规则 冲突链中;若存在冲突,则把该规则填加到冲突链所在链表的头位置;D、接口库更新主机内存中的存储规则,主机内存中存储规则更新完毕后,再根据调 整后的规则表,更新硬件端的规则表;E、当数据包需要规则匹配时,通过hash函数,查找硬件中的规则,根据hash关键 字,在hash关键字位置以及冲突位置匹配规则。
全文摘要
本发明提供了一种通过软件提高硬件报文分类规则匹配效率的方法。通过软硬结合的方式,通过hash表存储规则,软件维护报文分类规则,在增、删规则时,进行hash表冲突调整,把新加的规则放到冲突链的头上,从而使最常用的规则容易查找,提高规则匹配效率。
文档编号G06F17/30GK102014070SQ20101059775
公开日2011年4月13日 申请日期2010年12月17日 优先权日2010年12月17日
发明者万伟, 刘兴彬, 朱春屹, 王泼, 贺志强, 连仲维 申请人:天津曙光计算机产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1