CN102801617B - 一种基于硬件cam芯片的高效能网络数据包过滤方法 - Google Patents

一种基于硬件cam芯片的高效能网络数据包过滤方法 Download PDF

Info

Publication number
CN102801617B
CN102801617B CN201210277909.2A CN201210277909A CN102801617B CN 102801617 B CN102801617 B CN 102801617B CN 201210277909 A CN201210277909 A CN 201210277909A CN 102801617 B CN102801617 B CN 102801617B
Authority
CN
China
Prior art keywords
window
data
keyword
comparator
bid
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.)
Active
Application number
CN201210277909.2A
Other languages
English (en)
Other versions
CN102801617A (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.)
Beijing Ruian Technology Co Ltd
Original Assignee
Beijing Ruian Technology 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 Beijing Ruian Technology Co Ltd filed Critical Beijing Ruian Technology Co Ltd
Priority to CN201210277909.2A priority Critical patent/CN102801617B/zh
Publication of CN102801617A publication Critical patent/CN102801617A/zh
Application granted granted Critical
Publication of CN102801617B publication Critical patent/CN102801617B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于硬件CAM芯片的高效能网络数据包过滤方法,属于网络信息处理领域。本方法为:1)根据CAM芯片比较器的窗口宽度n设定输入关键字的最大长度;2)比较器从网络数据包数据段中顺序移位读取n个字节与关键字进行匹配;如果窗口数据包含匹配的关键字,则视为中标;如果窗口后半段部分数据与关键字前半段部分匹配,则比较器移位读取当前数据包数据段中后续n个字节与该关键字进行匹配,如果当前窗口数据前半段部分数据与该关键字剩余未匹配数据匹配,即发生窗口前中标,则视为中标;否则视为当前数据包未中标,比较器继续读取当前数据段中后续n个字节与关键字进行匹配。本发明匹配准确性及中标率在99.9%以上,性能高。

Description

一种基于硬件CAM芯片的高效能网络数据包过滤方法
技术领域
本发明涉及网络信息处理领域,具体地说,属于网络原始数据过滤还原领域,通过硬件芯片加速对符合五类源协议传输的TCP/IP数据包进行关键字高速过滤和匹配方法。
背景技术
网络上的数据传输都是以TCP/IP数据包为单位进行的,每个数据包内包含有诸多信息。常规协议还原的做法是由硬件完成包的接收后,由软件逐项比较接收到数据包内的协议信息后,进行分类,并根据包序号对收到的数据包进行数据段抽取排序,对已完成排序还原后的数据段一般称为文件。对文件内容与关键字逐字比对的工作称为内容匹配。内容匹配的关键是比对对象是文件而不是包且比对过程需要逐字节移位后与关键字进行比对。只有保证这两点才能做到对针对内容的精确匹配。
协议还原过程中,数据包排序和内容匹配致频繁的内存搬移,使整个系统的处理效率降低,在单机多协议还原情况下尤为明显。而不对数据包进行按协议分类、重新排序实现关键字过滤就成为难题。
发明内容
针对现有技术中存在的技术问题,本发明的目的是提供一种基于硬件CAM芯片的高效能网络数据包过滤方法;本发明通过关键字偏移实现传输时的识别技术,以数据包为对象不进行数据段抽取和排序,直接移动数据段的数据内容与关键字进行移位匹配;当发现比较器当前窗口内部分数据和关键字前半段匹配,或者和关键字后半段匹配,即认为部分匹配,亦叫半中标;如果数据包在移位比对中出现和关键字完全匹配的字段,即认为完全匹配,即中标,将相关的网络数据包全部过滤出来,存储到某地;其中窗口内前段部分数据与关键字后半段部分数据匹配,称为窗口前中标,窗口内后半段部分数据与关键字前半段部分数据匹配,称为窗口后中标。
为实现上述目的,本发明的解决方案是:
一种基于硬件CAM芯片的高效能网络数据包过滤方法,其步骤为:
1)根据CAM芯片比较器的窗口宽度设定输入关键字的最大长度;其中,比较器的窗口宽度为n字节,关键字的最大长度小于或等于n字节;
2)所述比较器从网络数据包数据段中顺序移位读取n个字节作为比较器的窗口数据与输入的关键字进行匹配;
21)如果窗口数据包含匹配的关键字,则视为中标,将当前数据包作为匹配网络数据包过滤出来;
22)如果窗口后半段部分数据与关键字前半段部分匹配,即发生窗口后中标,则比较器移位读取当前数据包数据段中后续n个字节作为比较器的窗口数据与该关键字进行匹配,如果当前窗口数据前半段部分数据与该关键字剩余未匹配数据匹配,即发生窗口前中标,则视为中标,将当前数据包作为匹配网络数据包过滤出来;否则视为当前数据包未中标,比较器继续移位读取当前数据段中后续n个字节与关键字进行匹配。
进一步的,如果前一个数据包数据段的最后一个窗口数据与关键字发生窗口后中标,则在后续相邻数据包的第一个比较窗口数据与关键字比较时,判断是否发生窗口前中标,如果是则视为中标,将相关的两个数据包作为匹配网络数据包过滤出来。
进一步的,如果比较器移位读取到当前网络数据包数据段段尾,移位读取的数据长度不足n字节时,比较器根据上一窗口的比较结果进行判断;如果上一窗口比较时发生了窗口后中标,则比较器将上一窗口未匹配的剩余数据先左对齐与关键字进行一次匹配,如果存在窗口前中标,则视为中标;否则,再取当前网络数据包数据段最后n个字节与关键字进行比较,如果发生窗口前中标,则为中标。
进一步的,当发生窗口前中标或窗口后中标时,比较器反馈预警提示信息给过滤模块;所述反馈信息包括:网络数据包的编号、中标位置、中标码及对应的处理方式。
进一步的,当窗口后半段部分数据与关键字后半段部分匹配,或窗口前半段部分数据与关键字前半段部分匹配时,比较器反馈预警提示信息给过滤模块;所述反馈信息包括:网络数据包的编号、中标位置、中标码及对应的处理方式。
进一步的,所述预警提示信息包括预警优先级信息。
进一步的,比较器根据窗口数据与关键字的匹配长度设定预警优先级,匹配长度越长优先级越高。
本发明的方法流程图如图1所示,关键字如果正处于相邻两个网络数据包之间时,即前一个数据包数据段的最后一个比较窗口内的后半段部分数据与关键字前半段部分内容匹配,发生窗口后中标,则在下一个窗口比较时,即后续相邻数据包的第一个比较窗口内的数据与关键字比较时,就会关注相应的窗口前半段部分数据内容与关键字剩余后半段未匹配内容是否匹配,即是否发生窗口前中标,如果匹配则视为“中标”,将相关的网络数据包全部过滤出来,存储到某地,否则忽略。
CAM芯片每次可以比较位宽的大小,即是比较器所能看到的连贯数据段的范围。此范围根据CAM芯片型号的不同而不同,本文以常见的CAM芯片每次可以比较144bit宽的数据,也就是18字节为例。如果数据段长度不是18字节对齐,数据段尾不足18字节时需根据上一窗口的比较结果进行判断,如果上一窗口比较时发生了窗口内前半段部分数据与关键字部分匹配的情况,则将上一窗口内除匹配外的剩余全部数据段先左对齐与关键字部分进行一次比较,观察是否存在相应的窗口后中标的情况,如果存在则视为中标;如果不存在,则取TCP/IP包的数据段最后18字节与关键字部分再进行一次比较观察是否存在窗口后半段中标的情况,如果存在则视为中标,否则视为未中标。
注:窗口是指比较器每次进行比较的字段宽度。
与现有技术相比,本发明的优点和积极效果:
采用此技术不会遗漏任何需要匹配的数据,即使部分匹配也会出现中标提示,信息比较器将包的编号、中标位置、中标码及对应的处理方式等信息,发送给实现过滤功能的模块,根据应用的不同发送的内容而有所不同。此技术性能较高,节约成本。例如:一片每秒可以完成250M次比对的CAM芯片,采用18字节窗口匹配法进行比较,可以达到250M*18,即4.5GB/S的纯数据流。使用每秒比较速度为62.5M次,144位宽查找表深度为16K的低端CAM芯片就可以处理16.071Gb/S的接入速度。ARM9系列产品的性能虽好,但价格较高,达到同等性能的产品市场价要几千元;而renesas electronics的同类产品价格相对低廉,但性能远不及本发明中的上述指标;而本发明中使用的CAM芯片市场价仅500元左右,经过实验性测试,匹配准确性及中标率在99.9%以上,真正做到了低成本,高性能。
附图说明
图1为本发明方法流程图;
图2、关键字长度为9个字节时的比较条件示意图。
具体实施方式
CAM芯片每次可以比较144bit宽的数据,也就是18个字节,那我们所说的比对器窗口就是指比较器所能看到的连贯数据段上的范围。
我们的比对器窗口宽度是18个字节,允许的查找条件的长度范围为[1~18]字节,所以最长的字符串支持9个汉字或18个英文字母,至于多条件查询时的情况每个条件可以作为一个查找条件出现,然后可根据实际使用系统规则再进行相应的分析处理即可。查找条件设计:
为了高效的对数据段进行匹配查找,我们利用CAM芯片查找表资源过剩的特点,将要查找的关键字限定为设定长度,设定长度就是比对器窗口宽度,限定关键字的长度不能超过设定长度。举例说明:
如图2所示,关键字为A~I的9个英文字母序列(选用英文字母序列进行说明,主要是每个英文字母的码长正好是1个字节,这样看起来比较直观,如果是汉字,虽然汉字的编码是2字节,但是对于处理过程仍然是以字节为单位),窗口宽度为18,为了每次比较的数据长度可以按窗口宽度进行,我们这样设计针对它的比较条件。
当关键字正处于窗口与窗口之间时,比如关键字一部分位于上一窗口数据的后段数据,而关键字剩余另一部分数据在当前窗口数据的前段数据中,如果在TCP/IP包的数据前段发生了窗口前中标的情况,则进行信息记录,在下一个窗口比较时,就会关注相应的窗口后中标情况是否存在,如果存在则视为“中标”,否则忽略。当在数据包中发现完全匹配的关键字时,即为中标。
如果数据段长度不是18字节时,数据段尾不足18字节时需根据上一窗口的比较结果进行判断,如果上一窗口比较时发生了窗口后中标的情况,则剩余全部数据段先左对齐进行一次匹配比较,观察是否存在相应的窗口前中标的情况,如果存在,则为中标;如果不存在,然后再取TCP/IP包的数据段最后18字节进行一次比较观察是否存在窗口前中标的情况,如果存在,则为中标;否则,忽略。
为了不会遗漏任何需要匹配的数据,即使部分匹配也会出现中标提示,信息比较器将包的编号、中标位置、中标码及对应的处理方式等信息,发送给实现过滤功能的模块。并且比较器根据窗口数据与关键字的匹配长度设定预警优先级,匹配长度越长优先级越高,从而及时发现最可能的匹配数据包。

Claims (7)

1.一种基于硬件CAM芯片的高效能网络数据包过滤方法,其步骤为:
1)根据CAM芯片比较器的窗口宽度设定输入关键字的最大长度;其中,比较器的窗口宽度为n字节,关键字的最大长度小于或等于n字节;
2)所述比较器从网络数据包数据段中顺序移位读取n个字节作为比较器的窗口数据与输入的关键字进行匹配;
21)如果窗口数据包含匹配的关键字,则视为中标,将当前数据包作为匹配网络数据包过滤出来;
22)如果窗口后半段部分数据与关键字前半段部分匹配,即发生窗口后中标,则比较器移位读取当前数据包数据段中后续n个字节作为比较器的窗口数据与该关键字进行匹配,如果当前窗口数据前半段部分数据与该关键字剩余未匹配数据匹配,即发生窗口前中标,则视为中标,将当前数据包作为匹配网络数据包过滤出来;否则视为当前数据包未中标,比较器继续移位读取当前数据段中后续n个字节与关键字进行匹配。
2.如权利要求1所述的方法,其特征在于如果前一个数据包数据段的最后一个窗口数据与关键字发生窗口后中标,则在后续相邻数据包的第一个比较窗口数据与关键字比较时,判断是否发生窗口前中标,如果是则视为中标,将相关的两个数据包作为匹配网络数据包过滤出来。
3.如权利要求1或2所述的方法,其特征在于如果比较器移位读取到当前网络数据包数据段段尾,移位读取的数据长度不足n字节时,比较器根据上一窗口的比较结果进行判断;如果上一窗口比较时发生了窗口后中标,则比较器将上一窗口未匹配的剩余数据先左对齐与关键字进行一次匹配,如果存在窗口前中标,则视为中标;否则,再取当前网络数据包数据段最后n个字节与关键字进行比较,如果发生窗口前中标,则视为中标。
4.如权利要求1所述的方法,其特征在于当发生窗口前中标或窗口后中标时,比较器反馈预警提示信息给过滤模块;所述反馈预警提示信息包括:网络数据包的编号、中标位置、中标码及对应的处理方式。
5.如权利要求1所述的方法,其特征在于当窗口后半段部分数据与关键字后半段部分匹配,或窗口前半段部分数据与关键字前半段部分匹配时,比较器反馈预警提示信息给过滤模块;所述反馈预警提示信息包括:网络数据包的编号、中标位置、中标码及对应的处理方式。
6.如权利要求4或5所述的方法,其特征在于所述预警提示信息包括预警优先级信息。
7.如权利要求6所述的方法,其特征在于比较器根据窗口数据与关键字的匹配长度设定预警优先级,匹配长度越长优先级越高。
CN201210277909.2A 2012-08-06 2012-08-06 一种基于硬件cam芯片的高效能网络数据包过滤方法 Active CN102801617B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210277909.2A CN102801617B (zh) 2012-08-06 2012-08-06 一种基于硬件cam芯片的高效能网络数据包过滤方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210277909.2A CN102801617B (zh) 2012-08-06 2012-08-06 一种基于硬件cam芯片的高效能网络数据包过滤方法

Publications (2)

Publication Number Publication Date
CN102801617A CN102801617A (zh) 2012-11-28
CN102801617B true CN102801617B (zh) 2015-07-22

Family

ID=47200585

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210277909.2A Active CN102801617B (zh) 2012-08-06 2012-08-06 一种基于硬件cam芯片的高效能网络数据包过滤方法

Country Status (1)

Country Link
CN (1) CN102801617B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102968502B (zh) * 2012-12-10 2016-04-20 北京锐安科技有限公司 一种支持逻辑组合状态更新的多模式内容匹配方法
CN103560916B (zh) * 2013-11-04 2017-01-11 中国电子科技集团公司第四十一研究所 一种高速数据包过滤电路及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101030897A (zh) * 2007-02-07 2007-09-05 华为技术有限公司 一种入侵检测中模式匹配的方法和装置
CN102253957A (zh) * 2011-04-13 2011-11-23 北京恒光创新科技股份有限公司 一种tcam多模式字符串匹配方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101030897A (zh) * 2007-02-07 2007-09-05 华为技术有限公司 一种入侵检测中模式匹配的方法和装置
CN102253957A (zh) * 2011-04-13 2011-11-23 北京恒光创新科技股份有限公司 一种tcam多模式字符串匹配方法及装置

Also Published As

Publication number Publication date
CN102801617A (zh) 2012-11-28

Similar Documents

Publication Publication Date Title
CN102510323B (zh) 一种串口数据的帧识别方法
EP2472786B1 (en) Automatic signature generation for application recognition and user tracking over heterogeneous networks
CN100452055C (zh) 一种用于文本或网络内容分析的大规模多关键词匹配方法
US10009372B2 (en) Method for compressing matching automata through common prefixes in regular expressions
CN107609356B (zh) 基于标签模型的文本无载体信息隐藏方法
US9258013B1 (en) Data compression with Huffman code on multicore processors
US9544402B2 (en) Multi-rule approach to encoding a group of rules
CN104753931A (zh) 一种基于正则表达式的深度报文检测方法
US20170155458A1 (en) Multi-lane synchronization method, synchronization apparatus and system, and computer storage medium
US9444828B2 (en) Network intrusion detection apparatus and method using Perl compatible regular expressions-based pattern matching technique
CN110704356A (zh) 一种通用的解析串口数据方法
US8532331B2 (en) Method for monitoring a picture or multimedia video pictures in a communication system
CN105630767A (zh) 一种文本相似性的比较方法以及装置
CN103186669A (zh) 关键词快速过滤方法
CN102801617B (zh) 一种基于硬件cam芯片的高效能网络数据包过滤方法
CN112069303B (zh) 字符串的匹配查找方法、装置及终端
CN102253957A (zh) 一种tcam多模式字符串匹配方法及装置
CN103324886A (zh) 一种网络攻击检测中指纹库的提取方法和系统
CN104717203A (zh) 总线通信协议识别方法
CN111770055A (zh) 一种应用于电能表的多协议通讯帧快速判别方法
CN1243431C (zh) 宽带网络通信产品的通用路由平台命令行的解析方法
CN102521357A (zh) 一种利用自动机实现文本精确匹配的系统和方法
CN101848091B (zh) 数据查找处理方法及系统
CN101764718A (zh) 一种深度报文检测方法及装置
CN108092746A (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
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: High-performance network data packet filtering method based on hardware CAM (Central Address Memory) chip

Effective date of registration: 20150928

Granted publication date: 20150722

Pledgee: Bank of Beijing Limited by Share Ltd. double show branch

Pledgor: RUN TECHNOLOGIES Co.,Ltd. BEIJING

Registration number: 2015990000733

PLDC Enforcement, change and cancellation of contracts on pledge of patent right or utility model
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20161212

Granted publication date: 20150722

Pledgee: Bank of Beijing Limited by Share Ltd. double show branch

Pledgor: RUN TECHNOLOGIES Co.,Ltd. BEIJING

Registration number: 2015990000733

PLDC Enforcement, change and cancellation of contracts on pledge of patent right or utility model
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: High-performance network data packet filtering method based on hardware CAM (Central Address Memory) chip

Effective date of registration: 20161216

Granted publication date: 20150722

Pledgee: Bank of Beijing Limited by Share Ltd. double show branch

Pledgor: RUN TECHNOLOGIES Co.,Ltd. BEIJING

Registration number: 2016990001119

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20180725

Granted publication date: 20150722

Pledgee: Bank of Beijing Limited by Share Ltd. double show branch

Pledgor: RUN TECHNOLOGIES Co.,Ltd. BEIJING

Registration number: 2016990001119

PC01 Cancellation of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: High-performance network data packet filtering method based on hardware CAM (Central Address Memory) chip

Effective date of registration: 20180725

Granted publication date: 20150722

Pledgee: Bank of Beijing Limited by Share Ltd. double show branch

Pledgor: RUN TECHNOLOGIES Co.,Ltd. BEIJING

Registration number: 2018990000603

PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20200529

Granted publication date: 20150722

Pledgee: Bank of Beijing Limited by Share Ltd. double show branch

Pledgor: Run Technologies Co.,Ltd. Beijing

Registration number: 2018990000603

PC01 Cancellation of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: High-performance network data packet filtering method based on hardware CAM (Central Address Memory) chip

Effective date of registration: 20200720

Granted publication date: 20150722

Pledgee: Bank of Beijing Limited by Share Ltd. double show branch

Pledgor: Run Technologies Co.,Ltd. Beijing

Registration number: Y2020990000785

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20220914

Granted publication date: 20150722

Pledgee: Bank of Beijing Limited by Share Ltd. double show branch

Pledgor: RUN TECHNOLOGIES Co.,Ltd. BEIJING

Registration number: Y2020990000785

PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A high-performance network packet filtering method based on hardware CAM chip

Effective date of registration: 20220915

Granted publication date: 20150722

Pledgee: Zhongguancun Branch of Bank of Beijing Co.,Ltd.

Pledgor: RUN TECHNOLOGIES Co.,Ltd. BEIJING

Registration number: Y2022110000217

PE01 Entry into force of the registration of the contract for pledge of patent right