一种网络流量还原回放方法

文档序号:7804855阅读:470来源:国知局
一种网络流量还原回放方法
【专利摘要】本发明公开了一种网络流量还原回放的方法,其特征在于:(a)实施流量捕获:按照数据包到达的先后次序实时记录每一个数据包对应的到达时间戳,并记录每一个数据包对应的捕获开始时间;(b)实施还原回放:每一次回放开始时记录下对应的回放开始时间,回放时根据每个数据包的时间戳和记录的所述捕获开始时间、回放开始时间以及当前时间来控制数据包的发送时间。该方法实现简单,能够准确还原再现捕获时的网络环境。
【专利说明】—种网络流量还原回放方法
【技术领域】
[0001]本发明涉及网络设备测试领域,尤其涉及一种网络流量还原回放方法。
【背景技术】
[0002]测试是保障网络设备可靠性和稳定性的关键环节。在网络高速化的背景下,由于数据量的提升,交换机、防火墙、网络监控系统等网络设备受到的流量压力越来越大,开发出一套高效可靠的设备必须经过更加严格的测试。互联网规模的不断提升,要求网络安全设备能在更加高速和更为复杂的环境中正确的实行安全保护的功能。这使得新型安全产品的开发必须具有更为强大的测试手段和更为逼真的测试环境。
[0003]现有的测试手段和测试环境,已经不能很好地满足这些需求。测试技术的发展严重滞后于网络安全产业的发展速度,已经对网络安全产业的发展造成了不利影响。由于目前企业级的测试环境仍无法再现实际运行网络的复杂性,通过企业测试流程的产品仍然有可能是不完善的。没有经过全面测试的产品在布署到实际系统中后可能造成网络不稳定、瘫痪或引入严重的安全漏洞。当前网络设备测试领域迫切需要一种能够模拟再现实际网络环境的测试方法,结合人工仿真测试等常规方法,为网络安全设备提供准确、全面、系统的测试。
[0004]流量回放方法是一种将真实网络流量存储记录并进行还原回放的网络测试方法。通过将捕获得到的真实网络流量还原回放到测试网络,可以再现实际的网络场景,达到考察被测系统在实际网络环境中的功能和性能的目的。流量回放方法是一种能对各类网络/安全设备(如IDS,Firewall, IPS等)进行客观、全面、系统测试的重要方法。

【发明内容】

[0005]针对现有技术的不足,本发明的目的是提供一种网络流量还原回放方法,实现对网络流量的准确回放,真实还原再现捕获时的网络场景。
[0006]为达到以上目的,本发明采取如下技术方案:
[0007]一种网络流量还原回放方法,其特征在于,所述方法包括以下步骤:
[0008](a)实施流量捕获:按照数据包到达的先后次序实时记录每一个数据包对应的到达时间戳,并记录每一个数据包对应的捕获开始时间;
[0009](b)实施还原回放:每一次回放开始时记录下对应的回放开始时间,回放时根据每个数据包的时间戳和记录的所述捕获开始时间、回放开始时间以及当前时间来控制数据包的发送时间。
[0010]此外,本发明还公开了一种网络流量还原回放方法,包括以下步骤:
[0011](I)对要回放的流量进行捕获并存储:
[0012]在捕获流量的同时将本次捕获开始时间记录下来,以备回放时使用;
[0013]在流量捕获的过程中,除了将数据报文按照数据包到达的先后顺序实时地存入存储设备,还在捕获流量的同时为每一个数据包记录一个时间戳;[0014](2)对捕获的流量进行还原回放:
[0015]记录下本次回放开始时间,在还原回放的过程中,每当一个队列从存储设备中取得一个数据包,则执行如下步骤:
[0016](21)获取这个数据包在捕获时记录下来的时间戳;
[0017](22)获取当前的时间值;
[0018](23)比较数据包时间戳和捕获开始时间,得到该数据包的捕获时刻距捕获的起始点的时间长度,记为Lenl ;
[0019](24)比较当前时间和回放开始时间,得到回放开始到当前的时间长度,记为Len2 ;
[0020](25)比较Lenl和Len2两个时间长度,当Lenl等于或小于Len2时,将数据包发送出去;
[0021](26)如果 Lenl 大于 Len2,重复步骤(22)到(25);
[0022](3)不断重复步骤(2),直到数据包被全部回放。
[0023]本发明的一种网络流量还原回放方法具有实现简单,还原精度高的优点。
【专利附图】

【附图说明】
[0024]图1是本发明的网络流量还原回放方法示意图。
【具体实施方式】
[0025]以下结合附图和具体实施例对本发明进行详细说明。
[0026]在一个实施例中,本发明通过如下步骤来实现网络流量的还原回放方法:
[0027](I)在流量捕获阶段:按照数据包到达的先后次序实时记录每一个数据包对应的到达时间戳,并记录每一个数据包对应的捕获开始时间;
[0028](2)在回放阶段:每一次回放开始时记录下对应的回放开始时间,回放时根据每个数据包的时间戳和记录的所述捕获开始时间、回放开始时间以及当前时间来控制数据包的发送时间。
[0029]对于该实施例而言,正是采用上述技术方案才以简单、可靠的方式实现了对网络流量的准确回放,真实还原再现捕获时的网络场景。
[0030]在另一个实施例中,所述捕获开始时间是指网络流量开始捕获时操作系统的绝对时间;所述回放开始时间是指网络流量开始回放时操作系统的绝对时间;所述当前时间是指在当前时刻操作系统的绝对时间。对于该实施例而言,也可以不是操作系统的绝对时间,可以是参考其他时间基准的相对时间。
[0031]在另一个实施例中,本发明的网络流量还原回放方法包括以下步骤:
[0032](I)对要回放的流量进行捕获并存储,在捕获流量的同时将本次捕获的开始时间记录下来,以备回放时使用。在流量捕获的过程中,除了将数据报文按照数据包到达的先后顺序实时地存入存储设备,还在捕获流量的同时为每一个数据包记录一个时间戳。在特定实施例中,在写入存储设备时,每个数据包按照到达顺序依次写入,同时数据包的时间戳与数据包内容一同写入,以方便在读取数据包内容时可以直接获得对应的时间戳。为了提高写入速度,在特定实施例中,存储设备还可以采用磁盘阵列等高速存储设备。[0033](2)对捕获的流量进行还原回放,记录下本次回放的开始时间。在还原回放的过程中,每当一个队列从存储设备中取得一个数据包,则执行如下步骤:
[0034](21)得到这个数据包在捕获时记录下来的时间戳;
[0035](22)得到当前的时间值;
[0036](23)比较数据包时间戳和捕获开始时间,得到该数据包的捕获时刻距捕获的起始点的时间长度,记为Lenl,也即意味着在捕获的过程中,从捕获开始经过Lenl长的时间后,系统捕获到当前数据包;
[0037](24)比较当前时间和回放开始时间,得到回放开始到当前的时间长度,记为Len2,这意味着从开始还原回放到当前,已经过去了 Len2长的时间;
[0038](25)比较得到的Lenl和Len2两个时间长度,当Lenl等于或小于Len2时,说明在流量还原回放过程中,当前的回放时间点十分接近当初在捕获过程中捕获到当前数据包的捕获时间点,因此马上将数据包发送出去。
[0039](26)否则,如果Lenl大于Len2,则说明对于当前的数据包,当前回放时间点还未至IJ对应的捕获时间点,因此重复步骤(22)到(25);
[0040](3)不断重复步骤(2),直到数据包被全部回放。
[0041]对于该实施例而言,其与前述实施例核心思想一致。简而言之,本实施例主要体现在如图1所示流程:
[0042]I)对于要回放的流量进行捕获并存储成一个流量文件,同时记录捕获的开始时间;
[0043]2)在捕获过程中,除了按照数据包到达的先后次序,依次保存每个数据包的内容以外,同时按照数据包到达的时间点为每个数据包记录数据包的时间戳;
[0044]3)在回放捕获的流量文件时,记录回放的开始时间;
[0045]4)在回放过程中,对于每一个从存储设备中读取的数据包,同时得到其在捕获时记录的时间戳并计算该时间戳与捕获开始时间的时差,将该时差与数据包从回放开始到现在所经过的时长相比较,当后者大于前者时,发送数据包,否则继续等待。
[0046]优选的,上述方法中,步骤(I)中所述捕获的开始时间是指网络流量开始捕获时操作系统的绝对时间。
[0047]步骤(2)中所述回放的开始时间是指网络流量开始回放时操作系统的绝对时间。
[0048]步骤(22)中所述当前的时间值是指在当前时刻操作系统的绝对时间。
[0049]优选地,步骤⑴中所述捕获的开始时间、步骤(2)中所述回放的开始时间,步骤
(22)中所述当前的时间值和步骤⑴中所述为每个数据包记录的时间戳,这四个时间值的具有一致的时间精确度。
[0050]步骤(25)中所述捕获时间点,是指以某次捕获开始时间为起始点,在捕获过程中某一点所对应经过的时间长度;所述回放时间点,是指以某次回放开始时间为起始点,在回放过程中某一点所对应经过的时间长度。
[0051]以上利用具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种网络流量还原回放方法,其特征在于,所述方法包括以下步骤: (a)实施流量捕获:按照数据包到达的先后次序实时记录每一个数据包对应的到达时间戳,并记录每一个数据包对应的捕获开始时间; (b)实施还原回放:每一次回放开始时记录下对应的回放开始时间,回放时根据每个数据包的时间戳和记录的所述捕获开始时间、回放开始时间以及当前时间来控制数据包的发送时间。
2.根据权利要求1所述的方法,其特征在于:优选的,所述捕获开始时间是指网络流量开始捕获时操作系统的绝对时间;所述回放开始时间是指网络流量开始回放时操作系统的绝对时间;所述当前时间是指在当前时刻操作系统的绝对时间。
3.—种网络流量还原回放方法,其特征在于,所述方法包括以下步骤: (1)对要回放的流量进行捕获并存储: 在捕获流量的同时将本次捕获开始时间记录下来,以备回放时使用; 在流量捕获的过程中,除了将数据报文按照数据包到达的先后顺序实时地存入存储设备,还在捕获流量的同时为每一个数据包记录一个时间戳; (2)对捕获的流量进行还原回放: 记录下本次回放开始时间,在还原回放的过程中,每当一个队列从存储设备中取得一个数据包,则执行如下步骤: (21)获取这个数据包在捕获时记录下来的时间戳; (22)获取当前的时间值; (23)比较数据包时间戳和捕获开始时间,得到该数据包的捕获时刻距捕获的起始点的时间长度,记为Lenl ; (24)比较当前时间和回放开始时间,得到回放开始到当前的时间长度,记为Len2; (25)比较Lenl和Len2两个时间长度,当Lenl等于或小于Len2时,将数据包发送出去; (26)如果Lenl大于Len2,重复步骤(22)到(25); (3)不断重复步骤(2),直到数据包被全部回放。
4.根据权利要求3所述的方法,步骤(I)中所述捕获开始时间是指网络流量开始捕获时系统的绝对时间。
5.根据权利要求3所述的方法,步骤(I)中,在写入存储设备时,每个数据包按照到达顺序依次写入,同时数据包的时间戳与数据包内容一同写入,以方便在读取数据包内容时可以直接获得对应的时间戳。
6.根据权利要求3所述的方法,步骤(I)中,所述存储设备为磁盘阵列。
7.根据权利要求3所述的方法,步骤(2)中所述回放开始时间是指网络流量开始回放时系统的绝对时间。
8.根据权利要求3所述的方法,步骤(22)中所述当前时间是指在当前时刻系统的绝对时间。
9.根据权利要求3所述的方法,步骤⑴中所述捕获的开始时间、步骤(2)中所述回放开始时间,步骤(22)中所述当前时间和步骤(I)中所述为每个数据包记录的时间戳,这四个时间值具有一致的时间精确度。
【文档编号】H04L12/26GK103986624SQ201410230483
【公开日】2014年8月13日 申请日期:2014年5月28日 优先权日:2014年5月28日
【发明者】陶敬, 韩婷, 王智, 折波, 黄旭昌, 胡炀, 梁肖, 陈雅静, 赵雨森 申请人:西安交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1