新进化论

道生一,一生二,二生三,三生万物。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
经常听到有企业员工抱怨网络速度如何如何缓慢,也经常怀疑花费高昂金额租用来的网络链路是否真的物有所值而没有被电信部门缩水,还有时发现内网链路总是存在着这样或那样不稳定数据传输忽快忽慢的情况。这些问题都是困扰各位网络管理员的实际问题,今天笔者就从自己经验入手为各位讲解如何通过iperf让内网传输速度心知肚明。

  一,网络带宽测量工具简介:
  一般来说市面上常用的网络带宽及网络吞吐量测量工具主要有以下几种,包括iperf,netperf,chariot等专业的工具。通过他们我们可以实现测量有线网络两个结点或者无线网络任意两个结点之间的传输速度,测量的参数包括数据流方向,吞吐量以及稳定程度等。

  当然经常关注我们IT168网络频道的读者都应该对chariot工具比较了解,毕竟我们之前已经有多篇文章介绍他的使用和测量技巧了。但是chariot在实际测量过程中操作过于复杂,很多功能对于我们这些普通用户来说都不太实际,所以在本文中笔者将为各位IT168读者介绍iperf这个工具,在操作上他比chariot更加简单更好上手,适合于初学者以及对网络带宽要求不高环境下的测量。


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

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



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

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

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


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

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

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

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


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

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



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


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



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

  第一步:例如我们要测试内网结点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,这样将每隔两秒自动将测量结果显示出来,在最后再计算其平均值。(如图8)



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


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

測試傳輸效能及穩定度其實很容易,我們將教會你如何透過免費工具來做到這件事。
在企業評估網路設備的流程中,實際測試佔了非常重要的一環(愈大型的產品更是如此),目的是為了找出符合需求的設備,避免IT投資的浪費。一般來說,網路設備的測試有兩種常見的做法,一種是將設備直接部署上線,觀察它在真實流量下的運作情況,至於另外一種方式則是利用工具取得數據。
雖然透過工具測試網路設備,經常會與實際環境下的結果有所落差,不過對於測試時間有限的企業來說,仍然是可行的做法,而我們所要介紹的Iperf,正是一套常用的免費流量產生工具,可以幫助企業測試網路設備的傳輸效能,或者找出實際環境當中的效能瓶頸。
能在Windows等多種平臺環境下運作
我們此次使用的Windows版本Iperf主程式執行檔,可以在http://www.noc.ucf.edu/Tools/Iperf/iperf.exe下載,它支援Windows、Linux等多種平臺環境。除了該工具之外,網路上常見的類似測試工具還包括了Netperf。
就我們這次使用的Windows版本來說,程式不需要安裝就能直接使用。只要將Iperf.exe的主程式放置到適當路徑(例如C:\),之後就可以在命令提示字元的環境下,以指令方式運行Iperf的各項功能模式。
既然是以流量方式測試效能,因此執行Iperf的電腦需有兩臺,分別以伺服器及用戶端的模式開啟,其中前者負責接收用戶端電腦傳送而來的流量,並產生效能數據。
就一般最常見的應用來說,只需要在Iperf主程式所在的目錄下,執行「iperf.exe -s」指令,就能讓電腦進入Iperf的伺服器模式。
用戶端的操作指令就相對複雜一些,除了輸入「-c」參數啟用Iperf的用戶端模式之外,至少需要指定Iperf伺服器所在的IP位址,才能傳送流量到伺服器做測試。
為了免去使用者理解參數功能的不便,因此後來也出現所謂的Jperf,也就是在原有的Iperf主程式之上,加上一個以Java編寫而成的圖形化介面,只要電腦本身有安裝JVM軟體,直接點選Jperf.bat這個批次檔,就能開啟圖形介面,操作Iperf的各項測試。
功能以流量測試為主
Iperf最常見的應用之一,是用來測試網路設備的NAT效能,以居易的Vigor2110路由器為例,我們將兩臺電腦分別接在這臺設備的WAN及LAN埠,做為伺服器及用戶端電腦,經由傳輸流量所得的NAT效能為76.9Mbps,意味該款設備能夠介接的總頻寬(上傳+下載)大小約在76~77Mbps左右。
不過隨著設備啟用的功能愈來愈多,對於NAT轉送流量的能力也會有所影響(以企業端的UTM為例,影響最大的是閘道防毒、IPS及VPN等三項功能,個人端設備的瓶頸則多半在於QoS),而以網路設備本身的設計來說,一般影響NAT效能表現的因素,由大至小,分別是處理器/記憶體、韌體及網路介面等三項。
當流量透過網路介面送入設備之後,會經由處理器的運算,根據封包表頭所提供的資訊而決定流向,而在開啟多項功能使得硬體資源消耗過多時,用來解析封包的硬體資源就會相對減少,使得效能下降。
至於網路設備的韌體,就如同電腦的作業系統,當韌體撰寫得太過肥大,占用太多的系統資源時,也同樣會影響效能表現。
網路介面對於NAT效能的影響比較不明顯,多數網路設備內建的交換器晶片在等級上並沒有明顯的差異,不過也有少數設定不良的晶片會在網路封包密集傳送的情況下,出現比較明顯的效能波動。
傳送流量之餘,也能測試設備運作是否穩定
Iperf預設的測試時間是10秒,也就是說需以每10秒為一個段落進行傳輸測試。不過我們一般都會將測試時間拉長,同時增加傳輸次數,藉此了解流量傳輸的起伏,判斷穩定與否,這時可利用「-t」參數,設定用戶端傳輸流量的秒數。
在傳送流量的同時,也能透過Iperf對於網路設備實施壓力測試,利用「-P」參數,同時模擬多臺電腦傳輸流量的行為,測試設備在開啟大量連線數的情況下,能否持續正常運作,不過我們建議,如果要開啟大量的連線數,最好是使用Linux、FreeBSD版本的Iperf執行這項測試。
也能用於無線網路的效能測試
不只是有線網路的環境,Iperf也很適合用來測試無線網路,尤其是支援802.11n草案的無線網路設備。
相較之下,Ixia的IxChariot及Qcheck是經常用來測試無線網路的兩套代表性軟體,但使用上都有一些限制,IxChariot的功能雖然強大,然而使用上必須付費,同時使用者也必須了解如何設定測試的範本,形成一定的使用門檻;至於免費版本的Qcheck最多僅能傳送1MB大小的測試檔案,在802.11n的環境下,往往未達效能傳輸的頂點,測試即告結束,因此僅能在802.11a/b/g的環境下測試無線網路的效能。
由於可以長時間傳送大量流量,因此很多人也以Iperf測試無線網路,這裡我們使用了SMC的SMCWBR14S-N2無線路由器,搭配同廠牌USB介面的SMCWUSBS-N網卡,在40GHz頻寬的802.11n模式下,透過Iperf測得的速度最快為79.4Mbps,與透過IxChariot 5.4試用版測試所得的數據相差不多。文⊙楊啟倫
使用Iperf測試網路設備效能
我們將示範4個步驟,透過Iperf測試網路設備效能,使用居易的Vigor2110及支援802.11n無線網路標準的SMC SMCWBR14S-N2兩款消費端的路由器設備做為Iperf的測試平臺,在設備還原為出廠預設值的情況下,執行效能的傳輸測試。

我們在連接居易Vigor 2110路由器WAN埠的電腦上輸入了iperf.exe–s指令,將該臺電腦設定為Iperf的伺服器。

在另外一臺連接LAN埠的電腦上輸入指令,傳送流量到伺服器端測試效能,測試完畢後,在兩端的命令提示字元視窗皆會顯示測試結果。

為了方便示範,這裡我們僅開啟了5個Session測試Vigor 2110同時傳輸封包,對於有意實施壓力測試的人來說,可以加大同時傳輸的Session數量。

就無線網路的測試來說,在搭配同廠牌USB 介面的SMCWUSBS-N網卡,我們透過perf測得79.4Mbps的效能數據,大致符合802.11n的效能要求。
posted on 2012-04-14 22:35  岌岌可危  阅读(2596)  评论(0编辑  收藏  举报