linux 網絡延時、丟包與傳輸帶寬關係測試

1、目的

在互聯網中,咱們會向網絡運營商申請指定額度的帶寬。實際傳輸時,因爲網絡QoS達不到要求,實際的傳輸帶寬可能達不到標稱值。本次測試在局域網環境中使用模擬工具模擬不一樣QoS下的網絡條件,得出不一樣QoS網絡下傳輸帶寬服務器

2、網絡QoS指標

網絡的QoS一般用如下指標衡量:網絡

丟包率:因爲網絡擁塞,傳輸錯誤等形成的數據包丟失機率
延時:數據包發送到對端再返回到發送端的時長
延時抖動:衡量延時變化的程度
本次測試值模擬丟包率和延時與傳輸帶寬的關係。工具

注:本文中的丟包率指的是在傳輸速率小於最大傳輸帶寬時的丟包率。測試

3、測試方案

本次測試分兩個階段進行:spa

在丟包率爲0的狀況下,測試不一樣延時下的傳輸速率;
調整丟包率與延時,測試不一樣延時與丟包率組合下的傳輸速率。server

4、測試環境

測試使用兩位服務器:blog

Server A:10.10.168.151ip

Server B:10.10.168.153部署

兩臺Server之間經過千兆以太網鏈接(帶寬爲1000Mbps);cli

兩臺服務器上部署iperf,用於向網絡加流量,並統計傳輸速率;其中Server A上運行iperf server端(iperf -s),Server B上運行iperf client端(iperf -c 10.10.168.151 -t 100000 -i2)。數據流量方向是:server B → server A。iperf client端啓動1分鐘,統計1分鐘內的平均傳輸速率做爲一次測試的結果。

在Server B上,使用tc 模擬不一樣QoS的網絡環境。tc 能夠在server的出口方向模擬延時和丟包的狀況:

添加延時:tc qdisc add dev enp0s25 root netem  delay 50ms

添加丟包:tc qdisc add dev enp0s25 root netem  loss 3%

添加延時與丟包:tc qdisc add dev enp0s25 root netem  delay 50ms loss 3%

清空規則:tc qdisc del dev enp0s25 root

查看規則:tc qdisc ls dev enp0s25

5、測試結果


5.1  延時與傳輸速率的關係

丟包設置爲0,延時從1ms 變化到 5000ms,測試每個延時下的傳輸速率。下表爲測試結果:

延時在4000ms之內時,傳輸速率能在1Mbps以上。當延時到達5000ms時,傳輸速率降低到200kbps。延時越大,達到穩定傳輸速率的時間越長。

注意:以上測試是在iperf採用默認的window size測試的結果;window size會影響到max cwnd和max rwnd,在延時比較大的時候,max wnd = MIN(max cwnd, max rwnd)決定了最終的傳輸速度;rate = max wnd/rtt;從測試的結果看,max cwnd比較小,這個值決定的傳輸速度;以300ms延時的測試點爲例,經過-w參數增長髮送端window size,傳輸速率能夠提高到83Mbps,此時max rwnd決定了傳輸速度,此時,再經過-w參數增長接收端window size,傳輸速率能夠到達450Mbps

5.二、延時、丟表率與傳輸速率的關係

丟表率從1%-10%變化,延時從10ms變化到1000ms,測試每個組合下的傳輸速率。當延時/丟包率增大時,傳輸速率會降低,當傳輸速率低於500kbps時,再也不繼續增大延時/丟包率。下表爲測試結果:

   
經過上表能夠繪製丟包/延時與傳輸速率的曲面圖:

X軸:延時(ms)

Y軸:丟包率

Z軸:傳輸速率(kbps)

經過曲面圖,能夠找到傳輸速率要達到500kbps/1000kbps時,延時與丟包率須要知足的條件

 

以上測試是單個客戶端測試的結果。在Server B上啓動多個客戶端同時進行測試,只要總的傳輸速率不超過最大帶寬限制,每一個客戶端的速率與單個客戶端測試的結果相同。

相關文章
相關標籤/搜索