一种传送测试数据包的方法和系统转让专利

申请号 : CN200810172060.6

文献号 : CN101729300A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李爱民唐利徐瑞林杨捷李达有冯恩波任雄伟

申请人 : 华为技术有限公司

摘要 :

本发明的实施例公开了一种传送测试数据包的方法和系统,能够减少测试系统中测试数据包到达测试单元的时间延迟,解决测试数据包之间不同的时间误差问题。本发明实施例提供的方法包括:设备驱动程序对接收的测试数据包进行处理;设备驱动程序将处理后的测试数据包直接传送给测试单元。本发明实施例通过去除设备驱动程序处理时延、操作系统处理时延、各协议栈和测试单元本身的处理时延,来解决现有测试系统中的时间延迟问题。

权利要求 :

1.一种传送测试数据包的方法,其特征在于,包括:设备驱动程序对接收的测试数据包进行处理;

设备驱动程序将处理后的测试数据包直接传送给测试单元。

2.根据权利要求1所述的方法,其特征在于,在所述设备驱动程序对接收的测试数据包进行处理的步骤之前,所述方法包括:设备驱动程序从网络设备传送的数据包中过滤出测试数据包。

3.根据权利要求2所述的方法,其特征在于,所述设备驱动程序对接收的测试数据包进行处理的步骤,包括:设备驱动程序接收正常格式的测试数据包;

设备驱动程序从标准时间源获取时间戳;

设备驱动程序将所述获取的时间戳与所述接收的正常格式的测试数据包构造成新的测试数据包。

4.根据权利要求2所述的方法,其特征在于,在所述设备驱动程序从网络设备传送的数据包中过滤出测试数据包的步骤之前,所述方法还包括:打时间戳设备从标准时间源获取时间戳;

打时间戳设备对到达网络设备的数据包打上时间戳。

5.根据权利要求4所述的方法,其特征在于,所述设备驱动程序对接收的测试数据包进行处理的步骤,包括:设备驱动程序接收所述打上时间戳的测试数据包;

设备驱动程序从所述打上时间戳的测试数据包中提取时间戳,并将所述打上时间戳的测试数据包恢复为正常格式的测试数据包;

设备驱动程序将所述提取的时间戳与所述恢复为正常格式的测试数据包构造成新的测试数据包。

6.根据权利要求3或5所述的方法,其特征在于,所述构造成的新的测试数据包的数据结构为:所述时间戳置于所述测试数据包之前,或者所述时间戳置于所述测试数据包之后。

7.根据权利要求3或5所述的方法,其特征在于,所述设备驱动程序将处理后的测试数据包直接传送给测试单元的步骤具体为:设备驱动程序将所述构造成的新的测试数据包直接传送给测试单元。

8.根据权利要求7所述的方法,其特征在于,所述设备驱动程序将所述构造成的新的测试数据包直接传送给测试单元的步骤,还包括:设备驱动程序将所述构造成的新的测试数据包存储为文件,将该文件直接传送给测试单元,由所述测试单元直接从该文件中获取所述构造成的新的测试数据包。

9.根据权利要求3、5或8任一项所述的方法,其特征在于,当所述测试单元需要时间戳信息时,由所述测试单元从所述构造成的新的测试数据包中获取所述时间戳。

10.一种传送测试数据包的系统,其特征在于,包括:处理单元,用于设备驱动程序对接收的测试数据包进行处理;

传送单元,用于设备驱动程序将所述处理单元处理后的测试数据包直接传送给测试单元。

11.根据权利要求10所述的系统,其特征在于,在所述处理单元之前,所述系统还包括:过滤单元,用于设备驱动程序从网络设备传送的数据包中过滤出测试数据包。

12.根据权利要求11所述的系统,其特征在于,所述处理单元包括:第一接收模块,用于设备驱动程序接收正常格式的测试数据包;

第一时间戳获取模块,用于设备驱动程序从标准时间源获取时间戳;

第一构造新包模块,用于设备驱动程序将所述第一时间戳获取模块获取的时间戳与所述第一接收模块接收的正常格式的测试数据包构造成新的测试数据包。

13.根据权利要求11所述的系统,其特征在于,在过滤单元之前,所述系统还包括打时间戳设备,所述打时间戳设备包括:第二时间戳获取模块,用于打时间戳设备从标准时间源上获取时间戳;

打时间戳模块,用于打时间戳设备对到达网络设备的数据包打上所述第二时间戳获取模块获取的时间戳。

14.根据权利要求13所述的系统,其特征在于,所述处理单元包括:第二接收模块,用于设备驱动程序接收所述打上时间戳的测试数据包;

解时间戳模块,用于设备驱动程序从所述打上时间戳的测试数据包中提取时间戳,并将所述打上时间戳的测试数据包恢复为正常格式的测试数据包;

第二构造新包模块,用于设备驱动程序将所述解时间戳模块提取的时间戳与所述恢复为正常格式的测试数据包构造成新的测试数据包。

15.根据权利要求12或14所述的系统,其特征在于,所述传送单元,具体用于设备驱动程序将所述第一构造新包模块或所述第二构造新包模块构造成的新的测试数据包直接传送给测试单元。

16.根据权利要求15所述的系统,其特征在于,所述传送单元还包括:存储文件模块,用于设备驱动程序将所述第一构造新包模块或所述第二构造新包模块构造成的新的测试数据包存储为文件,将该文件直接传送给测试单元,由所述测试单元直接从该文件中获取所述构造成的新的测试数据包。

说明书 :

一种传送测试数据包的方法和系统

技术领域

[0001] 本发明涉及通讯领域,具体而言是涉及测试技术中的一种传送测试数据包的方法和系统。

背景技术

[0002] 随着电信网络的发展,固定网领域中光纤的使用,移动网领域中3G/4G技术的应用,使电信网络的带宽得到质的提升,这为新业务的发展提供了保障。目前主流新业务,譬如IP电视(IPTV,Internet Protocol Television)、基于IP的语音(VOIP,Voice over IP)技术等,在运营这些新业务的同时,经常出现各种问题,譬如在IPTV领域,出现马赛克、图像抖动、声音和图像不同步、使用遥控器进行操作时,画面无响应、黑屏、影片有色块等故障现象;在VOIP领域,出现声音失真、延迟、时断时续、回声等故障现象。如何定位解决这些故障,相应的IPTV&VOIP测试技术也应运而生,而这些测试技术与获取的测试时间精度密切相关。
[0003] 参见图1,现有测试技术中,测试数据包到达网络设备101,经网络设备101处理完后传送给设备驱动程序102,经设备驱动程序102处理完后把该数据传送给操作系统103(OS,Operation System)。操作系统103根据自身的调度算法对该测试数据包进行调度处理,处理完后把该测试数据包传送给协议栈104,在协议栈104处理时,也需要根据操作系统103的调度原则进行调度处理,并把测试数据包传送给测试单元105。测试单元105启动测试算法,当其需要系统时间时,到标准时间源106获取当前的系统时间戳。
[0004] 现对测试数据包经过的以上各步骤的处理时间作一定的假设:
[0005] a、网络设备处理,假设处理时间为t1;
[0006] b、设备驱动程序处理,假设处理时间为t2;
[0007] c、操作系统调度,假设相同优先级调度时间片为t3,当前操作系统相同优先级的任务数为n;
[0008] d、协议栈处理,假设协议栈处理时间为t4,并假设要经过m个协议栈处理,并且假设各协议栈处理时间相同;
[0009] e、测试单元处理,假设处理时间为t5;
[0010] f、操作系统更高优先级任务的处理时间为t6。
[0011] 测试数据包从网络设备101到测试单元105经过的层次有网络设备、设备驱动程序、操作系统、各协议栈和测试单元,相应的层次节点上都有一定的处理时间,那么测试数据包从网络设备101到达测试单元105时所经历的时间为:
[0012] TotalTime=t1+t2+(n*t3)+(m*t4)+t5+t6。
[0013] 在实现本发明过程中,发明人发现现有技术中至少存在这样的问题:
[0014] 测试数据包到达测试单元时,实际时间比网络设备接收到该测试数据包时间延迟了TotalTime;由于操作系统相同优先级任务数n依据当前操作系统的状态是变化的,同时操作系统的更高优先级任务处理时间t6也是可变的,在有多个测试数据包同时到达测试单元时,这些测试数据包到达网络设备的时间差值是不一定的,这个差值决定于操作系统的调度策略和当前操作系统的任务数n及当前更高优先级任务的处理时间t6;而且即使操作系统相同优先级任务数n不变,操作系统的更高优先级任务处理时间t6也不变,操作系统任务调度对每个相同优先级都有固定的调度时间片t3,而这个时间片t3对这些多个测试数据包也将引入固定的时间误差。

发明内容

[0015] 有鉴于此,本发明实施例提供了一种传送测试数据包的方法和系统,能够减少测试系统中测试数据包到达测试单元的时间延迟,解决测试数据包之间不同的时间误差问题。
[0016] 为实现上述目的,本发明实施例是通过如下技术方案实现的:
[0017] 一方面,提供一种传送测试数据包的方法,包括:
[0018] 设备驱动程序对接收的测试数据包进行处理;
[0019] 设备驱动程序将处理后的测试数据包直接传送给测试单元。
[0020] 另一方面,提供一种传送测试数据包的系统,包括:
[0021] 处理单元,用于设备驱动程序对接收的测试数据包进行处理;
[0022] 传送单元,用于设备驱动程序将所述处理单元处理后的测试数据包直接传送给测试单元。
[0023] 由以上本发明实施例提供的技术方案可知,通过设备驱动程序对接收的测试数据包进行处理,并将处理后的测试数据包直接传送给测试单元,能够把设备驱动程序处理时延、操作系统处理时延、各协议栈和测试单元本身的处理时延去除,因此能够减少测试系统中测试数据包到达测试单元的时间延迟,解决测试数据包之间不同的时间误差问题。

附图说明

[0024] 图1为现有技术中测试数据包在测试系统中传送的示意图;
[0025] 图2为本发明实施例提供的传送测试数据包的方法流程图;
[0026] 图3为本发明实施例构造成的新的测试数据包的数据结构示意图;
[0027] 图4为本发明实施例一提供的传送测试数据包实现方法的流程图;
[0028] 图5为本发明实施例一中测试数据包在测试系统中传送的示意图;
[0029] 图6为本发明实施例二中测试数据包在测试系统中传送的示意图;
[0030] 图7为本发明实施例三提供的传送测试数据包实现方法的流程图;
[0031] 图8为本发明实施例三中测试数据包在测试系统中传送的示意图;
[0032] 图9为本发明实施例四中测试数据包在测试系统中传送的示意图;
[0033] 图10为本发明实施例提供的传送测试数据包的系统组成示意图;
[0034] 图11为本发明实施例提供的一种传送测试数据包的系统的详细结构图;
[0035] 图12为本发明实施例提供的另一种传送测试数据包的系统的详细结构图。

具体实施方式

[0036] 下面结合附图对本发明实施例提供的技术方案进一步详细描述。
[0037] 参见图2,图2为本发明实施例提供的传送测试数据包的方法,包括:
[0038] 步骤201,设备驱动程序对接收的测试数据包进行处理。
[0039] 在设备驱动程序对接收的测试数据包进行处理的步骤之前,首先由设备驱动程序从网络设备传送的数据包中过滤出测试数据包。具体方法可以是,在设备驱动程序中注册一个与测试数据包相关的过滤钩子函数,由所述过滤钩子函数从网络设备传送的数据包中过滤出测试数据包。
[0040] 设备驱动程序对接收的测试数据包有两套处理方案:
[0041] 第一套处理方案,当设备驱动程序接收的测试数据包为正常格式的测试数据包时,设备驱动程序从标准时间源获取时间戳,并将获取的时间戳与接收的正常格式的测试数据包构造成新的测试数据包。
[0042] 其中,从标准时间源获取时间戳包括如下几种实现方案:
[0043] (1)从硬件时钟上获取,譬如:全球定位系统(GPS,Global PositioningSystem)、宽带码分多址(WCDMA,Wideband Code Division Multiple Access)等。
[0044] (2)从网络时间协议(NTP,Network Time Protocol)时间服务器上获取。
[0045] (3)从中央处理单元(CPU,Central Processing Unit)运行的tick数上获取。
[0046] (4)从操作系统OS运行的tick数上获取。
[0047] 第二套处理方案,当设备驱动程序接收的测试数据包为打上时间戳的测试数据包时,设备驱动程序从该打上时间戳的测试数据包中提取时间戳,并将该打上时间戳的测试数据包恢复为正常格式的测试数据包,然后将提取的时间戳与恢复为正常格式的测试数据包构造成新的测试数据包。
[0048] 对于第二套处理方案,需要在现有的测试系统中新增打时间戳的硬件设备,对到达网络设备的数据包,由打时间戳设备从标准时间源获取时间戳,对到达网络设备的数据包打上时间戳,形成一个带时间戳的数据包。这种通过硬件实现包的重组方式,得到的打上时间戳的数据包为私有格式的数据包,因此当网络设备驱动程序接收到这种私钥格式的数据包后,需要解开私有数据包,从中提取出相应的时间戳信息,并将这种打上时间戳的数据包恢复为正常格式的数据包。
[0049] 这两套处理方案相比较而言,第一套处理方案无需新增打时间戳的硬件设备,成本相对较低;第二套处理方案是通过硬件方式获取时间戳信息并向到达网络设备的测试数据包打上时间戳,速度快,精确度更高,而且可以将网络设备处理时延去除。
[0050] 通过这两套处理方案设备驱动最终构造得到一个新的测试数据包,该构造成的新的测试数据包有两种数据结构:
[0051] 一种是时间戳置于测试数据包之前;另一种是时间戳置于测试数据包之后。这两种数据结构示意图如图3所示。
[0052] 步骤202,设备驱动程序将处理后的测试数据包直接传送给测试单元。
[0053] 本步骤具体为:设备驱动程序将步骤201构造成的新的测试数据包直接传送给测试单元。
[0054] 通过将构造成的新的测试数据包直接传送给测试单元,而不经过操作系统和协议栈,可以将操作系统的处理时延和各协议栈的处理时延去除,能够避免由于操作系统的调度策略和当前操作系统的任务数及当前更高优先级任务的处理时间带来的时间误差问题;测试单元在处理时,可以根据需要调用相应的协议栈,并把这种带有时间戳的测试数据包在各协议栈中进行传递。
[0055] 而且,获取的时间戳信息可以在测试数据包传送到设备驱动程序时,由设备驱动程序从标准时间源上获取,或者在测试数据包到达网络设备时由打时间戳设备从标准时间源上获取,当测试单元需要时间戳信息时,由测试单元从该构造成的新的测试数据包中获取所述时间戳,因此也可以把设备驱动程序的处理时延以及测试单元本身的处理时延去除。
[0056] 一种优化实施例是,设备驱动程序将所述构造成的新的测试数据包存储为文件,将该文件直接传送给测试单元,由所述测试单元直接从该文件中获取所述构造成的新的测试数据包。该优化实施例实现了设备驱动程序构造成的新的测试数据包的缓存,不会造成测试数据包的丢失,而且使得测试单元可以根据处理的需要进行离线分析或进行再分析。
[0057] 因此,本发明实施例提供的传送测试数据包的方法,通过设备驱动程序对接收的测试数据包进行处理,并将处理后的测试数据包直接传送给测试单元,能够把设备驱动程序处理时延、操作系统处理时延、各协议栈和测试单元本身的处理时延去除,能够减少测试系统中测试数据包到达测试单元的时间延迟,解决测试数据包之间不同的时间误差问题;同时通过由设备驱动程序或打时间戳设备从标准时间源上获取时间戳,并由设备驱动程序将测试数据包构造成带时间戳的新的测试数据包,直接进入测试系统内部进行传送,也解决了测试数据包和时间戳传送问题。
[0058] 下面用具体的实施例对本发明实施例提供的传送测试数据包的方法进行说明。
[0059] 实施例一
[0060] 在本实施例中,设备驱动程序接收到测试数据包后,从标准时间源获取相应的时间戳信息,并将该时间戳与接收的测试数据包构造成带有时间戳的新的测试数据包,直接传送给测试单元,而不经操作系统和协议栈。测试单元在进行检测处理时根据需要调用相应的协议栈,并将该带有时间戳的测试数据包在各协议栈中进行传递,当测试单元需要时间戳信息时,由测试单元从该带时间戳的测试数据包中获取时间戳。
[0061] 参见图4,图4为本实施例一提供的传送测试数据包实现方法的流程图,其中测试数据包在测试系统中的传送可参见图5。本实施例的实现方法流程如下:
[0062] 步骤401,在设备驱动程序中注册一个与测试数据包相关的过滤钩子函数。
[0063] 步骤402,设备驱动程序接收数据包。
[0064] 步骤403,设备驱动程序通过过滤钩子函数判断数据包是否符合过滤条件,如果符合过滤条件,转入步骤404;如果不符合过滤条件,转入步骤408。
[0065] 步骤404,设备驱动程序从该数据包中截获测试数据包。
[0066] 本步骤中,设备驱动程序有多种截获方式,例如采用以太帧、IP帧、UDP帧、RTP帧、TS帧等方式截获测试数据包。
[0067] 步骤405,设备驱动程序从标准时间源获取时间戳。
[0068] 步骤406,设备驱动程序将获取的时间戳与截获的测试数据包构造成新的数据包,该数据包即为带时间戳信息的测试数据包。
[0069] 构造成的新的测试数据包的数据结构有两种,一种是时间戳置于测试数据包之前;另一种是时间戳置于测试数据包之后。这两种数据结构示意图如图3所示。
[0070] 步骤407,设备驱动程序将构造成的带时间戳的测试数据包直接传送给测试单元。
[0071] 步骤408,设备驱动程序将数据包传送给操作系统,按计算机正常的流程处理。
[0072] 实施例二
[0073] 本实施例二在获取时间戳信息、从符合过滤条件的数据包中截获测试数据包、以及将获取的时间戳与截获的测试数据包构造成带时间戳的测试数据包等步骤都同于实施例一,本实施例二与实施例一不同之处在于:在步骤407中,设备驱动程序将构造成的带时间戳的测试数据包存储为文件,将该文件直接传送给测试单元,由测试单元根据测试的需要直接从所述文件中获取该带时间戳的测试数据包。在本实施例的测试数据包在测试系统中的传送可参见图6。
[0074] 本实施例二较实施例一,可以实现设备驱动程序构造成的新的测试数据包的缓存,不会造成测试数据包的丢失,而且使得测试单元可以根据处理的需要进行离线分析或进行再分析。
[0075] 实施例三
[0076] 在本实施例中,新增打时间戳的硬件设备,由该打时间戳设备从标准时间源获取相应的时间戳信息,并对到达网络设备的数据包打上时间戳,形成带时间戳的私有数据包,当打上时间戳的私有数据包传送到设备驱动程序,由设备驱动程序首先解开该私有数据包,从中提取时间戳,并将该打上时间戳的私有数据包恢复为正常格式的数据包。
[0077] 参见图7,图7为本实施例三提供的传送测试数据包实现方法的流程图,其中测试数据包在测试系统中的传送可参见图8。本实施例的实现方法流程如下:
[0078] 步骤701,在设备驱动程序中注册一个与测试数据包相关的过滤钩子函数。
[0079] 步骤702,网络设备接收数据包。
[0080] 步骤703,打时间戳设备从标准时间源获取时间戳。
[0081] 步骤704,打时间戳设备对到达网络设备的数据包打上时间戳,形成带时间戳的私有数据包。
[0082] 本步骤是通过硬件方式实现数据包的重组,重组后的数据包为私有格式的私有数据包。
[0083] 步骤705,网络设备将该带时间戳的私有数据包传送给设备驱动程序。
[0084] 步骤706,设备驱动程序解开该私有数据包,从中提取时间戳,并将该打上时间戳的私有数据包恢复为正常格式的数据包。
[0085] 步骤707,设备驱动程序通过过滤钩子函数判断恢复为正常格式的数据包是否符合过滤条件,如果符合过滤条件,转入步骤708;如果不符合过滤条件,转入步骤711。
[0086] 步骤708,设备驱动程序从恢复为正常格式的数据包中截获测试数据包。
[0087] 本步骤中,设备驱动程序有多种截获方式,例如采用以太帧、IP帧、UDP帧、RTP帧、TS帧等方式截获测试数据包。
[0088] 步骤709,设备驱动程序将提取的时间戳与截获的测试数据包构造成新的数据包,该数据包即为带时间戳信息的测试数据包。
[0089] 构造成的新的测试数据包的数据结构有两种,一种是时间戳置于测试数据包之前;另一种是时间戳置于测试数据包之后。这两种数据结构示意图如图3所示。
[0090] 步骤710,设备驱动程序将构造成的带时间戳的测试数据包直接传送给测试单元。
[0091] 步骤711,设备驱动程序丢弃时间戳信息,并将恢复为正常格式的数据包传送给操作系统,按计算机正常的流程处理。
[0092] 本实施例三较实施例一,新增打时间戳的硬件设备,通过硬件方式获取时间戳信息并向到达网络设备的数据包打上时间戳,速度快,精确度更高,而且可以将网络设备处理时延去除。
[0093] 实施例四
[0094] 本实施例四也是由打时间戳硬件设备获取时间戳信息,并向到达网络设备的数据包打上时间戳形成带时间戳的私有数据包,由设备驱动程序首先解开该私有数据包从中提取时间戳,并将该打上时间戳的私有数据包恢复为正常格式的数据包,从符合过滤条件的数据包中截获测试数据包,以及将提取的时间戳与截获的测试数据包构造成带时间戳的测试数据包,这些步骤都同于实施例三,本实施例四与实施例三不同之处在于:在步骤710中,设备驱动程序将构造成的带时间戳的测试数据包存储为文件,将该文件直接传送给测试单元,由测试单元根据测试的需要直接从所述文件中获取该带时间戳的测试数据包。在本实施例的测试数据包在测试系统中的传送可参见图9。
[0095] 本实施例四较实施例三,可以实现设备驱动程序构造成的新的测试数据包的缓存,不会造成测试数据包的丢失,而且使得测试单元可以根据处理的需要进行离线分析或进行再分析。
[0096] 相应于本发明实施例提供的传送测试数据包的方法,本发明实施例还提供了一种传送测试数据包的系统,参见图10,包括:
[0097] 处理单元1010,用于设备驱动程序对接收的测试数据包进行处理;
[0098] 传送单元1020,用于设备驱动程序将所述处理单元1010处理后的测试数据包直接传送给测试单元105。
[0099] 仍参见图10,在所述处理单元之前,所述系统还包括:
[0100] 过滤单元1000,用于设备驱动程序从网络设备传送的数据包中过滤出测试数据包。
[0101] 参见图11,图11为本发明实施例提供的一种传送测试数据包的系统的详细结构图,首先由设备驱动程序中的过滤单元1000从网络设备传送的数据包中过滤出测试数据包,对过滤出的测试数据包由处理单元1010进行处理。
[0102] 所述处理单元1010包括:
[0103] 第一接收模块1011,用于设备驱动程序接收正常格式的测试数据包;
[0104] 第一时间戳获取模块1012,用于设备驱动程序从标准时间源获取时间戳;
[0105] 第一构造新包模块1013,用于设备驱动程序将所述第一时间戳获取模块1011获取的时间戳与所述第一接收模块1011接收的正常格式的测试数据包构造成新的测试数据包。
[0106] 第一构造新包模块1013构造成的新的测试数据包的数据结构有两种,一种是时间戳置于测试数据包之前;另一种是时间戳置于测试数据包之后。这两种数据结构示意图如图3所示。
[0107] 所述传送单元1020,具体用于设备驱动程序将所述第一构造新包模块1013构造成的新的测试数据包直接传送给测试单元105。
[0108] 一种优化实施例,所述传送单元1020还包括:
[0109] 存储文件模块1021,用于设备驱动程序将所述第一构造新包模块1013构造成的新的测试数据包存储为文件,将该文件直接传送给测试单元105,由所述测试单元105直接从该文件中获取所述构造成的新的测试数据包。
[0110] 该优化实施例实现了设备驱动程序构造成的新的测试数据包的缓存,不会造成测试数据包的丢失,而且使得测试单元可以根据处理的需要进行离线分析或进行再分析。
[0111] 另一种优化实施例,本发明实施例提供的传送测试数据包的系统新增了打时间戳的硬件设备,参见图12,图12为本发明实施例提供的另一种传送测试数据包的系统的详细结构图,该系统包括打时间戳设备1030,所述打时间戳设备1030包括:
[0112] 第二时间戳获取模块1031,用于打时间戳设备1030从标准时间源上获取时间戳;
[0113] 打时间戳模块1032,用于打时间戳设备1030对到达网络设备的数据包打上所述第二时间戳获取模块1031获取的时间戳。
[0114] 打上时间戳的数据包首先由设备驱动程序中的过滤单元1000从网络设备传送的数据包中过滤出测试数据包,对过滤出的测试数据包由处理单元1010进行处理。
[0115] 所述处理单元1010包括:
[0116] 第二接收模块1015,用于设备驱动程序接收所述打上时间戳的测试数据包;
[0117] 解时间戳模块1016,用于设备驱动程序从所述打上时间戳的测试数据包中提取时间戳,并将所述打上时间戳的测试数据包恢复为正常格式的测试数据包;
[0118] 第二构造新包模块1017,用于设备驱动程序将所述解时间戳模块1016提取的时间戳与所述恢复为正常格式的测试数据包构造成新的测试数据包。
[0119] 第二构造新包模块1017构造成的新的测试数据包的数据结构有两种,一种是时间戳置于测试数据包之前;另一种是时间戳置于测试数据包之后。这两种数据结构示意图如图3所示。
[0120] 所述传送单元1020,具体用于设备驱动程序将所述第二构造新包模块1017构造成的新的测试数据包直接传送给测试单元105。
[0121] 该优化实施例通过硬件方式获取时间戳信息并向到达网络设备的测试数据包打上时间戳,速度快,精确度更高,而且可以将网络设备处理时延去除。
[0122] 更进一步地,所述传送单元1020还包括:
[0123] 存储文件模块1021,用于设备驱动程序将所述第二构造新包模块1017构造成的新的测试数据包存储为文件,将该文件直接传送给测试单元105,由所述测试单元直接从该文件中获取所述构造成的新的测试数据包。
[0124] 这样,传送单元1020实现了设备驱动程序构造成的新的测试数据包的缓存,不会造成测试数据包的丢失,而且使得测试单元可以根据处理的需要进行离线分析或进行再分析。
[0125] 本发明实施例提供的传送测试数据包的系统,通过传送单元1020将处理单元1010最终构造成的新的测试数据包直接传送给测试单元,而不经过操作系统和协议栈,可以将操作系统的处理时延和各协议栈的处理时延去除,能够避免由于操作系统的调度策略和当前操作系统的任务数及当前更高优先级任务的处理时间带来的时间误差问题。而且,获取的时间戳信息可以在测试数据包传送到设备驱动程序时,由设备驱动程序从标准时间源上获取,或者在测试数据包到达网络设备时由打时间戳设备从标准时间源上获取,当测试单元需要时间戳信息时,由测试单元从处理单元1010最终构造成的新的测试数据包中获取所述时间戳,所以也可以把设备驱动程序的处理时延以及测试单元本身的处理时延去除。
[0126] 因此,本发明实施例提供的传送测试数据包的系统,能够把设备驱动程序处理时延、操作系统处理时延、各协议栈和测试单元本身的处理时延去除,能够减少测试系统中测试数据包到达测试单元的时间延迟,解决测试数据包之间不同的时间误差问题;同时通过由设备驱动程序或打时间戳设备从标准时间源上获取时间戳,并由设备驱动程序将测试数据包构造成带时间戳的新的测试数据包,直接进入测试系统内部进行传送,也解决了测试数据包和时间戳传送问题。
[0127] 需要说明的是,本发明实施例中的各方法可以软件功能模块的形式实现,并且该软件功能模块作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0128] 本发明实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0129] 以上对本发明实施例所提供的传送测试数据包的方法和系统进行了详细介绍,本发明主要是通过设备驱动程序对接收的测试数据包进行处理,并将处理后的测试数据包直接传送给测试单元,来减少测试系统中测试数据包到达测试单元的时间延迟,解决测试数据包之间不同的时间误差问题。实施例的说明只是用于帮助理解本发明的方法及其思想;任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。