IGMP 互联网组管理协议

协议概述

  • 互联网组管理协议 IGMP(Internet Group Management Protocol)是 TCP/IP 协议族中用于管理多播组成员关系的协议
  • IGMP 协议由 RFC 1112 定义,目前常用版本为 IGMPv3(RFC 3376)
  • 工作在网络层,与 IP 协议协同工作(IGMP 报文封装在 IP 数据报中传输)

主要功能

  1. 主机加入/离开多播组
  2. 路由器维护多播组成员信息
  3. 支持多播路由协议(如 PIM)构建多播分发树

工作流程

  1. 主机通过发送 Membership Report 报文加入多播组
  2. 路由器定期发送 Membership Query 报文查询组成员状态
  3. 主机响应 Membership Report 报文维持组成员关系
  4. 主机发送 Leave Group 报文主动退出多播组

版本演进

版本主要特性
IGMPv1基本组成员查询和报告机制
IGMPv2添加快速离开机制
IGMPv3支持源特定多播 (SSM)

与其他协议的关系

  • 依赖 IP 协议进行传输(协议号 2)
  • 为 PIM 等多播路由协议提供组成员信息
  • 在支持多播的网络设备(如交换机)中实现 IGMP Snooping 功能

硬件多播映射过程

在局域网中,硬件多播映射是将 IP 多播地址转换为 MAC 多播地址的过程,具体步骤如下:

  1. IP 多播地址到 MAC 多播地址的转换

    • IPv4 多播地址范围:224.0.0.0 到 239.255.255.255
    • MAC 多播地址前缀:01-00-5E(以太网)
    • 转换规则:
      • 取 IP 多播地址的低 23 位
      • 映射到 MAC 地址的低 23 位
      • 例如:IP 多播地址 224.0.1.1 → MAC 地址 01-00-5E-00-01-01
  2. 多播帧的传输

    • 主机将数据封装在目标 MAC 地址为多播地址的帧中发送
    • 交换机通过 IGMP Snooping 学习多播组成员信息
    • 只向包含组成员的端口转发多播流量
  3. IGMP Snooping 工作流程

    • 交换机监听 IGMP 报文
    • 记录端口与多播组的对应关系
    • 维护多播组转发表
    • 根据转发表智能转发多播流量
  4. 多播路由器的角色

    • 接收所有多播流量(监听 224.0.0.1)
    • 通过 IGMP 查询维护组成员信息
    • 与上游多播路由器交换路由信息

多播地址映射表

IP 多播地址范围MAC 多播地址前缀备注
224.0.0.0-239.255.255.25501-00-5E以太网多播地址
224.0.0.0/2401-00-5E-00-00-XX本地网络控制块
224.0.1.0-238.255.255.25501-00-5E-XX-XX-XX全局范围多播

典型应用场景

  1. 视频会议系统
  2. 网络直播
  3. 分布式计算
  4. 实时数据分发

注意:由于 IP 多播地址有 28 位有效位,而 MAC 多播地址只有 23 位,因此存在 32:1 的地址映射冲突可能,需要在应用层做额外处理。