00. 目录
01. 广播地址概述
广播地址(Broadcast Address)是专门用于同时向网络中(通常指同一子网)所有工作站进行发送的一个地址。在使用TCP/IP 协议的网络中,主机标识段host ID(简称主机 ID) 为全 1 的 IP 地址为广播地址,广播的分组传送给同一个子网的所有计算机。例如,对于10.1.1.0 (255.255.255.0 )网段,其广播地址为10.1.1.255 (255 即为 2 进制的 11111111 ),当发出一个目的地址为10.1.1.255 的数据包时,它将被分发给该网段上的所有计算机。广播地址应用于网络内的所有主机。
02. 广播地址分类
1) 受限广播
路由器从来不会转发受限广播的数据包,但同一个子网的所有主机都会接收到受限广播的数据包。
IP 地址的网络字段和主机字段全为 1 就是受限广播地址255.255.255.255。
2) 直接广播(也叫定向广播)
直接广播可以被路由转发,发送到目标网络的所有主机,如:ip地址为 192.168.2.1的主机也可以发送广播到 192.168.1.0 这个网络。当然不是所有的路由器,通常路由器是默认阻止直接广播的(可以设置不阻止)。
IP 地址的网络字段定义这个网络,主机字段通常全为 1,如192.168.10.0/24 的直接广播(定向广播)地址为:192.168.10.255。
03. 四种IP广播地址
受限的广播地址
受限的广播地址是255.255.255.255。该地址用于主机配置过程中IP数据包的目的地址,此时,主机可能还不知道它所在网络的网络掩码,甚至连它的IP地址也不知道。在任何情况下,路由器都不转发目的地址为受限的广播地址的数据报,这样的数据报仅出现在本地网络中。
指向网络的广播
指向网络的广播地址是主机号为全1的地址。A类网络广播地址为netid.255.255.255,其中netid为A类网络的网络号。一个路由器可以设置是否转发这个广播地址的数据。
指向子网的广播
**指向子网的广播地址为主机号为全1且有特定子网号的地址。**作为子网直接广播地址的IP地址需要了解子网的掩码。例如,如果路由器收到发往128.1.2.255的数据报,当B类网络128.1的子网掩码为255.255.255.0时,该地址就是指向子网的广播地址;但如果该子网的掩码为255.255.254.0,该地址就不是指向子网的广播地址。在划分为子网的网络中指向子网的广播地址限于表示特定子网上的主机。
指向所有子网的广播
**指向所有子网的广播也需要了解目的网络的子网掩码,以便与指向网络的广播地址区分开。**指向所有子网的广播地址的子网号及主机号为全1。例如,如果目的子网掩码为255.255.255.0,那么IP地址128.1.255.255是一个指向所有子网的广播地址。然而,如果网络没有划分子网,这就是一个指向网络的广播。这一类型的地址现在已经基本不使用了,而由D类组播地址所取代。
04. 广播和地址
\1. TCP/IP协议栈中, 传输层只有UDP可以广播.
\2. 只能对同一子网内部广播, 广播数据包不经过路由器.
\3. UDP的广播地址为255.255.255.255
\4. 在winsock实现中, 有一个选项对应是否允许广播.必须调用setsockopt打开该选项.
\5. 打开后, 用sendto向255.255.255.255发送的数据包全部广播.
很多局域网都定义了一个特殊的保留地址, 称为广播地址. 当信息头中目的地址域的内容为广播地址时, 该帧被局域网上所有计算机接收. 这个过程称为广播.
合法的广播地址就是主机的网络地址加上最大的主机号。网络地址通过机器的ip地址与子网掩码按位与得出,我们以ip地址为10.78.202.175 ,子网掩码为255.0.0.0。
05. 附录
5.1 博客汇总:【Linux】一步一步学Linux网络编程教程汇总
5.2 百度百科:广播地址