Я пытаюсь воспроизвести полученные многоадресные пакеты 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. Тестируя на другой машине, используя следующую настройку
+-----------+
| 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, чтобы увидеть, как ваш интерфейс обработан.
.