IGMP协议

来源:互联网 发布:知乎 陈茂辉 编辑:程序博客网 时间:2024/05/17 23:21

       之前写了一篇关于多播的博客,简单介绍了IP地址到以太网地址的映射方式,简要说明了在单个物理网络中的多播过程。但是当涉及到多个网络数据必须通过路由器转发时,情况就会复杂得多了。

        Internet组管理协议(IGMP)就是专门用于支持主机和路由器进行多播的一种协议。IGMP协议能够知道多播数据应该向路由器的哪个接口转发,实质上是路由器对每个接口保持了一个表,表中记录接口上至少还有包含一个主机的多播组。

         那么,IGMP维护这张表的过程是什么样的呢?

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

                2.由于IGMP使用的是IP交付服务,所以并不能保证该报告被可靠接收。下一个报告将在间隔一段时间后发送,这个间隔时间由主机在0~10秒的范围内随机选择。

                3.多播路由器定时发送IGMP查询来了解是否还有任何主机含有属于多播组的进程。

                4.主机收到查询报文,随机延时后发出响应。延时期间如果收到发自其他主机的相同报文,则该主机就可不必发送。因为路由器只要知道该组是否至少拥有一台主机。

                5.进程离开一个组时,不发送IGMP报告,即便是组中的最后一个进程离开。主机只要知道自己已经不属于该组成员,并在随后收到的IGMP查询不再发送报告报文。

                6.路由器通过查询和报告报文的方式对每个接口保持一张表,当路由器收到要转发的多播数据时,它只要查询表中内容将其转发到相应接口即可。

0 0