1 IGMP
Internet组管理协议(IGMP) 。它让一个物理网络上的所有系统知道主机当前所在的多播组。多播路由器需要这些信息以便知道多播数据报应该向哪些接口转发。
① 版本
② 类型,为1说明是由多播路由器发出的查询报文,为 2说明是主机发出的报告报文。
③ 校验和,与ICMP校验和计算方式相同。
④ D类IP地址,在查询报文中组地址设置为0,在报告报文中组地址为要参加的组地址。
2 加入一个多播组
多播的基础就是一个进程的概念(使用的术语进程是指操作系统执行的一个程序) ,该进程在一个主机的给定接口上加入了一个多播组。在一个给定接口上的多播组中的成员是动态的—它随时因进程加入和离开多播组而变化。
这里所指的进程必须以某种方式在给定的接口上加入某个多播组。进程也能离开先前加
入的多播组。这些是一个支持多播主机中任何 A P I所必需的部分。使用限定词“接口”是因为多播组中的成员是与接口相关联的。一个进程可以在多个接口上加入同一多播组。
3 IGMP查询与报告
①当第一个进程加入一个组时,主机就发送一个 I G M P报告。如果一个主机的多个进程加入同一组,只发送一个 I G M P报告。这个报告被发送到进程加入组所在的同一接口上。
②进程离开一个组时,主机不发送 I G M P报告,即便是组中的最后一个进程离开。主机知道在确定的组中已不再有组成员后,在随后收到的 I G M P查询中就不再发送报告报文。
③多播路由器定时发送 I G M P查询来了解是否还有任何主机包含有属于多播组的进程。多播路由器必须向每个接口发送一个 I G M P查询。因为路由器希望主机对它加入的每个多播组均发回一个报告,因此 I G M P查询报文中的组地址被设置为 0。
④主机通过发送 I G M P 报告来响应一个 I G M P查询,对每个至少还包含一个进程的组均要发回I G M P报告。