广播地址(Broadcast Address)是专门用于同时向某个网络中的所有主机发送数据包的地址。在使用TCP/IP协议的网络中,HostID位全为1的IP地址就是广播地址。发送给某个广播地址的数据包,会被分发给相应网段内的所有主机。
广播地址分为:
- 受限广播地址
受限广播地址是NetID位和HostID位全位1的IP地址。该地址主要被当做主机配置过程中的IP封包的目的地址(比如,主机通过DHCP协议动态地获取IP地址时,就会用到受限广播地址,http://timd.cn/network/dhcp/)。路由器不会转发目的IP是受限广播地址的数据包。
- 直接广播地址
HostID位全位1的IP地址,就是其所在网段的广播地址。路由器必须能够转发指向网络的广播,但是它也必须有一个不转发的选项(默认情况下,路由器不转发指向网络的广播)。
在TCP/IP协议栈中,传输层只有UDP可以广播。并且需要使用setsockopt()
打开允许广播的选项。下面是一个Python的例子: