這一篇要討論的是如何透過 iperf 提供的 UDP 協定來統計 jitter 以及 packet loss,不同於 TCP 的協定UDP 他並非一個可靠連線型與資料傳送服務,在 UDP 的資料傳輸中不會用確保機制來保證資料的傳送是否正確,所以資料有可能遺失也有可能前後順序不一致.
- jitter – 當資料的封包順序不如當時產生的順序傳到接收端時這就被稱為 jitter
- packet loss – 封包在傳送過程中因不明原因無法讓接收者收到時,這不見的封包就是 packet loss
關於 iperf 的基礎設定請先參考 https://benjr.tw/462
iperf 不只提供的 TCP 的傳送協定也提供了 UDP的測試方式.這兩者最大的不同是 TCP 提供了確保機制來保證資料的傳送是否正確所以 UDP 很適合來測試資料是否發生 jitter 以及 packet loss 等情況.
測試環境如下:
基本上只要兩台 Linux 機台就可以做網路效能測試,當然兩張網卡速度要一致,並同時將這個程式安裝在 Server 和 Client 上面.
Server 端
[root@server iperf-2.0.5]# iperf -s -u
- -s, –server
傳送端使用的參數 - -u, –udp
指定使用 UDP 非預設的 TCP
Client 端
[root@benjr iperf-2.0.5]# iperf -c 192.12.1.2 -u -b 1000m -t 10 -i 1 -f k ———————————————————— Client connecting to 192.12.1.2, UDP port 5001 Sending 1470 byte datagrams UDP buffer size: 224 KByte (default) ———————————————————— [ 3] local 192.12.1.1 port 48079 connected with 192.12.1.2 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0- 1.0 sec 92785 KBytes 760096 Kbits/sec [ 3] 1.0- 2.0 sec 89888 KBytes 736364 Kbits/sec [ 3] 2.0- 3.0 sec 89967 KBytes 737011 Kbits/sec [ 3] 3.0- 4.0 sec 89056 KBytes 729543 Kbits/sec [ 3] 4.0- 5.0 sec 97271 KBytes 796846 Kbits/sec [ 3] 5.0- 6.0 sec 90480 KBytes 741209 Kbits/sec [ 3] 6.0- 7.0 sec 91215 KBytes 747230 Kbits/sec [ 3] 7.0- 8.0 sec 97400 KBytes 797904 Kbits/sec [ 3] 8.0- 9.0 sec 90884 KBytes 744526 Kbits/sec [ 3] 0.0-10.0 sec 925989 KBytes 758570 Kbits/sec [ 3] Sent 645043 datagrams [ 3] Server Report: [ 3] 0.0-10.0 sec 925424 KBytes 758089 Kbits/sec 0.019 ms 393/645042 (0.061%) [ 3] 0.0-10.0 sec 1 datagrams received out-of-order
- -b, –bandwidth #[KM]
僅適用於 UDP 協定, 設定傳送頻寬單位為 bits/sec (預設值為 1 Mbit/sec) - -c, –client
接收端使用的參數 - -u, –udp
指定使用 UDP 非預設的 TCP - -f, –format [kmKM]
報告的格式可以為: Kbits, Mbits, KBytes, MBytes - -i, –interval #
指定即時報告的間隔時間 - -t, –time #
傳送時間單位為秒 ,預設為 10 秒 (secs)
[ 3] 0.0-10.0 sec 925424 KBytes 758089 Kbits/sec 0.019 ms 393/645042 (0.061%)
package loss 的比率
[ 3] 0.0-10.0 sec 1 datagrams received out-of-order
Jetter 的次數
沒有解決問題,試試搜尋本站其他內容