IGMP (Internet Group Management Protocol)有V1,V2,V3多个版本,这里介绍下V2.
IGMP-V2主要实现机理:
路由器定期查询:
1,路由器会定期(每隔60~120秒)发送主机成员资格查询消息(Membership Query);
2,主机收到成员资格查询消息后,如果是该组播组成员,则将一个延时计时器置为(0~最大响应时间 之间的)随机值;
3,计时器先到0的那个主机发出成员资格报告到本组播组地址;
4,该网络中的其他同组主机,收听到成员资格报告,就不再响应;
5,在某个端口上,只要有一台主机响应了此次查询,路由器就必须向这个网络发送组播数据;
6,主机上的应用决定要加入到组播组,就主动发出一个成员资格报告到路由器;
7,当有主机想要离开一个组播组,如果它是上次响应资格查询的主机,就发出一个离开租的包;
8,路由器收到离开组的包后,会向改组播组发起一次特定组的主机资格查询,同时启动一个定时器,如果在计时器归零后,某端口相连的网络还没有任何响应,就认为该网络没有任何主机属于该组播组。
IGMP Snooping
IGMP Snooping就是交换机通过监听成员报告消息,获取主机,端口和加入的特定组播组的信息,并在过滤表中创建条目。
缺点:由交换机实现路由器的IGMP功能,使得CPU负荷很大,而且没有提供对需要接收发送到某一组播地址的帧的路由器进行辨别的简单方法,也无法识别出于故障排除目的而希望接收组播帧的网络监控设备。它只适用于IP组播。