最近工作在玩 WiFi Module, 包含測試 Throughput rate, 就不得不提 Iperf 這個工具了, 當然, 網路上的資料已經一堆了, 不過還是給自己一個紀錄吧, 這樣以後要找資料, 就不用再 Google 了.
Iperf下載路徑:
For Linux :
http://sourceforge.net/projects/iperf/
For Windows :
https://nocweboldcst.ucf.edu/files/iperf.exe
Windows version 只是一個執行檔, 直接使用即可,
Linux version 是 source code, 需要重新 compiler, 步驟如下:
以目前最新版 2.0.5 為例, iperf-2.0.5.tar.gz
1, 先解壓縮
root@user:/# tar -zxvf iperf-2.0.5.tar.gz
2, 會產生一 iperf-2.0.5 資料夾, 進入此資料夾, 然後執行
root@user:/iperf-2.0.5# ./configure
root@user:/iperf-2.0.5# make
root@user:/iperf-2.0.5# make install
如果安裝過程中沒什麼問題, 即安裝完畢.
其實如果是用 Ubuntu 的話, 也不用如上那麼麻煩,
直接 key-in
root@user:/ sudo apt-get install iperf
應該就可以自動安裝完畢了,
如果輸入上面那行, 有出現啥 E: ...unable to location........ 之類的錯誤訊息,
就請先 key-in
root@user:/ sudo apt-get update
root@user:/ sudo apt-get install iperf
八成都可以安裝完畢啦.
=================================================================
使用 Iperf 需要用到兩台電腦, 一台 Server 端, 一台 Client 端,
一般而言, 要先執行 Server 端的指令, 再執行 Client 端的指令,
首先在 A 電腦, Server 端執行:
root@user:/ iperf -s
-s 表示為 Server 端
然後在 B 電腦, Client 端執行:
root@user:/ iperf -c 192.168.100.100 -t 60 -i 5
-c 表示為 Client 端
192.168.100.100 表示為 Server 端的 IP
-t 表示要傳收資料的總時間, 單位:秒
-i 表示每隔 x 秒就 report 一次在 monitor 上, 單位:秒
測試完成後, Client 會 show 出每隔 x 秒的 throughput rate, 最後會算出平均值,
而 Server 端, 會 show 出測試完畢的平均值.
==================================================================
依不同需求, 會使用到不同的參數, 例如設定 windows size 或 雙向對測.....etc
相關參數如下:
-s 以 Server 端啟動 iperf
-c host 以 Client 端啟動 iperf, host 表示 Server 端 IP
通用參數:
-f [k|m|K|M] 表示以Kbits, Mbits, KBytes, MBytes顯示結果, default 為 Mbits
-i sec 以秒為單位表示 report 間隔
-l 緩衝區大小, default 為 8KB
-m 顯示tcp最大mtu值
-o 將 report 和錯誤訊息輸出到文件, iperf -c 192.168.100.100 -o filename
-p 指定服務器端使用的端口或客戶端所連接的端口, for example: iperf -s -p 9999; iperf -c 192.168.100.100 -p 9999
-u 使用udp協議
-w 指定 TCP 的 windows size
-B 綁定一個主機地址或接口 (當主機有多個地址或接口時使用該參數)
-C 當 Server 端與 Client 端的 Iperf 版本不一樣時使用
-M 設定 TCP 封包的最大 mtu 值
-N 設定 TCP 不延時
-V 傳輸 ipv6封包
Server 端專用參數:
-D 以服務方式執行 iperf, iperf -s -D
-R 停止 Iperf 服務, 針對 -D 指令正在使用中
Client 端專用參數:
-d 同時進行雙向傳輸測試
-n 指定傳輸的 Byte 數
-r 單獨進行雙向傳輸測試
-t 總測試時間, default 為 10sec
-F 指定需要傳輸的文件
-T 指定 TTL 值
以上參數資料為在某個 China 網站取得, 已找不到出處, 若有疑慮請告知.