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 

Iperf -u -c -i 1 -l 542 -b 2m -t 999999
iperf -u -c 10.111.111.11 -l256 -b50M -t999999 -i1
iperf -u -s -i1 -w4m

      其中 - 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 服務器。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://www.cnblogs.com/Ph-one/p/10767962.html