一种特征码查找和匹配方法、设备及存储介质与流程

文档序号:24737734发布日期:2021-04-20 20:29阅读:496来源:国知局
一种特征码查找和匹配方法、设备及存储介质与流程

1.本发明涉及特征码查找技术领域,尤其涉及一种特征码查找和匹配方法、设备及存储介质。


背景技术:

2.现有的特征码查找、匹配大部分都是基于硬件加速模块模块实现特征码的查找和匹配,基于硬件的dpi、hfa加速单元达到快速查找和匹配特征的目的。
3.但是依赖具有具体加速单元的硬件来实现特征码查找和匹配时,当硬件变更所有的功能后都需要基于新硬件重新适配和测试,导致产品开发的周期和成本都会显著增加。


技术实现要素:

4.有鉴于此,有必要提供一种特征码查找和匹配方法、设备及存储介质,用以解决目前因采用硬件来实现特征码查找和匹配而导致的开发周期和成本增加的问题。
5.第一方面,本发明提供一种特征码查找和匹配方法,包括如下步骤:
6.获取报文,并提取所述报文携带的规则id和报文偏移字段后,计算出报文的第一键值;
7.根据所述第一键值,在预设的特征码规则的哈希链表中查找与所述第一键值对应的第二键值,并在查找到后提取所述查找到的第二键值对应的特征码;其中,所述哈希链表存储有各个特征码对应的键值;
8.当没有查找到与所述第一键值对应的第二键值时,根据所述报文的数据与特征码规则的哈希链表计算出报文的掩码键值;
9.根据所述掩码键值,在所述哈希链表中查找与所述掩码键值对应的第三键值,并在查找到后提取所述查找到的第三键值对应的特征码。
10.优选的,所述的特征码查找和匹配方法中,所述哈希链表通过哈希桶的方式建立,所述哈希桶的大小与规则id的规格对应。
11.优选的,所述的特征码查找和匹配方法中,通过crc算法或md5算法进行第一键值的计算。
12.优选的,所述的特征码查找和匹配方法中,还包括:
13.当查找到与所述掩码键值对应的第三键值后,根据第一键值计算哈希索引值,并将第一键值以及与所述第一键值对应的规则id存储到所述哈希链表中;其中,所述第一键值与所述哈希索引值对应。
14.优选的,所述的特征码查找和匹配方法中,所述将第一键值以及与所述第一键值对应的规则id存储到所述哈希链表中的步骤具体为:
15.根据第一键值和与所述第一键值对应的规则id生成一哈希桶,并将所述哈希桶存储至哈希链表中,并对所述第一键值对应的哈希索引值进行加锁。
16.优选的,所述的特征码查找和匹配方法中,还包括:对哈希链表进行特征码添加;
具体为:
17.获取控制参数,根据控制参数提取出特征码,根据提取的特征码计算出第四键值,并将第四键值存入所述初始链表中。
18.优选的,所述的特征码查找和匹配方法中,所述控制参数至少包括特征码、掩码和规则id。
19.优选的,所述的特征码查找和匹配方法中,还包括:对哈希链表进行特征码修改和删除;具体为:
20.获取删除或修改命令,根据所述删除或修改命令中携带的规则id,删除或修改所述哈希链表中对应的哈希桶。
21.第二方面,本发明还提供一种特征码查找和匹配设备,包括:处理器和存储器;
22.所述存储器上存储有可被所述处理器执行的计算机可读程序;
23.所述处理器执行所述计算机可读程序时实现如上所述的特征码查找和匹配方法中的步骤。
24.第三方面,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上所述的特征码查找和匹配方法中的步骤。
25.相较于现有技术,本发明提供的特征码查找和匹配方法、设备及存储介质,通过建立一哈希链表,在进行特征码匹配和查找时,只需计算出键值,然后与哈希链表中的键值进行比较,即可快速查找到特征码,简单方便,而且可以随时实现添加、删除和查找功能,可移植性高,而且占用内存较低,不依赖特定加速单元的硬件,产品的成本低,利润更高,应用场景更加多元化。
附图说明
26.图1为本发明提供的特征码查找和匹配方法的一较佳实施例的流程图。
具体实施方式
27.下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
28.请参阅图1,本发明实施例提供的特征码查找和匹配方法,包括如下步骤:
29.s100、获取报文,并提取所述报文携带的规则id和报文偏移字段后,计算出报文的第一键值。
30.具体来说,在进行特征码查找时,首先由数据面进入特征码流程,根据报文携带的规则id和报文偏移字段来计算出第一键值,所述第一键值为与特征码对应的键值,通过查找与第一键值对应的键值,即可快速找到特征码。具体实施时,通过基于硬件或软件的crc算法或md5算法进行第一键值的计算。其中,md5算法(message

digest algorithm5,又叫摘要算法和哈希算法)是由md4、md3、md2改进而来、md5三列长度通常是128位,是目前被大量广泛使用的散列算法之一,主要用于密码加密和文件校验等。crc算法(英文:cyclic redundancy check)是一种根据网上数据包或计算机文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。
31.s200、根据所述第一键值,在预设的特征码规则的哈希链表中查找与所述第一键值对应的第二键值,并在查找到后提取所述查找到的第二键值对应的特征码;其中,所述哈希链表存储有各个特征码对应的键值。
32.本实施例中,所述哈希链表通过哈希桶的方式建立,所述哈希桶的大小与规则id的规格对应。为每个hash值,建立一个hash桶(bucket),桶的容量是固定的,也就是只能处理固定次数的冲突,如1048576个hash桶,每个桶中有4个表项(entry),总计4m个表项;查找的时候首先第一键值通过哈希函数获取哈希值,根据哈希值获取到对应的哈希桶,然后遍历哈希桶内的pairs数组获取。本发明通过预设一哈希链表,在查找时只需查找到与第一键值对应的键值即可快速实现特征码的查找,故基于此,在进行特征码查找之前,需要进行哈希链表的建立,哈希链表的建立过程为特征码添加、删除和修改的过程,故具体的,所述特征码查找和匹配方法还包括:
33.对哈希链表进行特征码添加;具体为:
34.获取控制参数,根据控制参数提取出特征码,根据提取的特征码计算出第四键值,并将第四键值存入所述初始链表中。
35.其中,所述控制参数包括至少包括特征码、掩码和规则id。
36.换而言之,在进行特征码添加时,控制面板根据通过ipc将特征码、掩码和规则id等参数下发给数据面,然后数据面控制进程初始化一个hash链表、hash桶大小根据规则id规格决定,之后数据面控制进程处理控制面进程的ipc消息,数据面控制进程根据下发的特征码字符串和掩码抽取特征码,根据提取的特征码,基于硬件或者软件的crc32、md5计算得到一个键值v,存入hash链表,从而实现特征码的添加,在查找时,只需找到与键值v对应的键值即可快速查找和匹配到特征码,简单方面,而且便于维护。
37.在维护时,一般是进行特征码修改和删除,故本发明实施例还包括:
38.对哈希链表进行特征码修改和删除;具体为:
39.获取删除或修改命令,根据所述删除或修改命令中携带的规则id,删除或修改所述哈希链表中对应的哈希桶。
40.具体来说,当收到删除或修改命令后,需要根据删除或修改消息中的规则id删除hash桶上对应规则id的节点,此时只需查找并删除或修改hash链表相匹配的规则id节点即可,此外,节点的删除或修改也需要对当前hash索引链表加锁。
41.s300、当没有查找到与所述第一键值对应的第二键值时,根据所述报文的数据与特征码规则的哈希链表计算出报文的掩码键值。
42.s400、根据所述掩码键值,在所述哈希链表中查找与所述掩码键值对应的第三键值,并在查找到后提取所述查找到的第三键值对应的特征码。
43.本实施例中,由于可能查找不到与所述第一键值对应的键值,此时需要重新计算出一个键值以实现特征码的查找,具体的,基于报文的data与特征码规则hash链表计算报文的掩码键值m,如果掩码键值与哈希链表中的所有键值都不相同,则重新遍历所述哈希链表,然后重新计算出一个掩码键值后,重新进行匹配,如果掩码键值与哈希链表中的键值相同,则此时即可查找到对应的特征码。
44.进一步来说,为了在没有查找到与第一键值相同的键值时,方便后续的查找,本发明实施例还将所述第一键值对应存储入哈希链表中,故优选的实施例中,所述特征码查找
和匹配方法还包括:
45.当查找到与所述掩码键值对应的第三键值后,根据第一键值计算哈希索引值,并将第一键值以及与所述第一键值对应的规则id存储到所述哈希链表中;其中,所述第一键值与所述哈希索引值对应。
46.具体的,所述将第一键值以及与所述第一键值对应的规则id存储到所述哈希链表中的步骤具体为:
47.根据第一键值和与所述第一键值对应的规则id生成一哈希桶,并将所述哈希桶存储至哈希链表中,并对所述第一键值对应的哈希索引值进行加锁。
48.换而言之,此时根据第一键值计算出哈希桶链索引,然后初始化哈希桶cache内存上分配节点,在节点上存储第一键值和规则id,并给所述第一键值对应的哈希索引值进行加锁,node节点挂链,以实现键值的存储,方便后续的查找,扩大哈希链表的存储内容。
49.本发明通过哈希链表的键值匹配来实现特征码的查找,不仅可快速查找到特征码,简单方便,而且可以随时实现添加、删除和查找功能,可移植性高,而且占用内存较低,不依赖特定加速单元的硬件,产品的成本低,利润更高,应用场景更加多元化。
50.基于上述特征码查找和匹配方法,本发明还相应的提供一种特征码查找和匹配设备,包括:处理器和存储器;
51.所述存储器上存储有可被所述处理器执行的计算机可读程序;
52.所述处理器执行所述计算机可读程序时实现如上述各实施例所述的特征码查找和匹配方法中的步骤。
53.由于上文已对特征码查找和匹配方法进行详细描述,在此不再赘述。
54.基于上述特征码查找和匹配方法,本发明还相应的提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述各实施例所述的特征码查找和匹配方法中的步骤。
55.由于上文已对特征码查找和匹配方法进行详细描述,在此不再赘述。
56.综上所述,本发明提供的特征码查找和匹配方法、设备及存储介质,通过建立一哈希链表,在进行特征码匹配和查找时,只需计算出键值,然后与哈希链表中的键值进行比较,即可快速查找到特征码,简单方便,而且可以随时实现添加、删除和查找功能,可移植性高,而且占用内存较低,不依赖特定加速单元的硬件,产品的成本低,利润更高,应用场景更加多元化。
57.以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1