一种多数据包文件冒泡排序的方法技术

技术编号:32020006 阅读:39 留言:0更新日期:2022-01-22 18:38
本发明专利技术涉及网络数据包排序技术领域,尤其涉及一种多数据包文件冒泡排序的方法,包括依次进行初步读取文件、文件初步排序、时间批次划分、按时间批次依次读取文件和文件冒泡排序。本技术方案将数据包文件中的数据报文完全按照真实时刻进行重新排序,方便后续进行攻击行为发现和复盘;为了避免同时打开的文件句柄数太多,根据批次选择性打开部分需要关注文件,避免与时刻无关的文件句柄造成的资源浪费;每个数据包文件执行预读策略,将参与的排序流程在内存中进行,排序效率较高,且实现了对数据包文件拆分后重新组合,限制了参与冒泡排序的文件的大小,为快速将多数据包文件进行排序并且重放打下了良好的基础。排序并且重放打下了良好的基础。排序并且重放打下了良好的基础。

【技术实现步骤摘要】
一种多数据包文件冒泡排序的方法


[0001]本专利技术涉及网络数据包排序
,尤其涉及一种多数据包文件冒泡排序的方法。

技术介绍

[0002]一般网络攻击都分为多个阶段,如信息收集、入侵、漏洞利用、横向移动等,而在每个阶段想要准确捕获的攻击产生的流量,则需要在不同的位置(如:信息收集在互联网出口,横向移动在用户内部网络)进行网络数据包的捕获并且保存为数据包文件。而想要让完整的攻击链条得以重现,重复研究其攻击手法,以做防御措施,则需要将捕获下来的数据流量进行反复重放(保留原始数据报文时间戳),并且将在多个攻击环节的数据包文件进行整合分析。
[0003]由于在不同采集位置采集的数据包文件,分别处于不同时间线,则需要将时间线进行重新拼接。常规的排序算法是将数据报文读取到内存中,按照数据报文的时间进行标准冒泡排序,但由于数据包文件巨大(多达近TB级别),系统资源(内存)不足,计算排序困难,无法实现内存冒泡排序。

技术实现思路

[0004]本专利技术的目的在于根据现现有技术的不足,提供一种多数据包文件冒泡排序的方法。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多数据包文件冒泡排序的方法,其特征在于,包括以下步骤:S1,初步读取文件:即依次遍历所有待排序的数据包文件,读取每个数据包文件的第一个数据报文的时间戳和最后一个数据报文的时间戳,并令数据包文件的第一个数据报文的时间戳和最后一个数据报文的时间戳分别为数据包文件自身的开始时间和结束时间;S2,文件初步排序:根据读取到的数据包文件的开始时间和结束时间,获取数据包文件自身的时间跨度,并基于开始时间和结束时间的大小,以开始时间从小到大的方式进行排序,并将文件路径和文件开始结束时间作为结构体装载入队列中;依次从队列中取出结构体,读取文件结构体的开始结束时间,分别将存在时间交叉的不同数据包文件放置于不同的分组队列中,且每个分组队列中所有数据包文件按时间从小到大的顺序进行排列;S3,时间批次划分:基于步骤S2中的排列结果,每个分组队列第一个数据包文件的开始时间和所有数据包文件的结束时间设置时间节点,并按照时间节点划分将所有的数据包文件划分为若干个时间批次,若干个时间批次对应了若干个无重叠的时间段,且所有时间批次的时间段无缝拼接构成一条完整的时间线;S4,按时间批次依次读取文件:将每个分组队列中从数据包文件根据时间批次的先后顺序打开,并按照时间顺序同步读取每个分组队列中的数据包文件,针对每个分组队列,将数据包文件中的数据报文划分为若干个相同大小的预读缓存文件,每个预读缓存文件都包含有若干个按时间戳从小到大排序的数据报文;每读取出一个预读缓存文件都进行一次提交和缓存,然后将提交的预读缓存文件按照时间戳从小到大进行组内排列组合;S5,文件冒泡排序:根据时间线分次接收并读取预读缓存文件,并对所有的预读缓存文件进行冒泡排序,依次保存并输出最小时间戳的数据报文。2.如权利要求1所述一种多数据包文件冒泡排序的方法,其特征在于:所述文件初步排序包括以下步骤:S21,基于中央处理器生成若干个数据采集通道,每个数据采集通道对应一条时间线,所有数据采集通道对应的时间线平行且相等;S22,基于各数据采集通道读取数据包文件,每个数据采集通道中的数据包文件都按照时间的大小,在对应的时间线上进行无重叠时间段的排序;S23,将数据包文件的排序状态进行存储记录。3.如权利要求2所述一种多数据包文件冒泡排序的方法,其特征在于:所述时间批次划分包括以下步骤:S31,将所...

【专利技术属性】
技术研发人员:徐文勇田红伟王伟旭
申请(专利权)人:成都数默科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1