PIM-SM

前言:PIM(Protocol
Independent Multicast)称为协议无关组播,表示组播依靠的单播路由可以由静态路由、RIP、OSPF、IS-IS、BGP等提供,组播路由和单播路由协议无关,只要单播路由协议能产生所需路由表项,如:RPF检查即可。

PIM有如下特点:

1. 
PIM协议的本质是:三层协议,协议号为103

2. 
PIM路由器组播地址为:224.0.0.13

3. 
PIM协议分为:

A.PIM-DM(协议无关组播-密集模式)

B.PIM-SM(协议无关组播-稀疏模式)

今天,我们主要来了解一下PIM协议的SM模式,即Sparse Mode,稀疏模式:

PIM-SM(Protocol Independent Multicast Sparse Mode)称为协议独立组播-稀疏模式,主要用于组成员分布相对分散、范围较广、大规模的网络。

PIM-SM模型实现组播转发的核心任务是构造并维护两棵树:共享树RPT和源树SPT。

共享树选择PIM域中某一路由器作为公用树根,称为汇聚点RP(Rendezvous Point),叶节点是最后一跳路由器。

源树选择第一跳路由器作为某个组播组的树根,叶节点是RP。

PIM-SM不依赖于特定的单播路由协议,而是使用现存的单播路由表进行RPF检查。

RPF检查根据树的种类进行:

 使用共享树进行数据接收转发时,使用RP地址作为检测地址。

 使用源树进行数据接收转发时,使用组播源地址作为检测地址。

组播数据沿着源树转发到RP,然后沿共享树向接收者转发。

共享树的形成:接收者发送IGMP的join,由DR(最后一跳路由器)创建(*, G)项并向RP 方向发送PIM
Join消息。

源树的形成:组播源发送组播流,通过DR(第一跳路由器)向RP方向转发register报文,RP收到register报文后,向源发送PIM(S,G)join消息。

PIM-SM协议机制:

1.     
邻居发现:

PIM-SM使用与PIM-DM类似的邻居发现机制,PIM路由器上每个参与PIM进程的接口都会对外发出Hello报文,Hello报文的目标组播地址为224.0.0.13,源地址为出接口IP地址,TTL值为1,在PIM协议中,Hello报文起到发现PIM邻居,协调各项PIM协议报文参数,维护邻居关系的作用。

同一网段中的PIM路由器都必须接收目的地址为224.0.0.13的组播报文,这样直接相连的PIM路由器之间通过交互Hello报文,就可以知道自己的邻居信息,建立邻居关系,只有在PIM邻居建立后,PIM路由器才能接收其他报文,从而创建组播路由表。

2.     
DR选举

借助Hello报文还可以为共享网络(如Ethernet)选举DR(Designated

Router)。

无论是与组播源相连的网络,还是与接收者相连的网络,都需要选举DR。接收者侧的DR负责向RP发送加入报文;组播源侧的DR负责向RP发送注册报文。

DR的选举过程如下:

(1)共享网络上的各路由器相互之间发送Hello报文(携带有竞选DR优先级的参数),拥有最高优先级的路由器将成为DR;

(2)如果优先级相同,或者网络中至少有一台路由器不支持在Hello报文中携带竞选DR优先级的参数,则根据各路由器的IP地址大小来竞选DR,IP地址最大的路由器将成为DR。

当DR出现故障时,其余路由器在超时后仍没有收到来自DR的Hello报文,则会触发新的DR选举过程。

3.     
RP发现

在PIM-SM组播网络里,担当共享树的树根的节点被称为RP,共享树里所有组播流都通过RP转发到接收者。

RP是PIM-SM域中的核心设备。在结构简单的小型网络中,组播信息量少,整个网络仅依靠一个RP进行组播信息的转发即可,此时可以在PIM-SM域中的各路由器上静态指定RP的位置;但是在更多的情况下,PIM-SM域的规模都很大,通过RP转发的组播信息量巨大。为了缓解RP的负担并优化RPT的拓扑结构,可以在PIM-SM域中配置多个C-RP(Candidate-RP,候选RP),通过自举机制来动态选举RP,使不同的RP服务于不同的组播组,动态选举RP可以利用Auto-RP、BootStrap
技术来实现,

4.     
构建RPT

在PIM-SM模式里加入了共享树的概念。

RPT的构建过程如下:

(1)当接收者加入一个组播组G时,先通过IGMP报文通知与其直连的DR;

(2)DR掌握了组播组G的接收者的信息后,向该组所对应的RP方向逐跳发送加入报文;

(3)从DR到RP所经过的路由器就形成了RPT的分支,这些路由器都在其转发表中生成了(,G)表项,这里的“”表示来自任意组播源。RPT以RP为根,以DR为叶子。

当发往组播组G的组播数据流经RP时,数据就会沿着已建立好的RPT到达DR,进而到达接收者。

5.     
组播源注册

组播源注册的目的是向RP通知组播源的存在。

组播源向RP注册的过程如下:

(1)当组播源S向组播组G发送了一个组播报文时,与组播源直连的DR在收到该报文后,就将其封装成注册报文,并通过单播方式发送给相应的RP;

(2)当RP收到该报文后,一方面解封装注册报文并将封装在其中的组播报文沿着RPT转发给接收者,另一方面向组播源逐跳发送(S,G)加入报文。这样,从RP到组播源所经过的路由器就形成了SPT的分支,这些路由器都在其转发表中生成了(S,G)表项。SPT以组播源为根,以RP为叶子。

(3)组播源发出的组播数据沿着已建立好的SPT到达RP,然后由RP把组播数据沿着RPT向接收者进行转发。当RP收到沿着SPT转发来的组播数据后,通过单播方式向与组播源直连的DR发送注册停止报文(Register-Stop Message),组播源注册过程结束。

6.     
RPT向SPT切换

当接收者侧的DR发现从RP发往组播组G的组播数据速率超过了一定的阈值时,将由其发起从RPT向SPT的切换,过程如下:

(1)首先,接收者侧DR向组播源S逐跳发送(S,G)加入报文,并最终送达组播源侧DR,沿途经过的所有路由器在其转发表中都生成了(S,G)表项,从而建立了SPT分支;

(2)随后,接收者侧DR向RP逐跳发送包含RP位的剪枝报文,RP收到该报文后会向组播源方向继续发送剪枝报文(假设此时只有这一个接收者),从而最终实现从RPT向SPT的切换。

从RPT切换到SPT后,组播数据将直接从组播源发送到接收者。通过由RPT向SPT的切换,PIM-SM能够以比PIM-DM更经济的方式建立SPT。

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值