不同版本的iperf for windows会产生完全不同的结果

测量从 Windows客户端到Solaris服务器的TCP输出
WXP SP3与iperf 1.7.0 – >返回平均约90Mbit
相同的客户端,相同的服务器,但Windows的iperf 2.0.5 – >返回平均8.5 Mbit

观察到与其他服务器相关的类似差异(W2008,W2003)

当同一工具的不同版本提供截然不同的结果时,很难得出一些结论.

示例如下:

C:\temp>iperf -v (from iperf.fr)
iperf version 2.0.5 (08 Jul 2010) pthreads

C:\temp>iperf -c solaris10
Client connecting to solaris10,TCP port 5001
TCP window size: 64.0 KByte (default)

[ 3] local 10.172.181.159 port 2124 connected with 10.172.180.209 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.2 sec 10.6 MBytes 8.74 Mbits/sec

糟糕的性能,但现在我用相同的主机(Windows XP SP3 32位和100Mbit)测试同一台服务器(Solaris 10 / sparc 64bit和1Gbit运行iperf 2.0.5,认窗口为48k)与旧的iperf

C:\temp>1iperf -v
iperf version 1.7.0 (13 Mar 2003) win32 threads

C:\temp>1iperf.exe -c solaris10 -w64k
Client connecting to solaris10,TCP port 5001
TCP window size: 64.0 KByte

[1208] local 10.172.181.159 port 2128 connected with 10.172.180.209 port 5001
[ ID] Interval Transfer Bandwidth
[1208] 0.0-10.0 sec 112 MBytes 94.0 Mbits/sec

因此,一个带有64k窗口的iperf表示8.75Mbit和具有相同窗口大小的旧iperf
说94.0Mbit.通过重复测试,这些结果是恒定的.

从我的测试启动窗口大小为“x”的iperf(旧)和窗口大小为“x”的iperf(新)而不是产生相同或非常接近的结果产生完全不同的结果.
我看到的唯一区别是旧编译为win32线程与pthreads,但并行性(-P 10)似乎在两者中都有效.

任何人都有线索或可以推荐一个工具,给出我可以信任的结果?

编辑:查看来自(旧)iperf的跟踪它在SYN数据包中将TCP窗口比例标志设置为3,当我运行(新)iperf时,在初始数据包中将其设置为0.通过交换快速分析窗口大小显示(旧)iperf来回移动,但大部分是32k,而(新)iperf大多保持在64k.也许它会帮助某人连接点.

您拥有的更高版本的iperf正在使用不同的线程库(win32线程与pthread).仅这一点就可以解释性能上的差异.

iperf的1.x和2.x之间可能存在一些其他代码差异.它可以很简单,就像认选项从1.x更改为2.x(例如TCP_WINDOW_SIZE,…).

确保两者都使用TCP(或udp),例如通过使用–udp选项重新运行.

您可以尝试使用iperf-users邮件列表存档,甚至可以在那里发布您的问题.

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...