Я пытаюсь воспроизвести захваченные многоадресные пакеты 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 на 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 и есть ли способ исправить это?
Какая версия tcpreplay? Более новые версии быстрее старых. Вы действительно хотите запустить последнюю версию 4.x, которая поддерживает внедрение через NETMAP.
Кроме того, вы уверены, что используете интерфейс 1 Гбит / с или лучше? Вы подключены к порту коммутатора 100 Мбит / с или по какой-то причине договорились о 100 Мбит / с? Посмотрите / var / log / messages или dmesg, чтобы увидеть, как согласовывается ваш интерфейс.
Кажется, проблема не связана ни с моей коробкой, ни с 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.