当前位置: 首页 > news >正文

【TCP/IP】11. IP 组播

11. IP 组播

  • 11. IP 组播
    • 11.1 IP 组播概念
    • 11.2 IP 组播模型
    • 11.3 Internet 组管理协议(IGMP)
    • 11.4 组播路由协议
      • 11.4.1 距离向量组播路由协议(DVMRP)
      • 11.4.2 开放式组播最短路径优先协议(MOSPF)
      • 11.4.3 与协议无关的组播(PIM)
      • 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),核心是构建无环路、高效的组播分布树。
http://www.dtcms.com/a/271844.html

相关文章:

  • 【C语言】学习过程教训与经验杂谈:思想准备、知识回顾(六)
  • 【博主亲测可用】PS2025最新版:Adobe Photoshop 2025 v26.8.1 激活版(附安装教程)
  • Apache Dubbo实战:JavaSDK使用
  • 前端面试十一之TS
  • 服务器重装后如何“复活”旧硬盘上的 Anaconda 环境?—— 一次完整的排错与恢复记录
  • 计算机学科专业基础综合(408)四门核心课程的知识点总结
  • 微信小程序101~110
  • 以太网基础⑤UDP 协议原理与 FPGA 实现
  • 2025年7月9日学习笔记——模式识别与机器学习——fisher线性回归、感知器、最小二乘法、最小误差判别算法、罗杰斯特回归算法——线性分类器
  • 【TCP/IP】1. 概述
  • AI赋能生活:深度解析与技术洞察
  • LiteHub之文件下载与视频播放
  • 微信小程序控制空调之EMQX服务器安装与配置
  • 重新配置电脑中的环境变量
  • SpringBoot ThreadLocal 全局动态变量设置
  • 机器学习11——支持向量机上
  • 初学者对编译和链接的学习笔记(含预编译详解)
  • 广告匹配策略的智能化之路:人工智能大模型的方法和步骤
  • 多模态大语言模型arxiv论文略读(156)
  • vivo Pulsar 万亿级消息处理实践(3)-KoP指标异常修复
  • 快速上手MongoDB与.NET/C#整合
  • 【AI大模型】LLM模型架构深度解析:BERT vs. GPT vs. T5
  • searxng 对接openweb-UI实现大模型通过国内搜索引擎在线搜索
  • 搜索引擎vs向量数据库:LangChain混合检索架构实战解析
  • 计算机视觉 之 数字图像处理基础
  • 基于 SpringBoot + Vue 的 IT 技术交流和分享平台的设计与实现
  • TCP-与-UDP-协议详解:原理、区别与应用场景全解析
  • 北斗舞动在线监测装置:电力安全的“智慧守护者”
  • SpringMVC @ExceptionHandler 典型用法
  • 了解去中心化金融在现代经济中的作用——安全交易新时代