计算机网络中的IGMP是什么?
IGMP代表互联网组管理协议。它是一种允许多个设备共享一个IP地址的协议,以便它们都可以接收相同的数据。IGMP 是一种网络层协议,用于在使用互联网协议版本 4 (IPv4) 的网络上建立组播。具体来说,IGMP 允许设备加入组播组。
IGMP 不是组播路由协议;它是一个管理组成员资格的协议。在任何网络中,都存在一个或多个组播路由器,它们将组播数据包分发到主机或其他路由器。
IGMP 协议向组播路由器提供有关连接到网络的主机(路由器)的成员资格状态的信息。
组播路由器每天可能会为不同的组接收数千个组播数据包。如果路由器不了解主机的成员资格状态,则必须广播所有这些数据包。
这会产生大量流量并消耗带宽。更好的解决方案是在网络中保留一个组列表,这些组至少有一个忠实成员。IGMP 帮助组播路由器创建和更新此列表。
IGMP 的操作
IGMP 在本地运行。连接到网络的组播路由器具有一个组播地址列表,这些地址对应于网络中至少有一个忠实成员的组,如下图所示:
对于每个组,都有一个路由器负责分发发往该组的组播数据包。这意味着,如果三个组播路由器连接到网络,则它们的组 ID 列表是互斥的。
主机或组播路由器可以成为组的成员。当主机成为成员时,意味着它的某个进程(应用程序)从某个组接收组播数据包。当路由器成为成员时,意味着连接到其其他接口的网络连接接收这些组播数据包。我们说主机或路由器对该组有兴趣。在这两种情况下,主机和路由器都保留一个组 ID 列表,并将它们的兴趣转发给分发路由器。
还有两个其他组播路由器(R1 和 R2),根据路由器 R 维持的组列表,它们可能是此网络中路由器 R 的接收方。路由器 RI 和 R2 可能是其他网络中某些组的分发器,但不在此网络中。
加入组
主机或路由器可以加入组。主机维护一个进程列表,这些进程是组的成员。当某个进程想要加入新组时,它会向主机发送请求。
主机将进程名称和请求的组名称添加到其列表中。如果这是此特定组的第一个条目,则主机发送成员资格报告消息。如果不是第一个条目,则无需发送成员资格报告。由于主机已经是该组的成员;它接收该组的组播数据包。
协议要求成员资格报告发送两次,一次接一次,在几秒钟内。这样,如果第一个报告丢失或损坏,则第二个报告会替换它。
离开组
当主机发现没有进程对特定组感兴趣时,它会发送离开报告。类似地,当路由器发现连接到其接口的网络中没有网络对特定组感兴趣时,它会发送有关该组的离开报告。
但是,当组播路由器收到离开报告时,它不能立即从其列表中清除该组。这是因为该报告仅来自一台主机或路由器,并且可能还有其他主机或路由器仍然对该组感兴趣。为了确保这一点,路由器会发送一条特殊的查询消息,并插入与该组相关的组 ID 或组播地址。
路由器允许任何主机或路由器在指定的时间内响应。如果在此期间未收到任何兴趣(成员资格报告),则路由器假设网络中没有忠实成员,并将其列表中的组清除。