第十三章 IGMP Internet组管理协议

Internet组管理协议( IGMP用于支持主机和路由器进行多播IGMP报文通过 IP数据报进行传输。

IGMP类型为 1说明是由多播路由器发出的查询报文,为 2说明是主 机发出的报告报文。检验和的计算和 ICMP协议相同。

组地址为 DIP地址。在查询报文中组地址设置为 0,在报告报文中组地址为要参加的组 地址。

IGMP 协议

 

13.3.1  加入一个多播组

多播的基础就是一个进程的概念(使用的术语进程是指操作系统执行的一个程序),该进 程在一个主机的给定接口上加入了一个多播组。在一个给定接口上的多播组中的成员是动态它随时因进程加入和离开多播组而变化。 这里所指的进程必须以某种方式在给定的接口上加入某个多播组。进程也能离开先前加入的多播组。这些是一个支持多播主机中任何API所必需的部分。使用限定词“接口”是因为 多播组中的成员是与接口相关联的。一个进程可以在多个接口上加入同一多播组。这里暗示一个主机通过组地址和接口来识别一个多播组。主机必须保留一个表,此表中 包含所有至少含有一个进程的多播组以及多播组中的进程数量。

13.3.2  IGMP 报告和查询

 

多播路由器使用 IGMP报文来记录与该路由器相连网络中组成员的变化情况。使用规则如下:

    1) 当第一个进程加入一个组时,主机就发送一个 IGMP报告。如果一个主机的多个进程加 入同一组,只发送一个 IGMP报告。这个报告被发送到进程加入组所在的同一接口上。

    2) 进程离开一个组时,主机不发送 IGMP报告,即便是组中的最后一个进程离开。主机知 道在确定的组中已不再有组成员后,在随后收到的 IGMP查询中就不再发送报告报文。

    3) 多播路由器定时发送 IGMP查询来了解是否还有任何主机包含有属于多播组的进程。多 播路由器必须向每个接口发送一个 IGMP查询。因为路由器希望主机对它加入的每个多播组均 发回一个报告,因此 IGMP查询报文中的组地址被设置为 0

    4) 主机通过发送 IGMP报告来响应一个 IGMP查询,对每个至少还包含一个进程的组均要 发回IGMP报告。

使用这些查询和报告报文,多播路由器对每个接口保持一个表,表中记录接口上至少还 包含一个主机的多播组。当路由器收到要转发的多播数据报时,它只将该数据报转发到(使 用相应的多播链路层地址)还拥有属于那个组主机的接口上。

13.3.4  生存时间字段

我们注意到 IGMP报告和查询的生存时间 (TTL)均设置为 1,这涉及到 IP首部 中的TTL字段。一个初始 TTL0的多播数据报将被限制在同一主机。在默认情况下,待传多 播数据报的 TTL被设置为 1,这将使多播数据报仅局限在同一子网内传送。更大的 TTL值能被 多播路由器转发。

你可能感兴趣的:(第十三章 IGMP Internet组管理协议)