我有两台机器:TX和RX。 RX运行libpcap应用程序,以侦听并在专用以太网端口上接收流量。
TX传输包含MPEG-TS的UDP数据包的连续流。
无论使用libpcap应用程序还是Wireshark,每隔一段时间,接收到的数据包之间几乎都会有间隔。
我已将其归结为与ARP有关。
发送机
RX机器
这是电线接收器在接收器上显示的:
在接收方发送的ICMP
数据包之前 接收两个数据包有999毫秒的间隔。
时间间隔非常一致,并且与Wireshark和用C ++编写的已编译libpcap应用程序同时出现。 RX总是在ICMP
发送之前的时间间隔。
接收器必须完全混杂,并忠实地捕获并报告线路上的内容。
通过设置ICMP
禁用arp_ignore
端口不可达消息不是解决方案;发送者在不知道RX的MAC地址的情况下无法发送任何数据。
这是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版本时, 没有AirPcap的GnuTLS 2.8.5,Gcrypt 1.4.5。