1.概述
IP有三种地址:单播地址, 广播地址,多播地址。
广播和多播仅应用于UDP。
每个以太网帧包含源主机和目的主机的以太网地址。通常每个以太网帧发往单个目的主机,目的地址指明单个接收接口,因而称为单播。
一个主机要向网上的所有其他主机发送帧,就是广播。
一个主机要向网上的多个主机发送帧,就是多播。
2.广播
- 受限的广播:受限的广播地址是255.255.255.255。该地址用于主机配置过程中IP数据报的目的地址。主机可能还不知道它所在的网络的网络掩码,甚至连它的IP都不知道。
- 指向网络的广播:指向网络的广播地址是主机号全为1的地址。A类网络广播地址为netid 255.255.255.其中netid为A类的网络的网络号。
- 指向子网的广播:指向子网的广播地址为主机号全为1且有特定子网号的地址,作为子网直接广播地址的IP地址需要了解子网的掩码。
- 指向所有子网的广播:指向所有子网的广播地址的子网号及主机号为全1。
IP多播提供两类服务:
1)向多个目的地址传送数据
2)客户对服务器的请求(如BOOTP协议)
多播组地址:
![](https://i-blog.csdnimg.cn/blog_migrate/026ad540692e187de2f2f37239bbc4c0.png)
多播组地址包括为1110的最高4bit和多播组号。范围从224.0.0.0到239.255.255.255。能够接收一个特定多播地址数据的主机集合称为主机组,一个主机组可以跨越多个网络。
eg. 224.0.0.1 代表“该子网内所有的系统组”,224.0.0.2代笔“该子网内的所有路由器组”。多播地址224.0.1.1用作网络时间协议NTP,224.0.0.9用作RIP-2。
多播组地址到以太网的转换:
IANA拥有一个以太网地址块,即高24bit为00:00:5e。IANA将其中的一半分配为多播地址。任何一个以太网地址的首字节必须是01,意味着IP多播相对应的以太网地址范围从01:00:5e:00:00:00到01:00:5e:7f:ff:ff
D类IP地址到以太网多播地址的映射如图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/54ba037fa5fc0da7e2eeaa7b12d868fb.png)
由于多播组号中的最高5位在映射过程中被省略,因此每个以太网多播地址对应的多播地址组不唯一的。既然地址映射不唯一,那么设备驱动程序或者IP层就必须对数据报进行过滤。
单个物理网络的多播是简单的。多播进程将目的IP地址指明为多播地址。设备驱动程序将它转换为相应的以太网地址,然后把数据发送出去。
4.IGMP:网际组管理协议
IGMP用于支持主机和路由器进行多播的网际组管理协议。ICMP报文格式如下,
![](https://i-blog.csdnimg.cn/blog_migrate/6122c8fdaaad9de60b14ba747703012e.png)
IGMP类型为1说明是由多播路由器发出的查询报文,为2说明是主机发出的报告报文。
- IGMP的报告和查询
-
- 当第一个进程加入一个组时,主机就发送一个IGMP报告。如果一个主机的多个进程加入同一组,只发送一个IGMP报告。这个报告被发送到进程加入组所在的同一接口上。
- 进程离开一个组时,主机不发送IGMP报文
- 多播路由器定时发送IGMP查询来了解是否还有任何主机包含有属于多播组的进程。
- 主机通过发送IGMP报告来响应一个IGMP查询,对每个至少包含一个进程的组均要发回IGMP报告。