方法 / L4 / UDP-PPS
L4 · NetworkVolumetricUDPHigh-PPSSpoofable
UDP-PPS 压力测试
用小型 8 字节随机化 UDP 数据包以极高的每秒数据包速率猛击你的目标,以验证数据包处理而非仅带宽的极限。
工作原理
本方法不追求原始的吉比特,而是使用微小的 8 字节随机化载荷,使每秒不同数据包的数量最大化。高 PPS 对协议栈中逐包工作的部分施压:网卡中断处理、内核网络路径、防火墙连接表和清洗设备查找。当瓶颈是数据包数量而非吞吐量时,它是确认你的转发面和缓解硬件能否跟上节奏的恰当测试。
参数
Packet rate600k pps主要可调项,每个线程每秒的数据包数
Payload bytes8 bytes保持数据包最小化的小型随机化载荷
Threads1-16用于扩展总 PPS 的并行发送方
Duration10-600 s测试窗口时长
从 CLI 运行它
retro-cli
$ retro run udp-pps --target 203.0.113.45 --port 443 --duration 120
UDP-PPS 常见问题
PPS 洪水与带宽洪水有何不同?+
带宽洪水用大包饱和链路,而 PPS 洪水用许多小包压垮逐包处理。一台设备可能有大量富余带宽,却仍因高 PPS 而崩溃,因为每个数据包都消耗 CPU、中断和表查找。
为什么这个方法使用 8 字节载荷?+
微小载荷使每个数据包接近最小尺寸,因此在相同的带宽预算内能容纳更多数据包,将 PPS 速率推到尽可能高。目标是测试数据包处理,而非填满管道。
PPS 测试期间我应该在目标上观察什么?+
跟踪网络路径上的 CPU、中断和 softirq 负载、防火墙状态表利用率,以及网卡或清洗层报告的任何丢包。这些是高 PPS 下最先耗尽的资源。