iperf詳細使用方法(轉發)


iperf詳細使用方法

      Iperf  是一個網絡性能測試工具。Iperf可以測試TCP和UDP帶寬質量。Iperf可以測量最大TCP帶寬,

具有多種參數和UDP特性。Iperf可以報告帶寬,延遲抖動和數據包丟失。  

Iperf使用方法與參數說明   

參數說明

-s   以server模式啟動,eg:iperf -s 

-c host 以client模式啟動,host是server端地址,eg:iperf -c 222.35.11.23

通用參數 

-f [k|m|K|M] 分別表示以Kbits, Mbits, KBytes, MBytes顯示報告,默認以Mbits為單位,eg:iperf -c 222.35.11.23 -f K 

-i sec 以秒為單位顯示報告間隔,eg:iperf -c 222.35.11.23 -i 2

-l 緩沖區大小,默認是8KB,eg:iperf -c 222.35.11.23 -l 16 -m 顯示tcp最大mtu值 

-o 將報告和錯誤信息輸出到文件eg:iperf -c 222.35.11.23 -o c:\iperflog.txt 

-p 指定服務器端使用的端口或客戶端所連接的端口eg:iperf -s -p 9999;iperf -c 222.35.11.23 -p 9999 

-u 使用udp協議 

-w 指定TCP窗口大小,默認是8KB 

-B 綁定一個主機地址或接口(當主機有多個地址或接口時使用該參數)

-C 兼容舊版本(當server端和client端版本不一樣時使用)

-M 設定TCP數據包的最大mtu值

-N 設定TCP不延時

-V 傳輸ipv6數據包   server專用參數 

-D 以服務方式運行ipserf,eg:iperf -s -D -R 停止iperf服務,針對-D,eg:iperf -s -R  

client端專用參數 

-d 同時進行雙向傳輸測試 

-n 指定傳輸的字節數,eg:iperf -c 222.35.11.23 -n 100000

-r 單獨進行雙向傳輸測試 

-t 測試時間,默認10秒,eg:iperf -c 222.35.11.23 -t 5

-F 指定需要傳輸的文件

-T 指定ttl值 

操作舉例:

1)TCP測試 

      服務器執行:#iperf -s -i 1 -w 1M

      客戶端執行:#iperf -c host -i 1 -w 1M  其中-w表示TCP window size,host需替換成服 務器地址。 

2)UDP測試 

      服務器執行:#iperf -u -s 

      客戶端執行:#iperf -u -c 10.32.0.254 -b 900M  -i 1  -w 1M  -t 60 

      其中-b表示 使用帶寬數量,千兆鏈路使用90%容量進行測試就可以了。  

幾個命令參數: 

#iperf -c 10.1.1.1        //客戶端命令 

#iperf -s                      //服務端命令

-f [b|B|k|K|m|M|g|G]  //f參數表示單位 

-r                             //r參數表示雙向數據測試,但要先測c到s的帶寬 

-d                             //d參數和r近似,並且功能更強,可同時測試雙向數據

-w [2000]                  //w參數后跟數字,單位是byte,

-p [12000]                  //p參數可指定端口號 

-t [20]                       //t參數默認表示測試10次,后加數字可以自己定義

-i [2]                         //i參數表示測試開始到結束的間隔時間,單位s

-u -b 10m                   //udp 10mbps 測試

-m                             //最大mpu測試

-P                              //並行測試

-h                              //幫助   

iperf工具使用     

      很多公司都在將自己的無線網絡升級到802.11n,以實現更大的吞吐量、更廣的覆蓋范圍和更高的可靠性,

然而保證無線LAN(WLAN)的性能對於確保足夠的網絡容量和覆蓋率尤為重要。下面,我們將探討如何通過

iPerf來測定網絡性能,這是一個簡單易用測量TCP/UDP的吞吐量、損耗和延遲的工具。     

應用前的准備      

      iPerf是專門用於簡化TCP性能優化的工具,使用它可以很容易地測量吞吐量和帶寬的最大值。當與UDP一

起使用時,iPerf還可以測量數據丟失和延遲(抖動)。iPerf可以在任何IP 網絡上運行,包括本地以太網,因特

網接入連接和Wi-Fi網絡。      

      使用iPerf之前,必須安裝兩個組件:iPerf 服務器(用於監聽到達的測試請求)和iPerf客戶端(用於發起測

試會話)。iPerf可通過開放源代碼或可執行二進制方式獲取,它支持許多操作系統平台,包括Win32、Linux、

FreeBSD、MacOS X、OpenBSD和Solaris。你可以在NLANR上下載iPerf的Win32安裝程序,而Java GUI版本

(JPerf)則可以從SourceForge下 載。      

      為了測量Wi-Fi性能,你可能需要在所測試的接入點(AP)的以太網主機上游位置上安裝iPerf——這個也就

是你的測試服務器。接着,在一個或更多的Wi-Fi筆記本上安裝iPerf——這些將是你的測試客戶端。這個就是典型

的Wi-Fi客戶端與有線服務器之間的應用網絡。如果你的目的是測量AP性能,那么可以把iPerf服務器與AP放置在

相同LAN上,並通過高速或超高速以太網連接。如果你的目的是清除瓶頸問題,那么可以將iPerf服務器要與實際的

應用服務器放置在相同位置,這樣就會有一個可比較的網絡通道。      

      另外,iPerf 服務器和客戶端可以同時安裝在Wi-Fi筆記本上的。當你要在無線客戶端上支持視頻或語音通信,

那么這對於測量客戶端到客戶端性能是有幫助的。同樣,要確保iPerf流量能夠穿越你要測試的整個網絡通道。比

如,如果你要在相鄰位置的Wi-Fi客戶端上測量性能的最佳值,你必須把你的iPerf客戶端和服務器接入到相同的

AP上。如果你想要觀察穿越上流交換機或WAN的路由是如何影響網絡性能的,那么可以把你的iPerf服務器接入

到一個中央AP上,並且將iPerf客戶端與在不同的地點的AP連接。      

運行iPerf      

      在默認的情況下,iPerf客戶端與指定的監聽5001端口的iPerf服務器建立一個TCP會話。比如,在命令提示符

上執行命令:iperf –s,打開iPerf服務器;然后打開另一個窗口來啟動你的iPerf客戶端: 

      上面命令是你可以用來測量通過某個計算機回環地址(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 --p 80)。如果你的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。     

使用測試工具iPerf監控無線網絡性能:測量UDP丟包和延遲       

      iPerf同樣也可以用於測量UDP數據包吞吐量、丟包和延遲指標。與TCP測試不同的是,UDP測試不采取

盡可能快地發送流量的方式。與之相對的是,iPerf嘗試發送1 Mbps的流量,這個流量是打包在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 of Service, ToS),它的大小范圍從0x10 (最小延遲)

到0x2 (最少費用)。在使用802.11e來控制服務質量的WLAN中,ToS是映射在Wi-Fi多媒體(WMM)存取范疇的。

對比兩種方式

      在802.11a/b/g網絡中,無線電的傳輸性能變化在在兩個方向上都很相似。比如,當距離導致數據傳輸率下降

或干擾造成重要數據包丟失時,發送和接收的應用吞吐量都受到影響。      

      在802.11n網絡中,MIMO天線和多維空間流使問題又有所不同。從筆記本發送到AP上的數據幀可能(有意地)

使用一個完全與從AP發送到筆記本上幀時不同的空間路徑。這樣的結果是,現在對兩個方向的測試都很重要的。

幸運的是,iPerf本身就已經擁有這個功能,這是由兩個選項所控制的:       

 --d選項是用於告訴iPerf服務器馬上連接回iPerf客戶端的由

--L 所指定端口,以支持同時測試兩個方向的傳輸。       

--r選項雖然有些類似,但是它是告訴iPerf服務器等到客戶端測試完成后再在相反的方向中重復之前的測試。

      最后,如果你需要支持多點傳送應用,那么可以使用-B選項指定多點傳送組IP地址來啟動多個iPerf服務器。

然后再打開你的iPerf客戶端,連接之前啟動的多點傳送組iPerf服務器。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM