IGMP (Internet Group Management Protocol)
干什么用的
组播是「一份数据发给一群人」——比如 IPTV。但路由器怎么知道谁要?
★★★ IGMP 就是主机举手的方式:「我要收 239.1.1.1 这个组」。路由器记下来,只往有人要的方向送。
★★ 注意它只解决「谁要」,怎么把树建起来是 PIM 的事。
★ 交换机是偷听来的
★★★ IGMP 是主机和路由器之间的对话,交换机本来不参与。
★★★ 但交换机是二层设备,组播 MAC 在它看来和广播差不多 ——不做处理就会往所有口泛洪,那组播就退化成广播了。
★★★ 所以有了 IGMP snooping:交换机偷看主机发的 IGMP 报文,记下「哪个口有人要这个组」,然后只往那几个口转。
★ 常见误解
★★★ 「配了组播就不会泛洪」 —— 交换机上没开 IGMP snooping 的话,组播照样泛洪到每个口。这是组播部署里最常见的性能问题。
★★ 「IGMP 能建组播树」 —— 不能。它只负责「本网段谁要」,跨路由器的树是 PIM 建的。
★★ 「主机走了路由器立刻就知道」 —— v2 起有 Leave 报文,但仍要等查询确认;没有 Leave 的话要等超时才停。