当以地址255.255.255广播时,数据包未到达目的地



我有一个bacnet应用程序,它向连接的所有设备广播消息。当我使用地址10.9.x.255时,它起作用,设备能够获得响应,但当我使用全局广播255.255.255时,数据包没有到达它必须到达的设备。

这可能是什么原因?我可以使用地址10.9.x.255,但我想知道它背后的原因。

在另一台计算机上,它可以使用全局广播地址,但在特定的计算机上不起作用。两台计算机都在windows10上运行。

提前感谢

可能是您想要访问的设备不在您的本地网络中吗?

只是为了澄清区别:

  • 255.255.255广播到本地网络中的任何IP地址(称为有限广播(
  • 10.9.X.255是定向广播,其被发送到具有网络掩码255.255.255.0的网络10.9.X.0,并且在那里被广播到连接到相应本地网络的所有参与者

编辑:虽然您似乎可以发送定向广播,但由于DoS攻击的风险,许多路由器禁用了定向广播(请参阅RFC 2644规范(。

在Windows上将数据包发送到255.255.255.255时,它只从一个网络接口发送。这是Windows IPv4网络堆栈中的一个错误/设计缺陷。

如果它在你的一台计算机上对你有效,那么你很可能只是运气好,Windows发送数据包的一个接口就是你正在使用的接口。

参考文献:

  • https://social.technet.microsoft.com/Forums/windows/en-US/72e7387a-9f2c-4bf4-a004-c89ddde1c8aa/how-to-fix-the-global-broadcast-address-255255255255-behavior-on-windows?forum=w7itpronetworking
  • https://github.com/dechamps/WinIPBroadcast

最新更新