Передача ARP задерживает беспорядочный захват (libpcap / wireshark) - PullRequest
0 голосов
/ 27 марта 2019

У меня есть две машины: TX и RX.RX запускает приложение libpcap для обнаружения и получения трафика через выделенный порт Ethernet.

TX передает непрерывный поток пакетов UDP, содержащих MPEG-TS.

Использует ли приложение libpcap или wireshark,время от времени существует разрыв между полученными пакетами продолжительностью почти 1 секунду.

Я проследил это до некоторой степени, связанной с ARP.

TX Machine

Запуск wireshark на отправителе показывает пакеты, отправленные через регулярные интервалы: TX Wireshark Dump

RX Machine

Вот что Wireshark показывает на приемнике :

RX Wireshark Dump

В 999 мсполучение двух пакетов непосредственно перед пакетом ICMP, отправленным получателем.

Разница во времени очень непротиворечива и представлена ​​как в Wireshark, так и в скомпилированном приложении libpcap, написанном на C ++.Временной промежуток всегда перед отправкой ICMP RX.

Получатель должен быть полностью разнородным и точно захватывать и сообщать, что находится на проводе.

Отключение порта ICMP недостижимых сообщений портаустановка arp_ignore не является решением;отправитель не может отправить какие-либо данные, не зная MAC-адрес RX.

Это проблема с libpcap?

Это похоже на проблему со стороны получателя, но многие поиски не нашли решения.

Мне нужен точный захват с провода.Что-то где-то изменить?

Ссылка

Приложение libpcap использует последнюю версию 1.9.0.Wireshark говорит:

Работает в Linux 4.4.127-1.el6.elrepo.i686, с языковым стандартом en_US.UTF-8, с libpcap версии 1.9.0-PRE-GIT (с TPACKET_V3),с libz 1.2.3, GnuTLS 2.8.5, Gcrypt 1.4.5, без AirPcap.

...