CN116150442A - 一种基于tcam的网络数据检测方法和设备 - Google Patents

一种基于tcam的网络数据检测方法和设备 Download PDF

Info

Publication number
CN116150442A
CN116150442A CN202310158309.2A CN202310158309A CN116150442A CN 116150442 A CN116150442 A CN 116150442A CN 202310158309 A CN202310158309 A CN 202310158309A CN 116150442 A CN116150442 A CN 116150442A
Authority
CN
China
Prior art keywords
string
rule
meta
byte number
character
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
CN202310158309.2A
Other languages
English (en)
Other versions
CN116150442B (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.)
Chengdu Zhuoxun Zhian Technology Co ltd
Original Assignee
Chengdu Zhuoxun Zhian 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 Chengdu Zhuoxun Zhian Technology Co ltd filed Critical Chengdu Zhuoxun Zhian Technology Co ltd
Priority to CN202310158309.2A priority Critical patent/CN116150442B/zh
Publication of CN116150442A publication Critical patent/CN116150442A/zh
Application granted granted Critical
Publication of CN116150442B publication Critical patent/CN116150442B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90339Query processing by using parallel associative memories or content-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于TCAM的网络数据检测方法和设备,该方法包括:获取至少一个待处理的正则表达式,基于预设转换规则将所述正则表达式转换为至少一个关键字串;基于预设精简串提取规则从所述关键字串中提取精简串,并将所述精简串作为规则写入布隆过滤器;根据所述精简串在所述关键字串的位置将各所述关键字串作为规则写入TCAM的规则表;若接收到待匹配的网络数据,将所述网络数据输入所述布隆过滤器进行预筛处理,得到预筛结果;将所述预筛结果输入所述TCAM进行匹配确认,根据所述TCAM的输出结果确定与所述网络数据对应的检测结果,以此将与正则表达式对应的关键字串作为规则写入TCAM,实现更加高效的进行基于TCAM的网络数据检测。

Description

一种基于TCAM的网络数据检测方法和设备
技术领域
本申请涉及计算机技术领域,更具体地,涉及一种基于TCAM的网络数据检测方法和设备。
背景技术
多关键词匹配是计算机科学领域中的基本问题之一。其解决的是快速判断某一数据块中是否包含关键词集合中的某一或某些关键词。多关键词匹配技术广泛应用于文本处理、网络内容分析、入侵检测、生物信息学、信息检索等领域。
TCAM(ternary content addressable memory,三态内容寻址存储器)是一种能够进行并行查找的高速存储器,允许对位域进行0、1或?(忽略)三种方式的选择,它包含多个表项,每个表项可以存储一个字符串。
现有技术中,在使用基于TCAM的多关键词匹配方式进行网络数据检测时,一般需要将所需匹配的多个原始关键字逐个输入TCAM,输入效率较低,进而影响了检测效率。
因此,如何更加高效的进行基于TCAM的网络数据检测,是目前有待解决的技术问题。
发明内容
本申请实施例提出了一种基于TCAM的网络数据检测方法和设备,用以更加高效的进行基于TCAM的网络数据检测。
第一方面,提供一种基于TCAM的网络数据检测方法,所述方法包括:获取至少一个待处理的正则表达式,基于预设转换规则将所述正则表达式转换为至少一个关键字串;基于预设精简串提取规则从所述关键字串中提取精简串,并将所述精简串作为规则写入布隆过滤器;根据所述精简串在所述关键字串的位置将各所述关键字串作为规则写入TCAM的规则表;若接收到待匹配的网络数据,将所述网络数据输入所述布隆过滤器进行预筛处理,得到预筛结果;将所述预筛结果输入所述TCAM进行匹配确认,根据所述TCAM的输出结果确定与所述网络数据对应的检测结果。
第二方面,提供一种基于TCAM的网络数据检测设备,所述设备包括:转换模块,用于获取至少一个待处理的正则表达式,基于预设转换规则将所述正则表达式转换为至少一个关键字串;提取模块,用于基于预设精简串提取规则从所述关键字串中提取精简串,并将所述精简串作为规则写入布隆过滤器;写入模块,用于根据所述精简串在所述关键字串的位置将各所述关键字串作为规则写入TCAM的规则表;预筛模块,用于若接收到待匹配的网络数据,将所述网络数据输入所述布隆过滤器进行预筛处理,得到预筛结果;确认模块,用于将所述预筛结果输入所述TCAM进行匹配确认,根据所述TCAM的输出结果确定与所述网络数据对应的匹配结果。
通过应用以上技术方案,获取至少一个待处理的正则表达式,基于预设转换规则将所述正则表达式转换为至少一个关键字串;基于预设精简串提取规则从所述关键字串中提取精简串,并将所述精简串作为规则写入布隆过滤器;根据所述精简串在所述关键字串的位置将各所述关键字串作为规则写入TCAM的规则表;若接收到待匹配的网络数据,将所述网络数据输入所述布隆过滤器进行预筛处理,得到预筛结果;将所述预筛结果输入所述TCAM进行匹配确认,根据所述TCAM的输出结果确定与所述网络数据对应的检测结果,以此将与正则表达式对应的关键字串作为规则写入TCAM,在保证TCAM相关硬件不变的基础上实现了关键字的批量写入,从而更加高效的进行基于TCAM的网络数据检测。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例提出的一种基于TCAM的网络数据检测方法的流程示意图;
图2示出了本发明实施例提出的一种基于TCAM的网络数据检测方法的原理示意图;
图3示出了本发明实施例提出的一种基于TCAM的网络数据检测设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种基于TCAM的网络数据检测方法,如图1所示,所述方法包括以下步骤:
步骤S101,获取至少一个待处理的正则表达式,基于预设转换规则将所述正则表达式转换为至少一个关键字串。
本实施例中,正则表达式是对字符串操作的一种逻辑公式,由元字符和普通字符组成。普通字符就是除元字符以外的所有可打印和不可打印的字符,这包括所有的大小写字母、数字、标点符号和一些其他的符号,其中,元字符相对于普通字符具有更加丰富的表达能力和扩展性。在本申请具体的应用场景中,正则表达式中一些元字符的含义如表1所示。
表1
字符类 单字符与数字
. 匹配除换行符之外的任意字符
\s 匹配空白字符,如空格、制表符和换行符
\n 匹配换行符
\r 匹配回车符
\t 匹配制表符
\. 匹配.符号
\/ 匹配/符号
^ 匹配行首(本项目中用于匹配负载头)
.(m,n) 匹配m到n个任意字符
\x{NUMBER} 匹配以十六进制形式给出的Unicode编码NUMBER
获取至少一个待处理的正则表达式,该正则表达式用于表征对网络数据进行检测的匹配规则,正则表达式不符合TCAM的写入格式,无法直接输入TCAM,为了将正则表达式表征的匹配规则输入TCAM,需要基于预设转换规则将正则表达式转换为至少一个关键字串。
在本申请一些实施例中,所述预设转换规则包括:
若所述正则表达式中存在区间元符号,基于所述区间元符号中区间范围内的所有数值将与所述区间元符号相关的字段转换为多个固定长度的带掩码的字符串;
若所述正则表达式中存在表示负载开头及结尾的第一类元符号,将与所述第一类元符号相关的字段转换为offset偏移位;
若所述正则表达式中存在第二类元符号,将与所述第二类元符号相关的字段转换为预设进制的字符串,所述第二类元符号为除所述区间元符号和所述第一类元符号以外的元符号。
本实施例中,按正则表达式中不同类型的元字符对相应字段进行转换,具体的,若正则表达式中存在区间元符号(即.(m,n)),确定区间元符号中区间范围内的所有数值(从m到n),基于所有数值将与区间元符号相关的字段转换为多个固定长度的带掩码的字符串,举例来说,若与区间元符号相关的字段为(s1.(m,n)s2),将其转换为n-m+1个(m到n个任意字符,任意匹配部分使用掩码标识)固定长度的带掩码的字符串,如下所示:
(1)s1.(m)s2;
(2)s1.(m+1)s2;
(3)s1.(m+2)s2;
(4)…
(5)s1.(n)s2;
若与区间元符号相关的字段中包括多个区间元符号,则采用递归调用算法将区间范围内的所有数值下的相关字段转换为多个固定长度的带掩码的字符串,例如,若与区间元符号相关的字段为s1.(m,n)s2.(m,n)s3,采用递归调用算法进行转换的过程如下:
(1)s1.(m)s2递归调用获得关键字串:
a)s1.(m)s2.(m)s3;
b)s1.(m)s2.(m+1)s3;
c)s1.(m)s2.(m+2)s3;
d)…
e)s1.(m)s2.(n)s3;
(2)s1.(m+1)s2递归调用获得关键字串:
a)s1.(m+1)s2.(m)s3;
b)s1.(m+1)s2.(m+1)s3;
c)s1.(m+1)s2.(m+2)s3;
d)…
e)s1.(m+1)s2.(n)s3;
(3)s1.(m+2)s2递归调用获得关键字串:
a)s1.(m+2)s2.(m)s3;
b)s1.(m+2)s2.(m+1)s3;
c)s1.(m+2)s2.(m+2)s3;
d)…
e)s1.(m+2)s2.(n)s3;
(4)…
(5)S1.(n)s2递归调用获得关键字串:
a)s1.(n)s2.(m)s3;
b)s1.(n)s2.(m+1)s3;
c)s1.(n)s2.(m+2)s3;
d)…
e)s1.(n)s2.(n)s3。
若正则表达式中存在表示负载开头及结尾的第一类元符号,将与第一类元符号相关的字段转换为offset偏移位;若正则表达式中存在除区间元符号和第一类元符号以外的第二类元符号(如\s等元符号),将与第二类元符号相关的字段转换为预设进制的字符串,可选的,预设进制为十六进制。
本实施例中,按正则表达式中不同类型的元字符对相应字段进行转换,提高了转换效率,本领域技术人员可根据实际需要采用其他的预设转换规则,这并不影响本申请的保护范围。
在本申请一些实施例中,在获取至少一个待处理的正则表达式之前,所述方法还包括:
获取用户输入的规则字符串;
判断是否所述规则字符串中包含元符号且所述规则字符串符合预设语法规则;
若是,基于所述规则字符串确定所述正则表达式;
若否,确定所述规则字符串为非法输入。
本实施例中,在获取至少一个待处理的正则表达式之前,获取用户输入的规则字符串,判断是否规则字符串中包含元符号且规则字符串符合预设语法规则,以对规则字符串进行格式校验和语法校验,若是,则说明校验通过,该规则字符串为待处理的正则表达式;若规则字符串中不包含元符号或规则字符串不符合预设语法规则,说明校验不通过,确定规则字符串为非法输入,以此通过对规则字符串进行格式校验和语法校验,保证了待处理的正则表达式的准确性,进而可更加可靠的进行网络数据检测。
步骤S102,基于预设精简串提取规则从所述关键字串中提取精简串,并将所述精简串作为规则写入布隆过滤器。
本实施例中,布隆过滤器是一种空间效率很高的随机数据结构,专门用来检测集合中是否存在特定的元素。为了提高处理效率,基于预设精简串提取规则从关键字串中提取精简串,以形成各关键字串的简化字段,然后将精简串作为规则写入布隆过滤器,以便后续基于布隆过滤器进行预筛处理。
在本申请一些实施例中,所述预设精简串提取规则包括:
若所述关键字串的长度不大于第三字节数,将所述关键字串作为所述精简串;
若所述关键字串的长度大于所述第三字节数,按所述第三字节数、或第四字节数、或第五字节数从所述关键字串提取目标字符串,将所述目标字符串作为所述精简串;
其中,与同一所述正则表达式对应的各关键字串的精简串相同,所述第三字节数大于所述第四字节数,所述第四字节数大于所述第五字节数。
本实施例中,对于长度不大于第三字节数的关键字串,直接将关键字串作为精简串;对于长度大于第三字节数的关键字串,按第三字节数、或第四字节数、或第五字节数从关键字串提取目标字符串作为精简串,另外使同一正则表达式对应的各关键字串的精简串相同,可大大减少精简串的数量,从而提高了匹配效率。
可选的,第三字节数为4,第四字节数为3,第五字节数为2。
步骤S103,根据所述精简串在所述关键字串的位置将各所述关键字串作为规则写入TCAM的规则表。
本实施例中,TCAM中设置有规则表,按预设位置约束关系在规则表中写入匹配规则后,可基于TCAM进行关键字匹配。根据精简串在关键字串的位置将各关键字串作为规则写入TCAM的规则表,从而使各关键字串满足规则表的预设位置约束关系,以便后续基于TCAM进行匹配确认。
在本申请一些实施例中,根据所述精简串在所述关键字串的位置将各所述关键字串作为规则写入TCAM的规则表,具体为:
从所述规则表中确定将所述规则表划分为左侧和右侧的对齐线;
在所述左侧填入所述关键字串中的第一字符,并在所述右侧填入所述精简串以及所述关键字串中的第二字符;
若所述第一字符的长度未达到第一字节数,在所述左侧补零,以使所述左侧的字符的长度达到所述第一字节数;
若所述精简串和所述第二字符的总长度未达到第二字节数,在所述右侧补零,以使所述右侧的字符的长度达到所述第二字节数;
其中,所述第一字符为所述关键字串中在所述位置之前的各字符,所述第二字符为所述关键字串中在所述位置之后的各字符。
本实施例中,第一字符为关键字串中在所述位置之前的各字符,第二字符为关键字串中在所述位置之后的各字符。先从规则表中确定将规则表划分为左侧和右侧的对齐线,其中,对齐线左侧的字符的长度需要为第一字节数,右侧的字符的长度需要为第二字节数;然后在对齐线的左侧填入第一字符,在右侧填入精简串和第二字符,若第一字符的长度未达到第一字节数,则在左侧补零;若精简串和第二字符的总长度未达到第二字节数,则在右侧补零,使左右侧的字符长度均满足要求。以此按对齐线将关键字串写入TCAM中的规则表,实现更加准确的对TCAM进行配置。
可选的,所述第一字符中的末尾字符和所述精简串中的首个字符之间为对齐线,且所述末尾字符和所述首个字符相邻。
可选的,第一字节数为16,第二字节数为18。
步骤S104,若接收到待匹配的网络数据,将所述网络数据输入所述布隆过滤器进行预筛处理,得到预筛结果。
本实施例中,由于在步骤S102基于精简串对布隆过滤器进行了配置,若接收到待匹配的网络数据,将网络数据输入布隆过滤器,进行与各精简串的匹配,实现预筛处理,根据布隆过滤器的输出结果得到预筛结果。
步骤S105,将所述预筛结果输入所述TCAM进行匹配确认,根据所述TCAM的输出结果确定与所述网络数据对应的检测结果。
本实施例中,由于预筛结果中可能存在一些不是真正匹配的结果,另外,布隆过滤器进行初筛时是与整个精简串的集合进行匹配,并不能确定匹配了哪一条精简串和哪一条关键字串,为了保证匹配准确性,将预筛结果输入TCAM进行匹配确认,在TCAM中进行与关键字串的匹配,根据TCAM的输出结果确定与网络数据对应的检测结果。
通过应用以上技术方案,获取至少一个待处理的正则表达式,基于预设转换规则将所述正则表达式转换为至少一个关键字串;基于预设精简串提取规则从所述关键字串中提取精简串,并将所述精简串作为规则写入布隆过滤器;根据所述精简串在所述关键字串的位置将各所述关键字串作为规则写入TCAM的规则表;若接收到待匹配的网络数据,将所述网络数据输入所述布隆过滤器进行预筛处理,得到预筛结果;将所述预筛结果输入所述TCAM进行匹配确认,根据所述TCAM的输出结果确定与所述网络数据对应的检测结果,以此将与正则表达式对应的关键字串作为规则写入TCAM,在保证TCAM相关硬件不变的基础上实现了关键字的批量写入,从而更加高效的进行基于TCAM的网络数据检测。
为了进一步阐述本发明的技术思想,现结合具体的应用场景,对本发明的技术方案进行说明。
本申请实施例提供一种基于TCAM的网络数据检测方法,以下以用户输入的正则表达式^aaa.(0,4)bbb.ccc\x{00610041}为例进行说明,具体包括以下步骤:
步骤S201,对用户输入的正则表达式进行格式校验和合法性校验。
具体的,判断是否正则表达式中包含元符号且正则表达式符合预设语法规则,若是,则确定校验通过,将正则表达式作为待处理的正则表达式,否则校验不通过,确定用户输入的正则表达式为非法输入。本实施例中,^aaa.(0,4)bbb.ccc\x{00610041}为检验通过的正则表达式。
步骤S202,基于预设转换规则将正则表达式^aaa.(0,4)bbb.ccc\x{00610041}转换为关键字串。
具体的,如图2所示,转换后的关键字串包括r1、r2、r3、r4和r5。
步骤S203,基于预设精简串提取规则从关键字串中提取精简串。
具体的,精简串为:ccc。
步骤S204,将精简串作为规则写入布隆过滤器。
步骤S205,根据精简串在关键字串的位置将各关键字串作为规则写入TCAM的规则表。
具体的,如图2所示,在对齐线左侧各行填写aaa、掩码和bbb,并补0到16字节;在对齐线右侧各行填写ccc0a0A,并补0到18字节。
步骤S206,若接收到待匹配的网络数据,将网络数据输入布隆过滤器进行预筛处理,得到预筛结果。
步骤S207,将预筛结果输入TCAM进行匹配确认,根据TCAM的输出结果确定与网络数据对应的检测结果。
本申请实施例还提出了一种基于TCAM的网络数据检测设备,如图3所示,所述设备包括:
转换模块301,用于获取至少一个待处理的正则表达式,基于预设转换规则将所述正则表达式转换为至少一个关键字串;
提取模块302,用于基于预设精简串提取规则从所述关键字串中提取精简串,并将所述精简串作为规则写入布隆过滤器;
写入模块303,用于根据所述精简串在所述关键字串的位置将各所述关键字串作为规则写入TCAM的规则表;
预筛模块304,用于若接收到待匹配的网络数据,将所述网络数据输入所述布隆过滤器进行预筛处理,得到预筛结果;
确认模块305,用于将所述预筛结果输入所述TCAM进行匹配确认,根据所述TCAM的输出结果确定与所述网络数据对应的匹配结果。
在具体的应用场景中,写入模块303,具体用于:
从所述规则表中确定将所述规则表划分为左侧和右侧的对齐线;
在所述左侧填入所述关键字串中的第一字符,并在所述右侧填入所述精简串以及所述关键字串中的第二字符;
若所述第一字符的长度未达到第一字节数,在所述左侧补零,以使所述左侧的字符的长度达到所述第一字节数;
若所述精简串和所述第二字符的总长度未达到第二字节数,在所述右侧补零,以使所述右侧的字符的长度达到所述第二字节数;
其中,所述第一字符为所述关键字串中在所述位置之前的各字符,所述第二字符为所述关键字串中在所述位置之后的各字符。
在具体的应用场景中,所述预设转换规则包括:
若所述正则表达式中存在区间元符号,基于所述区间元符号中区间范围内的所有数值将与所述区间元符号相关的字段转换为多个固定长度的带掩码的字符串;
若所述正则表达式中存在表示负载开头及结尾的第一类元符号,将与所述第一类元符号相关的字段转换为offset偏移位;
若所述正则表达式中存在第二类元符号,将与所述第二类元符号相关的字段转换为预设进制的字符串,所述第二类元符号为除所述区间元符号和所述第一类元符号以外的元符号。
在具体的应用场景中,所述预设精简串提取规则包括:
若所述关键字串的长度不大于第三字节数,将所述关键字串作为所述精简串;
若所述关键字串的长度大于所述第三字节数,按所述第三字节数、或第四字节数、或第五字节数从所述关键字串提取目标字符串,将所述目标字符串作为所述精简串;
其中,与同一所述正则表达式对应的各关键字串的精简串相同,所述第三字节数大于所述第四字节数,所述第四字节数大于所述第五字节数。
在具体的应用场景中,所述设备还包括校验模块,用于:
获取用户输入的规则字符串;
判断是否所述规则字符串中包含元符号且所述规则字符串符合预设语法规则;
若是,基于所述规则字符串确定所述正则表达式;
若否,确定所述规则字符串为非法输入。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种基于TCAM的网络数据检测方法,其特征在于,所述方法包括:
获取至少一个待处理的正则表达式,基于预设转换规则将所述正则表达式转换为至少一个关键字串;
基于预设精简串提取规则从所述关键字串中提取精简串,并将所述精简串作为规则写入布隆过滤器;
根据所述精简串在所述关键字串的位置将各所述关键字串作为规则写入TCAM的规则表;
若接收到待匹配的网络数据,将所述网络数据输入所述布隆过滤器进行预筛处理,得到预筛结果;
将所述预筛结果输入所述TCAM进行匹配确认,根据所述TCAM的输出结果确定与所述网络数据对应的检测结果。
2.如权利要求1所述的方法,其特征在于,根据所述精简串在所述关键字串的位置将各所述关键字串作为规则写入TCAM的规则表,具体为:
从所述规则表中确定将所述规则表划分为左侧和右侧的对齐线;
在所述左侧填入所述关键字串中的第一字符,并在所述右侧填入所述精简串以及所述关键字串中的第二字符;
若所述第一字符的长度未达到第一字节数,在所述左侧补零,以使所述左侧的字符的长度达到所述第一字节数;
若所述精简串和所述第二字符的总长度未达到第二字节数,在所述右侧补零,以使所述右侧的字符的长度达到所述第二字节数;
其中,所述第一字符为所述关键字串中在所述位置之前的各字符,所述第二字符为所述关键字串中在所述位置之后的各字符。
3.如权利要求1所述的方法,其特征在于,所述预设转换规则包括:
若所述正则表达式中存在区间元符号,基于所述区间元符号中区间范围内的所有数值将与所述区间元符号相关的字段转换为多个固定长度的带掩码的字符串;
若所述正则表达式中存在表示负载开头及结尾的第一类元符号,将与所述第一类元符号相关的字段转换为offset偏移位;
若所述正则表达式中存在第二类元符号,将与所述第二类元符号相关的字段转换为预设进制的字符串,所述第二类元符号为除所述区间元符号和所述第一类元符号以外的元符号。
4.如权利要求1所述的方法,其特征在于,所述预设精简串提取规则包括:
若所述关键字串的长度不大于第三字节数,将所述关键字串作为所述精简串;
若所述关键字串的长度大于所述第三字节数,按所述第三字节数、或第四字节数、或第五字节数从所述关键字串提取目标字符串,将所述目标字符串作为所述精简串;
其中,与同一所述正则表达式对应的各关键字串的精简串相同,所述第三字节数大于所述第四字节数,所述第四字节数大于所述第五字节数。
5.如权利要求1所述的方法,其特征在于,在获取至少一个待处理的正则表达式之前,所述方法还包括:
获取用户输入的规则字符串;
判断是否所述规则字符串中包含元符号且所述规则字符串符合预设语法规则;
若是,基于所述规则字符串确定所述正则表达式;
若否,确定所述规则字符串为非法输入。
6.一种基于TCAM的网络数据检测设备,其特征在于,所述设备包括:
转换模块,用于获取至少一个待处理的正则表达式,基于预设转换规则将所述正则表达式转换为至少一个关键字串;
提取模块,用于基于预设精简串提取规则从所述关键字串中提取精简串,并将所述精简串作为规则写入布隆过滤器;
写入模块,用于根据所述精简串在所述关键字串的位置将各所述关键字串作为规则写入TCAM的规则表;
预筛模块,用于若接收到待匹配的网络数据,将所述网络数据输入所述布隆过滤器进行预筛处理,得到预筛结果;
确认模块,用于将所述预筛结果输入所述TCAM进行匹配确认,根据所述TCAM的输出结果确定与所述网络数据对应的匹配结果。
7.如权利要求6所述的设备,其特征在于,所述写入模块,具体用于:
从所述规则表中确定将所述规则表划分为左侧和右侧的对齐线;
在所述左侧填入所述关键字串中的第一字符,并在所述右侧填入所述精简串以及所述关键字串中的第二字符;
若所述第一字符的长度未达到第一字节数,在所述左侧补零,以使所述左侧的字符的长度达到所述第一字节数;
若所述精简串和所述第二字符的总长度未达到第二字节数,在所述右侧补零,以使所述右侧的字符的长度达到所述第二字节数;
其中,所述第一字符为所述关键字串中在所述位置之前的各字符,所述第二字符为所述关键字串中在所述位置之后的各字符。
8.如权利要求6所述的设备,其特征在于,所述预设转换规则包括:
若所述正则表达式中存在区间元符号,基于所述区间元符号中区间范围内的所有数值将与所述区间元符号相关的字段转换为多个固定长度的带掩码的字符串;
若所述正则表达式中存在表示负载开头及结尾的第一类元符号,将与所述第一类元符号相关的字段转换为offset偏移位;
若所述正则表达式中存在第二类元符号,将与所述第二类元符号相关的字段转换为预设进制的字符串,所述第二类元符号为除所述区间元符号和所述第一类元符号以外的元符号。
9.如权利要求6所述的设备,其特征在于,所述预设精简串提取规则包括:
若所述关键字串的长度不大于第三字节数,将所述关键字串作为所述精简串;
若所述关键字串的长度大于所述第三字节数,按所述第三字节数、或第四字节数、或第五字节数从所述关键字串提取目标字符串,将所述目标字符串作为所述精简串;
其中,与同一所述正则表达式对应的各关键字串的精简串相同,所述第三字节数大于所述第四字节数,所述第四字节数大于所述第五字节数。
10.如权利要求6所述的设备,其特征在于,所述设备还包括校验模块,用于:
获取用户输入的规则字符串;
判断是否所述规则字符串中包含元符号且所述规则字符串符合预设语法规则;
若是,基于所述规则字符串确定所述正则表达式;
若否,确定所述规则字符串为非法输入。
CN202310158309.2A 2023-02-23 2023-02-23 一种基于tcam的网络数据检测方法和设备 Active CN116150442B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310158309.2A CN116150442B (zh) 2023-02-23 2023-02-23 一种基于tcam的网络数据检测方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310158309.2A CN116150442B (zh) 2023-02-23 2023-02-23 一种基于tcam的网络数据检测方法和设备

Publications (2)

Publication Number Publication Date
CN116150442A true CN116150442A (zh) 2023-05-23
CN116150442B CN116150442B (zh) 2023-09-15

Family

ID=86356054

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310158309.2A Active CN116150442B (zh) 2023-02-23 2023-02-23 一种基于tcam的网络数据检测方法和设备

Country Status (1)

Country Link
CN (1) CN116150442B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102253957A (zh) * 2011-04-13 2011-11-23 北京恒光创新科技股份有限公司 一种tcam多模式字符串匹配方法及装置
CN102301342A (zh) * 2009-07-29 2011-12-28 华为技术有限公司 正则表达式匹配方法和系统及查找装置
CN111177491A (zh) * 2019-12-31 2020-05-19 奇安信科技集团股份有限公司 正则表达式的匹配方法、装置、电子设备及存储介质
CN111222018A (zh) * 2018-11-23 2020-06-02 恒为科技(上海)股份有限公司 一种基于tcam实现浮动字符串高速匹配方法
CN112528094A (zh) * 2020-12-04 2021-03-19 国网山东省电力公司信息通信公司 一种基于分层映射的多字段范围tcam编码方法及系统
CN114168954A (zh) * 2021-12-08 2022-03-11 中国电信股份有限公司 基于正则匹配的入侵检测的方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102301342A (zh) * 2009-07-29 2011-12-28 华为技术有限公司 正则表达式匹配方法和系统及查找装置
US20120102055A1 (en) * 2009-07-29 2012-04-26 Huawei Technologies Co., Ltd. Regular expression matching method and system, and searching device
CN102253957A (zh) * 2011-04-13 2011-11-23 北京恒光创新科技股份有限公司 一种tcam多模式字符串匹配方法及装置
CN111222018A (zh) * 2018-11-23 2020-06-02 恒为科技(上海)股份有限公司 一种基于tcam实现浮动字符串高速匹配方法
CN111177491A (zh) * 2019-12-31 2020-05-19 奇安信科技集团股份有限公司 正则表达式的匹配方法、装置、电子设备及存储介质
CN112528094A (zh) * 2020-12-04 2021-03-19 国网山东省电力公司信息通信公司 一种基于分层映射的多字段范围tcam编码方法及系统
CN114168954A (zh) * 2021-12-08 2022-03-11 中国电信股份有限公司 基于正则匹配的入侵检测的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘仲会;许芳奎;许红光;: "一种基于旋转TCAM的模式匹配算法", 火力与指挥控制, no. 01 *

Also Published As

Publication number Publication date
CN116150442B (zh) 2023-09-15

Similar Documents

Publication Publication Date Title
CN110457302B (zh) 一种结构化数据智能清洗方法
CN111814466A (zh) 基于机器阅读理解的信息抽取方法、及其相关设备
CN111177184A (zh) 基于自然语言的结构化查询语言转换方法、及其相关设备
US20100153420A1 (en) Dual-stage regular expression pattern matching method and system
US9785631B2 (en) Identification and extraction of acronym/definition pairs in documents
US20100254613A1 (en) System and method for duplicate text recognition
CN112926327B (zh) 一种实体识别方法、装置、设备及存储介质
CN111352907A (zh) 流水文件解析方法、装置、计算机设备和存储介质
US20100005118A1 (en) Detection of Patterns
JP4114600B2 (ja) 可変長文字列検索装置及び可変長文字列検索方法並びにプログラム
CN107153469B (zh) 为输入数据搜索匹配候选项的方法、数据库创建方法、装置及计算机程序产品
US9830326B2 (en) Identifying data offsets using binary masks
CN113961768B (zh) 敏感词检测方法、装置、计算机设备和存储介质
CN114372267B (zh) 一种基于静态域的恶意网页识别检测方法、计算机及存储介质
JP5056337B2 (ja) 情報検索システム
CN100361128C (zh) 一种用于文本或网络内容分析的多关键词匹配方法
CN116150442B (zh) 一种基于tcam的网络数据检测方法和设备
CN113254995A (zh) 数据脱敏方法、装置、系统及计算机可读介质
WO2024066271A1 (zh) 数据库水印的嵌入方法、溯源方法、装置和电子设备
US8626688B2 (en) Pattern matching device and method using non-deterministic finite automaton
CN107251015A (zh) 高效地检测用户证书
JP2010225137A (ja) 検索プログラム及び検索方法
CN113688240A (zh) 威胁要素提取方法、装置、设备及存储介质
CN108595584B (zh) 一种基于数字标记的汉字输出方法和系统
CN107247708B (zh) 一种姓名识别方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant