组播网络构建:IGMP、PIM 原理及应用实践

IP组播基础

组播基本架构

组播IP地址

  • 一个组播IP地址并不是表示具体的某台主机,而是一组主机的集合,主机声明加入某组播组即标识自己需要接收目的地址为该组播地址的数据
  • IP组播常见模型分为ASM模型和SSM模型
  • ASM:成员接收任意源组播数据,主机仅需加入组播组,不关注数据源,适用于新闻公告发布等对数据源无要求的场景 。
  • SSM:成员指定接收特定源组播数据,需主机加入组时指定源地址,适用于视频会议等需明确数据源的场景。

组播MAC地址

组播MAC地址与单播MAC地址的区别:

IANA规定,IPv4组播MAC地址的高24位为0x01005e,第25位固定为0。

组播IP与MAC的映射

  • 需要组播IP地址与组播MAC地址的自动映射。
  • MAC地址的低23bit为组播IP地址的低23bit。

映射导致的问题

组播IP地址映射成组播MAC地址时,会导致32个组播IP地址对应一个组播MAC的问题。

IGMP协议原理与配置(路由器与主机之间)

  • IGMP(Internet Group Management Protocol)因特网组管理协议,是TCP/IP协议族中负责IP组播成员管理的协议,它用来在接收者和与其直接相邻的组播路由器之间建立、维护组播组成员关系。
  • IGMP协议运行于主机与组播路由器之间
  • IGMP协议的作用:
    • 主机侧:通过IGMP协议向路由器通告组成员关系
    • 路由器侧:通过IGMP协议维护组成员关系。

IGMPv1的工作机制

  • 普遍组查询与响应
  • 响应抑制机制。

IGMPv1成员加入

  • 主机申请加组。

IGMPv1问题一:组成员离开

  • 静默离开。

IGMPv1问题二:查询器选举

  • 查询器选举依赖于组播路由协议

IGMPv2的工作机制

IGMPv2对IGMPv1的改进:组成员离开

IGMPv2对IGMPv1的改进:查询器选举

  • 独立的查询器选举机制。

IGMPv1和IGMPv2报文比较

SSM模型中的新需求

  • 只接收特定源发送的组播数据

IGMPv3的工作机制

IGMP各版本间的差异

IGMP Snooping的工作机制

  • 组播数据在二层被泛洪,造成:
    • 网络资源浪费。
    • 存在安全隐患。
  • 使能IGMPSnooping机制后,查询响应仅向路由器接口转发。

PIM协议原理与配置 (路由器和路由器之间)

PIM(Protocol IndependentMulticast)直接利用单播路由表的路由信息进行组播报文RPF检查,创建组播路由表项,转发组播报文。

PIM-DM的工作机制

  • 采用"推(Push)模式"转发组播报文
  • PIM-DM的关键任务:
    • 建立SPT(Shortest Path Tree,最短路径树)
  • PIM-DM的工作机制:
    • 邻居发现。
    • 扩散与剪枝。
    • 状态刷新。
    • 嫁接。
    • 断言。

PIM-DM邻居发现

PIM-DM构建SPT

  • 扩散过程。
  • RPF检查。
  • 剪枝过程。

PIM-DM状态刷新

  • 周期性地刷新剪枝状态。

PIM-DM Graft机制 (嫁接)

  • 新的组成员加入组播组后,快速得到组播报文。

PIM-DM Assert机制 (断言)

  • 避免重复组播报文

PIM-DM的局限性

  • PIM-DM适用于组播成员分布较为密集的园区网络。
  • PIM-DM的局限性:
    • 在组播成员分布较为稀疏的网络中,组播流量的周期性扩散会给网络带来较大负担。

PIM-SM的工作机制

PIM-SM基本概述

  • 使用"拉(Pull)模式"转发组播报文
  • PIM-SM的关键任务:
    • 建立RPT(RendezvousPointTree,汇聚点树也称共享树),
    • 建立SPT(Shortest Path Tree,最短路径树)。
  • 适用于组播成员分布较为稀疏的网络环境。

汇聚点RP (Rendezvous Point)

  • 充当RPT树的根节点。
  • 共享树中的所有组播流量都经过RP转发给接收者。
  • 所有PIM路由器都要知道RP的位置。

RPT及其建立过程

组播接收者侧DR与组播源侧DR

SPT的建立过程

  • SPT建好之后,组播报文沿SPT到达RP

( * ,G)与(S,G)条目关系

PIM-SM的转发树

SPT和RPT构成组播报文的转发路径,存在哪些问题?

Switchover机制

与组播接收者相连的DR负责向RP发送单播join消息 ,与组播源相连的DR负责向RP发送单播Register消息

相关推荐
hhhjhl5 小时前
Protobuf.js 跨端三方库仓颉适配全流程
javascript·网络·udp
ITxiaobing20236 小时前
中国公司海外广告投放的 IP 地址库选型:从“查归属”到“验真实”的工程视角
网络·网络协议·tcp/ip
KKKlucifer7 小时前
运营商非结构化文档安全管控体系建设实践
大数据·网络·安全
网络小江9 小时前
组网第35课:静态路由——下一跳、出接口、默认路由、浮动静态与黑洞路由
服务器·网络·默认路由·黑洞路由·浮动静态路由
acrel79 小时前
医院用电隐患治理与节能降耗及智慧能源平台应用
网络·数据库
Escalating_xu10 小时前
【Linux 网络编程】应用层协议 HTTP(下):Header、连接管理与 C++ HTTP 服务器
linux·服务器·网络
明天也要努力学习11 小时前
TCP 协议的相关特性
网络·网络协议·tcp/ip
qq_4017004112 小时前
100 个 IoT 小项目,给 ESP32 入门补上实操
前端·网络·stm32
2401_8734794012 小时前
源IP告警太多用什么工具分层?ASN与风险评分操作指南
网络·网络协议·tcp/ip