我试图以几百 Mbps 的速率重放捕获的 UDP 多播数据包,但最高速度约为86 Mbps(出于某种奇怪的原因,在一天中的其他时间,它的最大速度始终是这个速度的十分之一,大约8.8 Mbps)
eth0 上的 tcpreplay
仅产生约86Mbps:
> tcpreplay -ieth0 --topspeed x.pcap
sending out eth0
processing file: x.pcap
Actual: 459424 packets (137973257 bytes) sent in 12.23 seconds.
Rated: 11281542.0 bps, 86.07 Mbps, 37565.33 pps
eth0 上的 iperf
另一方面,iperf 则上升到大约800Mbps。请注意,这是真的即使在 tcpreplay 仅产生约 8.x Mbps 的时间内)
iperf -c 192.168.20.55 -u -T 1 -t 5 -i 1 -b10000M
------------------------------------------------------------
Client connecting to 192.168.20.55, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.20.55 port 50238 connected with 192.168.20.55 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 96.9 MBytes 813 Mbits/sec
[ 3] 1.0- 2.0 sec 96.9 MBytes 813 Mbits/sec
[ 3] 2.0- 3.0 sec 97.8 MBytes 820 Mbits/sec
[ 3] 3.0- 4.0 sec 96.4 MBytes 809 Mbits/sec
[ 3] 4.0- 5.0 sec 96.4 MBytes 809 Mbits/sec
[ 3] 0.0- 5.0 sec 484 MBytes 812 Mbits/sec
[ 3] Sent 345538 datagrams
[ 3] Server Report:
[ 3] 0.0- 5.0 sec 400 MBytes 671 Mbits/sec 0.071 ms 60212/345537 (17%)
[ 3] 0.0- 5.0 sec 1 datagrams received out-of-order
tcpreplay 在 lo
只是为了确保 tcpreplay 没有等待我的磁盘:
> tcpreplay -ilo --topspeed x.pcap
Warning in sendpacket.c:sendpacket_open_pf() line 669:
Unsupported physical layer type 0x0304 on lo. Maybe it works, maybe it wont.
See tickets #123/318
sending out lo
processing file: x.pcap
Actual: 459424 packets (137973257 bytes) sent in 0.56 seconds.
Rated: 246380816.0 bps, 1879.74 Mbps, 820400.00 pps
如何解释 tcpreplay 在 eth0 上速度很慢?有没有什么方法可以改善这种情况?
答案1
tcpreplay 是什么版本?新版本比旧版本更快。您确实需要运行最新的 4.x,它支持通过 NETMAP 进行注入。
另外,您确定您使用的是 1Gbps 或更高的接口吗?您是否连接到 100Mbps 交换机端口,或者由于某种原因协商了 100Mbps?查看 /var/log/messages 或 dmesg 以查看您的接口如何协商。
答案2
这个问题似乎不是由我的盒子引起的,也不是由 tcpreplay 引起的。在另一台机器上测试,使用以下设置
+-----------+
| L3 switch |
+-+----+----+
| |
+----------+ |
| |
+-----+-----+ |
| L2 switch | |
+-----+-----+ |
| Cable 1 | Cable 2
+------------------------+
| NIC 1 NIC 2 |
| |
| My PC |
| |
+------------------------+
我得到了这些数字
Cable Mbs pps
--------------------------
1 8.35 6174.75
2 601.07 444444.44
我还更换了电缆,以确保网卡不是慢的,事实确实如此。我猜是 L2 交换机的问题。