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上启动多个客户端同时进行测试,只要总的传输速率不超过最大带宽限制,每一个客户端的速率与单个客户端测试的结果相同。

相关文章
相关标签/搜索