网络性能测试

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

实时音视频这种实时业务一般用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 -s 1024 192.168.1.100
 
PING www.microsoft.com (23.42.217.205): 1024 data bytes
 
1032 bytes from 23.42.217.205: icmp_seq=0 ttl=49 time=83.883 ms
 
1032 bytes from 23.42.217.205: icmp_seq=1 ttl=49 time=77.958 ms
 
1032 bytes from 23.42.217.205: icmp_seq=2 ttl=49 time=80.053 ms
 
1032 bytes from 23.42.217.205: icmp_seq=3 ttl=49 time=78.244 ms
 
1032 bytes from 23.42.217.205: icmp_seq=4 ttl=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值