CN102111331A - 一种基于hash表实现的带掩码五元组规则的匹配方法 - Google Patents

一种基于hash表实现的带掩码五元组规则的匹配方法 Download PDF

Info

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
Application number
CN2010106117646A
Other languages
English (en)
Other versions
CN102111331B (zh
Inventor
刘朝辉
刘兴奎
张英文
李静
刘灿
李锋伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dawning Information Industry Beijing Co Ltd
Dawning Information Industry Co Ltd
Original Assignee
Dawning Information Industry Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dawning Information Industry Beijing Co Ltd filed Critical Dawning Information Industry Beijing Co Ltd
Priority to CN201010611764.6A priority Critical patent/CN102111331B/zh
Publication of CN102111331A publication Critical patent/CN102111331A/zh
Application granted granted Critical
Publication of CN102111331B publication Critical patent/CN102111331B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种基于hash表实现的带掩码五元组规则的匹配方法。过程是不扩展掩码规则,而是把掩码规则直接存入hash表,从输入报文中提取要比对的五元组后,对每种掩码格式分别计算掩码后的五元组,用新的五元组查找hash表。本发明用计算资源代替存储资源完成系统功能,虽然增加了多次匹配的计算量,但是对目前的多核cpu或专用芯片来说,计算资源是足够的,用多余的计算资源避免稀缺的存储资源浪费,可以使整个系统达到应用要求。

Description

一种基于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表中找不到对应规则,则该报文不匹配任何规则。

Claims (2)

1.一种基于hash表实现的带掩码五元组规则的匹配方法,其特征在于:步骤如下:
A、依次读取每条掩码规则,修改掩码规则,将掩码屏蔽的字段设置为特定值,通过hash运算把新掩码规则存储到hash表中;
B、从输入报文中提取要比对的五元组;
C、将五元组输入掩码计算模块,对系统需要支持的每种掩码规则,分别计算出一个新的五元组;
D、依次循环,用每个计算出的新五元组查找hash表,若找到,则匹配该规则,若掩码计算模块计算出的所有的掩码五元组,都在hash表中找不到对应规则,则该报文不匹配任何规则。
2.如权利要求1所述一种基于hash表实现的带掩码五元组规则的匹配方法,其特征在于:所述A步骤中掩码的屏蔽字段设置的特定值可以为0。
CN201010611764.6A 2010-12-17 2010-12-17 一种基于hash表实现的带掩码五元组规则的匹配方法 Active CN102111331B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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包分类方法和设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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.