System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,特别涉及一种网络流量的存储方法及电子设备、计算机可读存储介质、计算机程序产品。
技术介绍
1、溯源分析技术日趋成熟,为网络的完全可视化、攻击分析和攻击溯源提供了完整数据和丰富的视角,其作用不言而喻。全流量存储是溯源分析技术的基础,而报文的存储和检索方式是全流量存储的核心。在海量的流量压力下,报文存储和检索的效率倍受挑战,因此,报文的存储和检索计数需要不断进行改进和优化。
2、网络流量存储过程中,需要记录各个数据包的位置信息,大量数据包的位置信息会显著占用存储空间,增加存储成本。
技术实现思路
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、根据每一指定报文头及其对应的报文数据,构建标准pcap数据包;
28、将构建出的标准pcap数据包写入pcap文件,并向所述检索指令的来源返回所述pcap文件。
29、通过上述措施,可以在检索过程中快速确定符合检索条件的多个指定报文头,并借助各个指定报文头内的第一位置信息读取报文数据,从而以适配前述节省磁盘空间的存储流程的方式完成网络流量的检索。
30、在一实施例中,所述从数据包中解析出五元组,并在会话表中确定与所述五元组对应的会话表项,包括:
31、从数据包中解析出五元组,并判断所述会话表中是否存在于所述五元组对应的会话表项;
32、若否,在所述会话表中创建与所述五元组对应的会话表项。
33、通过上述措施,可以在第一次处理一个会话的数据包时为其创建对应的会话表项,便于后续的存储流程。
34、另一方面,本申请提供了一种电子设备,所述电子设备包括:
35、处理器;
36、用于存储处理器可执行指令的存储器;
37、其中,所述处理器被配置为执行上述网络流量的存储方法。
38、进一步的,本申请提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述网络流量的存储方法。
39、此外,本申请提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述网络流量的存储方法。
本文档来自技高网...【技术保护点】
1.一种网络流量的存储方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述将所述数据包的报文数据写入至所述会话表项对应的目标数据文件,包括:
3.根据权利要求1所述的方法,其特征在于,所述将所述指定报文头写入至所述会话表项对应的目标报文头文件,包括:
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,所述从数据包中解析出五元组,并在会话表中确定与所述五元组对应的会话表项,包括:
8.一种电子设备,其特征在于,所述电子设备包括:
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成权利要求1-7任意一项所述的网络流量的存储方法。
10.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1-
...【技术特征摘要】
1.一种网络流量的存储方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述将所述数据包的报文数据写入至所述会话表项对应的目标数据文件,包括:
3.根据权利要求1所述的方法,其特征在于,所述将所述指定报文头写入至所述会话表项对应的目标报文头文件,包括:
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
【专利技术属性】
技术研发人员:廖威威,
申请(专利权)人:北京天融信网络安全技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。