一、PIM-SM【ASM】概述
1、PIM-DM采用“扩散-剪枝”模式的原因是:
1.1、发送方(信源)较少,而接收方较多;
1.2、发送方在发送组播报文之前并不知道接收方的具体位置;
2、若在一个接收方较少的网络环境中使用“扩散-剪枝”的方式,显然效率较低,同时浪费过多的链路带宽;
3、PIM-SM【ASM】需要在整个网络环境中选择一台RP(集结点|汇聚点)路由器;
4、接收方主动向RP报告其自身的位置,而RP与接收方之间创建一条RPT(RP-Tree)
5、信源不能直接向接收方发送组播报文,而是需要现将组播报文传送至RP,由RP将组播报文传送至接收方;
6、PIM-SM【ASM】之所以称之为“自动的稀疏模式”,是因为在信源将组播报文传送给RP,再由RP传送给接收方时,容易产生次优路径,因此在通过RP向接收方传送完第一个组播报文后,PIM-SM[【ASM】将能够自动的切换路径为SPT;
7、PIM-SM与DM一样,都直接封装在IP包头的协议号字段中,同样发送至224.0.0.13,组播地址,使用的协议号为103;
二、PIM-SM包含的报文类型
PIM-SM包含的报文类型为:
1、hello报文;
2、注册报文——register
3、注册停止报文——register stop
4、加入/剪枝报文——join/prune
5、断言消息——assert
6、自举报文——BSR
7、候选RP报文
三、PIM-SM【ASM】的工作原理
1、接收方首先通过IGMP消息向网关路由器发送组播请求消息;
2、接收到该IGMP消息的叶子路由器将主动向RP发送join消息,请求加入进某个组播组;
3、RP收到该join消息后,在RP与叶子路由器之间创建RPT(RP-Tree),从叶子路由器到RP之间的所有路由器均生成(*,G)表项;
4、距离信源最近的路由器(源端DR)将主动向RP发送register消息进行注册,该注册消息以RP的地址为目的地址,单播发送;
5、RP收到该register消息后,利用RPF机制,反向向源端DR建立SPT(最短路径树)
6、信源将组播报文封装在register消息中,以单播的形式传递给RP;
7、RP接收到该单播register消息后,将注册消息解封装,再将里面包含的组播数据沿着RPT转发给叶子路由器,完成第一个组播报文的转发;
8、若此时RP没有任何动作的话,则源端DR继续将组播报文封装在register消息中,以单播的形式传递给RP;同时源端DR还会将组播报文单独再传递给RP一份,此时RP将会接收到重复的组播报文;
9、为防止上述情况发生,因此RP在传递完第一个组播报文后,立即向源端DR发送register-stop消息,令源端DR停止发送单播的register消息,只传递组播消息即可;
10、在第一个组播报文沿着RPT路径转发完成后,接收方DR会根据(S,G)表项查找信源所在的位置,进而发起SPT加入请求;
11、接收端DR沿着SPT路径发送join消息,沿途的所有路由器均按照SPT的路径反向向源端DR发送SPT的join消息;
12、之后信源沿着SPT路径转发组播报文,接收端DR向RP发送prune消息,剪枝掉去往RP的路径;
13、RP接收到剪枝消息后,清空自身的外出接口,从而完成从RPT到SPT的切换过程;
14、在PIM-SM【ASM】完成组播分发树的构建后,接收端DR会周期性的发送join/prune消息(60s/次),以便于一直抑制住RP,保持最短路径树的转发状态;
15、若210s内,信源都没有再向该组播组发送组播报文,则该SPT树被删除,网络恢复至RTP;
四、RP简介
1、工作在PIM-SM环境下的组播路由器必须要选择出一台RP(集结点|汇聚点)路由器,用来接收来自接收方的报告和来自信源的注册请求消息,网络中的所有PIM路由器都必须要知道RP的地址
2、得到RP的方式有两种:
2.1、静态获取:通过候选RP自动选举
2.2、动态获取RP的规则如下:
动态获取RP需要涉及两个角色:C-BSR(候选-自举路由器)、C-RP(候选RP)
2.2.1、首先需要在整个网络环境中的多台C-BSR之间选择出一台真正的BSR【选举的规则:先比较各个C-BSR的优先级,优先级最大的称为BSR;若所有的C-BSR的优先级完全一致,则IP地址最大的称为BSR】
2.2.2、当选举出BSR后,管理员再在整个网络中选举出几个C-RP(候选RP),BSR获取所有C-RP的信息,形成RP-Set信息,通过PIM报文将所有的RP-Set信息传递给全网的所有PIM路由器;
2.2.3、PIM路由器收到RP-Set消息后,根据RP选举规则选举出合适的RP;