linux 網路延時 丟包與傳輸頻寬關係測試

2021-09-06 22:41:17 字數 2467 閱讀 6641

在網際網路中,我們會向網路運營商申請指定額度的頻寬。實際傳輸時,由於網路qos達不到要求,實際的傳輸頻寬可能達不到標稱值。本次測試在區域網環境中使用模擬工具模擬不同qos下的網路條件,得出不同qos網路下傳輸頻寬

網路的qos通常用以下指標衡量:

本次測試值模擬丟包率和延時與傳輸頻寬的關係。

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

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

在丟包率為0的情況下,測試不同延時下的傳輸速率;

調整丟包率與延時,測試不同延時與丟包率組合下的傳輸速率。

測試使用兩位伺服器:

server a:10.10.168.151

server b:10.10.168.153

兩台server之間通過千兆乙太網連線(頻寬為1000mbps);

兩台伺服器上部署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

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

延時(ms)110

2030

4050

100150

200250

300350

400500

600800

1000

1500

2000

3000

4000

5000

傳輸速度(mbps)

854854

808730

552446

226144

11086

7059

5140

3022

18.4

121062

0.2延時在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

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

傳輸碼率(kbps)

延時(ms)

50100

200300

400500

600800

1000

丟包率1%

2810

1500

1130

816904

863848

714355

2%1670

1000

693535

504440

3%1480

737479

526341

4%1240

585411

317305

5%1070

565432

27310%

532318

96.5

通過上表可以繪製丟包/延時與傳輸速率的曲面圖:

x軸:延時(ms)

y軸:丟包率

z軸:傳輸速率(kbps)

通過曲面圖,可以找到傳輸速率要達到500kbps/1000kbps時,延時與丟包率需要滿足的條件

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

linux 模擬延時和丟包

這是 rhca 中的乙個 bdp 的測試,這也是公司很常用的一種延時和丟包的模擬,現在分享給大家.我們做的應用軟體,還有測試 tcp udp 對比,測試 bdp 對 tcp ip 的影響時,我們都需要一些網路中的延時和丟包模擬,很多商業的軟體可以做這個事,其實完美的 linux 本身就可以使用 tc...

ping 網路抖動與丟包

基本概念 ping ping指乙個資料報從使用者的裝置傳送到測速點,然後再立即從測速點返回使用者裝置的來回時間。也就是俗稱的 網路延遲 一般以毫秒 ms 計算 一般ping在0 100ms都是正常的速度,不會有較為明顯的卡頓。測試ping值方法 在powershell中輸入ping 網路位址 通過c...

網路丟包診斷與分析的現實與理想

自從有了網路便有了網路故障,網路故障的最大體現是丟包。如何對丟包進行診斷一直是乙個令工程師頭疼的問題,可關注丟包原因分析的人卻非常的少。現實 目前對於網路 現丟包的傳統處理步驟如下 也許你會覺得一一核對 流程表項太慢太麻煩,熟悉晶元的處理流程和功能之後你會找到如下一種處理方式 雖然看起來步驟很明確,...