一种网络设备吞吐量的测试方法及装置技术领域
本发明涉及网络通信领域,特别涉及一种网络设备吞吐量的测试方法及装
置。
背景技术
网络设备(如路由器、交换机等)是网络传输中的重要设备,为了保证良
好的网络传输,需要对网络设备的性能进行测试,其中,网络设备的吞吐量是
其主要的性能指标。
网络设备的吞吐量分为绝对吞吐量和相对吞吐量,其中,绝对吞吐量是指
在不丢包的前提下,网络设备单位时间内发送的数据包的最大数量(即最大传
输速率)。但在不同的网络环境下,同一台网络设备的吞吐量都有可能不同,
并且不同包长的吞吐量也是不同的。为了能够准确地反映出网络设备的性能,
引入了相对吞吐量的概念。相对吞吐量是指绝对吞吐量除以该网络设备的接口
类型对应的理论最大速率,再乘以100%后得到的数值。例如,对于1000M以
太网接口,根据信号发送的最大速率以及数据包之间的最小间隔,可以计算出
理论上1000M以太网接口在64字节包长情况下的最大速率为1488095数据包
/秒。如果被测设备64字节包长情况下的最大速率为1200000数据包/秒,则被
测设备64字节的相对吞吐量为(1200000/1488095)*100%=80.64%。因此,相
对吞吐量的数值在0~100%范围内。一般情况下,网络设备吞吐量的测试都是
指网络设备的相对吞吐量的测试。
现有的网络设备吞吐量的测试普遍采用二分法逼近其吞吐量极值点以得
到该网络设备的吞吐量,相对于原始的从0~100%的遍历测试方法,可以快速
准确的测试出网络设备的吞吐量。
利用二分法测试网络设备的吞吐量的过程包括:假定设定的测试区间为[I,
II](可选范围0%~100%),单台网络设备吞吐量取值点为an,其中,n为自然
数;
当n=1时,设定网络设备的第二次取值点为a1=II;本次测试中,若网络设
备不发生丢包,则确定该网络设备的相对吞吐量为该网络设备对应的接口类型
的理论最大速率的100%;否则,启动下一次测试;
当n=2时,设定网络设备的第二次取值点为a2=(II-I)*0.5;本次测试中,
如果该网络设备不发生丢包,且该取值点满足精度要求,则将该取值点作为该
网络设备的相对吞吐量的值;否则,启动下一次测试;
当n=3时,如果上次测试中网络设备不发生丢包,则本次测试中网络设备
的取值点为a3=(II-a2)*0.5;如果上次测试中网络设备发生丢包,则本次测试
中网络设备的取值点为a3=(a2-I)*0.5;依次类推,直至某次测试中网络设备
不发生丢包,且该次测试中的取值点满足精度要求,则将该次测试中的取值点
作为该网络设备的相对吞吐量;
可见,采用二分法测量网络设备的吞吐量时,每次测试的测试区间收敛至
上次测试的测试区间的50%,相比于原始的遍历测试方法,能够在一定程度上
减少迭代次数,但是,采用二分法进行测试时收敛速度慢,耗时长,从而导致
测试效率低。
综上所述,采用二分法对网络设备的吞吐量进行测试时,收敛速度慢,耗
时长,从而导致测试效率低。
发明内容
本发明实施例提供了一种网络设备吞吐量的测试方法及装置,用于解决现
有技术中存在的采用二分法进行测试时收敛速度慢,耗时长,从而导致测试效
率低的问题。
本发明实施例提供了一种网络设备吞吐量的测试方法,包括:
根据设定的初始测试区间,为同类型的三台待测试的网络设备分配初始取
值点,并在初始测试中有至少一台网络设备发生丢包时,启动下一次测试;其
中,所述初始测试区间的上限值、下限值和所述初始测试区间的黄金分割点的
值分别作为该三台网络设备的初始取值点;
所述下一次测试过程包括:
步骤a:根据上一次测试中所述三台网络设备对应的取值点及所述三台设
备是否发生丢包,确定本次测试所使用的测试区间;
步骤b:从确定的测试区间中分别为所述三台网络设备分配本次测试对应
的取值点;
步骤c:并行接收所述三台网络设备发送的数据包,在所述三台网络设备
都不发生丢包,且本次测试的测试区间的上限值与本次测试中最大取值点的值
满足设定的测试精度时,确定该类型网络设备的相对吞吐量为本次测试中最大
取值点的值,并结束测试;否则,启动下一次测试,转至步骤a;
其中,各网络设备对应的传输速率为该类型网络设备对应的接口类型的理
论最大速率与该网络设备对应的取值点的乘积。
本发明实施例提供了一种网络设备吞吐量的测试装置,包括:
初始模块,用于根据设定的初始测试区间,为同类型的三台待测试的网络
设备分配初始取值点,并在初始测试中有至少一台网络设备发生丢包时,启动
下一次测试;其中,所述初始测试区间的上限值、下限值和所述初始测试区间
的黄金分割点的值分别作为该三台网络设备的初始取值点;
测试模块,包括测试确定子模块、分配子模块及处理子模块;其中,
所述确定子模块,用于根据上一次测试中所述三台网络设备对应的取值点
及所述三台设备是否发生丢包,确定本次测试所使用的测试区间;
所述分配子模块,用于从所述确定子模块确定的测试区间中分别为所述三
台网络设备分配本次测试对应的取值点;
所述处理子模块,用于并行接收所述三台网络设备发送的数据包,在所述
三台网络设备都不发生丢包,且本次测试的测试区间的上限值与本次测试中最
大取值点的值满足设定的测试精度时,确定该类型网络设备的相对吞吐量为本
次测试中最大取值点的值,并结束测试;否则,启动下一次测试,并触发所述
确定子模块;
其中,各网络设备对应的传输速率为该类型网络设备对应的接口类型的理
论最大速率与该网络设备对应的取值点的乘积。
本发明实施例通过并行对三台同类型的网络设备进行测试,以确定该类型
的网络设备的相对吞吐量,且根据上次测量中各台网络设备的取值点及各台网
络设备是否发生丢包,确定本次测量的测量区间,相比于对单个网络设备采用
二分法进行测量,进一步缩小了测量区间,提高了收敛速度,从而提高了测试
效率。
附图说明
图1为本发明实施例网络设备吞吐量的测试方法的流程示意图;
图2为本发明实施例网络设备吞吐量的测试方法的具体实例的流程图;
图3为本发明实施例网络设备吞吐量的测试装置的结构示意图;
图4为本发明实施例网络设备吞吐量的测试装置与网络设备的连接示意
图。
具体实施方式
本发明实施例采用三台类型相同的网络设备并行测试相对吞吐量,以确定
该类型的网络设备的相对吞吐量,使得每次收敛区间范围比采用单个网络设备
测试的二分法小,且收敛速度快,从而提高了测试效率。
下面结合说明书附图对本发明实施例作进一步详细描述。
参见图1,本发明实施例网络设备吞吐量的测试方法,包括以下步骤:
步骤11、根据设定的初始测试区间,为同类型的三台待测试的网络设备分
配初始取值点,并在初始测试中有至少一台网络设备发生丢包时,启动下一次
测试;其中,初始测试区间的上限值、下限值和初始测试区间的黄金分割点的
值分别作为该三台网络设备的初始取值点;
进一步,本发明实施例的测试区间的黄金分割点的值为
(测试区间的最大值-测试区间的最小值)
需要说明的是,该类待测试的网络设备的初始测试区间是根据该类网络设
备的相对吞吐量的数值范围确定的,一般网络设备的相对吞吐量的数值范围为
0~100%。可根据经验设定初始测试区间,例如,设定初始测试区间为[50%,
100%],则为三台网络设备分配的初始取值点分别为100%、
( 100 % - 50 % ) * [ 1 + ( 5 - 1 ) / 2 ] ≈ 80.9 % ]]>和50%;
在对三台同类型的网络设备进行测试的过程中,该三台网络设备分别按照
本次测试中为其分配的取值点对应的传输速率进行数据包的传输,即本次测试
中,每台网络设备的传输速率为该类网络设备对应的接口类型的理论最大速率
与该网络设备对应的取值点的乘积。
进一步,步骤11中还包括:在初始测试中,若确定三台网络设备都不发
生丢包,确定该类网络设备的相对吞吐量为三台网络设备的初始取值点中的最
大值,并结束测试。
步骤12、执行下一次测试,具体包括:
步骤a:根据上一次测试中三台网络设备对应的取值点及三台设备是否发
生丢包,确定本次测试所使用的测试区间;
步骤b:从确定的测试区间中分别为三台网络设备分配本次测试对应的取
值点;
步骤c:并行接收三台网络设备发送的数据包,在三台网络设备都不发生
丢包,且本次测试的测试区间的上限值与本次测试中最大取值点的值满足设定
的测试精度时,确定该类型网络设备的相对吞吐量为本次测试中最大取值点的
值,并结束测试;否则,启动下一次测试,转至步骤a;
其中,各网络设备对应的传输速率为该类型网络设备对应的接口类型的理
论最大速率与该网络设备对应的取值点的乘积。
进一步,设定的测量精度为经验值,可根据需要设定。
进一步,步骤a中确定本次测试的测试区间包括以下两种方式:
方式一、若上一次测试中最小取值点对应的网络设备不发生丢包,则步骤
a包括:
将上一次测试中发生丢包的网络设备对应的取值点中的最小值作为本次
测试的测试区间的上限值;以及
从上一次测试中不发生丢包的网络设备对应的取值点中,选择值小于同一
次测试中发生丢包的网络设备对应的取值点的值的取值点,并将选择的取值点
中的最大值,作为本次测试的测试区间的下限值。
举例说明,假设初始测试区间为[20%,90%],上一次测试的测试区间为
[In-1,IIn-1],上一次测试中为三台网络设备分配的取值点分别为an-1,bn-1及cn-1,
其中,20%≤In-1<IIn-1≤90%,n为大于1的自然数,an-1>bn-1>cn-1;
若取值点an-1对应的网络设备发生丢包,取值点bn-1对应的网络设备不发
生丢包,且取值点cn-1对应的网络设备不发生丢包,则确定本次测试的测试区
间为[bn-1,an-1];
若取值点an-1对应的网络设备发生丢包,取值点bn-1对应的网络设备发生
丢包,且取值点cn-1对应的网络设备不发生丢包,则确定本次测试的测试区间
为[cn-1,bn-1];
若取值点an-1对应的网络设备不发生丢包,取值点bn-1对应的网络设备发
生丢包,且取值点cn-1对应的网络设备不发生丢包,则确定本次测试的测试区
间为[cn-1,bn-1]。
方式二、若上一次测试中最小取值点对应的网络设备发生丢包,则步骤a
包括:
将上一次测试中的最小取值点的值作为本次测试的测试区间的上限值;及
将初始测试区间的下限值作为本次测试的测试区间的下限值。
举例说明,假设初始测试区间为[20%,90%],上一次测试的测试区间为
[In-1,IIn-1],上一次测试中为三台网络设备分配的取值点分别为an-1,bn-1及cn-1,
其中,20%≤In-1<IIn-1≤90%,n为大于1的自然数,an-1>bn-1>cn-1;
只要上次测试中取值点cn-1对应的网络设备发生丢包,则确定本次测试的
测试区间为[20%,cn-1]。
进一步,步骤b中从确定的测试区间中分别为三台网络设备分配本次测试
对应的取值点包括:
将本次测试的测试区间的下限值与中点值组成的第一子区间的黄金分割
点的值、本次测试的测试区间的中点值、及本次测试的测试区间的中点值与上
限值组成的第二子区间的黄金分割点的值分别作为三台网络设备的本次测试
的取值点。
举例说明,假设初始测试区间为[20%,90%],确定的本次测试的测试区
间为[In,IIn],则本次测试的测试区间的中点值为m=(In+IIn)/2,其中,20≤In<IIn
≤90%,n为大于1的自然数,则该测试区间中的下限值与中点值组成的第一
子区间为[m,IIn],该测试区间中的中点值与上限值组成的第二子区间为[In,
m];
第一子区间[In,m]的黄金分割点的值为第二子区间
[m,IIn]的黄金分割点的值为即:本次测试中,为三台
网络设备分配的取值点分别: ( m - I n ) * [ 1 + ( 5 - 1 ) / 2 ] , ]]>m及 ( II n - m ) * [ 1 + ( 5 - 1 ) / 2 ] . ]]>
进一步,步骤c中确定本次测试的测试区间满足设定的测试精度包括:
在本次测试的测试区间的上限值与本次测试中三台网络设备对应的取值
点中的最大值的差值不大于设定的测试精度时,确定本次测试的测试区间满足
设定的测试精度。
举例说明,假设测试精度值为0.5%,若确定的本次测试的测试区间为
[80%,82%],则为三台网络设备分配的本次测试的取值点分别为:an=81.618%、
bn=81%和cn=80.618%;本次测试的测试区间的上限值为82%,最大取值点为
an=81.618%,两者的差值为0.382%,由于0.382%小于0.5%,因此,满足测试
精度的要求,则确定该类型设备的相对吞吐量的值为最大取值点的值,即
81.618%。
通过本发明实施例的测试方法,能够同时完成三台同类型网络设备的相对
吞吐量的测试,确定出的相对吞吐量为该三台网络设备中性能最差的网络设备
对应的相对吞吐量。
下面以一个具体的例子,对本发明实施例网络设备吞吐量的测试方法进行
详细说明。
参见图2,本发明实施例网络设备吞吐量的测试方法包括以下步骤:
步骤201、设定初始测试区间、测试精度及各台网络设备对应的初始取值
点a1、b1和c1;
其中,第一台网络设备对应的初始取值为a1(即第一台网络设备初始传输
速率为该类网络设备对应的接口类型的理论最大速率乘以a1);第二台网络设
备对应的初始取值为b1(即第二台网络设备初始传输速率为该类网络设备对应
的接口类型的理论最大速率乘以b1),第三台网络设备对应的初始取值为c1(即
第三台网络设备初始传输速率为该类网络设备对应的接口类型的理论最大速
率乘以c1);且a1>b1>c1。
具体的,网络设备的相对吞吐量在0%~100%的区间范围内取值,假设根
据该类网络设备相对吞吐量的测试的结果统计,该类网络设备的相对吞吐量在
80%~100%之间,则初始测试区间设定为[50%,100%],且三台网络设备对应
的初始取值分别为a1=100%、b1=(100%-50%)*(1+0.618)=80.9%(即初始测试区
间的黄金分割点的值)、c1=50%;
可见,初始测试测试中通过对三台网络设备进行并行测试,一次测试即可
覆盖二分法的100%和50%两个测试点,并且在测试区间[50%,100%]内还划
分出两个子区间,即[c1,b1]和[b1,a1]。
步骤202、并行接收三台网络设备发送的数据包,并分别测试该三台设备
是否发生丢包,即遍历各取值点a1、b1和c1,判断上述三台网络设备是否都不
丢包;
若是,则执行步骤203;
若否,则执行步骤204;
步骤203、确定该类网络设备的相对吞吐量的值100%,并结束流程;
具体的,该类网络设备的绝对吞吐量为该类网络设备对应的端口类型的理
论最大速率的100%;
步骤204、执行下一次测试;具体包括:
步骤204a、确定本次测试的测试区间及本次测试过程中各台网络设备对应
的取值点an、bn和cn,且an>bn>cn;执行步骤204b;
具体的,若上一次测试中仅取值点an-1对应的第一台网络设备发生丢包,
则确定本次测试区间[In,IIn]中的In=bn-1,IIn=an-1;该测试区间[In,IIn]的中点
mn=(an-1-bn-1)/2,其中,n为大于1的自然数,本次测试过程中,为第一台网络
设备分配的取值点an=(IIn-mn)*0.618+mn,为第二台网络设备分配的取值点
bn=mn,为第三台网络设备分配的取值点cn=mn*0.618+In;
若上一次测试中取值点bn-1对应的第二台网络设备发生丢包,且取值点cn-1
对应的第三台网络设备不发生丢包,则确定本次测试的测试区间[In,IIn]中的
In=cn-1,IIn=bn-1;该测试区间[In,IIn]的中点mn=(bn-1-cn-1)/2,其中,n为大于1
的自然数,本次测试过程中,为第一台网络设备分配的取值点
an=(IIn-mn)*0.618+mn,为第二台网络设备分配的取值点bn=mn,为第三台网络
设备分配的取值点cn=mn*0.618+In;
若上一次测试中取值点cn-1对应的第三台网络设备发生丢包,则确定的本
次测试的测试区间[In,IIn]中的In=0,IIn=cn-1;该测试区间的中点mn=cn-1/2,
其中,n为大于1的自然数;本次测试过程中,为第一台网络设备分配的取值
点an=(IIn-mn)*0.618+mn,为第二台网络设备分配的取值点bn=mn,为第三台网
络设备分配的取值点cn=mn*0.618+In;
步骤204b、判断本次测试中该三台网络设备是否都不发生丢包;
若是,则执行步骤204c;
若否,则启动下一次测试,并转至步骤204a;
步骤204c、判断本次测试的测试区间是否满足设定的测试精度;
具体的,判断本次测试的测试区间的上限值与三台网络设备的本次测试的
取值点中最大值的差值是否不大于测试精度值;
若是,则执行步骤204d;
若否,则执行步骤204;
步骤204d、确定该类型设备的相对吞吐量的值为该三台网络设备本次测试
的取值点中的最大值,并结束测试;
具体的,假设测试精度值为0.5%,若确定的本次测试的测试区间为
[80%,82%],则为三台网络设备分配的本次测试的取值点分别为:an=81.618%、
bn=81%和cn=80.618%;本次测试的测试区间的上限值为82%,最大取值点为
an=81.618%,两者的差值为0.382%,由于0.382%小于0.5%,因此,满足测试
精度的要求,则确定该类型设备的相对吞吐量的值为最大取值点的值,即
81.618%。
基于同一发明构思,本发明实施例中还提供了一种网络设备吞吐量的测试
装置,由于该装置解决问题的原理与上述网络设备吞吐量的测试方法相似,因
此该测试装置的实施可以参见测试方法的实施,重复之处不再赘述。
参见图3,本发明实施例一种网络设备吞吐量的测试装置,包括:
初始模块31,用于根据设定的初始测试区间,为同类型的三台待测试的网
络设备分配初始取值点,并在初始测试中有至少一台网络设备发生丢包时,启
动下一次测试;其中,初始测试区间的上限值、下限值和初始测试区间的黄金
分割点的值分别作为该三台网络设备的初始取值点;
测试模块32,包括测试确定子模块321、分配子模块322及处理子模块323;
其中,
确定子模块321,用于根据上一次测试中三台网络设备对应的取值点及三
台设备是否发生丢包,确定本次测试所使用的测试区间;
分配子模块322,用于从确定子模块321确定的测试区间中分别为三台网
络设备分配本次测试对应的取值点;
处理子模块323,用于并行接收三台网络设备发送的数据包,在三台网络
设备都不发生丢包,且本次测试的测试区间的上限值与本次测试中最大取值点
的值满足设定的测试精度时,确定该类型网络设备的相对吞吐量为本次测试中
最大取值点的值,并结束测试;否则,启动下一次测试,并触发确定子模块321;
其中,各网络设备对应的传输速率为该类型网络设备对应的接口类型的理
论最大速率与该网络设备对应的取值点的乘积。
进一步,确定子模块321具体用于:
在上一次测试中最小取值点对应的网络设备不发生丢包时,将上一次测试
中发生丢包的网络设备对应的取值点中的最小值作为本次测试的测试区间的
上限值;从上一次测试中不发生丢包的网络设备对应的取值点中,选择值小于
同一次测试中发生丢包的网络设备对应的取值点的值的取值点,并将选择的取
值点中的最大值,作为本次测试的测试区间的下限值。
进一步,确定子模块321具体用于:
在上一次测试中最小取值点对应的网络设备发生丢包时,将上一次测试中
的最小取值点的值作为本次测试的测试区间的上限值;将初始测试区间的下限
值作为本次测试的测试区间的下限值。
进一步,分配子模块322具体用于:
将本次测试的测试区间的下限值与中点值组成的第一子区间的黄金分割
点的值、本次测试的测试区间的中点值、及本次测试的测试区间的中点值与上
限值组成的第二子区间的黄金分割点的值分别作为三台网络设备对应的取值
点。
进一步,处理子模块323具体用于:
在本次测试的测试区间的上限值与本次测试中三台网络设备对应的取值
点中的最大值的差值不大于测试精度,确定本次测试的测试区间满足设定的测
试精度。
进一步,初始模块31还用于:
在初始测试中,若确定三台网络设备都不发生丢包,确定该类网络设备的
相对吞吐量为三台网络设备的初始取值点中的最大值,并结束测试。
参见图4,本发明实施例测试装置在使用时,同时与三台同类型的网络设
备连接,即分别连接网络设备A、网络设备B和网络设备C,并行接收来自该
三台网络设备发送的数据包,分别判断每台网络设备是否发生丢包现象,根据
测试结果,确定该类网络设备的相对吞吐量。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计
算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结
合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包
含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、
CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产
品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和
/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/
或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入
式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算
机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一
个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设
备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中
的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个
流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使
得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处
理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个
流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基
本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要
求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
本发明实施例在现有采用单个网络设备进行相对吞吐量测试的二分法的
基础上,增加了两台同类型的网络设备,采用三台同类型的网络设备并行测试
相对吞吐量。对于测试区间,除了初始测试区间外,每次都根据当前测试结果,
确定下一次测试中的测试区间,进一步缩小了测试区间;对于各网络设备对应
的取值点,除了初始取值点外,每次都根据当前测试区间内的等分点(即中点)
和等分子区间的黄金分割点,确定下一次测试中各网络设备对应的取值点,从
而减少了逼近次数,提高了收敛速度,从而缩短了吞吐量测试的时间。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发
明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及
其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。