学习笔记——路由——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】

相关推荐
xiaoyalian2 小时前
R语言绘图过程中遇到图例的图块中出现字符“a“的解决方法
笔记·r语言·数据可视化
Estar.Lee3 小时前
查手机号归属地免费API接口教程
android·网络·后端·网络协议·tcp/ip·oneapi
傻啦嘿哟4 小时前
代理IP在后端开发中的应用与后端工程师的角色
网络·网络协议·tcp/ip
Red Red4 小时前
网安基础知识|IDS入侵检测系统|IPS入侵防御系统|堡垒机|VPN|EDR|CC防御|云安全-VDC/VPC|安全服务
网络·笔记·学习·安全·web安全
贰十六5 小时前
笔记:Centos Nginx Jdk Mysql OpenOffce KkFile Minio安装部署
笔记·nginx·centos
知兀5 小时前
Java的方法、基本和引用数据类型
java·笔记·黑马程序员
Natural_yz6 小时前
大数据学习17之Spark-Core
大数据·学习·spark
qq_172805596 小时前
RUST学习教程-安装教程
开发语言·学习·rust·安装
一只小小汤圆6 小时前
opencascade源码学习之BRepOffsetAPI包 -BRepOffsetAPI_DraftAngle
c++·学习·opencascade
醉陌离6 小时前
渗透测试笔记——shodan(4)
笔记