一种流式重组网络数据包的方法、系统及存储介质与流程

文档序号:36163366发布日期:2023-11-23 12:18阅读:57来源:国知局
一种流式重组网络数据包的方法与流程

本发明涉及网络监测,具体涉及一种流式重组网络数据包的方法、系统及存储介质。


背景技术:

1、在网络监测和网络安全领域,通常需要获取到网络层的数据包,并进行流重组,还原数据流,然后进行检测等处理。因为是在网络层第三方监听方式获取数据包,所以这种数据包的流重组并不在常规的操作系统网络协议栈处理流程中,无法依赖操作系统的功能。需要检测程序或设备独立处理数据包的流重组过程。

2、通常,现有对数据包还原检测是基于块式流重组的数据重组和还原,如开源的网络安全检测软件snort, suricata,zeek,以及其他公开介绍过的闭源检测系统实现。具体有两种实现方式,第一种方式,单包处理:对数据包仅作单包检测,只在数据包内部还原内容和检测;第二种方式,块式流重组:把多个数据包重组拼装到一个缓冲区中,然后在此缓冲区中作还原和检测操作,单包处理的缺点是还原内容不完整,对于还原内容跨越了多个数据包的情况,检测无法完成,而块式流重组缺点在于:缓冲区会消耗大量内存,由于受内存限制导致还原内容不完整, 从而导致检测失败。


技术实现思路

1、针对现有技术存在的不足,本发明的目的在于提供一种流式重组网络数据包的方法、系统及存储介质。

2、为了实现上述目的,本发明提供如下技术方案:

3、一种流式重组网络数据包的方法,包括如下步骤:

4、s1,获取数据包,提取数据包相关信息以及序列号,依序列号挂载至列表中,同时生成处理通知;

5、s2,依据处理通知生成调用指令;

6、s3,依调用指令从列表上找到序号正确的数据包,从所述数据包内提取还原得到有效数据。

7、在本发明中,优选的,在步骤s1中,获取数据包的同时对列表进行判断,判断列表存储数据是否超过配置长度,如未超过,则将数据包对应的相关信息依据序列号挂载至列表对应位置中,否则放弃该数据包。

8、在本发明中,优选的,对应数据调用指令为解析模块需获取的数据第一长度和序列号。

9、在本发明中,优选的,在步骤s3中,具体还包括如下步骤:

10、s31,获取列表上的首位数据包的序列号,判断其序列号是否正确,如正确,进行下一步,否则返回读取失败;

11、s32,按照第一长度从所述首位数据包内提取还原有效数据,并返回给所述解析模块。

12、在本发明中,优选的,在步骤s32中,具体还包括如下步骤:

13、s33,判断所述首位数据包对应的数据长度是否大于第一长度,如大于,则直接从所述首位数据包内提取还原第一长度的有效数据给解析模块,否则进行下一步;

14、s34,继续在列表中获取下一个正确序列号对应的数据包,判断该数据包内的数据长度与首位数据包内的数据长度之和是否大于第一长度,如大于,则提取还原重组正确序列号对应的数据包内的第一长度的有效数据给解析模块,如小于,则继续获取下一个正确序列号对应的数据包内的数据。

15、在本发明中,优选的,在步骤s34中,如下一数据包的序列号不在解析模块需求范围内,则直接给解析模块返回从首位数据包内提取还原的有效数据。

16、在本发明中,优选的,如列表上的序列号不正确时,返回还原失败指令,待下一数据包到来,再次生成调用指令进行获取,如还不正确,尝试下次获取,重复n次后仍无正确序列号时,则解析模块进入错误处理流程,当前调用指令失效。

17、在本发明中,优选的,如流重组模块成功提取还原有效数据并返回给解析模块,则流重组模块将当前数据包对应的相关信息以及序列号从列表上删除,以腾出列表空间。

18、一种流式重组网络数据包的系统,包括流重组模块和解析模块,所述解析模块通过数据调用接口与所述重组模块连接,所述流重组模块通过相关函数入口获取数据包,提取数据包的相关信息、数据长度以及序列号,依据序列号将数据包的相关信息和数据长度挂载至列表中,依据解析模块需求流重组模块提取还原数据包内有效数据传递至解析模块。

19、一种存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如上述方法的步骤。

20、与现有技术相比,本发明的有益效果是:

21、本发明的方法通过采用流重组模块,获取数据包的序列号以及相关信息,挂载至列表中,通过列表管理数据包,当解析模块需要时,流重组模块找到正确序列号的数据包进行重组还原,然后对重组还原后的数据包在列表中的信息进行删除,及时更新列表,无需单独存储数据包,从而避免了块式缓存的限制,减少大批量数据包的内存占用、完整还原不同数据包内相连接的内容,提高了解析模块的检测成功率,同时解析模块在需求时向流重组模块通过调用接口获取即可,简化了其他模块对重组还原数据的使用方式,降低了还原结果的延迟。



技术特征:

1.一种流式重组网络数据包的方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种流式重组网络数据包的方法,其特征在于,在步骤s1中,获取数据包的同时对列表进行判断,判断列表存储数据是否超过配置长度,如未超过,则将数据包对应的相关信息依据序列号挂载至列表对应位置中,否则放弃该数据包。

3.根据权利要求2所述的一种流式重组网络数据包的方法,其特征在于,对应数据调用指令为解析模块需获取的数据第一长度和序列号。

4.根据权利要求3所述的一种流式重组网络数据包的方法,其特征在于,在步骤s3中,具体还包括如下步骤:

5.根据权利要求4所述的一种流式重组网络数据包的方法,其特征在于,在步骤s32中,具体还包括如下步骤:

6.根据权利要求5所述的一种流式重组网络数据包的方法,其特征在于,在步骤s34中,如下一数据包的序列号不在解析模块需求范围内,则直接给解析模块返回从首位数据包内提取还原的有效数据。

7.根据权利要求1所述的一种流式重组网络数据包的方法,其特征在于,如列表上的序列号不正确时,返回还原失败指令,待下一数据包到来,再次生成调用指令进行获取,如还不正确,尝试下次获取,重复n次后仍无正确序列号时,则解析模块进入错误处理流程,当前调用指令失效。

8.根据权利要求1所述的一种流式重组网络数据包的方法,其特征在于,如流重组模块成功提取还原有效数据并返回给解析模块,则流重组模块将当前数据包对应的相关信息以及序列号从列表上删除,以腾出列表空间。

9.实现权利要求1-8任意一项所述的一种流式重组网络数据包的方法的系统,其特征在于,包括流重组模块和解析模块,所述解析模块通过数据调用接口与所述重组模块连接,所述流重组模块通过相关函数入口获取数据包,提取数据包的相关信息、数据长度以及序列号,依据序列号将数据包的相关信息和数据长度挂载至列表中,依据解析模块需求流重组模块提取还原数据包内有效数据传递至解析模块。

10.一种存储介质,其特征在于,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如上述权利要求1-8任意一项所述一种流式重组网络数据包的方法的步骤。


技术总结
本发明涉及网络监测技术领域,公开了一种流式重组网络数据包的方法、系统及存储介质,获取数据包,提取数据包相关信息以及序列号,依序列号挂载至列表中,同时生成处理通知;依处理通知生成调用指令;依调用指令从列表上找到序号正确的数据包,从数据包内提取还原得到有效数据;从而避免了块式缓存的限制,减少大批量数据包的内存占用、完整还原不同数据包内相连接的内容,提高了解析模块的检测成功率,同时解析模块在需求时向流重组模块通过调用接口获取即可,简化了其他模块对重组还原数据的使用方式,降低了还原结果的延迟。

技术研发人员:李春辉,李现强,马金刚,姚卫华
受保护的技术使用者:北京浩瀚深度信息技术股份有限公司
技术研发日:
技术公布日:2024/1/16
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1