http://neilchen0710.pixnet.net/blog/post/80368013-iperf-%E8%A8%AD%E5%AE%9A-(%E8%BD%89%E8%B2%BC)
Iperf使用說明
Iperf 是一個 TCP/IP 和 UDP/IP 的性能測量工具,能夠提供網路吞吐率信息,以及震動、丟包率、最大段和最大傳輸單元大小等統計信息;從而能夠幫助我們測試網路性能,定位網路瓶頸。
參數說明
-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.隨意選擇結點A作為Server端,而B作為客戶端,在A上進入命令提示字元執行iperf -s,這樣iperf將以Server端方式啟動,並且通過TCP的5001port監聽.
2.接下來我們到B節點進入命令提示字元,然後執行iperf -c 192.168.0.199 -t 60,這個命令是將B節點以客戶端的方式運行,並且連接IP地址為192.168.0.199的服務端,監視測量數據時間是60秒.
3.執行完畢客戶端將自動開啟1903port連接服務端的5001port,通過發送與接收數據來實現測量頻寬的目的.
4.與此同時我們在Server端上也可以看到有客戶端連接5001port的提示,這表明兩個節點已經建立了相應的連接,數據通訊正常.
5.由於我們之前是設置了測量時間間隔為60秒,所以在60秒過後客戶端節點上就會顯示出測量的具體數據.
6.當然我們還可以通過在客戶端上執行iperf -c 192.168.0.199 -t 60 -i 2,這樣將每隔兩秒自動將測量結果顯示出來,在最後再計算其平均值.
當需要測試網路環境中的速度是否為理想狀況時,最普通的是利網路芳鄰、FTP傳軟來達成測試的目地,但如果需要重覆測試取得平均值時,這樣的測法可能比較沒有效率了,所以有iperf這樣的工具對於測試網路傳輸的速度來說就較方便。要使用iperf的話就要有2台電腦,一台為serve端,另一台為client端,此次以windows環境來當做示範,需要windows版本可以到這裡下載取得,其他平台的話,iperf有提供原始碼可以供其他平台重新編譯就可以使用。
以下則開始介紹如何使用iperf,分為Server與Client,要先執行Server程式再執行Client。
Server(伺服端):
執行iperf –s
Client(客戶端):
iperf –c 192.168.3.58 –w 100M –t 120 –i 10
-c 192.168.3.58 :Server端的IP
-w 100M :測試的檔案大小
-t 120 :監視測量數據時間為120秒
-i 10 :每隔10秒將數據顯示出來
測試完成會如下面的圖總共測試從0.0~121.3秒,傳輸9.28GByte,
所使用的平均速度在657Mbits/sec,對於1Giga來說已經發揮6成的速度,當然這個環境下測試的值並不是理想值,在測試時還有另外在操作網路上的軟體,所以速度並沒有我第一次在測試時平均可以跑到800Mbits/sec,想要知道自已網路環境是否為較合理的值可以使用iperf測試看看,把問題找出來。
通過簡單的設置和簡單的指令我們輕鬆實現了針對內網兩個節點之間頻寬傳輸速度的測量,當然iperf程序還支援很多參數,具體設定我們可以參考其 HELP,比較常用的有-l 緩衝區大小,-m 顯示tcp最大mtu值,-p 指定伺服端使用的port或客戶端所連接的port,-u 使用udp協議,-w 指定TCP窗口大小,預設是8KB,-M 設定TCP資料封包的最大mtu值等。另外在客戶端上可以通過-n 指定傳輸的位元組數,-r 單獨進行雙向傳輸測試,在伺服端則可以通過-D參數以服務方式運行ipserf,以-R來停止iperf服務.
Iperf 實做,tcp 與 udp 測速
# wget -c http://ncu.dl.sourceforge.net/project/iperf/iperf/2.0.4%20source/iperf-2.0.4.tar.gz
# mkdir iperfV2
# mv iperf-2.0.4.tar.gz iperfV2
# cd iperfV2
# gzip -d iperf-2.0.4.tar.gz (解壓縮)
# tar xvf iperf-2.0.4.tar
# cd iperf-2.0.4
# ./configure
# make
# make install-----到此時已經順利安裝完成
# iperf -s 127.0.0.1 (開啟iperf server端程式,使用tcp通訊協定)
# iperf -s 127.0.0.1 -u (開啟iperf server端程式,使用udp通訊協定)
此時server端的軟體已經啟動.
接下來於client端(windows system)在安裝檔的bin目錄下,並於dos視窗中執行
# iperf -c [遠端ip] -w 1M (TCP通訊協定)
或是
# iperf -c [遠端ip] -w 1M -u (UDP通訊協定)
留言列表