【TCP/IP】11. IP 组播

11. IP 组播

  • [11. IP 组播](#11. IP 组播)
    • [11.1 IP 组播概念](#11.1 IP 组播概念)
    • [11.2 IP 组播模型](#11.2 IP 组播模型)
    • [11.3 Internet 组管理协议(IGMP)](#11.3 Internet 组管理协议(IGMP))
    • [11.4 组播路由协议](#11.4 组播路由协议)
      • [11.4.1 距离向量组播路由协议(DVMRP)](#11.4.1 距离向量组播路由协议(DVMRP))
      • [11.4.2 开放式组播最短路径优先协议(MOSPF)](#11.4.2 开放式组播最短路径优先协议(MOSPF))
      • [11.4.3 与协议无关的组播(PIM)](#11.4.3 与协议无关的组播(PIM))
      • [11.4.4 基于核心的树(CBT)](#11.4.4 基于核心的树(CBT))
    • 本章要点

11. IP 组播

11.1 IP 组播概念

  1. IP 组播的提出
    1988 年由 Deering 提出,在 IP 层引入组播功能机制,解决单点发送多点接收的问题,实现 IP 网络中点到多点的高效数据传送,又称多播。
  2. 传统 IP 通信方式的局限
    • 单播(unicast):源主机与单个目的主机通信,若需发送给多个主机,需重复发送 IP 包,浪费带宽且增加网络设备负载。
    • 广播(broadcast):源主机向网络中所有主机发送数据,会将信息发送给不需要的主机,浪费带宽,还可能因路由回环引发广播风暴。
    • 结论:单播和广播均无法高效解决 "单点发送多点接收" 问题。
  3. IP 组播的定义
    源主机只发送一份数据,目的地址为组播组地址(D 类 IP 地址),仅组播组内的目标主机可接收该数据,组内所有接收者均能获取相同数据拷贝。
  4. IP 组播的主要优点
    • 降低主机和 CPU 负荷,增强网络效率;
    • 控制网络流量,消除冗余,优化网络性能;
    • 支持分布式应用(如视频会议、共享公告板、远程学习、财务数据发布等)。

11.2 IP 组播模型

  1. 核心:主机组(host group)
    由多个主机组成,源主机构造以 D 类 IP 地址(组播组地址)为目的地址的数据包,以 "尽力而为" 方式转发到组内各主机。
  2. 组播组地址(D 类地址)
    • 范围:224.0.0.0~239.255.255.255。
    • 部分地址保留:
      • 224.0.0.1:子网内所有系统组;
      • 224.0.0.2:子网内所有路由组;
      • 224.0.0.9:RIP v2 协议使用;
      • 224.0.1.0~238.255.255.255:全球范围使用;
      • 239.0.0.0~239.255.255.255:限制在一个机构内使用。
  3. 组播地址与底层网络的映射
    • 以太网(支持组播的网络) :将 IP 组播地址的低 23 位替换以太网组播地址 "01.00.5e.00.00.00" 的低 23 位,属于 "多对一映射",映射后以太网组播地址范围为 01.00.5E.00.00.00~01.00.5E.7F.FF.FF。
      例:IP 组播地址 224.66.60.89(二进制:11100000.01000010.00111100.01011001)映射为以太网地址 01.00.5e.42.3c.59。
    • 不支持组播的网络:将 IP 组播地址映射为本地广播地址。
  4. 组播传递结构
    组播路由器(负责组播数据寻路和转发控制)及链路在网络中形成树形逻辑结构,称为 "传递树",用于控制组播数据的传送。
  5. 组播协议分类
    • 主机 - 路由器之间:组成员关系协议(如 IGMP);
    • 路由器 - 路由器之间:组播路由协议,又分为域内组播路由协议和域间组播路由协议。

11.3 Internet 组管理协议(IGMP)

IGMP 是主机与本地组播路由器之间的协议,用于维护组播成员关系,分为三个版本,功能逐步增强。

  1. IGMP 版本演进
    • IGMPv1(RFC 1112):定义基本的组成员查询和报告过程;
    • IGMPv2(RFC 2236):增加特定组查询和组成员快速离开机制;
    • IGMPv3(RFC 3376):增加对组播源的过滤功能,成员可指定接收 / 拒绝特定源的报文。
  2. IGMPv2 报文结构与字段
    • 封装方式:IGMP 报文封装在 IP 数据报中,IP 首部协议字段值为 2,TTL 为 1;
    • 报文长度:固定 8 字节;
    • 字段说明:
      • 类型:0x11(一般 / 特殊查询)、0x16(成员报告)、0x17(离开报告);
      • 最大响应时间:仅用于查询报文,单位为 1/10 秒,规定响应的最大允许时间;
      • 校验和:计算前需清 0;
      • 组播地址:查询报文中,普通查询置 0,特定组查询置目标组地址;报告 / 离开报文中,置对应的组播地址。
  3. IGMPv2 工作过程
    • 加入组播组:主机通过 IGMP 消息通知本地组播路由器希望加入的组,路由器通过 IGMP 维护组播成员列表(记录接口上的组播组信息),成员动态变化。
    • 报告和查询:
      • 路由器向本网络所有系统(地址 224.0.0.1)发送 "成员资格查询" 报文;
      • 主机用 "成员资格报告" 报文回应(指明所属组);
      • 采用 "消息抑制算法":同一子网内,若已有主机发送某组的报告,其他主机不再重复发送(随机延迟 0-10 秒,减少网络负荷)。
    • 查询者选择:
      • 连接多路由器的网络中,各路由器先假定自己是查询者并发送普通查询(源为自身接口地址);
      • 路由器比较收到的查询报文源 IP 地址,最低 IP 地址的路由器成为查询者;
      • 非查询路由器启动计时器(默认为查询间隔的 2 倍),若超时未收到查询者报文,重新触发选择过程。
    • 快速离开机制:成员离开时发送 "离开报告",路由器收到后发送 "特定组查询",若无响应则将该组从成员列表移除,降低脱离延迟。
  4. IGMPv3 的增强功能
    • 源过滤模式:
      • INCLUDE 模式:指定接收特定源的报文(包含源地址列表);
      • EXCLUDE 模式:指定拒绝特定源的报文(排除源地址列表)。
    • 报文与查询:
      • 兼容 v1/v2,协议值仍为 2,TTL=1;
      • 成员查询报文支持 "特定源组查询",分为三种形式:普通查询(无组 / 源地址)、特定组查询(有组地址,无源码)、特定组和源查询(有组和源地址)。
    • 成员报告:
      • 接口状态变化或收到查询时发送,携带一个或多个组记录;
      • 组记录分 6 种类型:类型 1/2(当前状态记录)、类型 3/4(过滤模式改变记录)、类型 5/6(源列表改变记录)。

11.4 组播路由协议

组播路由协议是路由器之间的协议,核心任务是构造组播分布树,确保组播分组高效传送到成员(无重复、无环路、路径最优)。

11.4.1 距离向量组播路由协议(DVMRP)

  • 基础:基于源的路由协议,是距离向量路由协议(DVRP)在组播中的扩展,最优树在包转发过程中逐步形成。

  • 核心机制:

    • 反向通路转发(RPF):路由器仅转发来自 "源到本路由器最短路径" 的包,其他包丢弃(避免环路,基于 DVRP 路由表,将源地址作为目的地址判断最短路径接口)。

    • 反向通路广播(RPB):解决 RPF 的重复包问题,为特定源指定唯一父路由器,确保每个网络只收到一份组播包(形成最短路径广播树)。

    • 反向通路组播(RPM)

      :在 RPB 基础上增加 "修剪" 和 "嫁接" 操作,适应动态成员:

      • 修剪:若路由器连接的网络无组播成员,向上游发送修剪消息,从树中移除该分支;
      • 嫁接:若已修剪的网络重新出现成员,发送嫁接消息,重新接入组播树。

11.4.2 开放式组播最短路径优先协议(MOSPF)

  • 基础:基于链路状态的路由协议,是 OSPFv2 的扩展,支持 IP 组播路由。
  • 路由级别:分区域内、区域间、自治系统(AS)间组播路由。
  • 工作机制:
    • 利用 OSPF 链路状态通告中的组播信息,使用 Dijkstra 算法构造(S,G)对的分配树(S 为源,G 为组);
    • 采用 "按需计算":仅在收到组播源的第一个数据包后,才计算(S,G)树,否则利用转发缓存,减少计算量。
  • 优缺点:
    • 优点:路由开销小,链路利用率高,对网络拓扑变化响应快(继承 OSPF 特性);
    • 缺点:Dijkstra 算法计算量大,拓扑变动会使所有路由器缓存失效,消耗 CPU 资源。

11.4.3 与协议无关的组播(PIM)

PIM 不依赖特定单播路由协议(可基于任意单播路由表),分两种模式:

  1. PIM 密集模式(PIM-DM)
    • 适用于组播成员密集分布、带宽充足的网络(如局域网);
    • 类似 DVMRP,采用 RPM 机制(泛洪 + 修剪)构建以源为根的最短路径树;
    • 假设所有网络都有组播成员,先泛洪数据,再修剪无成员的分支。
  2. PIM 稀疏模式(PIM-SM)
    • 适用于组播成员稀疏分布、带宽有限的网络(如广域网);
    • 构建 "共享树":以聚合点(RP,rendezvous point)为根,所有成员共享一棵树;
    • 工作流程:组播源沿最短路径向 RP 发送数据,RP 再沿最短路径转发到成员;若需更高性能,可动态切换为以源为根的最短路径树。

11.4.4 基于核心的树(CBT)

  • 基础:组共享树协议,为每个组构建一棵以核心路由器为根的树。
  • 树的形成:包含组播成员的路由器向核心路由器发送 "加入消息",路径上的路由器记录发送者地址和进入接口,形成从核心到成员的树(与 DVMRP 相反:DVMRP 从根到叶,CBT 从叶到根;DVMRP 先广播再修剪,CBT 通过加入消息直接建树)。
  • 数据转发:源将组播包单播给核心路由器,核心去封装后沿共享树转发给成员;核心在收到加入消息前,阻塞组播分组发送。

本章要点

  • IP 组播通过 D 类地址实现单点发送、多点接收,解决单播 / 广播的带宽浪费问题;
  • 组播协议分主机 - 路由器间的 IGMP(维护成员关系)和路由器 - 路由器间的组播路由协议(构建组播树);
  • IGMPv1/v2/v3 逐步增强功能,从基础查询到源过滤;
  • 组播路由协议分基于源的树(如 DVMRP、MOSPF、PIM-DM)和组共享树(如 CBT、PIM-SM),核心是构建无环路、高效的组播分布树。
相关推荐
古希腊数通小白(ip在学)8 小时前
stp拓扑变化分类
运维·服务器·网络·智能路由器
Muxiyale9 小时前
使用spring发送邮件,部署ECS服务器
java·服务器·spring
FreeBuf_11 小时前
微软365 PDF导出功能存在本地文件包含漏洞,可泄露敏感服务器数据
服务器·microsoft·pdf
lixzest11 小时前
C++ Lambda 表达式详解
服务器·开发语言·c++·算法
o不ok!11 小时前
Linux面试问题-软件测试
linux·运维·服务器
kfepiza13 小时前
Netplan 中 bridges、bonds、ethernets、vlans 之间的关系 笔记250711
linux·tcp/ip·shell
小小不董13 小时前
深入理解oracle ADG和RAC
linux·服务器·数据库·oracle·dba
狄加山67514 小时前
Cadence模块复用
服务器·硬件架构·硬件工程·信号处理·智能硬件
宇钶宇夕14 小时前
SIMATIC S7-1200的以太网通信能力:协议与资源详细解析
运维·服务器·数据库·程序人生·自动化