学习笔记——路由——IP组播-PIM-DM(密集模式)前言概述

7、PIM-DM(密集模式)

(1)前言

PIM-DM(PIM Dense Mode)使用"推(Push)模式"转发组播报文,一般应用于组播组成员规模相对较小、相对密集的网络。

在实现过程中,它会假设网络中的组成员分布非常稠密,每个网段都可能存在组成员。当有活跃的组播源出现时,PIM-DM会将组播源发来的组播报文扩散到整个网络的PIM路由器上,再裁剪掉不存在组成员的分支。

PIM-DM通过周期性的进行"扩散(Flooding)---剪枝(Prune)",来构建并维护一棵连接组播源和组成员的单向无环SPT(Source Specific Shortest Path Tree)。(在PIM-DM的早期是每3分钟一个周期重复该过程,但华为设备通过状态刷新进行了优化)

如果在下一次"扩散-剪枝"进行前,被裁剪掉的分支由于其叶子路由器上有新的组成员加入而希望提前恢复转发状态,也可通过嫁接(Graft)机制主动恢复其对组播报文的转发。(如果不使用嫁接,则主机需要等3分钟才能重新接收组播数据,因为组播路由器会以3分钟的周期进行扩散;但是因为状态刷新的存在,如果不进行嫁接,就无法进恢复数据的转发了)

PIM-DM的关键工作机制包括: 邻居发现、扩散、剪枝、嫁接、断言和状态刷新。其中,扩散、剪枝、嫁接是构建SPT的主要方法。

2)适用场景

密集模式(PIM-DM)适用于组播接受者比较密集的紧凑型网络。PIM-DM开始工作后,初始情况下会将形成的组播分发树覆盖全网(PIM-DM使用的是SPT),这样会造成并没有组播接收者的分支也收到了组播流量,此时不需要这些组播流量的网络设备,采用一种剪枝(Prune)的方式将自己从组播分发树上剪除。如果后来。

(上图中)全网的路由器都激活了PIM-DM,当组播源开始向239.1.1.56发送组播流量时,R1收到组播流量后,在完成RPF检查后,会将组播流量从除过上游的接口之外的所有存在PIM邻居的接口发出,R2、R3、R4的行为也和R1的行为一致。

但R3并不需要这些组播流量,所以会发起一个剪枝过程,将自己从SPT上剪除。但如果R3下联的网络中出现了239.1.1.56的组播接受者,R3会立即发起嫁接(Graft)动作,将自己所在的分支嫁接到SPT上,从而获取对应的组播流量。

3)PIM-DM特点

PIM-DM模式: 适用于接收者相对较多、分布相对密集,小型网络的情况,SPT树越多,很多网段都有接受者,就认为接收者越多,也就越密集。

主要用在组成员较少且相对密集的组播网络中,该模式建立组播分发树的基本思路是"扩散-剪枝",即将组播流量全网扩散,然后剪枝没有组成员的路径,最终形成组播分发树。

PIM-DM的局限性

中大型组播网络中由于网络较大,如果依然使用PIM-DM会遇到组多问题:

1、使用"扩散-剪枝"方式需要全网扩散组播报文,对于网络有一定冲击。

2、所有组播路由器均需要维护组播路由表,即使该组播路由器无需转发组播数据。

3、对于组成员较为稀疏的组播网络,使用"扩散-剪枝"形成组播分发树的效率不高。

4、每个路由器都要为一个源维护一个SPT,增大路由器负担。


整个华为数通学习笔记系列中,本人是以网络视频与网络文章的方式自学的,并按自己理解的方式总结了学习笔记,某些笔记段落中可能有部分文字或图片与网络中有雷同,并非抄袭。完处于学习态度,觉得这段文字更通俗易懂,融入了自己的学习笔记中。如有相关文字涉及到某个人的版权利益,可以直接联系我,我会把相关文字删除。【VX:czlingyun 暗号:CSDN】

相关推荐
xiaoxiaoxiaolll6 分钟前
《Light: Science & Applications》基于拓扑能量转移网络的UCNPs,实现65nm超分辨成像与10倍功耗降低
学习
可可苏饼干15 分钟前
Ruo-Yi 前后端分离
运维·学习
许长安22 分钟前
C++ 多态详解:从静态多态到动态多态
开发语言·c++·经验分享·笔记
雾蓝回针28 分钟前
[全网首发]解决Parallels Desktop运行“第五人格“时 使用涂鸦/快捷发言会导致视角偏移的问题
笔记·macos
狐571 小时前
2025-12-04-牛客刷题笔记-25_12-4-质数统计
笔记·算法
齐生11 小时前
iOS 知识点 - 一篇文章弄清「输入事件系统」(【事件传递机制、响应链机制】以及相关知识点)
笔记·面试
Slaughter信仰1 小时前
图解大模型_生成式AI原理与实战学习笔记(前三章综合问答)
人工智能·笔记·学习
潮际好麦2 小时前
AI 工具推荐:AI绘图、AI助力学习
人工智能·学习
koo3642 小时前
pytorch深度学习笔记5
pytorch·笔记·深度学习
wdfk_prog2 小时前
[Linux]学习笔记系列 -- [fs]binfmt_script
linux·笔记·学习