255.255.255.255 与 192.168.1.255

nos*_*nos 24 networking

我们正在尝试调试一些执行广播的应用程序。

广播地址 255.255.255.255 和例如 ifconfig 报告的广播地址有什么区别,Bcast:192.168.1.255

Mas*_*imo 43

广播地址总是相对于给定的网络,本身没有广播;当您有网络时,您可以通过将所有主机位替换为 1 来计算其广播地址;简单地说,广播地址是网络上编号最高的地址,而网络地址是最低的地址(所有主机位都设置为 0);这就是为什么您不能将它们中的任何一个用作实际主机地址的原因:它们是为此用途保留的。

如果您的网络是 192.168.1.0/24,那么您的网络地址将是 192.168.1.0,您的广播地址将是 192.168.1.255。

如果您的网络是 192.168.0.0/16,那么您的网络地址将是 192.168.0.0,您的广播地址将是 192.168.255.255。

等等...

255.255.255.255 是一个特殊的广播地址,意思是“这个网络”:它让你向你所连接的网络发送一个广播数据包,而实际上并不关心它的地址;其中,类似于 127.0.0.1,是一个虚拟地址,意思是“本地主机”。

更多信息在这里:http : //en.wikipedia.org/wiki/Broadcast_address

  • “它可以让您将广播数据包发送到您所连接的网络” ...如果您连接到多个网络怎么办?广播数据包是否发送给所有这些? (2认同)

joe*_*rty 14

补充一下马西莫在他的回答中所说的:

255.255.255.255 将被视为物理层广播地址,而 192.168.1.255 将被视为网络层广播地址。ARP 会生成物理层广播,而 NetBIOS 会生成网络层广播。


Sim*_*ter 11

原则上,255.255.255.255 是“全局”广播地址,这意味着 IP 堆栈应该将数据包发送到所有网络接口,而配置为转发广播的路由器应该将它们发送。

实际上,几乎没有路由器转发广播,很多堆栈只是将数据包的一个副本发送到默认路由指向的接口。

子网广播地址用于选择特定的接口。在这两种情况下,这些都应该映射到网络层广播地址(对于以太网,这将是 FF:FF:FF:FF:FF:FF)。

一般来说,使用 255.255.255.255 是一个坏主意,因为有几个设置中默认路由的接口是完全错误的选择。显式选择接口更好,但需要谨慎操作。

我的另一个建议是使用多播,如果这对您的应用程序有意义。与广播流量相同的警告仍然适用,但这允许不感兴趣的主机快速识别您的数据包,并允许网络管理员为您的协议设置特定的转发规则。

  • 当我搜索 255.255.255.255 时,出现的第一个结果是 [RFC 919](https://tools.ietf.org/html/rfc919)。在那个 RFC 中,我发现了这句话:“地址 255.255.255.255 表示本地硬件网络上的广播,**不得转发。**”(强调我的)所以当你建议路由器可能被配置为转发数据包时,那么可能性不大。 (2认同)

小智 5

如果网络中没有子网,255.255.255.255 和 192.168.1.255 具有相同的效果。但是,当您将网络分解为子网时,情况就会有所不同。主机使用 255.255.255.255(称为“有限广播”)向其所有直接邻居(即本地子网上的所有接口)进行广播。

然而,您可以使用 192.168.1.255(称为“定向广播”)向整个 LAN 或 WAN 上的所有接口进行广播。

此外,如果节点不知道其网络(或只是在其 IP 配置之前)并且正在从 DHCP 服务器请求其动态 IP,则节点会使用 255.255.255.255 在子网上进行广播。有关更多详细信息,请参阅“RFC 919”。