iperf3 -b参数详细图文分析
-b这个参数是用来设置本次测试的发送带宽成n比特/秒的(对UDP来说默认是1M 比特/秒,对TCP来说默认是不限制),如果同时还设置了多线程(-P选项),当前这个-b的带宽指定的是每个线程的发送带宽。我们还可以在带宽后面加上“/数字”。我们称这个为“突发脉冲模式”。加了这个“/数字”后,iperf3客户端会一次连续发送指定数量的数据包,这指定数量的数据包中间不做任何间隔。但每一批次(指定数量的这n
-b这个参数是用来设置本次测试的发送带宽成n比特/秒的(对UDP来说默认是1M 比特/秒,对TCP来说默认是不限制),
如果同时还设置了多线程(-P选项),当前这个-b的带宽指定的是每个线程的发送带宽。我们还可以在带宽后面加上“/数字”。
我们称这个为“突发脉冲模式”。加了这个“/数字”后,iperf3客户端会一次连续发送指定数量的数据包,这指定数量的数据包
中间不做任何间隔。但每一批次(指定数量的这n个报文)报文之间的时间间隔是平均的(即使中间是某些时间间隔会有
超出指定带宽限制)。不加这个 "/数字"时,iperf3会根据每个报文的长度,算出为了达到指定的带宽,每秒需要发送几个
报文,然后每个数据报文会被以平均的时间间隔进行发送。
1)iperf3 -c 192.168.0.10 -u -b 200k,不加"/数字"的方式
这里iperf3客户端默认会往iperf3服务器端以200kbps的速度发送,如下图所示:
我们可以看到iperf3客户端每秒发送17或者18个数据报文,以达到200kbps的速度,默认连续发送10s钟时间。
下面是服务端收包的情况:
我们可以看到10秒钟内全部数据包被正常的接收,总计173个报文。
那么按上面所述这173个报文是在10秒钟时间内以平均时间间隔被发送的
如上图所示,比如在4秒中时间内,需要发送8个报文,则每隔0.5秒发送一个报文(相邻二个报文间隔0.5秒),叫做以平均时间间隔发送。
那么我们在10秒中之内发送173个报文,我们可以算出每二个报文之间的时间间隔应该 是10秒除以173 = 57.8毫秒。
此时我们看一下tcpdump的结果:
我们可以看到第1个\第2个\第3个...倒数第2个\最后一个报文的发送时间如下
19:20:13:861261
19:20:13:918095
19:20:13:976111
...
19:20:23:765086
19:20:23:823122
第1个报文和第2个报文的时间间隔是918095-861261=56.834毫秒,
第2个和第3个报文的时间间隔是976111-918095=58.016毫秒,
...
倒数第2个和最后一个报文的时间间隔是823122-765086=58.036毫秒,
全部都是在57.8毫秒左右(考虑软件处理的抖动是正常的)
2)iperf3 -c 192.168.0.10 -u -b 200k/40,加"/数字"的方式
加了这个“/数字”后,iperf3客户端会一次连续发送指定数量的数据包,这指定数量的数据包中间不做任何间隔。
但每一批次(指定数量的这n个报文)报文之间的时间间隔是平均的。(即使中间会有偶尔的超出带宽限制)。
以下图所示的样式发送:
客户端:
第一秒连续发送了指定的40个报文(速率为463kbps超出设定的200kbps),
第二秒无数据发送(和第一秒加起来平均大约是200kbps)
第三秒连续发送了指定的40个报文(速率为463kbps超出设定的200kbps),
第四秒无数据发送(和第三秒加起来平均大约是200kbps)
...
服务端
看到的数据和客户端一样。
tcpdump
我们可以看到
1-40个报文在19:55:10秒发送的,
41-80个报文在19:55:12秒发送的,
81-120个报文在19:55:14秒发送的,
...
倒数41-80个报文在19:55:17秒发送的,
倒数1-40个报文在19:55:19秒发送的,
每个burst之间间隔约1.5秒,每人burst内部的每个报文是连续发送的(间隔非常小,是每个数据生产发送所需要的时间)
更多推荐
所有评论(0)