PIM-SM(ASM模型)
一般应用于组播组成员规模相对较大、相对稀疏的网。
邻居发现
PIM-DM设备之间通过互发hello,交换PIM的参数,来确定邻居关系。PIM随后会根据邻居关系向外发报文,例如:发扩散消息。
DR竞选
DR是做什么的?
在源端和成员端都有DR,因为在源端或者是组成员端的网段里有可能有多个PIM路由设备,但在一个网段中只需要一个负责即可。
选举过程是怎样的?
上图:DR的选举过程,可以看到源端的网段选举出一个DR,负责代表这个网段向RP发送注册消息。Receiver端选出了一个DR,负责代表这个网段向RP发送join消息。
RP (汇聚点)
什么是RP
RP是一个汇聚点,用于处理源端DR注册信息及组成员加入请求。
- 静态RP:手动配置,固定死到某一台设备上。
- 动态RP:选择多台适合做RP的设备配置配置C-RP(Candidate-RP,候选RP),这些设备会自动进行选举,当前由谁来做RP。当当前的RP down掉后,其它的候选RP重新选举出一台RP来。
精选过程是怎样的?
上图:所有的候选RP把信息发给BSR,BSR在把收集到的信息集合发回给C-RP, C-RP根据信息集合里的信息计算出自己是否是当前RP。
RPT
什么是RPT
RPT就是以汇聚点为根,以有组成员关系(和成员直连)的PIM路由器为叶子的树,如下图所示。
RPT的建立过程
如上图,组成员端的DR向RP发送join报文,在通向RP的路径上逐跳创建(*,G)表项,生成一棵以RP为根的RPT。
RPF检查:join报文发送的路径上要做RPF检查,主要查找单播路由,只有有单播路由的接口才能通过RPF检查,join报文只能通过通过RPF检查的接口发出。
组播源注册
在PIM-SM网络中,任何一个新出现的组播源都必须首先在RP处“注册”,继而才能将组播报文传输到组成员。具体过程如下:
- 组播源将组播报文发给源端DR。
- 源端DR接收到组播报文后,将其封装在Register报文中,发送给RP。
- RP接收到Register报文,将其解封装,建立(S,G)表项,并将组播数据沿RPT发送到达组成员。
SPT切换
如上图:本来组播流量都是经过RP的,但是为了减少RP的负担,通常在建立组播的路径后,切换为两个DR之间直接通信,不在经过RP了。Receiver端的DR通过向Source端DR发送join来建立新的SPT,之后组播的流量都走新的SPT了。
assert (断言)
是为了解决,一个网段里有多个PIM-DM设备,如果都接到组播消息,由谁来向接受者转发这个组播消息呢? 这些PIM设备之间互发断言消息来决定由谁来转发组播流量给HostA。
BSR管理域
为了降低管理域的压力,可以划分多个管理域,每个域里有自己的BSR和RP。
有不清楚的地方可留言讨论。