定义

组播组管理协议

功能

管理主机加入和离开组播组
维护本地组播组信息表

IGMPv1

主机加入

  1. 路由器向开启了IGMP的端口发送查询报文,询问该接口下有没有组播接收者。
  2. 收到查询报文的主机,如果希望接收某个组的组播,则向路由器回复report报文,把希望加入的组播组地址通告给路由器;如果不希望接收任何组播,则不回复。
  3. 收到report报文后,路由器就会在本地建立组播组信息表,记录该组的(*、G)表项,后续将会转发该组组播。

    主机离开

  • 默默离开
  • 当路由器在后续的查询报文中没有收到某个组的Report报文时,路由器将会把该组的(*、G)表项删除,不再转发该组组播

    查询器选举

  • 一个网段中只能有一个路由器负责处理组播,该路由器就是查询器

  • IGMPv1没有查询器选举机制,只能依靠上层组播路由协议选举

    成员报告抑制机制

  • 主机以组播224.0.0.1的地址发送report报文,该报文也会发送至其他主机

  • 收到该report报文的主机会启动计时器(10秒);在该计时器时间内,如果本机也希望加入该组播组,不会重复发送report报文

主机希望加入某个组播组,不用等到路由器发送查询报文,会直接向路由器发送Report报文

IGMPv2

主机加入

  • 路由器会周期性向开启了IGMP的接口发送普遍查询报文
  • 其他和IGMPv1一致

    主机离开

  1. 主机主动向路由器发送Leave报文,通告希望离开的组播组地址
  2. 路由器收到leave报文后,会发送指定组查询报文,询问该网段内是否还有主机希望接收该组的组播
  3. 如网段内还有该组接收者,则该接收者会向路由器回复membership-report报文,通告路由器本机还希望接收该组播;如果不希望接收该组播,则不回复
  4. 如接收到membership-report报文,则不对组播组信息表做任何操作;如没有接收到任何报文,则删除该组播组信息

    查询器选举

  • 自动选举
  • IP地址小的优先

    成员报告抑制机制

    与IGMPv1一致

    IGMPv3

    主机上维护的组播信息

    组地址 过滤模式 源列表
    主机通过发送membership-report报文向路由器通告本机当前组播信息状态、过滤模式变化、源列表变化