最近编写了一个接收udp组播的上位机,发现本台电脑能接受到FPGA发来的组播数据,换了一台电脑却无法接收到数据。
在新的电脑上启动抓包软件后,上位机能够正常接收数据。
不明白为什么会出现这种情况。
在查找相关资料之后,发现一般的抓包软件在抓包的时候,会将网卡配置为混杂模式。
而网卡有两个模式,一般模式,就只接受发向网卡MAC地址的数据,其他数据会被过滤掉。而混杂模式,网卡将接收所有经过它的数据。
这下真相大白了,FPGA发来的数据包只指定了我原来电脑的MAC地址,换电脑之后,新的电脑无法接收到数据,上位机也就无法工作。开启抓包软件后,网卡被配置为混杂模式,FPGA的数据不再被过滤,上位机就能够正常工作了。
最终,把FPGA发来的数据包中的MAC地址设为全F就行了。
作者遇到在不同电脑上接收FPGA发送的UDP组播数据的问题,通过使用抓包软件发现,原因是新电脑的网卡默认处于一般模式,只接收指定MAC地址的数据。开启混杂模式后,问题得以解决,最终将FPGA发送的数据包MAC地址设为全F,确保所有电脑都能接收。
1092





