转载地址:http://qa.blog.163.com/blog/static/1901470022011102543322445/
iperf netperf UDPmon 都是测量网络性能的开源软件,iperf是伊利诺斯大学的超级计算机应用程序国家中心(NCSA)开发的,和IE是同根生,netperf是HP的,UDPmon是英国曼切斯特大学的产物。
本文主要演示、介绍两个工具的使用方法,具体两个工具的作用,可以参考文中提供的参考资料。
如百度百科里面的介绍:Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的 传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。Netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统 发送数据,以及另外一个系统能够以多块的速度接收数据。 Netperf工具以client/server方式工作。server端 是netserver,用来侦听来自client端的连接,client端是netperf,用来向server发起网络测试。在client与 server之间,首先建立一个控制连接,传递有关测试配置的信息,以及测试的结果;在控制连接建立并传递了测试配置信息以后,client与 server之间会再建立一个测试连接,用来来回传递着特殊的流量模式,以测试网络的性能。
一、Iperf使用方法
1、下载地址:
http://sourceforge.net/projects/iperf/files/iperf/2.0.4%20source/iperf-2.0.4.tar.gz/download
linux下直接下载
wget http://sourceforge.net/projects/iperf/files/iperf/2.0.4%20source/iperf-2.0.4.tar.gz
http://blog.sina.com.cn/s/blog_49ab2ae20100cnig.html
http://www.netperf.org/netperf/
2、iperf参考资料
http://baike.baidu.com/view/3503290.htm
http://blog.chinaunix.net/space.php?uid=9967220&do=blog&cuid=686264
3、功能介绍
man说明:
iperf is a tool for performing network throughput measurements. It can test either TCP or UDP throughput. To perform an iperf test the user must establish both a server (to discard traffic) and a client (to generate traffic).
3.1、 TCP(默认为TCP)
n 测量网络带宽(附录1)
n 报告MSS/MTU值的大小和观测值(使用-m选项,附录2)
n 可以设置套接字缓冲区为指定大小(默认85.3 KByte)。对于TCP方式,此设置为TCP窗口大小(附录3)。对于UDP方式,此设置为接受UDP数据包的缓冲区大小,限制可以接受数据包的最大值。
n 当P线程或Win32线程可用时,支持多线程。客户端与服务端支持同时多重连接(-P选项,参见附录4 )
3.2、UDP(通过-u选项指定为UDP,附录5)
n 客户端可以创建指定带宽的UDP流(用-b选项,单位bits/sec。此选项与-u选项相关。默认值是1 Mbit/sec,附录5))
n 测量丢包率(附录5))
n 测量延迟抖动(附录5)
n 支持多播
n 当P线程可用时,支持多线程。客户端与服务端支持同时多重连接(不支持Windows)
其它选项:
-p, --port n set server port to listen on/connect to to n (default 5001)
………
二、netperf
1、下载地址:
wget ftp://ftp.netperf.org/netperf/netperf-2.5.0.tar.gz
2、参考资料:
http://baike.baidu.com/view/3506574.htm?fr=ala0_1_
3、功能介绍
man 说明
Netperf is a benchmark that can be used to measure various aspects of networking performance. Currently, its focus is on bulk data transfer and request/response performance using either TCP or UDP, and the Berkeley Sockets interface. In addition, tests for DLPI, and Unix Domain Sockets, tests for IPv6 may be conditionally compiled-in.
3.1、对TCP(缺省情况下进行TCP批量传输,即-t TCP_STREAM),Netperf可以模拟三种不同的TCP流量模式:
1) 单个TCP连接,批量(bulk)传输大量数据,测试过程中,netperf向netserver发送批量的TCP数据分组,以确定数据传输过程中的吞吐量(附录6)
2) 单个TCP连接,client请求/server应答的交易(transaction)方式(附录8)
3) 多个TCP连接,每个连接中一对请求/应答的交易方式(附录9)
3.2、对UDP(指定-t UDP_STREAM),Netperf可以模拟两种UDP的流量模式:
1) 从client到server的单向批量传输 (附录7)
2) 请求/应答的交易方式(附录10)
三、比较
都是开源软件。都可以支持tcp、udp协议,都是都可以指定端口号、指定tcp发送缓冲区大小、指定测试时间,都可以禁用Nagle's算法。
稳定性方面:开源软件,稳定性都不错。
| 支持多线程 | 可以设置服务器关闭之前保持的连接数 | 支持多播 | 支持除tcp、udp之外的协议 | 支持IPV6 | 可以输出TCP MSS值 | 设置测试分组大小 | 支持多种测试范式 | 稳定性 |
iperf | 是 | 是 | 是 | 否 | 一定程度上 | 是 | 否 | 否 |
|
netperf | 是 | 否 | 否 | 是 | 是 | 否 | 是 | 是 |
|