一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种报文头域的识别方法、装置、设备及存储介质与流程

2022-11-23 08:23:42 来源:中国专利 TAG:


1.本技术涉及网络安全技术领域,尤其涉及一种报文头域的识别方法、装置、设备及存储介质。


背景技术:

2.超文本传输协议(hypertext transfer protocol,http)是互联网上应用最为广泛的一种网络协议,对其进行快速识别是深度报文检测(deep packet inspection,dpi)系统的关键基础。
3.现有http协议头域识别方法一般采用字符串匹配的方法,如将识别到的http协议头域与预设的头域一一进行字符串匹配,得到字符串匹配结果,进而基于字符串匹配结果,确定http协议头域的识别结果,实现对http协议头域的识别。然而,现有http协议头域识别方法由于单纯采用字符串匹配的方法,导致http协议头域识别性能低下,极大影响dpi系统的处理性能。


技术实现要素:

4.为了解决上述技术问题或者至少部分地解决上述技术问题,本技术提供了一种报文头域的识别方法、装置、设备及存储介质。
5.第一方面,本技术提供了一种报文头域的识别方法,包括:
6.获取待识别的报文信息;
7.从所述报文信息中提取头域字段信息;
8.针对所述头域字段信息进行定位处理,确定所述头域字段信息对应的头域字段树节点;
9.基于所述头域字段树节点对所述头域字段信息进行匹配识别处理,得到所述报文信息对应的头域识别结果。
10.可选的,所述针对所述头域字段信息进行定位处理,确定所述头域字段信息对应的头域字段树节点,包括:
11.确定所述头域字段信息对应的头域类别和字段长度;
12.基于所述头域类别,确定所述头域字段信息对应的目标头域字段树;
13.基于所述字段长度,从所述目标头域字段树中查找所述头域字段树节点。
14.可选的,所述基于所述头域字段树节点对所述头域字段信息进行匹配识别处理,得到所述报文信息对应的头域识别结果,包括:
15.基于所述头域字段树节点和所述头域字段信息进行字符串匹配识别,得到字符串匹配识别结果;
16.若所述字符串匹配识别结果为匹配识别成功结果,则将头域识别成功结果作为所述头域识别结果;
17.若所述字符串匹配识别结果为匹配识别失败结果,则对所述头域字段信息进行哈
希识别,得到所述头域识别结果。
18.可选的,所述基于所述头域字段树节点和所述头域字段信息进行字符串匹配识别,得到字符串匹配识别结果,包括:
19.判断所述头域字段树节点中的预设字符串是否与所述头域字段信息中的字符串相匹配;
20.若所述头域字段树节点的字符串与所述头域字段信息中的字符串相匹配,则生成匹配识别成功结果;
21.若所述头域字段树节点的字符串与所述头域字段信息中的字符串不匹配,则生成匹配识别失败结果。
22.可选的,所述对所述头域字段信息进行哈希识别,得到所述头域识别结果,包括:
23.获取预设哈希表;
24.判断所述哈希表中的哈希头域字段信息是否与所述头域字段信息相匹配;
25.若所述哈希头域字段信息与所述头域字段信息相匹配,则将哈希头域识别成功结果作为所述头域识别结果;
26.若所述哈希头域字段信息与所述头域字段信息不匹配,则将哈希头域识别失败结果作为所述头域识别结果。
27.可选的,所述从所述报文信息中提取待识别的头域字段信息,包括:
28.从所述报文信息中提取结束标识符;
29.基于所述结束标识符,确定头域字段行数据;
30.从所述头域字段行数据中提取头域字段信息。
31.可选的,所述获取预设哈希表之前,还包括:
32.获取系统配置文件信息;
33.从所述系统配置文件信息中读取协议头域字段信息,所述协议头域字段信息包含非常用头域字段信息和自定义头域字段信息;
34.基于所述非常用头域字段信息和所述自定义头域字段信息,生成所述哈希表。
35.第二方面,本技术提供了一种报文头域的识别装置,包括:
36.获取模块,用于获取待识别的报文信息;
37.提取模块,用于从所述报文信息中提取头域字段信息;
38.定位处理模块,用于针对所述头域字段信息进行定位处理,确定所述头域字段信息对应的头域字段树节点;
39.匹配识别处理模块,用于基于所述头域字段树节点对所述头域字段信息进行匹配识别处理,得到所述报文信息对应的头域识别结果。
40.第三方面,本技术提供了一种报文头域的识别设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
41.存储器,用于存放计算机程序;
42.处理器,用于执行存储器上所存放的程序时,实现如第一方面任一项实施例所述的报文头域的识别方法的步骤。
43.第四方面,本技术提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项实施例所述的报文头域的识别方法的
步骤。
44.综上,本技术通过获取待识别的报文信息,从报文信息中提取头域字段信息,针对头域字段信息进行定位处理,确定头域字段信息对应的头域字段树节点,基于头域字段树节点对头域字段信息进行匹配识别处理,得到报文信息对应的头域识别结果,从而解决了现有技术中单纯采用字符串匹配的方式进行http协议头域识别所导致的问题,实现协议头域快速识别,提高协议头域识别效率。
附图说明
45.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
46.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
47.图1为本技术实施例提供的一种报文头域的识别方法的步骤流程图;
48.图2为本技术一个可选实施例提供的一种报文头域的识别方法的步骤流程图;
49.图3为本技术提供的一种头域字段树图;
50.图4为本技术提供的一种哈希表图;
51.图5为本技术实施例提供的一种报文头域的识别装置的结构框图;
52.图6是本技术实施例提供的一种报文头域的识别设备的结构示意图。
具体实施方式
53.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
54.在具体实现中,dpi系统可以通过对网络流量的识别与分析,从而为流量分析、网路规划以及用户行为分析等业务提供依据,实现对网络业务应用的精细化管理,其中,对http网络协议的头域进行快速识别是dpi系统的关键基础。现有http协议头域识别方法大多单纯采用字符串匹配的方式,实现http协议头域的识别,然而,单纯采用字符串匹配的方式,存在协议识别性能低下的问题,且无法支持http协议自定义头域的识别,或者每增加一个头域字段的识别,就需要增加相应地处理流程。
55.本技术实施例的核心构思之一在于,提出一种报文头域的识别方法,通过结合基于头域字段树的识别、字符串匹配识别以及哈希(hash)快速识别三种具体实现方案,达到能够在高速网络流量处理过程中高效地识别http协议的头部目的,并可以进一步提升网络流量的处理性能,达到提升http头域识别的速度的目的,实现提高http协议解析的性能,对提高dpi系统的处理性能有很大的实际价值,从而
56.为便于对本技术实施例的理解,下面将结合附图以及具体实施例做进一步的解释说明,实施例并不构成对本技术实施例的限定。
57.图1为本技术实施例提供的一种报文头域的识别方法的流程示意图。如图1所示,
本技术提供的报文头域的识别方法具体可以包括如下步骤:
58.步骤110,获取待识别的报文信息。
59.具体的,本技术实施例可以将获取到的需要进行头域识别的报文信息作为待识别的报文信息,该报文信息可以是http协议报文,当然也可以是其他需要进行头域识别的报文,本技术实施例对报文信息不做具体限制。
60.步骤120,从所述报文信息中提取头域字段信息。
61.具体的,在获取到待识别的报文信息后,可以从报文信息中提取头域字段信息,其中,头域类型可以包含请求头域、响应头域以及通用头域等,本示例对头域类型不做具体限制,每一种头域类型都可以包含一个或多个头域字段信息,如请求头域可以包含authorization字段信息和proxy-authorization字段信息等头域字段信息,响应头域可以包含server字段信息和last-modified字段信息等头域字段信息,通用头域可以包含via字段信息、host字段信息以及cookie字段信息等,本技术实施例对各类型头域包含的头域字段信息不做具体限制。
62.在具体实现中,待识别的报文信息可能包含一个或多个头域,每个头域都可能包含一个或多个头域字段信息,即从报文信息中提取到的头域字段信息可能为多个,为保证可以对报文信息包含的每个头域字段信息都进行头域字段识别,在后续处理中,可以分别对每一个头域字段信息进行识别,得到每一个头域字段信息对应的识别结果,进而根据每一个头域字段信息对应的识别结果,确定报文信息对应的头域识别结果。
63.在具体实现中,在报文信息为http协议报文的情况下,本技术实施例可以通过http测量的方法,统计接收到的http协议报文中各头域字段信息对应的头域字段出现频率,从而根据各头域字段出现频率确定http协议报文中各头域字段的使用频率,随后可以将http协议报文中包含的头域字段分为常用头域字段、非常用头域字段以及自定义头域字段。
64.例如,在http协议报文中,请求头域的常用头域字段可以包含authorization字段和proxy-authorization字段等头域字段,响应头域的常用头域字段可以包含server字段和last-modified字段等头域字段,通用头域的常用头域字段可以包含via字段、host字段、etag字段、date字段、cookie字段、pragma字段、referer字段、trailer字段、expires字段、charset字段、location字段、connection字段、user-agent字段、content-type字段、content-range字段、content-length字段、transfer-length字段、x-flash-version字段、content-location字段、content-encoding字段、content-language字段、transfer-encoding字段以及content-disposition字段等头域字段。此外,非常用头域字段可以包含date字段、upgrade字段、cache-control字段、connection字段以及accept-*字段等头域字段,其中,accept-*字段可以表示以“accpet”开头的头域字段,如accept字段、accept-charset字段、accept-encoding字段以及accept-language字段等,本示例对此不做具体限制。
65.步骤130,针对所述头域字段信息进行定位处理,确定所述头域字段信息对应的头域字段树节点。
66.具体的,本技术实施例在确定头域字段信息后,可以针对头域字段信息进行定位处理,确定头域字段信息对应的头域字段树节点。具体而言,可以是先根据头域字段信息确
定头域字段信息对应的头域类型,进而根据头域类型确定该头域类型对应的头域字段树,随后可以基于头域字段信息在头域字段树中查找对应的节点,以确定头域字段信息对应的头域字段树节点。
67.例如,在头域字段信息为authorization字段信息的情况下,authorization字段信息对应的头域类型为请求头域,因此,可以基于请求头域确定请求头域字段树,随后可以基于authorization字段信息,在请求头域字段树中查找authorization字段信息对应的头域字段树节点。具体而言,可以获取authorization字段信息对应的头域字段长度,该字段长度可以是头域字段信息对应的字符串“authorization”的长度,即authorization字段信息对应的头域字段长度信息为13,随后可以基于头域字段长度信息13,在头域字段树中查找头域字段长度为13的头域字段树节点,将该头域字段树节点作为authorization字段信息对应的头域字段树节点。
68.在一个可选实施方式中,可以预先针对每一个头域类型生成该头域类型对应的头域字段树,进而基于该头域类型包含的头域字段,生成头域字段对应的头域字段树节点。例如,在头域为请求头域,且该请求头域包含authorization字段和proxy-authorization字段的情况下,可以基于请求头域生成请求头域字段树,随后可以基于authorization字段以及authorization字段对应的字段长度13,生成authorization字段对应的头域字段树节点,从而实现基于头域字段信息确定对应的头域字段树节点。
69.进一步而言,同一类型头域包含的各头域字段中,可能存在头域字段长度相同的头域字段,为提高头域字段信息的识别速率,在基于头域字段和头域字段对应的头域字段长度生成头域字段树节点时,可以将头域字段长度相同的头域字段汇集在一起,共同生成头域字段树节点,该头域字段树节点可以包含头域字段长度相同的头域字段对应的字符串。例如,在头域类型为通用头域,该通用头域包含host字段、etag字段以及date字段的情况下,host字段、etag字段以及date字段的头域字段长度均可以为4。可以基于host字段、etag字段、date字段以及这三个字段相同的头域字段长度4,生成头域字段树节点,该头域字段树节点可以包含host字段对应的字符串“host”、etag字段对应的字符串“etag”以及date字段对应的字符串“date”,在后续处理中,可以将头域字段树节点包含的各个头域字段对应的字符串与头域字段信息中的字符串进行匹配,实现对头域字段信息的快速识别,即执行步骤140。
70.步骤140,基于所述头域字段树节点对所述头域字段信息进行匹配识别处理,得到所述报文信息对应的头域识别结果。
71.具体的,头域识别结果可以分为头域识别成功结果和头域识别识别结果,本技术实施例对此不做限制。具体而言,本技术实施例在确定头域字段信息对应的头域字段树节点后,可以将头域字段树节点包含的各个头域字段对应的字符串与头域字段信息中的字符串进行匹配识别,以确定头域字段树节点中是否存在与头域字段信息相匹配的头域字段,若头域字段树节点中存在与头域字段信息相匹配的头域字段,则可以确定匹配识别结果为匹配识别成功结果;若头域字段树节点中不存在与头域字段信息相匹配的头域字段,则可以确定匹配识别结果为匹配识别失败结果。随后可以基于匹配识别结果判断报文信息对应的头域识别结果。可以是在匹配识别结果为匹配识别成功结果的情况下,确定报文信息对应的头域识别结果为头域识别成功结果,并可以将与头域字段信息相匹配的头域字段,作
为头域字段识别结果。
72.例如,在确定头域字段信息对应的头域字段树节点包含字符串“host”、“etag”以及“date”的情况下,可以将头域字段树节点包含每一个字符串分别与头域字段信息中的字符串进行匹配识别,若头域字段树节点包含的字符串中存在与头域字段信息相匹配的字符串,则可以确定匹配识别成功结果,如在头域字段信息为host字段信息时,将头域字段树节点包含的字符串分别与头域字段信息中的字符串进行匹配识别,可以确定头域字段树节点中的“host”字符串与host字段信息中的“host”字符串相匹配,得到匹配识别成功结果,并可以确定头域字段信息对应的头域字段为host字段。
73.在具体实现中,基于头域字段树节点对头域字段信息进行匹配识别处理时,为提高匹配速度,可以优先匹配在http协议报文中出现频率高的字符串。例如,可以通过http流量测量方法,统计http协议报文中头域字段出现的频率,将出现频率较高的头域字段对应的字符串进行优先匹配,从而实现提升报文头域识别速度。
74.在实际处理中,报文信息包含的头域字段信息中可能存在自定义头域字段信息和/或非常用头域字段信息,此时,头域字段树节点中可能不存在与头域字段信息相匹配的头域字段,为实现对自定义头域字段和非常用头域字段的识别,提高头域字段识别的准确率。可以预先基于自定义头域字段信息和非常用头域字段信息生成哈希表,在确定头域字段树节点中不存在与头域字段信息相匹配的头域字段时,可以将头域字段信息进行哈希查找,确定哈希表中是否存在与头域字段信息相匹配的头域字段,即在哈希表中查找与头域字段信息相匹配的头域字段,得到哈希查找结果。若哈希表中存在与头域字段信息相匹配的头域字段,则可以确定哈希查找结果为哈希查找成功结果,并可以基于查找成功结果,确定报文信息对应的头域识别成功结果,将哈希表中与该头域字段信息相匹配头域字段确定为头域字段信息对应的头域字段;若哈希表中不存在与头域字段信息相匹配的头域字段,则可以确定哈希查找结果为查找失败结果,并可以基于查找失败结果,确定报文信息对应的头域识别失败结果。通过结合头域字段树识别、字符串识别以及哈希识别,能够在高速实时网络流量中快速地识别出http头域字段,同时能够实现对自定义头域字段以及非常用头域字段的识别,提高头域字段识别的准确率。
75.可见,本技术实施例通过获取待识别的报文信息,从报文信息中提取头域字段信息,针对头域字段信息进行定位处理,确定头域字段信息对应的头域字段树节点,基于头域字段树节点对头域字段信息进行匹配识别处理,得到报文信息对应的头域识别结果,从而解决了现有技术中单纯采用字符串匹配的方式进行http协议头域识别所导致的问题,实现协议头域快速识别,提高协议头域识别效率。
76.参照图2,示出了本技术一个可选实施例提供的一种报文头域的识别方法的步骤流程示意图。该报文头域的识别方法可以具体可以包括如下步骤:
77.步骤210,获取待识别的报文信息。
78.步骤220,从所述报文信息中提取头域字段信息。
79.在具体实现中,在报文信息为http协议报文的情况下,根据http协议标准,http协议的头域字段的内容格式为键(key):值(value),并且每一个头域字段都以回车换行符(\r\n)结束,因此,可以通过识别回车换行符,实现获取http协议的完整行数据,进而在完整行数据中提取头域字段key,以作为头域字段信息。进一步而言,本技术实施例从所述报文
信息中提取头域字段信息,具体可以包括步骤:从所述报文信息中提取结束标识符;基于所述结束标识符,确定头域字段行数据;从所述头域字段行数据中提取头域字段信息。其中,结束标识符可以是http报文中的回车换行符,本技术实施例在确定结束标识符后,可以通过结束标识符,确定http报文中每一个头域字段的起始位置,从而可以从http报文信息中提取一个或多个头域字段对应的完整行数据,随后针对每一个头域字段对应的完整行数据,提取头域字段key,以作为该头域字段对应的头域字段信息,以便后续可以针对头域字段信息确定头域字段树节点。
80.步骤230,确定所述头域字段信息对应的头域类别和字段长度。
81.具体的,头域类别可以分为请求头域、响应头域以及通用头域等,本技术实施例对此不做具体限制,字段长度可以是头域字段信息对应的字符串的长度。例如,在头域字段信息为authorization字段信息的情况下,authorization字段信息对应头域类别可以是请求头域,authorization字段信息对应的字符串可以是“authorization”,authorization对应的字符串长度可以是13。又如,在头域字段信息为server字段信息的情况下,server字段信息对应的头域类别可以是响应头域,server字段信息对应的字符串可以是“server”,server对应的字符串长度可以是6。再如,在头域字段信息为via字段信息的情况下,,via字段信息对应的头域类别可以是响应头域,via字段信息对应的字符串可以是“via”,via对应的字符串长度可以是3。
82.步骤240,基于所述头域类别,确定所述头域字段信息对应的目标头域字段树。
83.具体的,本技术实施例在确定头域类别后,可以基于头域类别确定头域字段信息对应的头域字段树,以作为目标头域字段树。例如,参照图3,在头域类别为请求头域的情况下,可以确定请求头域对应的请求头域字段树,并可以将请求头域字段树作为该头域字段信息对应的目标头域字段树;在头域类别为响应头域的情况下,可以确定响应头域对应的响应头域字段树,并可以将响应头域字段树作为该头域字段信息对应的目标头域字段树;在头域类别为通用头域的情况下,可以确定通用头域对应的通用头域字段树,并可以将通用头域字段树作为该头域字段信息对应的目标头域字段树。
84.作为本技术的一个示例,在头域字段信息为authorization字段信息的情况下,authorization字段信息对应的头域类别为请求头域,该请求头域对应的头域字段树可以是请求头域字段树,并可以将请求头域字段树作为该authorization字段信息对应的目标头域字段树。
85.在一个可选实施方式中,可以预先基于各个头域类别构建该头域类别对应的头域字段树。例如,参照图3,在头域类别为请求头域的情况下,可以构建请求头域对应的请求头域字段树,在头域类别为响应头域的情况下,可以构建响应头域对应的响应头域字段树,在头域类别为通用头域的情况下,可以构建通用头域对应的通用头域字段树。
86.步骤250,基于所述字段长度,从所述目标头域字段树中查找所述头域字段树节点。
87.具体的,本技术实施例在确定头域字段树后,可以基于头域字段信息对应的字段长度,从头域字段树中查找头域字段树节点。例如,参照图3,在头域字段信息为authorization字段信息的情况下,authorization字段信息对应的头域字段树可以是请求头域字段树,authorization字段信息对应的字段长度可以是13,随后可以在请求头域字段
树中查找字段长度为13的树节点,以作为头域字段信息对应的头域字段树节点。
88.步骤260,基于所述头域字段树节点和所述头域字段信息进行字符串匹配识别,得到字符串匹配识别结果。
89.具体而言,本技术实施例在确定头域字段信息对应的头域字段树节点后,可以将头域字段树节点包含的预设字符串与头域字段信息中的字符串进行匹配,其中,预设字符串可以是头域字段对应的字符串,如头域字段为authorization字段时,authorization字段对应的字符串为“authorization”。随后可以得到该头域字段信息对应的字符串匹配结果。
90.在具体实现中,头域字段树节点可能包含多个预设字符串,即在该头域字段树节点中包含多个长度相同的头域字段,如参照图3中通用头域字段树长度为6的头域字段树节点等。可以将头域字段树节点包含的每一个预设字符串分别与头域字段信息中的字符串进行一一匹配,得到该头域字段信息对应的字符串匹配结果。
91.可选的,本技术实施例基于所述头域字段树节点和所述头域字段信息进行字符串匹配识别,得到字符串匹配识别结果,具体可以包括以下子步骤:
92.子步骤2601,判断所述头域字段树节点中的预设字符串是否与所述头域字段信息中的字符串相匹配。
93.子步骤2602,若所述头域字段树节点的字符串与所述头域字段信息中的字符串相匹配,则生成匹配识别成功结果。
94.子步骤2603,若所述头域字段树节点的字符串与所述头域字段信息中的字符串不匹配,则生成匹配识别失败结果。
95.具体而言,可以将头域字段树节点中的预设字符串与头域字段信息中的字符串进行匹配,在头域字段树节点的字符串与头域字段信息中的字符串相匹配的情况下,生成字符串匹配识别成功结果,在头域字段树节点的字符串与头域字段信息中的字符串不匹配的情况下,生成字符串匹配识别失败结果。
96.在具体实现中,在头域字段树节点包含多个预设字符串的情况下,可以将该头域字段树节点包含的多个预设字符串分别与头域字段信息中的字符串进行匹配,若头域字段树节点包含的多个预设字符串中存在与头域字段信息中的字符串相匹配的字符串,则可以确定字符串匹配成功,并可以生成字符串匹配识别成功结果,若头域字段树节点包含的多个预设字符串中不存在与头域字段信息中的字符串相匹配的字符串,则可以确定字符串匹配失败,并可以生成字符串匹配识别失败结果。
97.步骤270,若所述字符串匹配识别结果为匹配识别成功结果,则将头域识别成功结果作为所述头域识别结果。
98.具体而言,若字符串匹配识别结果为匹配识别成功结果,则可以确定头域字段信息已经被成功识别,随后可以将匹配成功的字符串作为头域字段信息对应的头域识别结果。例如,与头域字段信息匹配成功的字符串为“authorization”时,可以确定该头域字段信息为authorization字段信息,并可以将authorization字段信息作为该头域字段信息的识别结果。
99.步骤280,若所述字符串匹配识别结果为匹配识别失败结果,则对所述头域字段信息进行哈希识别,得到所述头域识别结果。
100.在具体实现中,获取到的待识别报文信息中可能包含非常用头域字段信息和/或自定义头域字段信息,如accept-*字段信息、upgrade字段信息以及自定义头域字段等,此时,头域字段树节点中可能不存在与头域字段信息中的字符串相匹配的预设字符串,通过头域字段树节点中的预设字符串对头域字段信息中的字符串进行匹配处理,可能得到字符串匹配识别失败结果,进而导致无法成功对头域字段信息进行识别。为实现对非常用头域字段信息和/或自定义头域字段信息的识别,可以对头域字段信息进行哈希识别,得到头域识别结果。具体而言,参照图4,可以预先创建包含非常用头域字段和自定义头域字段的哈希表,在字符串匹配识别失败后,可以将头域字段信息与哈希表中的非常用头域字段和自定义头域字段进行匹配,得到匹配结果,并可以在匹配结果为匹配成功结果的情况下,确定头域识别成功结果,在匹配结果为匹配识别结果的情况下,确定头域识别失败结果,通过使用哈希快速识别的方式,提高头域识别的准确率。
101.可选的,本技术实施例在字符串匹配识别结果为匹配识别失败结果的情况下,上述对所述头域字段信息进行哈希识别,得到所述头域识别结果,具体可以包括以下子步骤:
102.子步骤2801,获取预设哈希表。
103.在实际处理中,本技术实施例在获取预设哈希表之前,具体可以包括:获取系统配置文件信息;从所述系统配置文件信息中读取协议头域字段信息,所述协议头域字段信息包含非常用头域字段信息和自定义头域字段信息;基于所述非常用头域字段信息和所述自定义头域字段信息,生成所述哈希表。具体而言,本技术实施例提供的报文头域识别方法可以应用于dpi系统中,在dpi系统初始化时,可以通过系统配置文件信息,从系统配置文件信息中读取协议头域字段信息,该协议头域字段信息可以包含非常用头域字段信息和自定义头域字段信息,随后可以基于非常用头域字段信息和自定义头域字段信息生成哈希表,即参照图4中的哈希表。后续可以判断哈希表包含的哈希头域字段信息是否与头域字段信息相匹配,如图4所示,可以是针对头域字段信息进行哈希查找,从而得到哈希头域识别结果,通过系统配置文件信息包含的协议头域字段信息生成哈希表,后续在变更非常用头域字段或自定义头域字段时,只需修改协议头域字段信息,即可生成新的哈希表,具备良好的灵活性和扩展性。
104.子步骤2802,判断所述哈希表中的哈希头域字段信息是否与所述头域字段信息相匹配。
105.子步骤2803,若所述哈希头域字段信息与所述头域字段信息相匹配,则将哈希头域识别成功结果作为所述头域识别结果。
106.子步骤2804,若所述哈希头域字段信息与所述头域字段信息不匹配,则将哈希头域识别失败结果作为所述头域识别结果。
107.具体而言,本技术实施例在获取到哈希表后,可以判断哈希表中是否存在与头域字段信息相匹配的哈希头域字段信息,若哈希表中存在与头域字段信息相匹配的哈希头域字段信息,则可以确定哈希头域识别成功结果,随后可以将哈希头域识别成功结果作为头域识别结果,即确定头域识别成功结果,并可以将该哈希头域字段信息作为报文信息对应的头域识别信息;若哈希表中不存在与头域字段信息相匹配的哈希头域字段信息,则可以确定哈希头域识别失败结果,随后可以将哈希头域识别失败结果作为头域识别结果,即确定头域识别失败结果,实现通过哈希表对非常用头域字段信息和自定义头域字段信息的快
速识别,且后续自定义头域字段或非常用字段改变时,可以直接变更哈希表,实现对变更的自定义头域或非常用头域的识别,具备良好的灵活性和扩展性。
108.综上,本技术实施例通过获取待识别的报文信息,从报文信息中提取头域字段信息,并确定头域字段信息对应的头域类别和字段长度,基于头域类别,确定头域字段信息对应的目标头域字段树,并基于字段长度,从目标头域字段树中查找头域字段树节点,从而可以基于头域字段树节点和头域字段信息进行字符串匹配识别,得到字符串匹配识别结果,以在字符串匹配识别结果为匹配识别成功结果的情况下,将头域识别成功结果作为头域识别结果,在字符串匹配识别结果为匹配识别失败结果的情况下,对头域字段信息进行哈希识别,得到头域识别结果,实现通过哈希识别的方法对报文信息包含的非常用头域字段信息和/或自定义头域字段信息进行头域识别,解决了现有技术中单纯采用字符串匹配的方式进行http协议头域识别所导致的问题,实现协议头域快速识别,提高协议头域识别效率,并通过哈希识别的方式提高协议头域识别的准确率。
109.需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术实施例并不受所描述的动作顺序的限制,因为依据本技术实施例,某些步骤可以采用其他顺序或者同时进行。
110.如图5所示,本技术实施例还提供了一种报文头域的识别装置500,包括:
111.获取模块510,用于获取待识别的报文信息;
112.提取模块520,用于从所述报文信息中提取头域字段信息;
113.定位处理模块530,用于针对所述头域字段信息进行定位处理,确定所述头域字段信息对应的头域字段树节点;
114.匹配识别处理模块540,用于基于所述头域字段树节点对所述头域字段信息进行匹配识别处理,得到所述报文信息对应的头域识别结果。
115.可选的,所述定位处理模块,包括:
116.头域类别和字段长度确定子模块,用于确定所述头域字段信息对应的头域类别和字段长度;
117.目标头域字段树确定子模块,用于基于所述头域类别,确定所述头域字段信息对应的目标头域字段树;
118.头域字段树节点查找子模块,用于基于所述字段长度,从所述目标头域字段树中查找所述头域字段树节点。
119.可选的,所述匹配识别处理模块,包括:
120.字符串匹配识别子模块,用于基于所述头域字段树节点和所述头域字段信息进行字符串匹配识别,得到字符串匹配识别结果;
121.头域识别成功结果确定子模块,用于在所述字符串匹配识别结果为匹配识别成功结果时,将头域识别成功结果作为所述头域识别结果;
122.哈希识别子模块,用于在所述字符串匹配识别结果为匹配识别失败结果时,对所述头域字段信息进行哈希识别,得到所述头域识别结果。
123.可选的,所述字符串匹配识别子模块,包括:
124.字符串匹配单元,用于判断所述头域字段树节点中的预设字符串是否与所述头域字段信息中的字符串相匹配;
125.匹配识别成功结果确定单元,用于在所述头域字段树节点的字符串与所述头域字段信息中的字符串相匹配时,生成匹配识别成功结果;
126.匹配识别失败结果确定单元,用于在所述头域字段树节点的字符串与所述头域字段信息中的字符串不匹配时,生成匹配识别失败结果。
127.可选的,所述哈希识别子模块,包括:
128.哈希表获取单元,用于获取预设哈希表;
129.哈希表匹配单元,用于判断所述哈希表中的哈希头域字段信息是否与所述头域字段信息相匹配;
130.哈希头域识别成功结果确定单元,用于在所述哈希头域字段信息与所述头域字段信息相匹配时,将哈希头域识别成功结果作为所述头域识别结果;
131.哈希头域识别失败结果确定单元,用于在所述哈希头域字段信息与所述头域字段信息不匹配时,将哈希头域识别失败结果作为所述头域识别结果。
132.可选的,所述提取模块,包括:
133.结束标识符提取子模块,用于从所述报文信息中提取结束标识符;
134.头域字段行数据确定子模块,用于基于所述结束标识符,确定头域字段行数据;
135.头域字段信息提取子模块,用于从所述头域字段行数据中提取头域字段信息。
136.可选的,所述获取预设哈希表之前,还包括:
137.系统配置文件信息获取单元,用于获取系统配置文件信息;
138.读取单元,用于从所述系统配置文件信息中读取协议头域字段信息,所述协议头域字段信息包含非常用头域字段信息和自定义头域字段信息;
139.哈希表生成单元,用于基于所述非常用头域字段信息和所述自定义头域字段信息,生成所述哈希表。
140.需要说明的是,本技术实施例提供的报文头域的识别装置可执行本技术任意实施例所提供的报文头域的识别方法,具备执行方法相应的功能和有益效果。
141.在具体实现中,上述装置可以集成在设备中,使得该设备可以依据采集到的报文信息进行头域识别,得到头域识别结果,以作为报文头域的识别设备,实现报文头域的识别。该报文头域的识别设备可以是由两个或多个物理实体构成,也可以是一个物理实体构成,如设备可以是个人计算机(personal computer,pc)、电脑、服务器等,本技术实施例对此不作具体限制。
142.如图6所示,本技术实施例提供提供了一种报文头域的识别设备,包括处理器111、通信接口112、存储器113和通信总线114,其中,处理器111,通信接口112,存储器113通过通信总线114完成相互间的通信;存储器113,用于存放计算机程序;处理器111,用于执行存储器113上所存放的程序时,实现前述任意一个方法实施例提供的报文头域的识别方法的步骤。示例性的,报文头域的识别方法的步骤可以包括如下步骤:获取待识别的报文信息;从所述报文信息中提取头域字段信息;针对所述头域字段信息进行定位处理,确定所述头域字段信息对应的头域字段树节点;基于所述头域字段树节点对所述头域字段信息进行匹配识别处理,得到所述报文信息对应的头域识别结果。
143.本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述任意一个方法实施例提供的报文头域的识别方法
的步骤。
144.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
145.以上所述仅是本技术的具体实施方式,使本领域技术人员能够理解或实现本技术。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献