Пропускная способность tcpreplay на eth0 значительно ниже (подтверждено iperf) max

Я пытаюсь воспроизвести перехваченные многоадресные UDP-пакеты со скоростью пару сотен Мбит / с, но максимальная скорость достигает 86 Мбит / с. (По какой-то странной причине в другое время в течение дня он постоянно достигает максимума на одной десятой этой скорости, около 8,8 Мбит / с)

tcpreplay на eth0

Выход только около 86 Мбит / с:

> 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

iperf на eth0

iperf, с другой стороны, достигает 800 Мбит / с. Обратите внимание, что это верно даже в те времена, когда tcpreplay дает только около 8.x Мбит / с)

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 on 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 и есть ли способ улучшить это?

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.

Какая версия tcpreplay? Новые версии быстрее, чем старые. Вы действительно хотите запустить последнюю версию 4.x, которая поддерживает инъекцию через NETMAP.

Кроме того, вы уверены, что используете интерфейс 1 Гбит / с или лучше? Вы подключены к порту коммутатора 100 Мбит / с или по какой-то причине согласовали 100 Мбит / с? Посмотрите в /var/log/messages или dmesg, чтобы увидеть, как согласован ваш интерфейс.

Другие вопросы по тегам