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

网络报文的压缩与解压方法、装置、设备及可读存储介质与流程

2022-07-06 08:22:24 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤指一种网络报文的压缩与解压方法、装置、设备及可读存储介质。


背景技术:

2.随着互联网技术的飞速发展,互联网上的信息量正在以几何级数的增长速度增长,各类网络应用层出不穷,与之相对应的就是网络攻击行为也在与日俱增。传统的基于流量分析、规则检测等技术可以在超高网络带宽的场景下对流量进行分析,记录各种网络行为日志。现在的更高的要求是记录下原始流量作为证据留存,实现和网络日志的上下文关联,事件溯源分析。
3.目前网络流量分析中全流量存储基本有三种方案:1、直接存储网络报文;2、使用存储性能开发套件(storage performance development kit,spdk)技术保存网络报文;3、使用分布式外接存储保存网络报文。针对方案1,对于有限磁盘来说,网络流量太大时外存储器磁盘输入输出接口i/o不足。针对方案2,需要和数据平面开发套件(data plane development kit,dpdk)绑定,且需要使用非易失性内存主机控制器接口规范(non-volatile memory express,nvme)固态硬盘。针对方案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.所述报文信息还包括对应的网络报文未被压缩时的占用长度和位置;
45.判断第一个压缩块信息中的会话信息索引中是否存在与所述检索指令指示的会话信息对应的目标会话信息索引之前,还包括:
46.根据所述压缩文件信息中的压缩块数量和每个压缩块信息的占用长度,确定所述压缩文件中的各压缩块信息的占用长度和位置;
47.在所述当前压缩块信息对应的所有报文信息中查找所述目标报文信息之前,还包括:
48.根据各压缩块信息中对应的网络报文的起始序号,确定所述当前压缩块对应的报文信息的起始位置;根据所述当前压缩块对应的报文信息的起始序号、网络报文数量和每个报文信息的占用长度,确定当前压缩块对应的所有报文信息的占用长度和位置;
49.对所述目标压缩块得到所述目标压缩块中的各网络报文,具体包括:
50.根据所述当前压缩块在所述压缩文件中的偏移位置、所述当前压缩块压缩后的占用长度确定当前压缩块的数据,利用所述当前压缩块未压缩时的占用长度、所述当前压缩块对应的各所述报文信息中的对应的网络报文未被压缩时的占用长度和位置对所述当前压缩块的数据进行解压,得到所述当前压缩块中的各网络报文。
51.可选地,所述会话信息包括如下至少一种:会话编号、四元组、五元组、七元组。
52.可选地,所述会话信息索引包括会话信息的哈希值。
53.基于同一发明构思,本发明实施例还提供了一种网络报文的压缩装置,包括:
54.网络报文接收模块,用于接收并暂存网络报文至内存储器,并为每个暂存的网络报文生成对应的报文信息;其中,所述报文信息包括对应的网络报文的会话信息;
55.压缩模块,用于确定满足压缩条件时,在所述内存储器中将暂存的所述网络报文进行压缩得到一个压缩块并生成所述压缩块对应的压缩块信息,并根据已生成的压缩块更新压缩文件信息;其中,所述压缩块信息包括所述压缩块中网络报文的会话信息索引;
56.打包模块,用于确定满足压缩文件生成条件时,将所述压缩文件信息、已生成的压缩块、各所述压缩块对应的压缩块信息、各网络报文对应的报文信息进行打包,得到所述压缩文件并保存至外存储器中;其中,所述压缩文件信息包括压缩文件中最早接收的网络报文的接收时间;
57.其中,所述压缩文件中最早接收的网络报文的接收时间用于筛除不包含有目标网络报文的压缩文件,所述会话信息索引用于在从候选压缩文件中解压目标网络报文时从所述压缩文件中的所有压缩块中筛选出候选压缩块集合,所述会话信息用于从所述候选压缩块集合中确定目标网络报文所在的目标压缩块;
58.所述候选压缩文件为所有保存的压缩文件中,除所述筛除的压缩文件外的任意一个压缩文件。
59.基于同一发明构思,本发明实施例还提供了一种压缩的网络报文的解压装置,包括:
60.压缩文件筛选模块,用于响应于检索指令,基于压缩文件中最早接收的网络报文的接收时间,在外存储器中查找符合所述检索指令指示的时间要求的压缩文件;其中,所述压缩文件中包括:所述压缩文件对应的压缩文件信息、至少一个压缩块以及各所述压缩块对应的压缩块信息、至少一个报文信息;其中,所述压缩文件信息包括压缩文件中最早接收的网络报文的接收时间;每个压缩块是对至少一个网络报文压缩得到的;所述压缩块信息包括所述压缩块中网络报文的会话信息索引;每个报文信息包括网络报文的会话信息;
61.解压模块,用于对查找到的任意一个所述压缩文件,执行如下步骤:
62.从各所述压缩块对应的压缩块信息的会话信息索引中,查找与所述检索指令指示的会话信息对应的目标会话信息索引;
63.在所述目标会话信息索引对应的压缩块中查找目标网络报文所在的目标压缩块;其中,所述目标网络报文是与目标报文信息对应的网络报文,所述目标报文信息是包含所述检索指令指示的会话信息的报文信息;
64.根据所述目标压缩块对应的压缩块信息和所述目标压缩块中压缩存储的所有网络报文分别对应的所述报文信息,解压所述目标压缩块得到所述目标网络报文。
65.基于同一发明构思,本发明实施例还提供了一种设备,包括:处理器和用于存储所述处理器可执行指令的存储器;
66.其中,所述处理器被配置为执行所述指令,以实现所述网络报文的压缩方法,和/或所述压缩的网络报文的解压方法。
67.基于同一发明构思,本发明实施例还提供了一种可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序被用于实现所述网络报文的压缩方法,和/或所述压缩的网络报文的解压方法。
68.本发明有益效果如下:
69.本发明实施例提供的网络报文的压缩与解压方法、装置、设备及可读存储介质,对网络报文的压缩方案与现有技术相比能够降低对外存储器的硬件性能要求;对网络报文的解压方案能够可以根据需要对指定的部分网络报文进行解压,而不需要对整个压缩文件全部解压,从而能够有效地降低存储网络报文于读取网络报文时对存储设备的硬件性能要求,从而降低成本。
附图说明
70.图1为本发明实施例提供的网络报文的压缩方法的流程图;
71.图2为本发明实施例提供的压缩文件的数据结构示意图;
72.图3为本发明实施例提供的压缩的网络报文的解压方法的流程图;
73.图4为本发明实施例提供的压缩的网络报文的解压方法的部分步骤的流程图;
74.图5为本发明实施例提供的网络报文的压缩装置的结构示意图;
75.图6为本发明实施例提供的压缩的网络报文的解压装置的结构示意图;
76.图7为本发明实施例提供的设备的结构示意图。
具体实施方式
77.为使本发明的上述目的、特征和优点能够更为明显易懂,下面将结合附图和实施例对本发明做进一步说明。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本发明更全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。本发明中所描述的表达位置与方向的词,均是以附图为例进行的说明,但根据需要也可以做出改变,所做改变均包含在本发明保护范围内。本发明的附图仅用于示意相对位置关系不代表真实比例。
78.需要说明的是,在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施方式的限制。说明书后续描
述为实施本技术的较佳实施方式,然所述描述乃以说明本技术的一般原则为目的,并非用以限定本技术的范围。本技术的保护范围当视所附权利要求所界定者为准。
79.下面结合附图,对本发明实施例提供的网络报文的压缩与解压方法、装置、设备及可读存储介质进行具体说明。
80.第一方面,本发明实施例提供了一种网络报文的压缩方法,如图1所示,包括:
81.s110、接收并暂存网络报文至内存储器,并为每个暂存的网络报文生成对应的报文信息。其中,所述报文信息包括对应的网络报文的会话信息。
82.在本发明实施例中,所述内存储器可以为随机存取存储器(random access memory,ram)。
83.可选地,所述会话信息包括如下至少一种:会话编号、四元组、五元组、七元组。
84.所述四元组包括源互联网协议(internet protocol,ip)地址、源端口、目的ip地址、目的端口。
85.所述五元组包括源ip地址、源端口、目的ip地址、目的端口、传输层协议编号。
86.所述七元组包括源ip地址、源端口、目的ip地址、目的端口、传输层协议编号、服务类型编号、接口索引。
87.s120、判断是否满足压缩条件。
88.若所述步骤s120的结果为是,执行步骤s130;若所述步骤s120的结果为否,返回所述步骤s110。
89.s130、在所述内存储器中将暂存的所述网络报文进行压缩得到一个压缩块并生成所述压缩块对应的压缩块信息,并根据已生成的压缩块更新压缩文件信息。其中,所述压缩块信息包括所述压缩块中网络报文的会话信息索引。
90.可选地,所述会话信息索引包括会话信息的哈希值。
91.在具体实施过程中,如果所述会话信息包括会话编号sid和四元组/五元组/七元组,那么所述会话信息索引包括会话编号sid哈希值及四元组/五元组/七元组中每个信息项的哈希值。例如,若所述会话信息包括会话编号sid和五元组,那么所述会话信息索引包括会话编号sid哈希值、源ip地址哈希值、源端口哈希值、目的ip地址哈希值、目的端口哈希值、传输层协议编号哈希值。
92.s140、判断是否满足压缩文件生成条件。
93.若所述步骤s140的结果为是,执行步骤s150;若所述步骤s140的结果为否,返回所述步骤s110。
94.s150、将所述压缩文件信息、已生成的压缩块、各所述压缩块对应的压缩块信息、各网络报文对应的报文信息进行打包,得到所述压缩文件并保存至外存储器中。其中,所述压缩文件信息包括压缩文件中最早接收的网络报文的接收时间。
95.其中,所述压缩文件中最早接收的网络报文的接收时间用于筛除不包含有目标网络报文的压缩文件,所述会话信息索引用于在从候选压缩文件中解压目标网络报文时从所述压缩文件中的所有压缩块中筛选出候选压缩块集合,所述会话信息用于从所述候选压缩块集合中确定目标网络报文所在的目标压缩块;所述候选压缩文件为所有保存的压缩文件中,除所述筛除的压缩文件外的任意一个压缩文件。
96.在具体实施过程中,如果需要长时间地对网络报文进行压缩存储,那么可以重复
执行上述方法,依次得到多个压缩文件。
97.在本发明实施例中,所述外存储器可以为机械硬盘(hard disk drive,hdd)、固态硬盘(solid state drive,ssd)等存储器,在此不作限定。
98.这样,通过上述对网络报文压缩存储的方法,能够令同一外存储器保存更多的网络报文。例如使用智能存储加速库(intelligent storage acceleration library,isa-l)算法对网络报文进行压缩,压缩率约为56%,相当于对于同一外存储器保存的网络报文的数据量接近翻倍。同时压缩报文与网络报文相比是大文件,存储到外存储器上是顺序写的操作,与直接将小文件的网络报文保存到外存储器相比能够明显提升外存储器i/o的效率。因而能够有效地降低存储网络报文对存储设备的硬件性能要求,从而降低成本。
99.在具体实施过程中,通过本发明实施例提供的网络报文的压缩方法,可以通过调整压缩算法及压缩块的大小来适应网络环境的需求,从而将网络报文的压缩保存速度与接收的网络流量速度达到平衡。在测试环境下使用isa-l算法的压缩率为56%,lz4算法为78%,z标准(zstandard,zstd)算法为55%。在压缩块的大小设置为2m的情况下丢包率最小。设置压缩块的大小为2m的条件下,isa-l压缩算法额外增加了10%-15%的cpu消耗,lz4增加了30-35%的cpu消耗,zstd增加了20-25%的cpu消耗。
100.更进一步地,如图2所示,所述压缩文件中的数据按照压缩文件信息file_info、各所述压缩块对应的压缩块信息zip_info、各报文信息pcap_info、各所述压缩块zip_ctx的顺序存储。
101.所述压缩文件信息还包括所述压缩文件包含的压缩块的数量、网络报文的数量。其中,所述压缩块的数量用于与每个压缩块信息的占用长度共同确定各压缩块信息的占用长度和位置。
102.在本发明实施例中,每个压缩块信息的占用长度为固定值。
103.所述压缩块信息还包括对应的压缩块包含的网络报文数量、对应的所述压缩块未压缩时的占用长度和位置、对应的所述压缩块压缩后的占用长度、对应的所述压缩块在所述压缩文件中的偏移位置、对应的网络报文的起始序号。其中,所述压缩块信息中的对应的网络报文的起始序号、所述压缩块信息中的对应的压缩块包含的网络报文数量用于与每个报文信息的占用长度共同确定当前压缩块对应的所有报文信息的占用长度和位置;所述压缩块信息中的对应的所述压缩块在所述压缩文件中的偏移位置、所述当前压缩块压缩后的占用长度共同用于确定当前压缩块的数据。
104.在本发明实施例中,每个报文信息的占用长度为固定值。
105.所述报文信息还包括对应的网络报文未被压缩时的占用长度和位置。其中,所述压缩块信息中的对应的压缩块未压缩时的占用长度与所述压缩块信息对应的各网络报文中的所述网络报文未被压缩时的占用长度和位置用于解压所述对应的压缩块得到网络报文。
106.所述压缩文件中的各种信息所起到的作用将在后文的网络报文的解压方法中详细说明,此处暂不展开。
107.可选地,所述压缩条件包括如下至少一种:
108.(1)暂存的所述网络报文的数量等于预设第一阈值。
109.(2)第一暂存时间等于第一预设时间。其中所述第一暂存时间为当前暂存的所有
网络报文中,最早被暂存的网络报文被暂存的时刻至当前时刻之间的时间。
110.即,每次开始执行所述步骤s110时开始计时,当到达所述第一预设时间时满足所述压缩条件,此时将暂存的网络报文进行压缩得到一个压缩块。之后由步骤s140返回所述步骤s110时重新开始计时,直至下一次到达所述第一预设时间时满足所述压缩条件。
111.(3)暂存的所述网络报文对应的会话超时。
112.可选地,所述压缩文件生成条件包括如下至少一种:
113.(1)已生成的压缩块的数量等于预设第二阈值。
114.(2)从所有所述网络报文中最早接收的网络报文的接收时间到当前时刻的时间等于第二预设时间。
115.(3)压缩的网络报文对应的会话超时。
116.可选地,所述步骤s110中,接收并暂存网络报文,具体包括:
117.将相同会话的网络报文暂存在同一第一暂存区域;
118.对任意一个第一暂存区域,当所述第一暂存区域暂存的网络报文的数量等于第三预设阈值或第二暂存时间等于第三预设时间时,将所述网络报文移动至第二暂存区域。其中所述第二暂存时间为当前暂存于所述第一暂存区域中的所有网络报文中,最早被暂存的网络报文被暂存的时刻至当前时刻之间的时间。
119.这样,通过将相同会话的网络报文尽可能放置在一起暂存,并在后续过程中压缩,能够便于后续解压过程对检索指令指示的指定会话的网络报文的解压。
120.第二方面,本发明实施例还提供了一种压缩的网络报文的解压方法,用于对利用上文所述的网络报文的压缩方法得到的压缩文件进行解压,如图3所示,包括:
121.s210、响应于检索指令,基于压缩文件中最早接收的网络报文的接收时间,在外存储器中查找符合所述检索指令指示的时间要求的压缩文件。
122.其中,利用第一方面提供的网络报文的压缩方法得到的所述压缩文件中包括:所述压缩文件对应的压缩文件信息、至少一个压缩块以及各所述压缩块对应的压缩块信息、至少一个报文信息;其中,所述压缩文件信息包括压缩文件中最早接收的网络报文的接收时间;每个压缩块是对至少一个网络报文压缩得到的;所述压缩块信息包括所述压缩块中网络报文的会话信息索引;每个报文信息包括网络报文的会话信息。
123.s220、不重复地选取一个查找到的所述压缩文件。
124.若所述步骤s220选取成功,执行步骤s230;若所有查找到的压缩文件均被选取过,结束解压过程。
125.s230、从各所述压缩块对应的压缩块信息的会话信息索引中,查找与所述检索指令指示的会话信息对应的目标会话信息索引。
126.若所述步骤s230成功查找到目标会话信息索引,执行步骤s240;若所述步骤s230未成功查找到目标会话信息索引,返回所述步骤s220。
127.s240、在所述目标会话信息索引对应的压缩块中查找目标网络报文所在的目标压缩块。其中,所述目标网络报文是与目标报文信息对应的网络报文,所述目标报文信息是包含所述检索指令指示的会话信息的报文信息。
128.若所述步骤s240成功查找到目标压缩块,执行步骤s250;若所述步骤s240未成功查找到目标压缩块,返回所述步骤220。
129.s250、根据所述目标压缩块对应的压缩块信息和所述目标压缩块中压缩存储的所有网络报文分别对应的所述报文信息,解压所述目标压缩块得到所述目标网络报文。返回所述步骤s220。
130.这样,通过上述的压缩的网络报文的解压方法,可以根据需要对指定的部分网络报文进行解压,而不需要对整个压缩文件全部解压,从而降低了解压过程的运算量和硬件资源的消耗,降低了对存储设备的硬件要求。
131.进一步可选地,如图4所示,所述步骤s230-s250具体可以采用如下方式实现:
132.s310、不重复选取所述压缩文件中的一个压缩块信息作为当前压缩块信息。
133.若所述步骤s310选取成功,执行步骤s320;若所述压缩文件中的所有压缩块信息均被选取过,返回所述步骤s220。
134.在具体实施过程中,所述步骤s310可以采用从所述压缩文件的第一个压缩块信息开始,依次选取所述压缩文件中的一个压缩块信息作为当前压缩块信息的方式实施。
135.s320、判断当前压缩块信息中的会话信息索引中是否存在与所述检索指令指示的会话信息对应的目标会话信息索引。
136.若所述步骤s320的结果为是,执行步骤s330;若所述步骤s320的结果为否,执行步骤s310。
137.s330、在所述当前压缩块信息对应的所有报文信息中查找所述目标报文信息。
138.若所述步骤s330成功查找到所述目标报文信息,执行步骤s340;若所述步骤s330未成功查找到所述目标报文信息,返回所述步骤s310。
139.s340、对所述目标压缩块解压得到所述目标压缩块中的各网络报文,保存其中的所述目标网络报文。返回所述步骤s310。
140.可选地,所述压缩文件中的数据按照压缩文件信息、各所述压缩块对应的压缩块信息、各报文信息、各所述压缩块的顺序存储;
141.所述压缩文件信息还包括压缩块数量;
142.所述压缩块信息还包括对应的压缩块包含的网络报文数量、对应的所述压缩块未压缩时的占用长度、对应的所述压缩块压缩后的占用长度、对应的所述压缩块在所述压缩文件中的偏移位置、对应的网络报文的起始序号;
143.所述报文信息还包括对应的网络报文未被压缩时的占用长度和位置;
144.进一步地,所述步骤s310之前,还包括:
145.根据所述压缩文件信息中的压缩块数量和每个压缩块信息的占用长度,确定所述压缩文件中的各压缩块信息的占用长度和位置。
146.所述步骤s330之前,还包括:
147.根据各压缩块信息中对应的网络报文的起始序号,确定所述当前压缩块对应的报文信息的起始位置。
148.根据所述当前压缩块对应的报文信息的起始序号、网络报文数量和每个报文信息的占用长度,确定当前压缩块对应的所有报文信息的占用长度和位置。
149.所述步骤s340中,对所述目标压缩块得到所述目标压缩块中的各网络报文,具体包括:
150.根据所述当前压缩块在所述压缩文件中的偏移位置、所述当前压缩块压缩后的占
用长度确定当前压缩块的数据,利用所述当前压缩块未压缩时的占用长度、所述当前压缩块对应的各所述报文信息中的对应的网络报文未被压缩时的占用长度和位置对所述当前压缩块的数据进行解压,得到所述当前压缩块中的各网络报文。
151.可选地,所述会话信息索引包括会话信息的哈希值。
152.可选地,所述会话信息包括如下至少一种:会话编号、四元组、五元组、七元组。
153.若所述会话信息包括会话编号sid和四元组/五元组/七元组,则所述步骤s320、判断当前压缩块信息中的会话信息索引中是否存在与所述检索指令指示的会话信息对应的目标会话信息索引,具体包括:
154.确定所述检索指令指示的会话信息的类型;
155.判断当前压缩块信息中所述类型的会话信息的会话信息索引中是否存在与所述检索指令指示的会话信息对应的目标会话信息索引。
156.所述步骤s330、在所述当前压缩块信息对应的所有报文信息中查找所述目标报文信息,具体包括:
157.在所述当前压缩块信息对应的所有报文信息中的所述类型的会话信息中查找所述检索指令指示的会话信息,将查找到的会话信息所在的报文信息确定为所述目标报文信息。
158.例如,报文信息中的会话信息包括会话编号sid和五元组。在解压过程中,首先确定所述检索指令指示的会话信息为五元组,之后判断当前压缩块信息中的各五元组哈希值中是否存在所述检索指令指示的五元组的哈希值,如果存在则从在所述当前压缩块信息对应的所有报文信息中的五元组中查找所述检索指令指示的五元组,将查找到的五元组所在的报文信息确定为所述目标报文信息。
159.第三方面,基于同一发明构思,本发明实施例还提供了一种网络报文的压缩装置,如图5所示,包括:
160.网络报文接收模块m110,用于接收并暂存网络报文至内存储器,并为每个暂存的网络报文生成对应的报文信息;其中,所述报文信息包括对应的网络报文的会话信息;
161.压缩模块m120,用于确定满足压缩条件时,在所述内存储器中将暂存的所述网络报文进行压缩得到一个压缩块并生成所述压缩块对应的压缩块信息,并根据已生成的压缩块更新压缩文件信息;其中,所述压缩块信息包括所述压缩块中网络报文的会话信息索引;
162.打包模块m130,用于确定满足压缩文件生成条件时,将所述压缩文件信息、已生成的压缩块、各所述压缩块对应的压缩块信息、各网络报文对应的报文信息进行打包,得到所述压缩文件并保存至外存储器中;其中,所述压缩文件信息包括压缩文件中最早接收的网络报文的接收时间;
163.其中,所述压缩文件中最早接收的网络报文的接收时间用于筛除不包含有目标网络报文的压缩文件,所述会话信息索引用于在从候选压缩文件中解压目标网络报文时从所述压缩文件中的所有压缩块中筛选出候选压缩块集合,所述会话信息用于从所述候选压缩块集合中确定目标网络报文所在的目标压缩块;
164.所述候选压缩文件为所有保存的压缩文件中,除所述筛除的压缩文件外的任意一个压缩文件。
165.可选地,所述压缩文件中的数据按照压缩文件信息、各所述压缩块对应的压缩块
信息、各报文信息、各所述压缩块的顺序存储;
166.所述压缩文件信息还包括所述压缩文件包含的压缩块的数量、网络报文的数量;其中,所述压缩块的数量用于与每个压缩块信息的占用长度共同确定各压缩块信息的占用长度和位置;
167.所述压缩块信息还包括对应的压缩块包含的网络报文数量、对应的所述压缩块未压缩时的占用长度和位置、对应的所述压缩块压缩后的占用长度、对应的所述压缩块在所述压缩文件中的偏移位置、对应的网络报文的起始序号;其中,所述压缩块信息中的对应的网络报文的起始序号、所述压缩块信息中的对应的压缩块包含的网络报文数量用于与每个报文信息的占用长度共同确定当前压缩块对应的所有报文信息的占用长度和位置;所述压缩块信息中的对应的所述压缩块在所述压缩文件中的偏移位置、所述当前压缩块压缩后的占用长度共同用于确定当前压缩块的数据;
168.所述报文信息还包括对应的网络报文未被压缩时的占用长度和位置;其中,所述压缩块信息中的对应的压缩块未压缩时的占用长度与所述压缩块信息对应的各网络报文中的所述网络报文未被压缩时的占用长度和位置用于解压所述对应的压缩块得到网络报文。
169.可选地,所述会话信息包括如下至少一种:会话编号、四元组、五元组、七元组。
170.可选地,所述会话信息索引包括会话信息的哈希值。
171.可选地,所述压缩条件包括如下至少一种:
172.暂存的所述网络报文的数量等于预设第一阈值;
173.第一暂存时间等于第一预设时间;其中所述第一暂存时间为当前暂存的所有网络报文中,最早被暂存的网络报文被暂存的时刻至当前时刻之间的时间;
174.暂存的所述网络报文对应的会话超时。
175.可选地,所述压缩文件生成条件包括如下至少一种:
176.已生成的压缩块的数量等于预设第二阈值;
177.从所有所述网络报文中最早接收的网络报文的接收时间到当前时刻的时间等于第二预设时间;
178.压缩的网络报文对应的会话超时。
179.可选地,接收并暂存网络报文至内存储器,包括:
180.将相同会话的网络报文暂存在所述内存储器中的同一第一暂存区域;
181.对任意一个第一暂存区域,当所述第一暂存区域暂存的网络报文的数量等于第三预设阈值或第二暂存时间等于第三预设时间时,将所述网络报文移动至所述内存储器中的第二暂存区域;其中所述第二暂存时间为当前暂存于所述第一暂存区域中的所有网络报文中,最早被暂存的网络报文被暂存的时刻至当前时刻之间的时间。
182.第四方面,基于同一发明构思,本发明实施例还提供了一种压缩的网络报文的解压装置,如图6所示,包括:
183.压缩文件筛选模块m210,用于响应于检索指令,基于压缩文件中最早接收的网络报文的接收时间,在外存储器中查找符合所述检索指令指示的时间要求的压缩文件;其中,所述压缩文件中包括:所述压缩文件对应的压缩文件信息、至少一个压缩块以及各所述压缩块对应的压缩块信息、至少一个报文信息;其中,所述压缩文件信息包括压缩文件中最早
接收的网络报文的接收时间;每个压缩块是对至少一个网络报文压缩得到的;所述压缩块信息包括所述压缩块中网络报文的会话信息索引;每个报文信息包括网络报文的会话信息;
184.解压模块m220,用于对查找到的任意一个所述压缩文件,执行如下步骤:
185.从各所述压缩块对应的压缩块信息的会话信息索引中,查找与所述检索指令指示的会话信息对应的目标会话信息索引;
186.在所述目标会话信息索引对应的压缩块中查找目标网络报文所在的目标压缩块;其中,所述目标网络报文是与目标报文信息对应的网络报文,所述目标报文信息是包含所述检索指令指示的会话信息的报文信息;
187.根据所述目标压缩块对应的压缩块信息和所述目标压缩块中压缩存储的所有网络报文分别对应的所述报文信息,解压所述目标压缩块得到所述目标网络报文。
188.可选地,对查找到的任意一个所述压缩文件,具体执行如下步骤:
189.不重复选取所述压缩文件中的一个压缩块信息作为当前压缩块信息执行如下步骤,直到所述压缩文件中的所有压缩块信息均被选取过后结束:
190.判断当前压缩块信息中的会话信息索引中是否存在与所述检索指令指示的会话信息对应的目标会话信息索引;
191.若不存在,且存在所述压缩文件中的压缩块信息未被选取过,则再次不重复选取一个所述压缩文件中的压缩块信息作为当前压缩块信息,并返回判断当前压缩块信息中的会话信息索引中是否存在与所述检索指令指示的会话信息对应的目标会话信息索引的步骤;
192.若存在,则在所述当前压缩块信息对应的所有报文信息中查找所述目标报文信息;
193.若查找到所述目标报文信息,则将所述当前压缩块确定为目标压缩块,对所述目标压缩块解压得到所述目标压缩块中的各网络报文,保存其中的所述目标网络报文;
194.保存其中的所述目标网络报文或若未查找到所述目标报文信息之后,若存在所述压缩文件中的压缩块信息未被选取过,则再次不重复选取一个所述压缩文件中的压缩块信息作为当前压缩块信息,并返回判断当前压缩块信息中的会话信息索引中是否存在与所述检索指令指示的会话信息对应的目标会话信息索引的步骤。
195.可选地,所述压缩文件中的数据按照压缩文件信息、各所述压缩块对应的压缩块信息、各报文信息、各所述压缩块的顺序存储;
196.所述压缩文件信息还包括压缩块数量;
197.所述压缩块信息还包括对应的压缩块包含的网络报文数量、对应的所述压缩块未压缩时的占用长度、对应的所述压缩块压缩后的占用长度、对应的所述压缩块在所述压缩文件中的偏移位置、对应的网络报文的起始序号;
198.所述报文信息还包括对应的网络报文未被压缩时的占用长度和位置;
199.判断第一个压缩块信息中的会话信息索引中是否存在与所述检索指令指示的会话信息对应的目标会话信息索引之前,还包括:
200.根据所述压缩文件信息中的压缩块数量和每个压缩块信息的占用长度,确定所述压缩文件中的各压缩块信息的占用长度和位置;
201.在所述当前压缩块信息对应的所有报文信息中查找所述目标报文信息之前,还包括:
202.根据各压缩块信息中对应的网络报文的起始序号,确定所述当前压缩块对应的报文信息的起始位置;根据所述当前压缩块对应的报文信息的起始序号、网络报文数量和每个报文信息的占用长度,确定当前压缩块对应的所有报文信息的占用长度和位置;
203.对所述目标压缩块得到所述目标压缩块中的各网络报文,具体包括:
204.根据所述当前压缩块在所述压缩文件中的偏移位置、所述当前压缩块压缩后的占用长度确定当前压缩块的数据,利用所述当前压缩块未压缩时的占用长度、所述当前压缩块对应的各所述报文信息中的对应的网络报文未被压缩时的占用长度和位置对所述当前压缩块的数据进行解压,得到所述当前压缩块中的各网络报文。
205.可选地,所述会话信息包括如下至少一种:会话编号、四元组、五元组、七元组。
206.可选地,所述会话信息索引包括会话信息的哈希值。
207.在本技术所提供的实施例中,应该理解到,以上所描述的装置实施例仅仅是示意性的。例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
208.由于上述装置解决问题的原理与前文所述的网络报文的压缩及解压方法相似,因此上述装置的实施可以参见对应方法的实施,重复之处不再赘述。
209.第五方面,基于同一发明构思,本发明实施例还提供了一种设备,如图7所示,包括:处理器110和用于存储所述处理器110可执行指令的存储器120;其中,所述处理器110被配置为执行所述指令,以实现第一方面所述网络报文的压缩方法,和/或第二方面所述压缩的网络报文的解压方法。
210.在具体实施过程中,所述设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器110、存储器120、可读存储介质130,所述存储器120和/或可读存储介质130中包括一个或一个以上应用程序131或数据132。所述存储器120和/或可读存储介质130中还可以包括一个或一个以上操作系统133,例如windows、mac os、linux、ios、android、unix、freebsd等。其中,存储器120和可读存储介质130可以是短暂存储或持久存储。所述应用程序131可以包括一个或一个以上所述模块(图7中未示出),每个模块可以包括一系列指令操作。更进一步地,处理器110可以设置为与可读存储介质130通信,在所述设备上执行可读存储介质130中的一系列指令操作。所述设备还可以包括一个或一个以上电源(图7中未示出);一个或一个以上网络接口140,所述网络接口140包括有线网络接口141和/或无线网络接口142;一个或一个以上输入/输出接口143。
211.基于同一发明构思,本发明实施例还提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被用于实现第一方面所述网络报文的压缩方法,和/或第二方面所述压缩的网络报文的解压方法。
212.本发明实施例提供的网络报文的压缩与解压方法、装置、设备及可读存储介质,对
网络报文的压缩方案与现有技术相比能够降低对外存储器的硬件性能要求;对网络报文的解压方案能够可以根据需要对指定的部分网络报文进行解压,而不需要对整个压缩文件全部解压,从而能够有效地降低存储网络报文于读取网络报文时对存储设备的硬件性能要求,从而降低成本。
213.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
214.本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
215.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
216.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
217.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献