组播和IGMP

组播和IGMP的作用
---------------------------------
所谓组播,与单播和广播相对,是指将网络主机将一次将数据发给多个属于同一组的目标主机。主要使用了IGMP协议。
IGMP,就是Internet Group Management Protocol的意思。该协议用来 ip主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系,但不包括组播路由器之间的组成员关系信息的传播与维护,这部分工作由各组播路由协议完成。所有参与组播的主机必须实现IGMP。

组播的报文
----------------------------------
组播使用了D类IP地址,IP地址的分类如下所示,可见D类地址范围在224.0.0.0到239.255.255.255。
组播和IGMP_第1张图片
注意,多播地址224.0.0.1被称为所有主机组地址,即所有具有组播能力的主机均会加入该组。

IGMP作为TCP/IP第三层的协议,被封装在IP数据包中进行传输。IGMP的报文格式是固定的,共8个字节,如下图所示。
组播和IGMP_第2张图片
其中的IGMP类型分两种:1表示该报文是组播路由器发出的查询报文,2表示是IP主机发出的报告。后面的4个字节则是组播地址。

组播的过程
-----------------------------------
一个典型的过程是这样的:
1. IP主机的一个进程可随时加入和离开主机接口的一个组播组,该主机需要维护接口的一张表,该表包含了有那些组以及这些组中的进程数量。此时主机需要发送一个IGMP报告
2. 路由器会定时发送IGMP查询报文,此时报文中的组地址为0
3. IP主机回应路由器的IGMP查询报文,对于一个主机,如果它加入了多个组,则需要为每个组返回一个IGMP报告。
4. 路由器根据这些信息,会对每个接口维护一张表,表中说明了该接口的组。
这个过程中的报文,可见下图

组播和IGMP_第3张图片



你可能感兴趣的:(组播和IGMP)