【技术实现步骤摘要】
一种基于字符串的快速匹配识别方法和装置
本专利技术涉及计算机
,特别是涉及一种基于字符串的快速匹配识别方法和装置。
技术介绍
深度包检测技术(DeepPacketInspect,简写为:DPI)技术是一种基于应用层的流量检测和控制技术,当IP数据包、TCP或UDP数据流通过基于DPI技术的带宽管理系统时,该系统通过深入读取IP包载荷的内容来对OSI七层协议中的应用层信息进行重组,从而得到整个应用程序的内容,然后按照系统定义的管理策略对流量进行整形操作。在DPI技术中,对网络数据报文做应用识别和恶意流量分析时,通常会搜集到报文负载前n个字节中某些字节的特征,例如:腾讯QQ的网络数据报文中就会在报文指定位置出包含QQ两个字节;然后生成特定的规则库,最后通过一个匹配引擎来将规则和数据包做匹配。然而,在实际操作过程中却会遇到,由于n个字节中存在某个字节不确定,无法通过自动机(Aho-Corasickautomation,简写为:AC)算法建立状态机来做匹配,所以一般会一条一条规则去遍历匹配是否命中。遍历规则在规则数量少的情况下可行,但在规则数量级上去之后,匹配的性能就会非常的低,匹配速率会相当的慢。这样会带来计算资源极大程度上的浪费,而现有技术中却没有针对此种情况的简洁、高效的解决手段。专利权申请号为CN201210132834.9的专利文档公开了一种多模式字符串匹配方法和装置。该方法包括:将多个模式串,按其各自的字符组成顺序,沿树结构的根节点向下,将每个字符写入一个节点中,生成一个决策树结构;将待匹配的主串沿所述决策树向下进行匹配。本专利技术的技术 ...
【技术保护点】
1.一种基于字符串的快速匹配识别方法,其特征在于,包括:确定字符串中存在动态变化的一个或者多个字符位,以及相应字符串中的静态字符位;根据所述字符串中的静态字符位的内容信息和所述一个或者多个动态字符位,更新字符串映射库;其中,所述字符串映射库中对应于所述一个或者多个动态字符位,相应的以预设的附加字符位进行标定;在获取到一条第三字符串,需要通过所述字符串映射库,对于所述第三字符串所代表的信息进行解析时,所述方法还包括:根据所述第三字符串的首字符位的内容,在字符串映射库的数组阵列中匹配出第一级数组中记录信息与所述第三字符串的首字符位的内容一致的一个或者多个候选数组阵列;依次根据所述第三字符串的后续字符位的内容,筛选所述一个或者多个候选数组阵列,得到第三字符串对应的解析结果;其中,所述所述依次根据所述第三字符串的后续字符位的内容,筛选所述一个或者多个候选数组阵列,得到第三字符串对应的解析结果,具体包括:读取各候选数组阵列中,预设长度的后续各级数组中的字符位信息,并与第三字符串中相应字符位中的参数值进行匹配;再对剩下长度的候选数组阵列,重复所述读取各候选数组阵列中,预设长度的后续各级数组中的字符 ...
【技术特征摘要】
1.一种基于字符串的快速匹配识别方法,其特征在于,包括:确定字符串中存在动态变化的一个或者多个字符位,以及相应字符串中的静态字符位;根据所述字符串中的静态字符位的内容信息和所述一个或者多个动态字符位,更新字符串映射库;其中,所述字符串映射库中对应于所述一个或者多个动态字符位,相应的以预设的附加字符位进行标定;在获取到一条第三字符串,需要通过所述字符串映射库,对于所述第三字符串所代表的信息进行解析时,所述方法还包括:根据所述第三字符串的首字符位的内容,在字符串映射库的数组阵列中匹配出第一级数组中记录信息与所述第三字符串的首字符位的内容一致的一个或者多个候选数组阵列;依次根据所述第三字符串的后续字符位的内容,筛选所述一个或者多个候选数组阵列,得到第三字符串对应的解析结果;其中,所述所述依次根据所述第三字符串的后续字符位的内容,筛选所述一个或者多个候选数组阵列,得到第三字符串对应的解析结果,具体包括:读取各候选数组阵列中,预设长度的后续各级数组中的字符位信息,并与第三字符串中相应字符位中的参数值进行匹配;再对剩下长度的候选数组阵列,重复所述读取各候选数组阵列中,预设长度的后续各级数组中的字符位信息,并与第三字符串中相应字符位中的参数值进行匹配的操作过程,直到匹配到目标匹配结果,或者,抵达跳出匹配循环条件后,反馈未匹配成功的消息给操作人员。2.根据权利要求1所述的基于字符串的快速匹配识别方法,其特征在于,所述字符串映射库包括一个或者多个数组阵列,所述数组阵列具体由一个或者多个数组对应字符排列顺序,以层级方式排列构成;其中,数组的级数与字符串中相应字符数量相对应;每一个数组包含数量上与完整字符个数相一致的数组单元,所述预设的附加字符位增设在每一个数组的最后字符位之后;其中,所述数组单元用于存储与之关联的下一级数组的地址。3.根据权利要求2所述的基于字符串的快速匹配识别方法,其特征在于,完整字符个数的数组单元具体包括对应0x00-0xFF的总共256个数组单元,则所述附加字符对应设置为数组中的第257数组单元,其中,各数组单元用于存储其下一级数组的地址信息或者用于存储跳出当前数组阵列得到匹配结果的相应信息。4.根据权利要求3所述的基于字符串的快速匹配识别方法,其特征在于,用于存储跳出当前数组阵列得到匹配结果的相应信息,具体包括:对应每一字符串的数组阵列的最后一级数组中存储有跳转地址链接,所述跳转地址链接用于获取与所述字符串相匹配的解析结果;或者,对应每一字符串的数组阵列的最后一级数组中存储有与所述字符串相匹配的解析结果。5.根据权利要求2所述的基于字符串的快速匹配识别方法,其特征...
【专利技术属性】
技术研发人员:李小坤,
申请(专利权)人:武汉绿色网络信息服务有限责任公司,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。