实时音视频这种实时业务一般用udp传输数据,其对网络性能是非常敏感的,在实战中,经常需要测试当前端到端或端到云的网络性能。在这里我们讨论一下网络性能测试中所涉及到指标,技术和相关工具,以及如何编写自己的网络性能测试工具。
性能指标
先给出几个比较重要的指标的定义以及它们的意义。
- 带宽(吞吐量)
单位时间内传输的数据量,单位通常是每秒比特数,记作bps;
带宽反映了网络的传输能力,越大越好; - 丢包
数据包丢失个数,等于“发送数据包数” - “接受数据包数”;
丢包反映了网络可靠性,越小越好; - 时延
数据包从发送开始到接收到该数据所耗费的时间,单位通常是毫秒;
时延反映了网络的速度,越小越好; - 抖动
指时延的变化,即两个数据包时延的差值;
抖动反映了网络的稳定性,越小越好; - 乱序
指接收到的数据包顺序和发送顺序不一致的次数;
乱序反映了网络的稳定性,越小越好;
当乱序比较严重时,丢包也会比较严重,所以一般都以丢包指标为主,忽略乱序指标;
测试工具
网上有很多测试网络性能的工具,如果它们能满足需求的话,就不用自己再造轮子了。
ping
ping是最常见的,几乎在所有的OS上都有它的存在。 其工作原理如图
- Local发送的数据包,Remote收到数据包后原样发回来;
- 数据包里包含有序号和时间戳信息;
- 序号用于判断是否丢包;
- 时间戳用于计算来回时延(图中蓝色部分),它等于接收时间减去数据包时间戳;
不同OS的ping命令选项可能会略有差别,以Mac OSX的ping为例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|

本文介绍了网络性能测试中的关键指标,如带宽、丢包、时延和抖动,并探讨了常用工具ping和iperf的优缺点。同时,文章还分享了如何自开发网络性能测试工具,特别是在匀速发送数据方面的实现策略。

最低0.47元/天 解锁文章
4246

被折叠的 条评论
为什么被折叠?



