一、带宽测试基础
什么是带宽?
带宽这个词,说白了就是「数据管道有多粗」。
我经常跟团队里的新人这么解释:想象你面前有一根水管,带宽就是这根水管的直径。直径越大,单位时间内能流过的水就越多。在网络上,带宽就是单位时间内能传输的数据量。
举个例子。你家宽带是 100Mbps,意思是每秒最多能传 100 兆比特的数据。这跟你家水龙头开到最大,每秒能流出多少升水是一个道理。
我个人习惯把带宽理解成「道路的宽度」。车道越多,同时跑的车就越多。但注意,带宽大不代表你每次都能跑满——这还取决于路况,也就是网络的实际状况。
核心定义:带宽(Bandwidth)是指在单位时间内,从网络一端传输到另一端的数据量上限。单位通常是 bps(比特每秒)。
带宽的单位换算
这里有个坑,我见过不少新手栽跟头。带宽的单位换算,其实没那么复杂,但容易混淆。
基本单位是 bit(比特),注意是小写的 b。而我们平时说的文件大小,用的是 Byte(字节),是大写的 B。
1 Byte = 8 bits。这个关系一定要刻在脑子里。
| 单位 | 全称 | 换算关系 |
|---|---|---|
| bps | 比特每秒 | 1 bps = 1 bit/s |
| Kbps | 千比特每秒 | 1 Kbps = 1,000 bps |
| Mbps | 兆比特每秒 | 1 Mbps = 1,000 Kbps |
| Gbps | 吉比特每秒 | 1 Gbps = 1,000 Mbps |
| MB/s | 兆字节每秒 | 1 MB/s = 8 Mbps |
举个例子你就明白了。你办了个 100Mbps 的宽带,下载文件时看到的速率是多少?
100 Mbps ÷ 8 = 12.5 MB/s。所以理论上,你下载速度最快是 12.5 MB/s 左右。
注意:运营商宣传的「100兆宽带」,指的是 100 Mbps,不是 100 MB/s。我曾经遇到一个客户,投诉说「我办的100兆宽带,下载速度才12兆,你们是不是骗人?」——其实就是单位换算没搞清楚。
带宽与吞吐量的区别
这两个概念,很多人混为一谈。我刚开始做网络时也犯过这个错。
带宽是理论值,吞吐量是实际值。
带宽就像高速公路的限速牌——写着「最高时速120公里」。但实际你能开多快?得看车流量、天气、有没有事故。这个实际速度,就是吞吐量。
吞吐量(Throughput)指的是在特定条件下,网络实际传输数据的速率。它受很多因素影响:
- 网络延迟
- 丢包率
- 协议开销
- 设备处理能力
- 并发连接数
举个例子。你有个 1Gbps 的链路,理论上每秒能传 1G 比特。但实际测试下来,可能只有 800Mbps。那 200Mbps 去哪了?被协议头、重传、排队延迟等等吃掉了。
一句话总结:带宽是「能跑多快」,吞吐量是「实际跑多快」。两者之间的差值,就是网络损耗。
我记得有一次帮客户排查问题,他们买了 10Gbps 的专线,但业务端总感觉慢。我一测吞吐量,只有 3Gbps。查了半天,发现是防火墙的会话数上限设得太低,导致大量包被丢弃。这就是典型的「带宽大、吞吐量小」的案例。
常见带宽测试工具概览
做带宽测试,工具选对了,事半功倍。我这些年用过不少工具,挑几个最常用的说说。
1. iPerf3
这是我最常用的工具,没有之一。轻量、跨平台、结果准确。
# 服务端启动
iperf3 -s
# 客户端测试(默认TCP)
iperf3 -c 192.168.1.100
# UDP测试,指定带宽
iperf3 -c 192.168.1.100 -u -b 100M
iPerf3 能测 TCP 和 UDP 的吞吐量,还能指定并发流数、测试时长。我个人习惯用 30 秒测试,取平均值。
2. Speedtest CLI
基于 Ookla 的 Speedtest,适合测互联网带宽。命令行版很方便。
speedtest-cli --simple
它会自动找最近的服务器,测下载和上传速度。但注意,这个工具测的是「到互联网的带宽」,不是局域网内的。
3. Netperf
老牌工具,功能比 iPerf 更丰富。支持批量测试、多种协议。
# 服务端
netserver
# 客户端
netperf -H 192.168.1.100 -l 30
Netperf 的报表更详细,适合做性能回归测试。我一般在做长期监控时用它。
4. Ping & Traceroute
严格来说,这两个不是带宽测试工具,但它们是排查问题的好帮手。
- Ping:测延迟和丢包率。延迟高、丢包多,带宽再大也没用。
- Traceroute:看数据包经过哪些节点,找出瓶颈在哪。
我的建议:做带宽测试前,先 Ping 一下目标。如果延迟超过 100ms 或者有丢包,那测出来的吞吐量肯定不准。先把网络质量搞好了,再谈带宽。
知识体系总览
下面这张图,把本章的核心逻辑串起来了。你可以把它当成一张地图,随时回来看看。
嗯,这张图把本章的四个核心知识点串起来了。从理解带宽的定义开始,到掌握单位换算,再到区分吞吐量,最后选对工具。每一步都是下一环的基础。
本章要点回顾:
- 带宽是理论最大传输速率,单位是 bps
- 1 Byte = 8 bits,换算时别搞混
- 吞吐量是实际传输速率,受多种因素影响
- iPerf3 是最推荐的带宽测试工具
好了,带宽测试的基础就聊到这儿。这些概念看着简单,但我在实际项目中见过太多人栽在单位换算和吞吐量理解上。你把这些搞清楚了,后面的测试才能做得准。