报文处理方法、装置、电子设备和计算机可读存储介质与流程

专利查询2023-11-13  118



1.本技术涉及报文处理技术领域,具体而言,涉及一种报文处理方法、装置、电子设备和计算机可读存储介质。


背景技术:

2.为了实现流量溯源,可以将网络中的原始报文全部留存,并方便进行事后查询取证。一般的流量溯源是将原始报文存储为特定的格式,需要查看原始报文时,可以使用专用的工具转换成标准的可查看的文件,此种文件转换依赖于专门的工具,这极大的增加了流量溯源的复杂性和不便捷性。


技术实现要素:

3.本技术的目的在于提供一种报文处理方法、装置、电子设备和计算机可读存储介质,能够缓解流量溯源时所存在的复杂性和不便捷性问题。
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.图1为本技术实施例提供的电子设备的方框示意图;
45.图2为本技术实施例提供的报文处理方法的流程图;
46.图3为本技术实施例提供的报文处理装置的功能模块示意图。
具体实施方式
47.下面将结合本技术实施例中附图,对本技术实施例中的技术方案进行描述。
48.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
49.传统的安全设备,如防火墙、入侵检测等安全设备,通过对原始报文进行分析,以实现攻击检测和安全审计。但是安全设备一般留存的是安全日志。因此,在实现攻击检测和安全审计时,需要对安全日志进行人工研判等处理,以了解这些安全日志对应的原始报文。流量溯源技术因留存了全部的原始报文,所以可以满足攻击检测和安全审计等需求。因此,流量溯源在网络安全领域越来越重要,特别是金融、国防等单位的网络安全防范中。
50.但是发明人了解到,一般的流量溯源是将原始报文存储为特定的格式,需要查看原始报文时,需要使用专用的工具转换成标准的pcap文件。由于pcap文件的转换依赖于专门的工具,这增加了流量溯源的复杂性和不便捷性。
51.基于上述研究,本技术实施例提供了一种报文处理方法,可以将采集到的报文存储为标准的pcap格式,并可对报文进行实时分析。下面通过一些实施例对本技术的报文处理方法进行描述。
52.为便于对本实施例进行理解,首先对执行本技术实施例所公开的报文处理方法的电子设备进行详细介绍。
53.如图1所示,是电子设备的方框示意图。电子设备100可以包括存储器111、处理器113。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对电子设备100的结构造成限定。例如,电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
54.上述的存储器111和处理器113各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。上述的处理器113用于执行存储器中存储的可执行模块。
55.其中,存储器111可以是,但不限于,随机存取存储器(random access memory,简称ram),只读存储器(read only memory,简称rom),可编程只读存储器(programmable read-only memory,简称prom),可擦除只读存储器(erasable programmable read-only memory,简称eprom),电可擦除只读存储器(electric erasable programmable read-only memory,简称eeprom)等。其中,存储器111用于存储程序,所述处理器113在接收到执行指令
后,执行所述程序,本技术实施例任一实施例揭示的过程定义的电子设备100所执行的方法可以应用于处理器113中,或者由处理器113实现。
56.上述的处理器113可能是一种集成电路芯片,具有信号的处理能力。上述的处理器113可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
57.本实施例中的电子设备100可以是安全设备,该安全设备可以是防火墙。
58.本实施例中的电子设备100可以用于执行本技术实施例提供的各个方法中的各个步骤。下面通过几个实施例详细描述报文处理方法的实现过程。
59.请参阅图2,是本技术实施例提供的报文处理方法的流程图。下面将对图2所示的具体流程进行详细阐述。
60.步骤210,从物理网络接口采集原始报文。
61.本实施例中可以使用数据处理单元获取物理网络接口的原始报文。
62.可选地,可以根据物理网络接口的数量启动对应数量的数据处理单元。示例性地,数据处理单元的数量可以与物理网络接口数量相同,以使数据处理单元用于采集一个物理网络接口的报文。其中,每一个数据处理单元可以是一个线程。
63.示例性地,每个数据处理单元可以对应有唯一身份标识。
64.可选地,可以为每一个数据处理单元构建一个目标格式的文件,以将每个物理网络接口的报文写入对应的目标格式的文件中。
65.可选地,数据处理单元还可以对接收到各个会话的报文的数量进行记录。例如,每一个会话对应一个计数变量,每接收到一个会话的报文,可以对会话对应的计数变量进行更新。
66.步骤220,对所述原始报文进行解析,以确定出所述原始报文的报文信息。
67.该报文信息可以包括原始报文和存放定位信息。
68.该存放定位信息可以根据该原始报文所属的目标会话,确定出对应的存放定位信息。
69.本实施例中,可以通过该原始报文所携带的信息确定出该原始报文所属的目标会话。
70.每一组会话对应的会话信息可以存放在会话存放区域。在需要确定原始报文所属会话时,可以基于该会话存放区域中的会话信息,以及该原始报文所对应的数据确定出原始报文所属的目标会话。
71.若原始报文不是新会话的报文,则该会话存放区域中存放有原始报文对应的目标会话的会话信息;若原始报文是新会话的报文,则该会话存放区域中未存放有原始报文对应的目标会话的会话信息,则可以新建该原始报文对应的会话信息,并将该会话信息存放在会话存放区域中。
72.其中,会话信息中可以包括五元组、协议名以及元素信息。会话信息创建初期可以
仅包括五元组,协议名以和元素信息可以在接收到更多报文时补充完善。
73.该五元组可以包括:源ip、目的ip、源端口、目的端口、传输协议。协议名为该会话所承载的应用协议名称,如http、smtp、pop3、ftp等。元素信息可以包括:协议元素信息和定位元素信息。
74.协议元素信息可以由应用协议的种类决定,不同的应用协议,其协议元素也不同。例如,http可包括域名、请求方法、请求参数、url等;smtp可包括邮件发送者、邮件接收者、邮件标题等;ftp可包括账号、命令、返回结果、传输文件名等。定位元素信息该会话中的每个报文在存储介质中的存储位置,包括文件名、偏移和每个报文长度。
75.由于五元组可以唯一标识一组会话,因此可以通过该原始报文对应的五元组确定出该原始报文所属的目标会话。
76.在一可选的实施方式中,步骤220可以包括步骤221至步骤223。
77.步骤221,根据所述原始报文,确定出所述原始报文所属的目标会话。
78.本实施例中,若该原始报文对应的目标会话的会话信息中的协议名为空,则可以跟该原始报文的报文载荷特征识别应用协议类型,在识别出应用协议类型后,将协议名称填充到目标会话的会话信息中的协议名中。根据不同的应用协议,调用不用的协议解析插件。例如,应用协议为http则调用http解析插件,应用协议为smtp则调用smtp解析插件。协议解析插件提取出该协议对应的协议元素信息。
79.步骤222,根据所述目标会话的会话信息以及所述原始报文,确定出所述原始报文的报文信息中的存放定位信息。
80.其中,存放定位信息可以包括存放文件名和存放偏移。
81.步骤222,可以包括:根据接收到所述原始报文的时间以及所述原始报文采集源,确定出所述原始报文的存放文件名;根据所述原始报文的报文长度,以及所述会话信息中的历史偏移确定出所述原始报文的存放偏移。
82.可以根据接收到所述原始报文的时间以及采集所述原始报文所使用的数据处理单元,确定出所述原始报文的存放文件名。示例性地,该存放文件名可以是采集报文的时间和采集报文所使用的数据处理单元的标识形成存放文件名。
83.可选地,报文可以最后写入目标格式的文件。该目标格式的报文可以被查看。例如,该目标格式可以是pcap文件格式,则文件命名规则可以为:年_月_日_did.pcap。例如,采集报文的时间是2021年1月1日,采集报文的数据处理单元的唯一身份标识为001,则存放文件名可以为:2021_01_01_001.pcap。
84.pcap文件由24字节文件头部以及若干个原始报文信息构成,每个原始报文信息包括16字节报文头部和原始报文。存放偏移offset表示当前报文在pcap文件中的位置,由于pcap文件的文件头部占24个字节,所以offset的初始值为24,即需要存入pfile文件的第一个报文到达时,它在pfile文件中的位置为24。写入到pfile文件中的报文长度(plen)为报文头部长度(16字节)加原始报文长度。
85.当报文处理完后,报文的位置信息可以用位置列表表示为:[{offset1,plen1},{offset2,plen2}

{offsetn,plenn}]。{offset1,plen1}表示该会话的第一个报文在pcap文件中的位置,{offset2,plen2}表示该会话的第二个报文在pcap文件中的位置

,以此类推,{offsetn,plenn}表示该会话的第n个报文在pcap文件中的位置。
[0086]
基于上述分析,每一个报文的存放偏移可以基于pfile文件已需要存放的报文的当前偏移进行计算:
[0087]
当处理完一个报文后,存放偏移offset,公式为:
[0088]
offsetn=offset(n-1)+plenn;
[0089]
其中,offsetn表示当前报文的存放偏移;offset(n-1)表示前一报文的存放偏移;plenn表示当前报文的长度。
[0090]
步骤230,将所述报文信息存入缓存队列中。
[0091]
步骤240,根据所述报文信息对所述原始报文所属的目标会话的会话信息进行更新。
[0092]
可选地,该会话信息中还可以记录当前接收到的各个会话的报文数量。
[0093]
在一个实例中,一个完整的http会话信息示例如下:
[0094][0095]
sip、dip、sport、dport、pro、为唯一标识会话的五元组信息;l7pro为协议名称;url、host、method为http协议元素信息;position为定位元素信息,包括pcap文件名pcap_
file和每个报文在pcap文件中的位置,如示例所示:第一个报文在文件的偏移为24,报文长度68字节;第二个报文在文件的偏移为200,报文长度128字节。可以知道的是,在不同的实例中,协议元素信息中的内容可比上述实例中的内容更多或更少。
[0096]
步骤250,判断所述目标会话的报文数量是否达到预设量。
[0097]
若所述目标会话的报文数量达到预设量,则执行步骤260。
[0098]
可选地,可以在一个会话结束后,将目标会话的会话信息存入指定存储介质。
[0099]
考虑到一些会话的持续时长较长,如果长时间未将目标会话的会话信息存入指定存储介质中,则可能会存在长时间不能够对报文进行溯源。因此,还可以当目标会话的报文数量达到一定数量时,也将目标会话的会话信息存入指定存储介质中。
[0100]
步骤250可以包括:步骤251和步骤252。
[0101]
步骤251,判断所述目标会话是否结束。
[0102]
示例性地,可以通过目标会话的会话信息确定出目标会话是否结束。还可以通过物理网络接口是否持续指定时长未接收到报文,若物理网络接口持续指定时长未接收到报文,则可以判定目标会话结束。还可以通过物理网络接口与报文发送端是否结束了通信连接,若物理网络接口与报文发送端结束了通信连接,则可以判定目标会话结束。当然,还可以通过其他方式判断目标会话是否结束。
[0103]
步骤252,判断所述目标会话的报文数量是否达到预设数量。
[0104]
该预设数量可以根据执行本实施例的报文处理方法的电子设备的硬件资源确定,例如,该电子设备所拥有的内存越大,该预设数量也可以越大。
[0105]
若所述目标会话结束,或所述目标会话的报文数量达到预设数量,则表征所述目标会话的报文数量达到预设量。
[0106]
示例性地,可以根据数据处理单元对接收到的目标会话的报文数量的记录,确定出目标会话的报文数量是否达到预设数量。例如,可以根据目标会话对应的计数变量的值确定出目标会话的报文数量。
[0107]
步骤260,将所述目标会话的当前的会话信息存入指定存储介质中。
[0108]
示例性地,该指定存储介质可以是与固定存储介质。在需要查询原始报文时,可以基于接收到的请求,从该执行存储介质中确定出需要查询的报文在目标文件中的位置。
[0109]
步骤270,将所述缓存队列中的报文信息存储为目标文件。
[0110]
可选地,可以实时地从该缓存队列中获取报文信息,写入目标文件中。
[0111]
可选地,也可以按照设定时间规律从该缓存队列中获取报文信息,写入目标文件中。该设定时间规律可以是每隔预设时长,该缓存队列中获取报文信息,写入目标文件。该预设时长可以根据具体情况设置,本实施例并不以该预设时长的设定为限。
[0112]
可选地,还可以每向缓存队列中存入一项报文信息后,从从该缓存队列中获取报文信息写入目标文件中。
[0113]
目标文件为可被查看格式的文件。例如,该目标格式可以是pcap格式的文件。
[0114]
可选地,步骤270可以通过数据存储单元执行。该数据存储单元可以是不同于上述数据处理单元的另一线程。
[0115]
该数据存储单元从缓存队列中依次读取报文信息。可以从该报文信息中确定出原始报文和原始报文对应的存放定位信息。根据该存放定位信息可以确定出原始报文可以存
放在目标格式的文件的文件名和文件pfile中的具体位置。
[0116]
本实施例中,目标格式的文件可以在启动数据处理单元时创建,也可以在需要写入报文时创建。
[0117]
以目标格式的文件是pcap文件为例,如果需要写入报文至目标格式的文件时,pcap文件不存在,则先创建pcap文件,并按照pcap文件规范写入24字节的pcap文件头。然后将pcap报文头和读取到的原始报文写入到pcap文件中。
[0118]
为了减少写入文件的次数,可以先将缓存队列中的报文信息先存入文件块中,在文件块达到一定量时,再一次写入目标格式文件中。示例性地,步骤270可以包括步骤271至步骤273。
[0119]
步骤271,从所述缓存队列中读取的报文信息。
[0120]
步骤272,将所述报文信息存入中间内存块。
[0121]
若所述中间内存块的大小达到预设值,则执行步骤273。
[0122]
可选地,可以根据所述报文信息中的存放定位信息,确定出所述报文信息中的报文的存序;根据所述存序,将所述报文信息中的报文存入中间内存块。
[0123]
步骤273,将所述中间内存块写入目标格式的文件中,形成目标文件。
[0124]
本实施例中,关于图2所示的步骤的顺序仅仅是示例性的,具体的执行可以不以图2所示的顺序执行。例如,步骤270可以在步骤230之后执行,步骤270也可以在步骤240之后执行。
[0125]
基于上述步骤210至步骤270可以实现将接收到的报文按照可以查看的格式进行存储,本技术实施例的报文处理方法,在以目标格式存放报文的基础上,可以更便捷地实现对报文的溯源。基于此,报文处理方法还可以包括。
[0126]
步骤280,根据检索请求,从预存的会话信息集中查找待导出会话。
[0127]
示例性地,该预存的会话信息集可以存放在会话存放区域中。
[0128]
步骤290,根据所述待导出会话的会话信息的定位信息,从所述目标文件中提取所述待导出会话对应的各个报文。
[0129]
可选地,可以将读取出的待导出会话对应的各条报文,写入新的目标格式的文件中,以使新的目标格式的文件仅包含待导出会话的报文。
[0130]
示例性地,可以通过会话信息的定位信息记录的各条报文的偏移,从目标文件中提取所述待导出会话对应的各个报文。
[0131]
在一个实例中,上述http会话信息示例,从2021_10_16_001.pcap文件中的24、200、512、1024偏移处,依次读取68、128、64、512字节,写入新的pcap文件,新的pcap文件仅包含该待导出会话的报文,且也是一个标准的pcap文件。
[0132]
本实施例中,上述实现报文检索的步骤280和步骤290可以通过一个检索单元实现。
[0133]
在本技术实施例提供的报文处理方法中,通过对接收到的报文进行阶段性的分析,能够减少在需要查询历史报文时所需做的事儿。进一步地,在通过基于报文的分析,可以将报文有序的存入目标格式的文件中,形成方便查看的目标文件,则不需要再在溯源的时候再对文件进行转换,可以提高溯源的便利性。
[0134]
进一步地,可以以标准的pcap格式存储报文,报文查看可以不依赖专用工具。进一
步地,还能够实时协议解析接收到的报文,可满足实时统计分析的场景需求。
[0135]
基于同一申请构思,本技术实施例中还提供了与报文处理方法对应的报文处理装置,由于本技术实施例中的装置解决问题的原理与前述的报文处理方法实施例相似,因此本实施例中的装置的实施可以参见上述方法的实施例中的描述,重复之处不再赘述。
[0136]
请参阅图3,是本技术实施例提供的报文处理装置的功能模块示意图。本实施例中的报文处理装置中的各个模块用于执行上述方法实施例中的各个步骤。报文处理装置包括:采集模块310、解析模块320、第一存入模块330、更新模块340、判断模块350和第二存入模块360;其中,
[0137]
采集模块310,用于从物理网络接口采集原始报文;
[0138]
解析模块320,用于对所述原始报文进行解析,以确定出所述原始报文的报文信息;
[0139]
第一存入模块330,用于将所述报文信息存入缓存队列中;
[0140]
更新模块340,用于根据所述报文信息对所述原始报文所属的目标会话的会话信息进行更新;
[0141]
判断模块350,用于根据所述目标会话的会话信息,判断所述目标会话的报文数量是否达到预设量;
[0142]
第二存入模块360,用于若所述目标会话的报文数量达到预设量,将所述目标会话的当前的会话信息存入指定存储介质中;
[0143]
第三存入模块370,用于将所述缓存队列中的报文信息存储为目标文件,所述目标文件为可被查看格式的文件。
[0144]
一种可能的实施方式中,第三存入模块370,包括:读取子模块、存入子模块和写入子模块;
[0145]
读取子模块,用于从所述缓存队列中读取的报文信息;
[0146]
存入子模块,用于将所述报文信息存入中间内存块;
[0147]
写入子模块,用于若所述中间内存块的大小达到预设值,则将所述中间内存块写入目标格式的文件中,形成目标文件。
[0148]
一种可能的实施方式中,存入子模块,用于:
[0149]
根据所述报文信息中的存放定位信息,确定出所述报文信息中的报文的存序;
[0150]
根据所述存序,将所述报文信息中的报文存入中间内存块。
[0151]
一种可能的实施方式中,解析模块320,包括:会话确定子模块和定位确定子模块;
[0152]
会话确定子模块,用于根据所述原始报文,确定出所述原始报文所属的目标会话;
[0153]
定位确定子模块,用于根据所述目标会话的会话信息以及所述原始报文,确定出所述原始报文的报文信息中的存放定位信息。
[0154]
一种可能的实施方式中,所述存放定位信息包括存放文件名和存放偏移;定位确定子模块,用于:
[0155]
根据接收到所述原始报文的时间以及所述原始报文采集源,确定出所述原始报文的存放文件名;
[0156]
根据所述原始报文的报文长度,以及所述会话信息中的历史偏移确定出所述原始报文的存放偏移。
[0157]
一种可能的实施方式中,判断模块350,用于:
[0158]
判断所述目标会话是否结束;
[0159]
判断所述目标会话的报文数量是否达到预设数量;
[0160]
若所述目标会话结束,或所述目标会话的报文数量达到预设数量,则表征所述目标会话的报文数量达到预设量。
[0161]
一种可能的实施方式中,本实施例中的报文处理装置还包括:
[0162]
查找模块,用于根据检索请求,从预存的会话信息集中查找待导出会话;
[0163]
提取模块,用于根据所述待导出会话的会话信息的定位信息,从所述目标文件中提取所述待导出会话对应的各个报文。
[0164]
此外,本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的报文处理方法的步骤。
[0165]
本技术实施例所提供的报文处理方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的报文处理方法的步骤,具体可参见上述方法实施例,在此不再赘述。
[0166]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0167]
另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0168]
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0169]
以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0170]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。

技术特征:
1.一种报文处理方法,其特征在于,包括:从物理网络接口采集原始报文;对所述原始报文进行解析,以确定出所述原始报文的报文信息;将所述报文信息存入缓存队列;根据所述报文信息对所述原始报文所属的目标会话的会话信息进行更新;判断所述目标会话的报文数量是否达到预设量;若所述目标会话的报文数量达到预设量,将所述目标会话的当前的会话信息存入指定存储介质中;将所述缓存队列中的报文信息存储为目标文件,所述目标文件为可被查看格式的文件。2.根据权利要求1所述的方法,其特征在于,所述将所述缓存队列中的报文信息存储为目标文件,包括:从所述缓存队列中读取的报文信息;将所述报文信息存入中间内存块;若所述中间内存块的大小达到预设值,则将所述中间内存块写入目标格式的文件中,形成目标文件。3.根据权利要求2所述的方法,其特征在于,所述将所述报文信息存入中间内存块,包括:根据所述报文信息中的存放定位信息,确定出所述报文信息中的报文的存序;根据所述存序,将所述报文信息中的报文存入中间内存块。4.根据权利要求1所述的方法,其特征在于,所述对所述原始报文进行解析,以确定出所述原始报文的报文信息,包括:根据所述原始报文,确定出所述原始报文所属的目标会话;根据所述目标会话的会话信息以及所述原始报文,确定出所述原始报文的报文信息中的存放定位信息。5.根据权利要求4所述的方法,其特征在于,所述存放定位信息包括存放文件名和存放偏移;所述根据所述目标会话的会话信息以及所述原始报文,确定出所述原始报文的报文信息中的存放定位信息,包括:根据接收到所述原始报文的时间以及所述原始报文采集源,确定出所述原始报文的存放文件名;根据所述原始报文的报文长度,以及所述会话信息中的历史偏移确定出所述原始报文的存放偏移。6.根据权利要求1所述的方法,其特征在于,所述根据所述目标会话的会话信息,判断所述目标会话的报文数量是否达到预设量,包括:判断所述目标会话是否结束;根据所述目标会话的会话信息,判断所述目标会话的报文数量是否达到预设数量;若所述目标会话结束,或所述目标会话的报文数量达到预设数量,则表征所述目标会话的报文数量达到预设量。7.根据权利要求1-6任意一项所述的方法,其特征在于,所述方法还包括:
根据检索请求,从预存的会话信息集中查找待导出会话;根据所述待导出会话的会话信息的定位信息,从所述目标文件中提取所述待导出会话对应的各个报文。8.一种报文处理装置,其特征在于,包括:采集模块,用于从物理网络接口采集原始报文;解析模块,用于对所述原始报文进行解析,以确定出所述原始报文的报文信息;第一存入模块,用于将所述报文信息存入缓存队列中;更新模块,用于根据所述报文信息对所述原始报文所属的目标会话的会话信息进行更新;判断模块,用于判断所述目标会话的报文数量是否达到预设量;第二存入模块,用于若所述目标会话的报文数量达到预设量,将所述目标会话的当前的会话信息存入指定存储介质中;第三存入模块,用于将所述缓存队列中的报文信息存储为目标文件,所述目标文件为可被查看格式的文件。9.一种电子设备,其特征在于,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述机器可读指令被所述处理器执行时执行如权利要求1至7任一所述的方法的步骤。10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任一所述的方法的步骤。

技术总结
本申请提供了一种报文处理方法、装置、电子设备和计算机可读存储介质,其中,该方法包括:从物理网络接口采集原始报文;对该原始报文进行解析,以确定出该原始报文的报文信息;将该报文信息存入缓存队列中;根据所述报文信息对所述原始报文所属的目标会话的会话信息进行更新;判断所述目标会话的报文数量是否达到预设量;若该目标会话的报文数量达到预设量,将该目标会话的当前的会话信息存入指定存储介质中;将该缓存队列中的报文信息存储为目标文件,该目标文件为可被查看格式的文件。该目标文件为可被查看格式的文件。该目标文件为可被查看格式的文件。


技术研发人员:刘勇
受保护的技术使用者:北京天融信科技有限公司 北京天融信软件有限公司
技术研发日:2021.12.07
技术公布日:2022/3/8

最新回复(0)