11.2.1 广播的IP地址
要使用广播,需要了解IPv4特定的广播地址。IP地址分为左边的网络ID部分以及右边的主机ID部分。广播地址所用的IP地址将表示主机ID的位全部设置为1。网卡正确配置以后,可以用下面的命令来显示所选用接口的广播地址。
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:A0:4B:06:F4:8D
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:1955 errors:0 dropped:0 overruns:0 frame:31
TX packets:1064 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:9 Baseaddress:0xe400
第二行输出信息说明eth0网络接口的广播地址为192.168.0.255。这个广播IP地址的前3个字节为网络ID,即192.168.0。这个地址的主机ID部分为255,值255是表示主机ID全为1的十进制数。
广播地址255.255.255.255是一种特殊的广播地址,这种格式的广播地址是向全世界进行广播,但是却有更多的限制。一般情况下,这种广播类型不会被路由器路由,而一个更为特殊的广播地址,例如192.168.0.255也许会被路由,这取决于路由器的配置。
通用的广播地址在不同的环境中的含义不同。例如,IP地址255.255.255.255,一些UNIX系统将其解释为在主机的所有网络接口上进行广播,而有的UNIX内核只会选择其中的一个接口进行广播。当一个主机有多个网卡时,这就会成为一个问题。
如果必须向每个网络接口广播,程序在广播之前应执行下面的步骤。
(1)确定下一个或第一个接口名字。
(2)确定接口的广播地址。
(3)使用这个广播地址进行广播。
(4)对于系统中其余的活动网络接口重复执行步骤(1)~步骤(3)。
在执行完这些步骤以后,就可以认为已经对每一个接口进行广播。