Iperf: 一个优秀的网络性能测量工具- 云月湖- CSDN博客

<转 自 http://www.wangchao.net.cn/bbsdetail_1407447.html>

 Iperf 是一个 TCP/IP 和 UDP/IP 的性能测量工具,能够提供网络吞吐率信息,以及震动、
  丢包率、{zd0}段和{zd0}传输单元大小等统计信息;从而能够帮助我们测试网络性能,定位
  网络瓶颈。其设计从根本上克服了原来的一些工具,如 ttcp 和 nettest 等,的固有的缺陷。
  为了方便使用,Iperf 还提供了一个 Java 前端。如下图所示:
   500) {this.resized=true; this.width=500;}" onmouseover="this.style.cursor='hand'" onclick="{window.open('http://www.linuxforum.net/doc/iperf.JPG');}" src="http://www.linuxforum.net/doc/iperf.JPG" onmousewheel="return bbimg(this)" width=400 border=0
  这个前端仅仅是让用户以图形化的方式配置选项,实际上最终还是要(另外打开一个窗口)
  运行 Iperf 程序。其启动方式为运行 jperf,实际上jperf 只是shell脚本,后台运行的
  为java -classpath jperf.jar Interface。
  Iperf 的命令行选项与jperf界面展示的基本一样。下面我们结合例子进行介绍其主要用法。
  使用 iperf -s 命令将 Iperf 启动为 server 模式,在客户机上使用 iperf -c启动client模式。
  [wfchair@wfchair] $ iperf -c bfp1 -i1
  命令的输出如下:
  --------------------------------------------------------------------------------
  Client connecting to bfp1, TCP port 5001
  TCP window size: 64.0 KByte (default)
  --------------------------------------------------------------------------------
  [ 3] local 152.16.3.132 port 1026 connected with 152.3.2.110 port 5001
  [ ID] Interval Transfer Bandwidth
  [ 3] 0.0- 1.0 sec 720 KBytes 5.5 Mbits/sec
  [ 3] 1.0- 2.3 sec 704 KBytes 4.3 Mbits/sec
  [ 3] 2.3- 3.0 sec 448 KBytes 5.0 Mbits/sec
  [ 3] 3.0- 4.1 sec 504 KBytes 3.6 Mbits/sec
  [ 3] 4.1- 5.4 sec 656 KBytes 3.9 Mbits/sec
  [ 3] 5.4- 6.1 sec 360 KBytes 4.1 Mbits/sec
  [ 3] 6.1- 7.2 sec 584 KBytes 4.1 Mbits/sec
  [ 3] 7.2- 8.1 sec 600 KBytes 5.1 Mbits/sec
  [ 3] 8.1- 9.2 sec 472 KBytes 3.4 Mbits/sec
  [ 3] 9.2-10.1 sec 480 KBytes 4.3 Mbits/sec
  bfp1 为启动了 Iperf server 模式的一台机器。其中 -i 参数的含义是周期性报告的时间间隔
  (interval),单位为秒;在上面的例子中,表示每隔一秒报告一次(带宽等信息)。
  另外还有其它一些选项,您可以参看手册里的说明。


通过下载测量网络传输速度:
  在介绍iperf工具的使用之前我们先来看看其他测量网络传输速度的方法,首先是下载法。这个也是大家最常用的方法,即通过到本地网络或本地ISP服务提供商的服务器上下载文件,从而通过传输速度判断自己的网络带宽。

  例如笔者所在网络是通过网通服务提供商接入的,所以直接到网通服务器上下载相应的文件,为了保证测量的准确性,我们一般选择单个大容量文件下载测试,通过观察其下载平均值了解当前网络带宽情况。(如图1)


    
    文件下载法是最简单的不借助任何工具即可完成的网络传输速度测量方法,不过这个方法也存在着比较大的误差,我们的测量结果也会随着选择服务器的网络状况变 化而改变,特别是当选择了电信服务器时下载速度将没有任何说服力。而且服务器选择也比较麻烦,不能被限制速度也不能够被限制会话连接数。

  小结——下载法测量网络传输速度只能够简单测量,得出的数值仅仅是参考,没有任何说服力,在速度结果方面也存在着很大的不确定性。

  小提示:

  如果找不到这样的FTP服务器的话,我们也可以下载一个热门的BT文件,往往也可以通过BT下载峰值而了解自己的网络{zd0}带宽。

 二,网站自动测量带宽速度法:

  当然很多网站也会为各位用户提供带宽速度测量服务,例如笔者经常去的http://www.linkwan.com就是他们中的佼佼者。

  {dy}步:在本机操作测量时先关闭所有占用带宽的软件,停止所有下载任务。

  第二步:打开IE浏览器访问http://www.linkwan.com这个地址。

  第三步:在首页右面区域我们会看到让我们选择的区域范围,由于笔者是在北京所以直接选择针对北京服务器进行测量即可。

    第四步:之后会进一步选择测量目标是在北京的哪台服务器。

  第五步:选择完毕后站点会自动测试本机到网站的传输速度,经过下载测试与上传测试两个步骤完成测量工作,之后我们会看到测量结果。(如图2)


    
    网站自动测量带宽速度法的准确性还是有保证的,不过他也存在一个缺点,那就是通过他只能够测试到达外网的传输速度,对于内网来说不能够通过此方法测试两个结点之间的传输带宽。这时就要靠本文的主角IPERF来实现了。


  三,IPERF出手轻轻松松测量内网带宽:

  Iperf是一个TCP/IP和UDP/IP的性能测量工具,能够提供网络吞吐率信息,以及震动、丢包率、{zd0}段和{zd0}传输单元大小等统计信 息;从而能够帮助我们测试网络性能,定位网络瓶颈。我们可以通过访问http://www.noc.ucf.edu/tools/iperf/获得此工 具,直接选择windows版本的iperf.exe下载即可。(如图3)


    
    用iperf.exe来测量网络两个结点的网络带宽非常简单,不过需要我们针对服务端与客户端进行设置。

  {dy}步:例如我们要测试内网结点A与B两台计算机之间的传输带宽,那么我们需要复制iperf.exe到这两台计算机硬盘中。

    第二步:随意选择结点A作为服务端,而B作为客户端,在A上进入命令提示窗口运行iperf -s命令,这样iperf将以服务端方式启动,并且通过TCP的5001端口监听数据。(如图4)


    
    第三步:接下来我们返回到B结点进入命令提示窗口,然后运行iperf -c 192.168.0.199 -t 60,这个命令是将B结点以客户端的方式运行,并且连接IP地址为192.168.0.199的服务端,监视测量数据时间是60秒。(如图5)


    
    第四步:运行完毕客户端将自动开启1903端口连接服务端的5001端口,通过发送与接收数据包来实现测量带宽的目的。

  第五步:与此同时我们在服务端上也可以看到有客户端连接5001端口的提示,这表明两个结点已经建立了相应的连接,数据通讯正常。(如图6)


    
    第六步:由于我们之前是设置了测量时间间隔为60秒,所以在60秒过后客户端结点上就会显示出测量的具体数据,从A到B发送接收数据的速度为 177Mbits/sec,由于以太网数据传输是双向双工的,所以百M网线理想状态传输速度应该是200Mbits/sec。(如图7)



    
    第七步:当然我们还可以通过在客户端上执行iperf -c 192.168.0.199 -t 60 -i 2,这样将每隔两秒自动将测量结果显示出来,在{zh1}再计算其平均值。(如图8)


    
    通过简单的设置和简单的指令我们轻松实现了针对内网两个结点之间带宽传输速度的测量,当然iperf程序还支持很多参数,具体设置我们可以参考其帮助信 息,比较常用的有-l 缓冲区大小,-m 显示tcp{zd0}mtu值,-p 指定服务器端使用的端口或客户端所连接的端口,-u 使用udp协议,-w 指定TCP窗口大小,默认是8KB,-M 设定TCP数据包的{zd0}mtu值等。另外在客户端上可以通过-n 指定传输的字节数,-r 单独进行双向传输测试,在服务端则可以通过-D参数以服务方式运行ipserf,以-R来停止iperf服务。


  四,总结:

  虽然IPERF现在有java的图形化界面,但是对于这个命令行小工具来说使用还是非常方便的,结果也很直观,现在他已经成为笔者判断网络是否拥堵,链路状态是否正常的好帮手。在实际使用和维护网络过程中屡建奇功。


在iperf中:server 端的设置为:   ./iperf -s -i 5 > iperf_serverlog &
在client中设置为:              ./iperf -c [server ip] -i 5 -t 3600 > iperf_client.log &

发表于 @ 2009年08月28日 17:43:00 | | | |

 | 

郑重声明:资讯 【Iperf: 一个优秀的网络性能测量工具- 云月湖- CSDN博客】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——