目录:
基本原理
邻居建立,DR选举
RP发现
RPT树建立
组播源注册
SPT切换
断言
BSR

1、基本原理

在ASM(Any-Source Multicast)模型中,PIM-SM使用“拉(Pull)模式”转发组播报文,一般应用于组播组成员规模相对较大、相对稀疏的网络。基于这一种稀疏的网络模型,它的实现方法是:
在网络中维护一台重要的PIM路由器:汇聚点RP(Rendezvous Point),可以为随时出现的组成员或组播源服务。网络中所有PIM路由器都知道RP的位置。
当网络中出现组成员(用户主机通过IGMP加入某组播组G)时,最后一跳路由器向RP发送Join报文,逐跳创建(*,G)表项,生成一棵以RP为根的RPT。
当网络中出现活跃的组播源(组播源向某组播组G发送第一个组播数据)时,第一跳路由器将组播数据封装在Register报文中单播发往RP,在RP上创建(S,G)表项,注册源信息。
在ASM模型中,PIM-SM的关键机制包括邻居发现、DR竞选、RP发现、RPT构建、组播源注册、SPT切换、断言;同时也可通过配置BSR(Bootstrap Router)管理域来实现单个PIM-SM域的精细化管理。

2、邻居建立,DR选举

PIM路由器上每个使能了PIM协议的接口都会对外发送Hello报文。封装Hello报文的组播报文的目的地址是224.0.0.13(表示同一网段中所有PIM路由器)、源地址为接口的IP地址、TTL数值为1。
Hello报文的作用:发现PIM邻居、协调各项PIM协议报文参数、维持邻居关系。

1.发现PIM邻居:同一网段中的PIM路由器都必须接收目的地址为224.0.0.13的组播报文。这样直接相连的PIM路由器之间通过交互Hello报文以后,就可以彼此知道自己的邻居信息,建立邻居关系。
只有邻居关系建立成功后,PIM路由器才能接收其他PIM协议报文,从而创建组播路由表项。
协调各项PIM协议报文参数
Hello报文中携带多项PIM协议报文参数,主要用于PIM邻居之间PIM协议报文的控制。具体如下:DR_Priority:表示各路由器接口竞选DR的优先级,优先级越高越容易获胜。Holdtime:表示保持邻居为可达状态的超时时间。如果在超时时间内没有收到PIM邻居发送的Hello报文,路由器则认为邻居不可达。LAN_Delay:表示共享网段内传输Prune报文的延迟时间。Neighbor-Tracking:表示邻居跟踪功能。Override-Interval:表示Hello报文中携带的否决剪枝的时间间隔。2.维持邻居关系:PIM路由器之间周期性地发送Hello报文。如果Holdtime超时还没有收到该PIM邻居发出的新的Hello报文,PIM路由器就认为该邻居不可达,将其从邻居列表中清除。
PIM邻居的变化将导致网络中组播拓扑的变化。如果组播分发树上的某上游邻居或下游邻居不可达,将导致组播路由重新收敛,组播分发树迁移。3.DR选举:在组播源或组成员所在的网段,通常同时连接着多台PIM路由器。这些PIM路由器之间通过交互Hello报文成为PIM邻居,Hello报文中携带DR优先级和该网段接口地址。PIM路由器将自身条件与对方报文中携带的信息进行比较,选举出DR来负责源端或组成员端组播报文的收发。竞选规则如下:
DR优先级较高者获胜(网段中所有PIM路由器都支持DR优先级)。
如果DR优先级相同或该网段存在至少一台PIM路由器不支持在Hello报文中携带DR优先级,则IP地址较大者获胜。
如果当前DR出现故障,将导致PIM邻居关系超时,其他PIM邻居之间会触发新一轮的DR竞选。
DR主要作用如下:
在连接组播源的共享网段,由DR负责向RP发送Register注册报文。与组播源相连的DR称为源端DR。
在连接组成员的共享网段,由DR负责向RP发送Join加入报文。与组成员相连的DR称为组成员端DR。

3、RP发现

汇聚点RP为网络中一台重要的PIM路由器,用于处理源端DR注册信息及组成员加入请求,网络中的所有PIM路由器都必须知道RP的地址,类似于一个供求信息的汇聚中心。
一个RP可以同时为多个组播组服务,但一个组播组只能对应一个RP。目前可以通过以下方式配置RP:
静态RP:在网络中的所有PIM路由器上配置相同的RP地址,静态指定RP的位置。
动态RP:在PIM域内选择几台PIM路由器,配置C-RP(Candidate-RP,候选RP)来动态竞选出RP。同时,还需要通过配置C-BSR(Candidate-BSR,候选BSR)选举出BSR,来收集C-RP的通告信息,向PIM-SM域内的所有PIM路由器发布。
C-BSR在竞选的时候,开始时每个C-BSR都认为自己是BSR,向全网发送Bootstrap报文。Bootstrap报文中携带C-BSR地址、C-BSR的优先级。每一台PIM路由器都收到所有C-BSR发出的Bootstrap报文,通过比较这些C-BSR信息,竞选产生BSR。竞选规则如下:
优先级较高者获胜(优先级数值越大优先级越高)。
如果优先级相同,IP地址较大者获胜。
C-RP的竞选过程如图4-8所示。
图4-8 动态RP竞选机制示意图

    C-RP向BSR发送Advertisement报文,报文中携带C-RP地址、服务的组范围和C-RP优先级。BSR将这些信息汇总为RP-Set,封装在Bootstrap报文中,发布给全网的每一台PIM-SM路由器。各PIM路由器根据RP-Set,使用相同的规则进行计算和比较,从多个针对特定组的C-RP中竞选出该组RP。规则如下:与用户加入的组地址匹配的C-RP服务的组范围掩码最长者获胜。如果以上比较结果相同,则C-RP优先级较高者获胜(优先级数值越小优先级越高)。如果以上比较结果都相同,则执行Hash函数,计算结果较大者获胜。如果以上比较结果都相同,则C-RP的IP地址较大者获胜。由于所有PIM路由器使用相同的RP-Set和竞选规则,所以得到的组播组与RP之间的对应关系也相同。PIM路由器将“组播组—RP”对应关系保存下来,指导后续的组播操作。

4、RPT构建

PIM-SM RPT是一棵以RP为根,以存在组成员关系的PIM路由器为叶子的组播分发树。如图4-9所示,当网络中出现组成员(用户主机通过IGMP加入某组播组G)时,组成员端DR向RP发送Join报文,在通向RP的路径上逐跳创建(*,G)表项,生成一棵以RP为根的RPT。

在RPT构建过程中,PIM路由器在发送Join报文时,会进行RPF检查:查找到达RP的单播路由,单播路由的出接口为上游接口,下一跳为RPF邻居。Join报文从组成员端DR开始逐跳发送,直至到RP。
组播源注册

在PIM-SM网络中,任何一个新出现的组播源都必须首先在RP处“注册”,继而才能将组播报文传输到组成员。具体过程如下:

组播源将组播报文发给源端DR。
源端DR接收到组播报文后,将其封装在Register报文中,发送给RP。
RP接收到Register报文,将其解封装,建立(S,G)表项,并将组播数据沿RPT发送到达组成员。

5、SPT切换

在PIM-SM网络中,一个组播组只对应一个RP,只构建一棵RPT。在未进行SPT切换的情况下,所有发往该组的组播报文都必须先封装在注册报文中发往RP,RP解封装后,再沿RPT分发。RP是所有组播报文必经的中转站,当组播报文速率逐渐变大时,对RP形成巨大的负担。为了解决此问题,PIM-SM允许RP或组成员端DR通过触发SPT切换来减轻RP的负担。

RP触发SPT切换
RP收到源端DR的注册报文后,将封装在Register报文中的组播报文沿RPT转发给组成员,同时RP会向源端DR逐跳发送Join报文。发送过程中在PIM路由器创建(S,G)表项,从而建立了RP到源的SPT。
SPT树建立成功后,源端DR直接将组播报文转发到RP,使源端DR和RP免除了频繁的封装与解封装。
组成员端DR触发SPT切换
组成员端DR触发SPT切换示意图

组成员端DR周期性检测组播报文的转发速率,一旦发现(S,G)报文的转发速率超过阈值,则触发SPT切换:
组成员端DR向源端DR逐跳发送Join报文并创建(S,G)表项,建立源端DR到组成员DR的SPT。
SPT建立后,组成员端DR会沿着RPT逐跳向RP发送剪枝报文,删除(*,G)表项中相应的下游接口。剪枝结束后,RP不再沿RPT转发组播报文到组成员端。
如果SPT不经过RP,RP会继续向源端DR逐跳发送剪枝报文,删除(S,G)表项中相应的下游接口。剪枝结束后,源端DR不再沿“源端DR-RP”的SPT转发组播报文到RP。

6、断言

当一个网段内有多个相连的PIM路由器RPF检查通过向该网段转发组播报文时,则需要通过断言机制来保证只有一个PIM路由器向该网段转发组播报文。PIM路由器在接收到邻居路由器发送的相同组播报文后,会以组播的方式向本网段的所有PIM路由器发送Assert报文,其中目的地址为永久组地址224.0.0.13。其它PIM路由器在接收到Assert报文后,将自身参数与对方报文中携带的参数做比较,进行Assert竞选。竞选规则如下:
单播路由协议优先级较高者获胜。
如果优先级相同,则到组播源的开销较小者获胜。
如果以上都相同,则下游接口IP地址最大者获胜。
根据Assert竞选结果,路由器将执行不同的操作:
获胜一方的下游接口称为Assert Winner,将负责后续对该网段组播报文的转发。
落败一方的下游接口称为Assert Loser,后续不会对该网段转发组播报文,PIM路由器也会将其从(S,G)表项下游接口列表中删除。
Assert竞选结束后,该网段上只存在一个下游接口,只传输一份组播报文。所有Assert Loser可以周期性地恢复组播报文转发,从而引发周期性的Assert竞选。
RouterB和RouterC均通过了RPF检查,创建了(S,G)表项。并且两者的下游接口连接在同一网段,RouterB和RouterC都向该网段发送组播报文。

断言过程如下:
RouterB和RouterC从各自下游接口接收到对方发来的组播报文,RPF检查都失败,报文被丢弃。同时,RouterB和RouterC分别向该网段发送Assert报文。
RouterB将自身的路由信息与RouterC发来的Assert报文中携带的路由信息进行比较,由于自身到组播源的开销较小而获胜。于是后续组播报文仍然向该网段转发,RouterC在接收到组播报文后仍然由于RPF检查失败而丢弃。
RouterC将自身的路由信息与RouterB发来的Assert报文中携带的路由信息进行比较,由于自身到组播源的开销较大而落败。于是禁止相应下游接口向该网段转发组播报文,将其从(S,G)表项的下游接口列表中删除。

7、BSR

为了实现网络管理精细化,可以选择将一个PIM-SM网络划分为多个BSR管理域和一个Global域。这样一方面可以有效地分担单一BSR的管理压力,另一方面可以使用私有组地址为特定区域的用户提供专门服务。
每个BSR管理域中维护一个BSR,为某一特定地址范围的组播组服务。Global域中维护一个BSR,为所有剩余的组播组服务。
下文将从地域空间、组地址范围、组播功能三个角度分析BSR管理域和Global域的关系。
地域空间
图BSR管理域_地域空间

如图所示,对于有相同组地址的不同管理域,各BSR管理域所包含的PIM路由器互不相同,同一PIM路由器不能同时属于多个BSR管理域。各BSR管理域在地域上相互独立,且相互隔离。BSR管理域是针对特定地址范围的组播组的管理区域,属于此范围的组播报文只能在本管理域内传播,无法通过BSR管理域边界。
Global域包含PIM-SM网络内的全部PIM路由器。不属于任意BSR管理域的组播报文,可以在整个PIM网络范围内传播。
组地址范围
图BSR管理域_地址范围

每个BSR管理域为特定地址范围的组播组提供服务,不同的BSR管理域服务的组播组范围可以重叠。该组播地址只在本BSR管理域内有效,相当于私有组地址。如图所示,BSR1域和BSR3域对应的组地址范围出现重叠。
不属于任何BSR管理域的组播组,一律属于Global域的服务范围。如图所示,Global域组地址范围是除G1、G2之外的G-G1-G2。
组播功能
如图所示,Global域和每个BSR管理域都包含针对自己域的C-RP和BSR设备,这些设备在行使相应功能时,仅在本域内有效。即BSR机制和RP竞选在各管理域之间是隔离的。
每个BSR管理域都有自己的边界,该管理域的组播信息(C-RP宣告报文、BSR自举报文等)不能跨越域传播。同时Global域的组播信息可以在整个Global域内传递,可以穿越任意BSR管理域。

PIM-SM原理(ASM)相关推荐

  1. PIM协议原理与配置

    PIM协议原理 PIM(Protocol Independent Multicast)协议无关组播,目前常用版本是PIMv2,PIM报文直接封装在IP报文中,协议号为103,PIMv2组播地址为224 ...

  2. PIM SM + IGMP Snooping 适用性测试(二) ttl 问题

    PIM SM + IGMP Snooping 适用性测试(二) ttl 问题 简介 上节的两个问答是基于理论分析与实验验证得出的,这节描述一下实验与实验中遇到的问题. 测试拓扑 图1 实验描述 做实验 ...

  3. PIM SM RP控制原理与实验

    RP控制: 概述: RP ( Rendezvous Point)是PIM SM网络中一台"核心"路由器,它的位置建议放在网络的核心,在组播数据转发过程中,它起到的是"汇聚 ...

  4. PIM SM模式下BSR与RP选举机制

    PIM SM模式下BSR与RP选举机制 BSR作用: BSR:bootstrap router 管理动态选举RP.选举出BSR,BSR然后向整个网络通告自己的存在.PIM-SM路由器侦听BSR洪泛的通 ...

  5. 无源互调分析仪PIM Analyzer原理及应用

    一 .无源互调原理概述 1.无源互调的定义 无源互调(Passive Intermodulation)是指两个或更多不同频率的信号混合输入到无源器件中,在其它频率产生幅度不同的杂散信号. 如果互调信号 ...

  6. oracle+pim+全称,CSS_Oracle ASM自动管理存储管理简介,1 什么是ASMASM全称为Automa - phpStudy...

    Oracle ASM自动管理存储管理简介 1 什么是ASM ASM全称为Automated Storage Management,即自动存储管理,它是自Oracle10g这个版本Oracle推出的新功 ...

  7. 2022-11-06 网工进阶(三十五)IP组播协议--PIM-SM工作原理(组播分发树的形成、ASM、SSM)

    PIM-DM的局限性 中大型组播网络中由于网络较大,如果依然使用PIM-DM会遇到诸多问题: 1 使用"扩散-剪枝"方式需要全网扩散组播报文,对于网络有一定冲击. 2 所有组播路由 ...

  8. PIM其它特性——IPv6、Anycast RP

    PIM IPv6 MLD 接收端到组播路由器之间使用MLD协议来支持IPv6组播 MLD版本 MLDv1同ICMPv2 MLDv2同ICMPv3 MLD报文 通过ICMPv6进行发包 ICMPv6-- ...

  9. ip组播,IGMP协议,PIM协议

    IP组播 是一台源ip主机和多台(一组)ip主机之间进行,中间的交换机和路由器根据接收者的需要,有选择地对数据进行复制和转发,主要应用有在线直播,网络电视,远程教育等. 组播方式的优势 无重复流量节省 ...

最新文章

  1. 双表查询java代码_什么是JDBC?Java数据库连接性简介
  2. MATLAB【十四】————遍历三层文件夹操作
  3. 在.net中运用HTMLParser解析网页的原理和方法
  4. WebSocket FlashSocket
  5. perl 处理文件路径的一些模块
  6. 大数据学习笔记59:初探Kafka消息系统
  7. 为什么计算机报名无法选择福建,2020年9月福建计算机考试如何报名
  8. go-micro 框架初探
  9. 2018计算机一级证件照,2018下半年软考报名照片要几寸的呢?是要白底照片吗?...
  10. PB实现URL模式及MIME模式的BASE64加解密
  11. 动态物体检测(python)
  12. EDA学习1.3之开关的封装
  13. Unity Recorder的使用讲解
  14. cad2010怎么隐藏标注尺寸,cad2007怎么隐藏标注尺寸
  15. Jetson Nano 从入门到实战(案例:Opencv配置、人脸检测、二维码检测)
  16. DM8168 DMM/TILER简介
  17. 物联网通信技术第9章 异构网络协同通信
  18. Android加载图片内存溢出问题解决方法
  19. (转)如何有效地管理好技术团队?
  20. 所谓框架到底是什么?

热门文章

  1. 美国国防部表示区块链可用于灾难救援
  2. 什么是微分,微分如何将弯的掰直
  3. html个人网页步骤,个人网页制作的流程和步骤
  4. 计算机专业硕士英文,硕士研究生专业(领域)中英文对照(2015版).doc
  5. ABP (.Net Core) 使用MySQL数据库
  6. word和excel测试软件,windows_OfficeHelper
  7. 【coolshell】开源中最好的Web开发的资源
  8. 腾讯技术工程 | 透过新硬件环境下的存储技术,看未来数据库系统崛起(附PPT)...
  9. 大数据学习01:大数据概述
  10. 《调色师手册:电影和视频调色专业技法(第2版)》——导读