1M-10M帶寬的測速可采用HTTP下載、FTP下載以及iperf測速,對10M以上的帶寬使用iperf測速。
下面介紹如何使用iperf2進行測速:
步驟一:下載iperf保存到本地C盤根目錄下,並解壓縮在當前目錄下;
步驟二:點擊“開始”->“運行”->輸入“cmd”,回車進入命令行模式;
步驟三:在命令行模式下輸入“cd\”,進入c盤根目錄;
步驟四:命令行模式輸入“dir”,查看iperf文件夾是否存在,存在則輸入“cd iperf”,進入iperf文件夾;
步驟五:在命令行模式下,輸入“iperf -c 192.168.23.200 -r -w 5k -t 20 -i 5”。
注意:如果用戶端,ping地址192.168.23.200延時比較大(>10ms),則修改上面命令參數-w,可以嘗試下面的命令:
iperf -c 192.168.23.200 -r -w 50k -t 20 -i 5 (高帶寬延時小的鏈路)
iperf -c 192.168.23.200 -r -w 300k -t 20 -i 5 (相對低帶寬延時大的鏈路)
Iperf常用參數說明:
- -c host 以客戶端模式啟動,host是數據源所在的服務器端地址,比如:iperf -c 222.35.11.23;
- -i sec 以秒為單位顯示報告間隔,比如:iperf -c 222.35.11.23 -i 2;
- -u 使用UDP協議,發送UDP數據包,默認使用TCP連接;
- -w 指定TCP窗口大小,默認是8KB,此參數比較重要,需要針對不同的帶寬和時延進行調整;
- -t 測試時間長,默認10秒,比如:iperf -c 222.35.11.23 -t 5
- -n (一般配合UDP協議時使用)指定傳輸的字節數,比如:iperf -c 222.35.11.23 -n 100000
- -P (大寫)指定同時進行的TCP/UDP連接數,對於高帶寬測速,需要該參數建立多條TCP/UDP連接以測得更准確的速率;
-
-s 以server模式啟動,eg:iperf -s
- -p 指定服務器端使用的端口或客戶端所連接的端口
下行UDP灌包(從服務器向終端灌包)
服務器側CMD窗口中啟動如下命令:
- iperf -c xx.xx.xx.xx -u -b 100m -p 6001 -t 9999
UE側PC CMD窗口中啟動如下命令:
- iperf -s -u -p 6001
參數說明:
參數 |
說明 |
c xx.xx.xx.xx |
表示向xx.xx.xx.xx灌包(xx.xx.xx.xx為UE ip地址) |
-u |
表示啟動UDP灌包,如果是灌TCP則不需要-u這個參數 |
-b 100m |
表示指定灌包大小,這里表示灌100M的數據 |
-p 6001 |
表示指定灌包的端口為6001,可根據需要更改 |
-t 99999 |
表示指定灌99999秒,可根據需要修改灌包時長 |
-s |
表示啟動iperf服務器 |
上行UDP灌包(從UE灌向服務器)
服務器側CMD窗口中啟動如下命令:
- Iperf –s –u –p 6002
UE側PC CMD窗口中啟動如下命令:
- Iperf –c xx.xx.xx.xx –u –b 100m –p 6002 –t 99999
參數說明:
參數 |
說明 |
c xx.xx.xx.xx |
表示向xx.xx.xx.xx灌包(xx.xx.xx.xx為服務器地址) |
下行TCP灌包
服務器側CMD窗口中啟動如下命令:
- Iperf –c xx.xx.xx.xx –p 6003 –w 512k –t 99999
UE側PC CMD窗口中啟動如下命令:
- Iperf –s –w 512k–p 6003
參數說明:
參數 |
說明 |
c xx.xx.xx.xx |
表示向xx.xx.xx.xx灌包(xx.xx.xx.xx為UE ip地址) |
-w |
指定TCP窗口大小 |
需要特別注意的是千萬不要-b,否則就成為UDP灌包。 |
上行TCP灌包
服務器側CMD窗口中啟動如下命令:
- Iperf –s –w 512k–p 6004
UE側PC CMD窗口中啟動如下命令:
- Iperf –c xx.xx.xx.xx –p 6004 –w 512k –t 99999
參數說明:
參數 |
說明 |
c xx.xx.xx.xx |
表示向xx.xx.xx.xx灌包(xx.xx.xx.xx為服務器地址) |
-w |
指定TCP窗口大小 |
需要特別注意的是千萬不要-b,否則就成為UDP灌包。 |
IPERF其他命令參數說明
IPERF參數大全 |
|
公共選項參數 |
|
-f:format |
速率報告的格式:是采用Kbits, Mbits, Kbytes,還是MBytes |
-i: interval |
周期性帶寬報告的時間間隔。單位:秒 |
-l:len |
讀寫緩沖區的長度。對於TCP,默認:8KB;對於UDP,默認:1470B |
-m:print_mss |
打印TCP最大段的大小(MTU - TCP/IP header) |
-p:port |
Iperf server監聽的服務端口;或Iperf client連接的服務端口。 在Iperf server和Iperf client兩邊的端口必須是相同的。默認服務端口:5001 |
-u:UDP |
使用UDP進行測量 |
-w:window |
設置套接字緩沖區大小為指定的數值。對於TCP,本選項將設置TCP窗口大小;對於UDP,本選項是接收數據報文的緩沖,所以它被限制到最大的接收數據報文大小 |
-B:bind |
綁定到主機的一個接口或組播地址。對於Iperf client,本選項設置的是對外的接口;對於Iperf server,本選項設置的是進入的接口。本選項參數僅用於多宿主主機,它有多個網絡接口 |
-C:compatibility |
兼容模式,允許和低版本的Iperf一起使用。兼容模式對於互用性並不是必需的,但是高度建議的。在某些案例里,當在使用典型的流(streaming)時,你可能會引起1.7版本的Iperf server沖突,或造成一些不希望發生的連接嘗試 |
-M:mss |
通過TCP_MAXSEG選項,設置TCP最大段大小(Maximum Segment Size )。對於TCP/IP頭部來說,MSS通常是MTU - 40 bytes;對於以太網,MSS是1640 bytes(1500 byte MTU)。在很多OSes里,本選項沒有被執行 |
-N:no delay |
設置TCP為零時延選項,禁止Nagle算法。通常,對於像Telnet這樣的交互式應用程序,此選項僅被禁止 |
-V |
綁定到一個IPv6地址。從V1.6或更高版本開始支持。其格式是: Server 側:$ iperf -s -V Client側:$ iperf -c <Server IPv6 Address> -V 注意:在V1.6.3版本或更高版本,一個特定的IPv6地址並不需要用“-B”選項來綁定,V1.6以前的版本需要。同樣,在大多數的OSes里,本選項的使用,也取決於使用IPv4映射地址的IPv4客戶端 |
Iperf server特定選項參數 |
|
-s:server |
Iperf運行在server模式下 |
-D:daemon |
讓server運行為守護神程序(Unix平台)。在Win32平台,服務是有效的,Iperf將作為一個服務運行。本選項從Iperf的V1.2或更高版本開始支持 |
-R:Remove |
刪除Iperf服務(如果它正在運行)。本選項僅僅對於Windows有效,從Iperf的V1.2或更高版本開始支持 |
-o |
輸出報告或錯誤信息到一個指定的文件里。(僅適用於windows。從Iperf的V1.2或更高版本開始支持) |
-c:client host |
如果Iperf運行在server模式下,那么用“-c”指定一個主機將限制Iperf將要接受的指定主機的連接。本選項對UDP支持得不是很好 |
-P:parallel |
在關閉前被server處理的連接數目。默認:0(這意味着永久接受連接) |
Iperf client特定選項參數 |
|
-b:bandwidth |
帶寬。UDP的發送帶寬, 單位:bits/sec。這暗示着使用“-u”選項。默認:1 Mbit/sec |
-c:client host |
運行在client模式,連接到運行在主機上的Iperf server (注意:-c后面一定要有host的IP地址,即格式是:-c 10.0.0.79。否則,命令執行失敗。Host的IP地址指的是Iperf server端的IP地址) |
-d:dualtest |
同時進行雙向傳輸測試,運行Iperf在雙向測試模式下。這將引起server在用“-L”選項指定的端口(或client連接到server所用的默認端口)上,重新連接回client。這是立即完成的,所以同時地運行測試。如果你想用單獨的交互式測試,請嘗試“-r”選項 |
-n:number |
要發送的字節數。單位:Kbyte/s,Mbyte/s。通常,Iperf發送數據的時間為10秒。“-n”選項改寫了這個時間,它發送完指定大小的數據,而不管這個過程花費了多長時間。請參考“-l”、“-t”選項 |
-r:tradeoff |
單獨進行雙向傳輸測試,運行Iperf在折衷測試(tradeoff testing)模式下。這將引起server在用“-L”選項指定的端口(或client連接到server所用的默認端口)上,重新連接回client。隨着client連接的終止,這個過程就完成了,所以單獨地運行測試。如果你想用同時的測試,請嘗試“-d”選項 |
-t:time |
傳送數據的測試時間。單位:秒。默認:10秒。當與“–n”參數同時使用時,以“ -n ”選項為准。即設置的測試時間失效。請參考“-l”、“-n”選項 |
-L:listenport |
本選項指定一個監聽端口,server從這個端口連接回client。默認的監聽端口是client連接server所使用的端口 |
-P:parallel |
並行運行的client數目。默認值:1。需要client和server之間的線程支持 |
-S:tos |
發出的數據包的服務類型。(很多路由器忽略TOS域)。你可以用十六進制“0x”為前綴,以八進制“0”為前綴,或以十進制為前綴。例如,(0x10)16=(020)8=(16)10。 在RFC 1349里,對TOS的定義如下: IPTOS_LOWDELAY:最小時延 0x10 IPTOS_THROUGHPUT:最大吞吐量 0x08 IPTOS_RELIABILITY:最大可靠性 0x04 IPTOS_LOWCOST:最小成本 0x02 |
-T:TTL |
發出的組播包的存活期(time-to-live)。這是報文穿越路由器跳數的基本數字。默認值:1 |
-F:fileinput <name> |
使用一個典型的流(stream)來測量帶寬。從Iperf的V1.2或更高版本開始支持。例如: $ iperf -c <server address> -F <file-name> |