我正在尝试指定 tcpreplay 速度,但我无法做到,这是我的测试细节:
$tcpreplay -V tcpreplay 版本:3.4.4(内部版本 2450)
1)$ tcpreplay -i %0 -p 100 -L 500 _udp_only.pcap 实际:5.05 秒内发送了 500 个数据包(42247 字节)。额定:8365.7 bps、0.06 Mbps、99.01 pps
2)$ tcpreplay -i %0 -p 1000 -L 5000 _udp_only.pcap 实际:5.19 秒内发送了 5000 个数据包(427710 字节)。额定:82410.4 bps、0.63 Mbps、963.39 pps
//问题是我停留在 966.00 pps
3)$ tcpreplay -i %0 -p 10000 -L 50000 _udp_only.pcap 实际:51.76 秒内发送了 50000 个数据包(4322559 字节)。额定:83511.6 bps、0.64 Mbps、966.00 pps
当我尝试为 8600 个数据包指定 --mbps 时,每个数据包平均 86 字节,也遇到了同样的问题
-M0.086 -L 860 ----> 额定:10812.9 bps、0.08 Mbps、127.22 pps
-M0.86 -L 860 ----> 额定:83062.5 bps、0.63 Mbps、977.27 pps
-M0.86 -L 8600 ----> 额定:82554.9 bps、0.63 Mbps、965.21 pps
为什么以及如何指定速度?
我使用操作系统 windows7
答案1
一些评论:
tcpreplay 对 Windows 的支持基本处于测试阶段。高精度计时与操作系统和硬件密切相关,而 Windows 的测试和开发工作最少。在 Linux 或 OS X 下,您会更幸运。
小数据包 + 使用 --mbps 选项 (-M) 几乎是实现准确数据包计时的最坏情况。使用 -M 需要 tcpreplay 动态计算延迟(更耗 CPU),与大数据包相比,小数据包会使发送数据包时出现的微小误差看起来更糟糕。
您运行的“-M0.086 -L 860 ----> 额定:10812.9 bps,0.08 Mbps,127.22 pps”非常接近。Tcpreplay 仅打印出两个显著数字,因此 0.08 对应 0.086 是最“接近”的。