4. 测试环境搭建:硬件准备与软件工具
吞吐测试这件事,说白了就是“搭台唱戏”。台子搭不好,戏就没法看。我见过太多测试结果对不上,最后发现是环境里某个衰减器没校准,或者网卡驱动版本不对。这一章,咱们就把台子搭结实。
4.1 硬件选型:AP、STA、网卡、衰减器
硬件选型有个基本原则:被测件(DUT)要明确,辅助设备要透明。什么意思?就是AP和STA谁是主角,你得先定好。剩下的网卡、衰减器,它们不能引入额外问题。
4.1.1 接入点(AP)的选择
AP是测试的核心。我个人习惯把AP分成三类:
| 类型 | 适用场景 | 注意事项 |
|---|---|---|
| 商用成品AP | 验收测试、竞品对比 | 固件版本要锁定,避免自动升级 |
| 开发板/参考设计 | 芯片级性能验证 | 需要外接串口,方便抓取底层日志 |
| 软AP(hostapd) | 快速原型、驱动调试 | 吞吐上限受限于主机CPU性能 |
4.1.2 工作站(STA)与网卡
STA这边,我建议用一台高性能PC加上一块独立无线网卡。笔记本自带的网卡往往有功耗限制,跑高吞吐时会自动降频。
网卡选型要注意三点:
- 芯片组:尽量和AP用同一家芯片,避免兼容性问题
- 接口:PCIe优于USB,USB 3.0勉强可用,USB 2.0直接放弃
- 天线接口:必须支持外接天线,方便接衰减器
4.1.3 衰减器与射频链路
衰减器是吞吐测试里最容易被忽视的硬件。很多人觉得“信号好就行”,其实不然。吞吐测试需要在可控的信号强度下进行,否则结果没有可比性。
我常用的衰减器配置:
- 可调衰减器:0-60dB,步进1dB,用于模拟不同距离
- 固定衰减器:10dB、20dB各一对,用于链路预算
- 功分器/合路器:多天线MIMO测试时必备
射频链路的连接顺序要固定:
AP天线口 → 衰减器 → 衰减器 → STA天线口
注意:衰减器两端要用高质量的SMA转接线,线损也要提前测量并计入总衰减值。
4.2 软件工具:iPerf3、Ostinato、Wireshark
硬件到位了,软件就是你的“眼睛”和“手”。这三款工具,我几乎天天用。
4.2.1 iPerf3:吞吐测试的“万金油”
iPerf3是吞吐测试的标配。它简单、稳定、跨平台。我习惯用以下参数组合:
# 服务端(在AP侧或STA侧,取决于测试方向)
iperf3 -s -p 5201
# 客户端(发送TCP流)
iperf3 -c 192.168.1.1 -p 5201 -t 60 -P 4 -i 1
# UDP测试(模拟实时流量)
iperf3 -c 192.168.1.1 -p 5201 -u -b 1000M -t 60 -i 1
参数说明:
-t 60:测试时长60秒,太短结果不稳定-P 4:4个并行流,Wi-Fi 6建议用4-8个流-u -b 1000M:UDP模式,目标带宽1000Mbps
-w 2M 把窗口调到2MB。
4.2.2 Ostinato:流量构造的“瑞士军刀”
iPerf3只能发简单的TCP/UDP流。如果你想模拟更真实的网络行为——比如视频流、VoIP、混合流量——那就得上Ostinato。
Ostinato的核心能力:
- 构造任意协议的数据包(L2-L4)
- 精确控制发包速率和包大小
- 支持多端口同步发送
我常用它来做“背景流量”测试:在Wi-Fi链路上叠加80%的UDP背景流,然后看VoIP包的延迟和抖动。这种场景,iPerf3搞不定。
4.2.3 Wireshark:问题定位的“显微镜”
吞吐测试出问题时,Wireshark就是你的第一道防线。我不建议全程开着Wireshark抓包——那会影响性能。正确的做法是:
- 先用iPerf3跑一轮,确认吞吐是否达标
- 如果不达标,在STA侧开启Wireshark抓包
- 过滤条件设为
wlan.fc.type_subtype == 0x08(Beacon帧)或tcp.analysis.retransmission - 观察重传率、窗口大小、TCP ACK延迟
mount -t tmpfs -o size=2G tmpfs /tmp/capture。
4.3 网络拓扑设计:三种典型架构
拓扑设计决定了测试结果的“可解释性”。我总结了三种最常用的拓扑,覆盖了90%的吞吐测试场景。
4.3.1 直连拓扑(点对点)
这是最干净的拓扑。AP和STA之间只有衰减器,没有交换机、路由器等中间设备。
[PC1 - iPerf Server] --- [AP] --- [衰减器] --- [STA] --- [PC2 - iPerf Client]
适用场景:芯片级性能验证、驱动调优。
优点:路径最短,干扰最小,结果最可信。
缺点:无法模拟真实网络中的多跳延迟。
4.3.2 桥接拓扑(有线回传)
AP通过千兆以太网连接到一台交换机,STA通过Wi-Fi连接AP。iPerf服务端跑在交换机另一端的PC上。
[iPerf Server] --- [Switch] --- [AP] --- [衰减器] --- [STA] --- [iPerf Client]
适用场景:AP吞吐能力测试、多用户场景。
注意:交换机的端口速率必须大于AP的无线速率,否则有线侧会成为瓶颈。
4.3.3 环回拓扑(自环测试)
这种拓扑比较特殊。AP和STA在同一台设备上(比如一台PC装了两张网卡),通过环回接口或虚拟接口进行测试。
[同一台PC]
├── 网卡1(作为AP)
└── 网卡2(作为STA)
└── 通过衰减器连接
适用场景:驱动开发阶段的快速验证。
缺点:无法测试真实的射频性能,只适合软件层面的吞吐验证。
4.4 测试环境拓扑总览
下面这张图,把本章的核心内容串在了一起。你可以把它当作搭建环境时的“检查清单”。
4.5 环境搭建的“避坑”清单
最后,我把自己踩过的坑整理成了一份清单。你搭建环境时,逐条核对就好。
- 衰减器方向:可调衰减器有输入输出端,接反了会引入额外驻波
- 线缆损耗:每根SMA线都要用网络分析仪测一下,别信标签上的标称值
- 网卡驱动:Linux下用
ethtool -i wlan0确认驱动版本,某些旧驱动有吞吐bug - CPU亲和性:iPerf3跑多流时,把不同流绑定到不同CPU核心,避免中断冲突
- 温度控制:高吞吐测试会让芯片发热,加个小风扇吹着,否则会触发过热降频
环境搭建这部分,看起来琐碎,但每一步都直接影响测试结果的可靠性。你想想看,如果衰减器没校准,测出来的数据能信吗?硬件和软件都到位了,下一件事就是动手跑测试了。不过在那之前,先把环境搭稳——这是所有工作的基础。