发送数据包和吞吐量测试方法及装置的制造方法

文档序号:9455845阅读:564来源:国知局
发送数据包和吞吐量测试方法及装置的制造方法
【技术领域】
[0001] 本发明涉及计算机技术领域,特别是涉及一种发送数据包和吞吐量测试方法及装 置。
【背景技术】
[0002] 网络性能测试是指测试网络系统和网络设备的性能,并对网络系统和网络设备的 性能进行评价。网络性能测试主要采用RFC2544标准,包括吞吐量测试、延迟测试以及丢失 率测试等。网络测试系统主要包括待测设备(DUT,Device Under Test)和测试设备。
[0003] 网络性能测试中的吞吐量测试是网络测试系统中待测设备的一个重要性能指标。 所述RFC2544标准规定,测试设备向待测设备发送指定个数的数据包,所述待测设备将所 接收的数据包转发至所述测试设备,所述测试设备统计接收到数据包的个数,所述测试设 备接收到数据包的个数与所述待测设备转发数据包的个数相等。若所述测试设备接收到数 据包的个数小于所述测试设备发送的数据包的个数,则所述测试设备发送的数据包的个数 超过所述待测设备能够转发的数据包的个数,则减小所述测试设备发送数据包的个数重复 测试过程,直至所述测试设备接收到数据包的个数与所述测试设备发送的数据包的个数相 等,此时,所述待测设备能够将所接收到的数据包全部转发。所述待测设备所能转发的最大 的数据流量即为所述待测设备的吞吐量。一般情况下,所述待测设备的吞吐量用每秒钟所 能转发的最大数据包的个数或者最大数据流量的字节数来衡量。
[0004] 目前,在测试吞吐量为万兆的待测设备时,主要采用现场可编程门阵列(Field - Programmable Gate Array,FPGA)作为实现均勾发送数据包,但是,以FPGA硬件作为实现 均匀发送数据包的设备导致成本高。

【发明内容】

[0005] 本发明解决的技术问题在于提供一种发送数据包和吞吐量测试方法及装置,从而 提供了一种基于软件实现的每秒均匀发送数据包的方法,解决了采用硬件实现均匀发送数 据包所导致的成本高的问题。
[0006] 为此,本发明解决技术问题的技术方案是:
[0007] -种发送数据包的方法,所述方法包括:
[0008] 获取预先配置的网卡中发送队列的个数,突发包个数,预设的初始线速,CPU的时 钟主频,所述突发包个数为所述网卡中每个发送队列除最后一次外每次发送数据包的个 数,所述初始线速为所述网卡每秒内发送数据包的总数;
[0009] 根据所述网卡中发送队列的个数,突发包个数以及所述初始线速计算每秒内所述 网卡的每个发送队列发送数据包的次数以及该发送队列最后一次发送数据包的个数;
[0010] 根据所述CPU的时钟主频,所述网卡中发送队列的个数,所述突发包个数以及所 述初始线速确定所述网卡每秒内每次发送数据包的时刻;
[0011] 根据每秒内所述网卡的每个发送队列发送数据包的次数确定该秒内所述网卡的 每个发送队列不是最后一次发送数据包时,在每秒内所述网卡每次发送数据包的时刻,调 用所述网卡的每个发送队列以所述突发包个数发送数据包;
[0012] 根据每秒内所述网卡的每个发送队列发送数据包的次数确定该秒内所述网卡的 每个发送队列是最后一次发送数据包时,在每秒内所述网卡最后一次发送数据包的时刻, 调用所述网卡的每个发送队列以该发送队列的最后一次发送数据包的个数发送数据包。
[0013] 可选的,所述根据所述CPU的时钟主频确定所述网卡每秒内每次发送数据包的时 刻包括:
[0014] 根据所述CPU的时钟主频,所述网卡中发送队列的个数,所述突发包个数以及所 述初始线速计算每秒内所述网卡每次发送数据包所需的理论计时时间;
[0015] 提取所述理论计时时间的整数部分作为每秒内所述网卡每次发送数据包的实际 计时时间;
[0016] 计算预设的初始时刻与n-1个实际计时时间的和作为每秒内所述网卡第η次发送 数据包的时刻;
[0017] 其中,0〈η<每秒内所述网卡发送数据包的最大次数,且η为整数。
[0018] 可选的,所述方法还包括:
[0019] 计算所述理论计时时间与所述实际计时时间的差作为时间误差;
[0020] 计算每秒内所述网卡第m-ι次发送数据包后的累计误差,所述累计误差为m-ι个 时间误差的和;
[0021] 当累计误差小于单位时间时,计算预设的初始时刻与m-1个所述实际计时时间的 和作为每秒内所述网卡第m次发送数据包的时刻,所述单位时间为1个所述CPU的时钟周 期;
[0022] 当所述累计误差不小于所述单位时间时,计算预设的初始时刻与所述m-Ι个实际 计时时间的和再加1个单位时间作为每秒内所述网卡第m次发送数据包的时刻;
[0023] 其中,0〈m彡每秒内所述网卡发送数据包的最大次数,且m为整数。
[0024] 可选的,所述根据所述CPU的时钟主频,所述网卡中发送队列的个数,所述突发包 个数以及所述初始线速计算每秒内所述网卡每次发送数据包所需的理论计时时间包括:
[0025] 计算所述CPU的时钟主频与所述初始线速的商获得每秒内发送每个数据包所需 的第一时间;
[0026] 计算所述第一时间与所述突发包个数的积获得每秒内每个发送队列每次发送数 据包所需的第二时间;
[0027] 计算所述第二时间与所述网卡中发送队列的个数的积获得每秒内所述网卡每次 发送数据包所需的理论计时时间。
[0028] 可选的,所述根据所述网卡中发送队列的个数,突发包个数以及所述初始线速计 算每秒内所述网卡的每个发送队列发送数据包的次数以及该发送队列最后一次发送数据 包的个数包括:
[0029] 计算所述初始线速与所述网卡中发送队列的个数的商获得所述网卡中每个发送 队列发送数据包的速率;
[0030] 计算所述每个发送队列发送数据包的速率与所述突发包个数的商再加1获得每 秒内所述网卡中每个发送队列发送数据包的次数;
[0031] 计算所述网卡中每个发送队列发送数据包的速率与所述突发包个数的余数作为 每秒内所述网卡中每个发送队列最后一次发送数据包的第一个数;
[0032] 计算所述初始线速与所述网卡中发送队列的个数的余数作为第二个数;
[0033] 给所述网卡中排列在前k位的每个发送队列分别各分配一个数据包,所述k的值 与所述第二个数的值相等,则所述网卡中排列在前k位的发送队列最后一次发送数据包的 个数为第一个数加1,所述网卡中排列在k位以后的发送队列最后一次发送数据包的个数 为第一个数;
[0034] 其中,k为大于0且小于所述网卡中发送队列的个数的整数。
[0035] -种吞吐量测试的方法,所述方法包括:
[0036] 测试设备按照权利要求1-5任意一项所述的方法向待测设备发送数据包;
[0037] 所述测试设备接收所述待测设备转发的数据包;
[0038] 所述测试设备统计向所述待测设备发送数据包的发送速率,以及接收所述待测设 备转发的数据包的接收速率;
[0039] 所述测试设备根据所述发送速率和接收速率采用二分差分法测得所述待测设备 的吞吐量。
[0040] 一种发送数据包的装置,所述装置包括:
[0041] 获取模块,用于获取预先配置的网卡中发送队列的个数,突发包个数,预设的初始 线速,CPU的时钟主频,所述突发包个数为所述网卡中每个发送队列除最后一次外每次发送 数据包的个数,所述初始线速为所述网卡每秒内发送数据包的总数;
[0042] 计算模块,用于根据所述网卡中发送队列的个数,突发包个数以及所述初始线速 计算每秒内所述网卡的每个发送队列发送数据包的次数以及该发送队列最后一次发送数 据包的个数;
[0043] 确定模块,用于根据所述CPU的时钟主频,所述网卡中发送队列的个数,所述突发 包个数以及所述初始线速确定所述网卡每秒内每次发送数据包的时刻;
[0044] 第一调用模块,用于根据每秒内所述网卡的每个发送队列发送数据包的次数确定 该秒内所述网卡的每个发送队列不是最后一次发送数据包时,在每秒内所述网卡每次发送 数据包的时刻,调用所述网卡的每个发送队列以所述突发包个数发送数据包;
[0045] 第二调用模块,用于根据每秒内所述网卡的每个发送队列发送数据包的次数确定 该秒内所述网卡的每个发送队列是最后一次发送数据包时,在每秒内所述网卡最后一次发 送数据包的时刻,调用所述网卡的每个发送队列以该发送队列的最后一次发送数据包的个 数发送数据包。
[0046] 可选的,所述确定模块包括:
[0047] 第一计算单元,用于根据所述CPU的时钟主频,所述网卡中发送队列的个数,所 述突发包个数以及所述初始线速计算每秒内所述网卡每次发送数据包所需的理论计时时 间;
[0048] 提取单元,用于提取所述理论计时时间的整数部分作为每秒内所述网卡每次发送 数据包的实际计时时间;
[0049] 第二计算单元,用于计算预设的初始时刻与n-1个实际计时时间的和作为每秒内 所述网卡第η次发送数据包的时刻;
[0050] 其中,0〈n <每秒内所述网卡发送数据包的最大次数,且η为整数。
[0051] 可选的,所述确定模块还包括:
[0052] 第三计算单元,用于计算所述理论计时时间与所述实际计时时间的差作为时间误 差;
[0053] 第四计算单元,用于计算每秒内所述网卡第m-1次发送数据包后的累计误差,所 述累计误差为m-1个时间误差的和;
[0054] 第五计算单元,用于当累计误差小于单位时
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1