IGMP Snooping(Internet Group Management Protocol Snooping)是运行
在二层以太网交换机上的组播约束机制,用于管理和控制组播组。
IGMP Snooping 运行在链路层。当二层以太网交换机收到主机和路由器之间
传递的IGMP 报文时,IGMP Snooping 分析IGMP 报文所带的信息。当监听
到主机发出的IGMP 主机报告报文(IGMP host report message)时,交换机
就将与该主机加入到相应的组播表中;当监听到主机发出的IGMP 离开报文
(IGMP leave message)时,交换机就将删除与该主机对应的组播表项。通
过不断地监控IGMP 报文,交换机就可以在二层建立和维护MAC组播地址表。
之后,交换机就可以根据MAC组播地址表进行转发从路由器下发的组播报文。
说到IGMP 不能不提“组播”的概念。假如现在一个主机想将一个数据包发给网络上的
若干主机,有什么方法可以做到呢?一个方法是采用广播包发送,这样网络上的所有主机都
能够接收到,另一种方式是将数据包复制若干份分别发给目的主机。这两个方法都存在问题:
方法一,广播的方法导致网络上所有的主机都能接收到,占用了网络上其他主机的资源。方
法二,由于所有目的主机接收的报文都是相同的,采用单播方式显然效率很低。为了解决上
面所述的问题,人们提出了“组播”的概念,控制一个报文发送给对该报文感兴趣的主机,
IGMP 就是组播管理协议。