使用地址255.255.255.255广播时,数据包未到达目的地

时间:2018-11-16 07:35:59

标签: networking network-programming broadcast

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

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

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

预先感谢

2 个答案:

答案 0 :(得分:0)

可能是您要连接的设备不在您的本地网络中吗?

只是为了澄清区别:

  • 255.255.255.255广播到您的本地网络中的任何IP地址(称为受限广播)
  • 10.9.X.255是定向广播,它以网络掩码255.255.255.0发送到网络10.9.X.0,并在那里广播给连接到各自局域网的所有参与者。

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

答案 1 :(得分:0)

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

如果它在一台计算机上为您工作,那么您很可能很幸运,Windows从其发送数据包的那个接口就是您正在使用的那个接口。

参考文献: