CN102111331A - 一种基于hash表实现的带掩码五元组规则的匹配方法 - Google Patents
一种基于hash表实现的带掩码五元组规则的匹配方法 Download PDFInfo
- Publication number
- CN102111331A CN102111331A CN2010106117646A CN201010611764A CN102111331A CN 102111331 A CN102111331 A CN 102111331A CN 2010106117646 A CN2010106117646 A CN 2010106117646A CN 201010611764 A CN201010611764 A CN 201010611764A CN 102111331 A CN102111331 A CN 102111331A
- Authority
- CN
- China
- Prior art keywords
- mask
- rule
- hash table
- tuple
- hash
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种基于hash表实现的带掩码五元组规则的匹配方法。过程是不扩展掩码规则,而是把掩码规则直接存入hash表,从输入报文中提取要比对的五元组后,对每种掩码格式分别计算掩码后的五元组,用新的五元组查找hash表。本发明用计算资源代替存储资源完成系统功能,虽然增加了多次匹配的计算量,但是对目前的多核cpu或专用芯片来说,计算资源是足够的,用多余的计算资源避免稀缺的存储资源浪费,可以使整个系统达到应用要求。
Description
技术领域
本发明涉及网络数据处理领域,具体涉及一种基于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表中找不到对应规则,则该报文不匹配任何规则。
Claims (2)
1.一种基于hash表实现的带掩码五元组规则的匹配方法,其特征在于:步骤如下:
A、依次读取每条掩码规则,修改掩码规则,将掩码屏蔽的字段设置为特定值,通过hash运算把新掩码规则存储到hash表中;
B、从输入报文中提取要比对的五元组;
C、将五元组输入掩码计算模块,对系统需要支持的每种掩码规则,分别计算出一个新的五元组;
D、依次循环,用每个计算出的新五元组查找hash表,若找到,则匹配该规则,若掩码计算模块计算出的所有的掩码五元组,都在hash表中找不到对应规则,则该报文不匹配任何规则。
2.如权利要求1所述一种基于hash表实现的带掩码五元组规则的匹配方法,其特征在于:所述A步骤中掩码的屏蔽字段设置的特定值可以为0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010611764.6A CN102111331B (zh) | 2010-12-17 | 2010-12-17 | 一种基于hash表实现的带掩码五元组规则的匹配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010611764.6A CN102111331B (zh) | 2010-12-17 | 2010-12-17 | 一种基于hash表实现的带掩码五元组规则的匹配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102111331A true CN102111331A (zh) | 2011-06-29 |
CN102111331B CN102111331B (zh) | 2015-04-01 |
Family
ID=44175364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010611764.6A Active CN102111331B (zh) | 2010-12-17 | 2010-12-17 | 一种基于hash表实现的带掩码五元组规则的匹配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102111331B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103188231A (zh) * | 2011-12-30 | 2013-07-03 | 北京锐安科技有限公司 | 一种多核板卡acl规则匹配方法 |
CN104283736A (zh) * | 2014-08-03 | 2015-01-14 | 成都网安科技发展有限公司 | 一种基于改良自动状态机的网络通信五元组快速匹配算法 |
CN105871573A (zh) * | 2015-01-20 | 2016-08-17 | 国家计算机网络与信息安全管理中心 | 一种报文分析过滤方法及装置 |
CN105939284A (zh) * | 2016-01-08 | 2016-09-14 | 杭州迪普科技有限公司 | 报文控制策略的匹配方法及装置 |
CN106936719A (zh) * | 2017-05-17 | 2017-07-07 | 济南浪潮高新科技投资发展有限公司 | 一种ip报文策略匹配方法 |
CN109688237A (zh) * | 2018-03-26 | 2019-04-26 | 新华三技术有限公司 | 一种nat转换方法、装置及nat设备 |
CN111177198A (zh) * | 2019-12-27 | 2020-05-19 | 芯启源(南京)半导体科技有限公司 | 一种用于芯片的内容查找方法 |
CN111343153A (zh) * | 2020-02-10 | 2020-06-26 | Oppo(重庆)智能科技有限公司 | 数据包检测方法、装置、服务器及存储介质 |
CN115297056A (zh) * | 2022-09-28 | 2022-11-04 | 杭州芯旗电子技术有限公司 | 一种基于fpga实现的掩码匹配方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101132424A (zh) * | 2007-09-29 | 2008-02-27 | 杭州华三通信技术有限公司 | 网络地址转换的方法及装置 |
CN101140593A (zh) * | 2007-10-11 | 2008-03-12 | 中国科学院计算技术研究所 | 一种关键词匹配方法和系统 |
CN101309216A (zh) * | 2008-07-03 | 2008-11-19 | 中国科学院计算技术研究所 | 一种ip包分类方法和设备 |
-
2010
- 2010-12-17 CN CN201010611764.6A patent/CN102111331B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101132424A (zh) * | 2007-09-29 | 2008-02-27 | 杭州华三通信技术有限公司 | 网络地址转换的方法及装置 |
CN101140593A (zh) * | 2007-10-11 | 2008-03-12 | 中国科学院计算技术研究所 | 一种关键词匹配方法和系统 |
CN101309216A (zh) * | 2008-07-03 | 2008-11-19 | 中国科学院计算技术研究所 | 一种ip包分类方法和设备 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103188231A (zh) * | 2011-12-30 | 2013-07-03 | 北京锐安科技有限公司 | 一种多核板卡acl规则匹配方法 |
CN104283736B (zh) * | 2014-08-03 | 2018-05-22 | 成都网安科技发展有限公司 | 一种基于改良自动状态机的网络通信五元组快速匹配算法 |
CN104283736A (zh) * | 2014-08-03 | 2015-01-14 | 成都网安科技发展有限公司 | 一种基于改良自动状态机的网络通信五元组快速匹配算法 |
CN105871573A (zh) * | 2015-01-20 | 2016-08-17 | 国家计算机网络与信息安全管理中心 | 一种报文分析过滤方法及装置 |
CN105939284B (zh) * | 2016-01-08 | 2019-01-25 | 杭州迪普科技股份有限公司 | 报文控制策略的匹配方法及装置 |
CN105939284A (zh) * | 2016-01-08 | 2016-09-14 | 杭州迪普科技有限公司 | 报文控制策略的匹配方法及装置 |
CN106936719A (zh) * | 2017-05-17 | 2017-07-07 | 济南浪潮高新科技投资发展有限公司 | 一种ip报文策略匹配方法 |
CN109688237A (zh) * | 2018-03-26 | 2019-04-26 | 新华三技术有限公司 | 一种nat转换方法、装置及nat设备 |
CN109688237B (zh) * | 2018-03-26 | 2020-05-12 | 新华三技术有限公司 | 一种nat转换方法、装置及nat设备 |
US11201852B2 (en) | 2018-03-26 | 2021-12-14 | New H3C Technologies Co., Ltd. | Network address translation |
CN111177198A (zh) * | 2019-12-27 | 2020-05-19 | 芯启源(南京)半导体科技有限公司 | 一种用于芯片的内容查找方法 |
CN111177198B (zh) * | 2019-12-27 | 2023-06-16 | 芯启源(南京)半导体科技有限公司 | 一种用于芯片的内容查找方法 |
CN111343153A (zh) * | 2020-02-10 | 2020-06-26 | Oppo(重庆)智能科技有限公司 | 数据包检测方法、装置、服务器及存储介质 |
CN115297056A (zh) * | 2022-09-28 | 2022-11-04 | 杭州芯旗电子技术有限公司 | 一种基于fpga实现的掩码匹配方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102111331B (zh) | 2015-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102111331B (zh) | 一种基于hash表实现的带掩码五元组规则的匹配方法 | |
US8681819B2 (en) | Programmable multifield parser packet | |
CN106936667B (zh) | 一种基于应用程序流量分布式分析的主机实时识别方法 | |
CN113411380B (zh) | 基于fpga可编程会话表的处理方法、逻辑电路和设备 | |
WO2021047402A1 (zh) | 应用识别方法、装置及存储介质 | |
US11755540B2 (en) | Chunking method and apparatus | |
CN113364804B (zh) | 一种流量数据的处理方法和装置 | |
EP4143691A1 (en) | Systems for providing an lpm implementation for a programmable data plane through a distributed algorithm | |
CN104333461A (zh) | 互联网应用流量识别方法、系统及识别装置 | |
CN111832661B (zh) | 分类模型构建方法、装置、计算机设备及可读存储介质 | |
EP3264713B1 (en) | Hardware acceleration architecture for signature matching applications for deep packet inspection | |
CN109428774B (zh) | 一种dpi设备的数据处理方法及相关的dpi设备 | |
US9374308B2 (en) | Openflow switch mode transition processing | |
CN112527950A (zh) | 一种基于MapReduce的图数据删除方法及系统 | |
EP3264716B1 (en) | State transition compression mechanism to efficiently compress dfa based regular expression signatures | |
CN108377211B (zh) | 基于报文内容感知的动态规则链式递归触发方法及其系统 | |
CN107508705B (zh) | 一种http元素的资源树构建方法及计算设备 | |
CN114024758B (zh) | 流量特征提取方法、系统、存储介质及电子设备 | |
CN111163184B (zh) | 一种报文特征的提取方法和装置 | |
CN113472654B (zh) | 一种网络流量数据转发方法、装置、设备及介质 | |
WO2024021588A1 (zh) | 一种基于udf的流量卸载方法及系统 | |
CN107888445A (zh) | 性能状态分析的方法、装置、计算机设备及存储介质 | |
CN117573218B (zh) | 一种基于数据处理单元的应用识别硬件卸载方法及装置 | |
CN111143743B (zh) | 一种自动扩充应用识别库的方法及装置 | |
CN112714033B (zh) | 视频集的特征信息确定方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220725 Address after: 100193 No. 36 Building, No. 8 Hospital, Wangxi Road, Haidian District, Beijing Patentee after: Dawning Information Industry (Beijing) Co.,Ltd. Patentee after: DAWNING INFORMATION INDUSTRY Co.,Ltd. Address before: 100084 Beijing Haidian District City Mill Street No. 64 Patentee before: Dawning Information Industry (Beijing) Co.,Ltd. |