请问wireshark在硬件连接不变的情况下,两次抓包同一协议得到的Ethernet II信息中,显示表明Dst Mac变了,说明了什么呢?如何避免呢?
。
首先,网络通路框架很简单是这样的:
其中,软件内控制板与原始图像这两路是用了两个socket套接字bind()函数绑定指定IP与指定端口来通信的,视频流就直接用的ffmpeg库。均使用千兆以太网UDP通信,控制板那边用的C语言,不是我编程。
。
问题就是经常出现设备上电之后(未测出规律),软件接收不到控制板与原始图像这两路的数据,但视频流是正常的。有时候通信是单向的,控制板可接收命令只是软件收不到反馈,有时候就是通信完全中断,但实际上软件内使用PING命令监测网口是通畅的。这个时候,怎样重启软件都没有用,只能重启下位机设备(交换机与控制板等电源是一起的),通信就好了。
。
出问题时,用wireshark抓包实际上能抓到控制板发送的反馈,IP与端口没有错,于是我对比了出问题的包和正常的包,发现不同的地方只有Ethernet II信息中Dst的地址变了。正常的时候是Dst: Fujitsu_04:3c:3a (00:e0:00:04:3c:3a ),有问题时是Dst: 2c:16:db:aa:72:a5 ( 2c:16:db:aa:72:a5)。
。
请教各位,这个信息能否说明什么?从软件上能解决这个问题吗?要想精准定位问题所在应该如何测试呢?
。
有问题时的包:
正常时的包:
先检查一下你的 recvform 是不是返回了-1?
不知道你这个问题是否已经解决, 如果还没有解决的话: