У меня есть две машины: TX и RX.RX запускает приложение libpcap для обнаружения и получения трафика через выделенный порт Ethernet.
TX передает непрерывный поток пакетов UDP, содержащих MPEG-TS.
Использует ли приложение libpcap или wireshark,время от времени существует разрыв между полученными пакетами продолжительностью почти 1 секунду.
Я проследил это до некоторой степени, связанной с ARP.
TX Machine
Запуск wireshark на отправителе показывает пакеты, отправленные через регулярные интервалы:
RX Machine
Вот что Wireshark показывает на приемнике :
В 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.