如何通过iPerf来测定网络性能 iperf测试网络

如何通过iPerf来测定网络性能?

Iperf是一个简单易用测量TCP/UDP的吞吐量、损耗和延迟的工具。

应用前的准备

iPerf是专门用于简化TCP性能优化的工具,使用它可以很容易地测量吞吐量和带宽的最大值。当与UDP一起使用时,iPerf还可以测量数据丢失和延迟(抖动)。iPerf可以在任何IP 网络上运行,包括本地以太网,因特网接入连接和Wi-Fi网络。

使用iPerf之前,必须安装两个组件:iPerf服务器(用于监听到达的测试请求)和iPerf客户端(用于发起测试会话)。iPerf可通过开放源代码或可执行二进制方式获取,它支持许多操作系统平台,包括Win32、Linux、FreeBSD、MacOSX、OpenBSD和Solaris。你可以在NLANR上下载iPerf的Win32安装程序,而JavaGUI版本(JPerf)则可以从SourceForge下载。

使用测试工具iPerf监控网络性能:

运行iPerf

在默认的情况下,iPerf客户端与指定的监听5001端口的iPerf服务器建立一个TCP会话。比如,在命令提示符上执行命令:iperf –s,打开iPerf服务器;然后打开另一个窗口,启动你的iPerf客户端,执行命令:iperf –c 127.0.0.1,此命令可以用来测量通过某个计算机回环地址(127.0.0.1)吞吐量。如果执行失败,那么这就表示你没有正确的安装iPerf。默认的情况下,iPerf运行一个10秒钟的测试,测量所传输的字节总数(如270兆字节)和相应的带宽使用估计(如226兆比特每秒)。测试长度可以通过指定时间参数(-t seconds)或缓冲参数(-n buffers)控制。而且,你还可以在指定时间间隔(-i seconds)中看到测试的结果。

如果要长时间地运行多个的测试,你应该更愿意将iPerf服务器作为后台程序运行,并将服务器输出写入一个日志文件中。在Win32平台上,它可以通过把iPerf作为服务(iPerf -s -D -o logfile.txt)安装来实现。如果你测试的流量将要通过网络防火墙,那么要确保打开端口5001或指定iPerf使用已经开放的端口(如,iPerf -c -p80)。如果你的iPerf服务器处于NAT防火墙之后,那么你可能需要配置一个端口转发规则来进行连接(这种情况在服务器到客户端流量的双向测试中也一样适用)。最后,要禁用你的iPerf客户端和服务器上的任何个人防火墙。当客户端能够到达服务器时,你就可以开始测量网络性能了。

测量TCP吞吐量

为了确定最大TCP吞吐量,iPerf尝试从客户端尽可能快地向服务器上发送数据。默认时数据是以8KB大小缓冲发送的,这也是通过操作系统的默认的TCP窗口大小值。为了模拟特定TCP应用,可以指定iPerf客户端从一个特定的文件(-F 文件名)或交互式输入(-I)来发送数据。

比如:

如果没有指定发送方式,iPerf客户端只会使用一个单一的线程。可以修改为使用多个并行线程(-P数目)来发送数据。

在测试Wi-Fi时,在同一台笔记本上的多线程可能会略微增加整体的吞吐量。但是,有时你将需要使用多台拥有各自Wi-Fi适配器的笔记本来模拟几个不同位置用户体验的性能。这是因为在同一个笔记本上运行的多线程仍然共享同一个Wi-Fi适配器上的占用时间。

另外一方面,如果你的笔记本上拥有多个激活的适配器,你可以使用IP地址(-B IPAddress)将iPerf客户端绑定到一个适配器上。这个对于同时连接到Ethernet和Wi-Fi(3G、Wi-Fi)的多连接笔记本来说是相当重要的。

iPerf原先是开发用来辅助TCP参数优化的,但在此我们不想深入研究TCP窗户尺度和最大段长度,因为这不是我们目前讨论的重点。然而,在测试高吞吐量AP时,你可能发现有必要对TCP参数进行调优,以便在每个iPerf 客户端上获得更大吞吐量——详细请阅读DrTCP。

测量UDP丢包和延迟

iPerf同样也可以用于测量UDP数据包吞吐量、丢包和延迟指标。与TCP测试不同的是,UDP测试不采取尽可能快地发送流量的方式。与之相对的是,iPerf尝试发送1Mbps的流量,这个流量是打包在1470字节的UDP数据包中(成为以太网的一帧)。我们可以通过指定一个目标带宽参数来增加数据量,单位可以是Kbps 或Mbps(-b #K 或 --b #M)。举例如下:

然而,上面的例子只说明了iPerf客户端能够以多快的速度传输数据。为了得到更多关于UDP发送的数据,我们必须查看服务器上的结果:

这样,我们就可以看到吞吐量(间隔1秒测量的),以及丢包数(丢失的数据屯接收到的数据对比)和延迟(如jitter——在连续传输中的平滑平均值差)。延迟和丢失可以通过应用的改变而被兼容。比如,视频流媒体通过缓冲输入而能够容忍更多的延迟,而语音通讯则随着延迟增长性能下降明显。

UDP测试可以通过改变报文缓冲长度进行优化,长度单位为Kbytes 或 Mbytes(-l #K or #M)。与以太网帧的1500比特的MTU(最大转换单位)不同的是,802.11数据帧可以达到2304比特(在加密之前)。

但是,如果你正在测试的路径中包括Ethernet和802.11,那么要控制你的测试数据包长度,使它在一个Ethernet帧以内,以避免分片。

另一个有趣的iPerf UDP测试选项是服务类型(Type ofService, ToS),它的大小范围从0x10 (最小延迟) 到0x2(最少费用)。在使用802.11e来控制服务质量的WLAN中,ToS是映射在Wi-Fi多媒体(WMM)存取范畴的。
如何通过iPerf来测定网络性能 iperf测试网络

对比两种方式

在802.11a/b/g网络中,无线电的传输性能变化在在两个方向上都很相似。比如,当距离导致数据传输率下降或干扰造成重要数据包丢失时,发送和接收的应用吞吐量都受到影响。

在802.11n网络中,MIMO天线和多维空间流使问题又有所不同。从笔记本发送到AP上的数据帧可能(有意地)使用一个完全与从AP发送到笔记本上帧时不同的空间路径。这样的结果是,现在对两个方向的测试都很重要的。幸运的是,iPerf本身就已经拥有这个功能,这是由两个选项所控制的:

--d选项是用于告诉iPerf服务器马上连接回iPerf客户端的由--L 所指定端口,以支持同时测试两个方向的传输。

--r选项虽然有些类似,但是它是告诉iPerf服务器等到客户端测试完成后再在相反的方向中重复之前的测试。

最后,如果你需要支持多点传送应用,那么可以使用-B选项指定多点传送组IP地址来启动多个iPerf服务器。然后再打开你的iPerf客户端,连接之前启动的多点传送组iPerf服务器。

使用测试工具iPerf监控无线网络性能:图形化测试结果

如本文介绍的,iPerf程序可以在命令行下运行,它或者也在一个名为JPerf的Java实现前端工具上运行。JPerf不仅能简化复杂命令行参数的构造,而且它还保存测试结果——同时实时图形化显示结果。

事实上,iPerf测试工具被嵌入到一些其它的网络流量分析工具中——包括底层LAN分析工具,如AirMagnet。

总结

正如我们所看到的,iPerf简化了对基于TCP数据流应用和UDP数据包应用的端对端性能测定。然而,iPerf仍然无法模拟所有类型的应用——比如,对于交互式上网的模拟就不是很好。同时,用于iPerfWi-Fi测试的WLAN适配器也会影响你的测试——为了获得更好的测试结果,我们可以配置一个类似于“实际”用户的有代表性的适配器。

尽管如此,iPerf仍然是一个非常方便的工具,它可以帮助你生成和检测WLAN应用流量。同时,因为iPerf可以方便以开源软件方式获取,因此使用它来在其它位置重复创建测试环境是一个很好的方法——如分公司、供应商技术支持等等。想要了解更多关于iPerf的信息,可以阅读NLANR上的更老的文件或者浏览SourceForge上新的项目页面。

  

爱华网本文地址 » http://www.aihuau.com/a/25101011/52031.html

更多阅读

如何通过网络达到迅速找人的目的? 财产清查的目的是达到

如何通过网络达到迅速找人的目的?——简介  很多人想从网上迅速找到别人,内心急切想寻找的时候,这个时候找人方法显得犹其重要。现在我就讲下具体的寻找方法。如何通过网络达到迅速找人的目的?——工具/原料QQ好友QQqun微博微信地方

Android手机如何通过USB共享PC网络 pc usb共享网络

其实该方法是通用的,很多Android的手机都能支持的,具体老版本的Android是否支持我就不清楚了,我没有机器测试,但至少2.1、2.2的固件是没问题的。下面看图文教程:Android手机如何通过USB共享PC网络——工具/原料

声明:《如何通过iPerf来测定网络性能 iperf测试网络》为网友优越少年分享!如侵犯到您的合法权益请联系我们删除