9月1號,工信部的文件生效,有線接入寬帶的測速結(jié)果必須大于等于標(biāo)稱速率的90%。目前,各家是建立的自己的測速服務(wù)器提供測速支撐,但僅是提供了下載速率的速率,隨著用戶上傳需求的增加,用戶對上傳是否符合合同約定也越來越關(guān)注。
在工作中,我找了一個現(xiàn)成的工具:iperf,可以完成上下行的速率測試。簡單介紹如下:
----------------------------------------------------------------------------------------
Iperf使用方法與參數(shù)說明
Iperf是一個網(wǎng)絡(luò)性能測試工具。可以測試TCP和UDP帶寬質(zhì)量,可以測量最大TCP帶寬,具有多種參數(shù)和UDP特性,可以報告帶寬,延遲抖動和數(shù)據(jù)包丟失。Iperf在linux和windows平臺均有二進制版本供自由使用。
Iperf wasdeveloped by NLANRDAST as a modern alternative for measuring maximum TCP andUDP bandwidth performance. Iperf allows the tuning of various parameters andUDP characteristics. Iperf reports bandwidth, delay jitter, datagram loss.
Iperf的是由NLANRDAST開發(fā)作為一個現(xiàn)代的替代測量最大TCP和UDP帶寬性能。iperf的可以調(diào)整各種參數(shù)和UDP特性。iperf的報告帶寬,時延抖動,數(shù)據(jù)包丟失。
Iperf使用方法與參數(shù)說明
參數(shù)說明
-s 以server模式啟動,eg:iperf -s
-c host以client模式啟動,host是server端地址,eg:iperf -c 222.35.11.23
通用參數(shù)
-f [kmKM]分別表示以Kbits, Mbits, KBytes, MBytes顯示報告,默認(rèn)以Mbits為單位,eg:iperf -c 222.35.11.23 -f K
-i sec 以秒為單位顯示報告間隔,eg:iperf-c 222.35.11.23 -i 2
-l 緩沖區(qū)大小,默認(rèn)是8KB,eg:iperf-c 222.35.11.23 -l 16
-m 顯示tcp最大mtu值
-o 將報告和錯誤信息輸出到文件eg:iperf-c 222.35.11.23 -o ciperflog.txt
-p 指定服務(wù)器端使用的端口或客戶端所連接的端口eg:iperf-s -p 9999;iperf -c 222.35.11.23 -p 9999
-u 使用udp協(xié)議
-w 指定TCP窗口大小,默認(rèn)是8KB
-B 綁定一個主機地址或接口(當(dāng)主機有多個地址或接口時使用該參數(shù))
-C 兼容舊版本(當(dāng)server端和client端版本不一樣時使用)
-M 設(shè)定TCP數(shù)據(jù)包的最大mtu值
-N 設(shè)定TCP不延時
-V 傳輸ipv6數(shù)據(jù)包
server專用參數(shù)
-D 以服務(wù)方式運行iperf,eg:iperf -s-D
-R 停止iperf服務(wù),針對-D,eg:iperf–s-R
client端專用參數(shù)
-d 同時進行雙向傳輸測試
-n 指定傳輸?shù)淖止?jié)數(shù),eg:iperf-c 222.35.11.23-n 100000
-r 單獨進行雙向傳輸測試
-t 測試時間,默認(rèn)10秒,eg:iperf -c222.35.11.23-t5
-F 指定需要傳輸?shù)奈募?/font>
-T 指定ttl值
應(yīng)用實例
使用 iperf -s 命令將 Iperf 啟動為server 模式,在客戶機上使用 iperf-c啟動client模式。
iperf–s
------------------------------------------------------------
Serverlistening onTCPport 5001
TCPwindow size: 8.00 KByte (default)
------------------------------------------------------------
iperf-c 59.128.103.56
上面使用服務(wù)端和客戶端的默認(rèn)設(shè)置進行測試
iperf–s -w300K
------------------------------------------------------------
Serverlistening onTCPport 5001
TCPwindow size:300KByte
------------------------------------------------------------
iperf-c 59.128.103.56-fK-i2 -w300K
設(shè)定報告間隔為2秒,服務(wù)器端和客戶端的TCP窗口都開到300KB
iperf-c 59.128.103.56-fK-I2 -w300K–n 1000000
測試傳輸約1MB數(shù)據(jù)
Iperf-c 59.128.103.56-fK -I2-w 300K–t36
測試持續(xù)36秒
iperf-c 59.128.103.56-fK-I2 -w300K-n 10400000 –d
測試雙向的傳輸
iperf-c 59.128.103.56-fK-I2 -w300K–u
UDP測試
其中 -i 參數(shù)的含義是周期性報告的時間間隔(interval),單位為秒;在上面的例子中,表示每隔2秒報告一次帶寬等信息。
啟動一個iperf服務(wù)器進程
首先要介紹的命令用來啟動iperf服務(wù)器監(jiān)聽進程以便監(jiān)聽客戶端連接的。命令如下:
iperf.exe -s -P 2 -i 5 -p 5999 -fk
這個命令會啟動iperf,后續(xù)參數(shù)用來設(shè)定監(jiān)聽5999 端口(默認(rèn)端口是5001), 限定iperf只允許兩個連接,每5秒?yún)R報一次連接情況。連接限制參數(shù)(-P參數(shù))非常重要,當(dāng)兩個連接建立后,服務(wù)器進程就會退出。如果這個參數(shù)設(shè)定為0,那么iperf進程將持續(xù)監(jiān)聽端口,并且不限制連接數(shù)量。
啟動一個iperf 客戶端連接
iperf 的另一半就是客戶端,用來連接到服務(wù)器監(jiān)聽端口。比如我們要連接到一臺叫做 s-network1.amcs.tld 的服務(wù)器,端口為5999,連接60秒并且每5秒顯示一次狀態(tài),命令行如下:
iperf.exe -c s-network1.amcs.tld-P 1 -i 5 -p 5999 -f B -t 60 -T 1
命令啟動后,s-network1 主機被用來進行網(wǎng)絡(luò)性能檢測。與Jperf GUI 界面提供的漂亮圖形不同, iperf只會根據(jù)測量參數(shù)簡單的報告網(wǎng)絡(luò)帶寬狀況,在本例中是以 比特為單位(-f 參數(shù))進行帶寬表示的。
可以只記住下面這些簡單命令就能實際使用了。
1、找臺電腦做服務(wù)器端,最好是千兆接入的, 在cmd中運行
Iperf –s
2、客戶端cmd 中運行
iperf -c XXX.XXX.XXX.XXX-t 60-P 5
Usage:iperf [-s|-c host] [options]
部分參數(shù)詳解
-c XXX.XXX.XXX.XXX 服務(wù)器ip地址
-t 60測試時間60s
-P 5 默認(rèn)為單線程,100M建議使用4-5線程
-w 200k 如果測速不正常,可以增加此參數(shù),參考值50k(高帶寬延時小的鏈路)、300k(相對低帶寬延時大的鏈路)
-r 雙向測速,先測上行,后測下行