PIM-DM的局限
Ø PIM-DM适用于组播成员分布较为密集的园区网络。在组播成员分布相对较为稀疏的大规模网络中(Internet),组播流量的周期性扩散/剪枝将给网络带来极大的负担。
Ø 对于PIM-DM的局限性,PIM-SM可以提供相对更加有效的解决方案。
PIM SM基本原理
相对于PIM-DM的“推(Push)模式”,PIM-SM使用“拉(Pull)模式”转发组播报文。PIM-SM假设网络中的组成员分布非常稀疏,几乎所有网段均不存在组成员,直到某网段出现组成员时,才构建组播路由,向该网段转发组播数据。一般应用于组播组成员规模相对较大、相对稀疏的网络。
基于这一种稀疏的网络模型,它的实现方法是:
Ø 在网络中维护一台重要的PIM路由器:汇聚点RP(Rendezvous Point),可以为随时出现的组成员或组播源服务。网络中所有PIM路由器都知道RP的位置。
Ø 当网络中出现组成员(用户主机通过IGMP加入某组播组G)时,最后一跳路由器向RP发送Join报文,逐跳创建(*,G)表项,生成一棵以RP为根的RPT。
Ø 当网络中出现活跃的组播源(信源向某组播组G发送第一个组播数据)时,第一跳路由器将组播数据封装在Register报文中单播发往RP,在RP上创建(S,G)表项,注册源信息。
PIM-SM的关键机制包括邻居建立、DR竞选、RP发现、RPT构建、组播源注册、SPT切换、Assert;同时也可通过配置BSR(Bootstrap Router)管理域来实现单个PIM-SM域的精细化管理。PIM-SM中PIM邻居建立过程以及Assert机制与PIM-DM相同。
汇聚点RP(Rendezvous Point)
RP的作用:
Ø RP是PIM-SM域中的核心路由器,担当RPT树根节点。
Ø 共享树里所有组播流量都要经过RP转发给接收者。
RP可以静态指定也可动态选举:
Ø 静态指定是指由管理员在每台PIM-SM路由器上进行配置,使得每台路由器获知RP的位置。
Ø 动态选举是指通过专用协议在若干台C-RP(Candidate-RP)中选举产生。管理员需要开启选举协议并配置若干台PIM-SM路由器成为C-RP。
RPT及其建立过程
RPT的建立过程:
1) 主机加入某个组播组时,发送IGMP成员通告。
2) 最后一跳路由器向RP发送(*,G)Join消息。
3) (,G)Join消息到达RP的过程中,沿途各路由器都会生成相应的(,G)组播转发条目。
RPT实现了组播数据按需转发的目的,减少了数据泛洪对网络带宽的占用。
SPT及其建立过程
在PIM-SM网络中,任何一个新出现的组播源都必须首先在RP处“注册”,继而才能将组播报文传输到组成员。具体过程如下:
1) 组播源向组播组发送第一个组播报文。
2) 源端DR将该组播报文封装成Register报文并以单播方式发送给相应的RP。
3) RP收到注册消息后,一方面从Register消息中提取出组播报文,并将该组播报文沿RPT分支转发给接收者。
4) 另一方面,RP向源端DR发送(S,G)Join消息,沿途路由器上都会生成相应(S,G)表项。从而建立了一颗由组播源至RP的SPT树。
5) SPT树建立后,组播源发出的组播报文沿该SPT转发至RP。
6) RP沿SPT收到该组播报文后,向源端DR单播发送Register-stop消息。
Switchover机制
PIM-SM通过指定一个利用带宽的SPT阈值可以实现RPT到SPT的切换。
用户端DR周期性检测组播报文的转发速率,一旦发现从RP发往组播组G的报文速率超过阈值,则触发SPT切换:
Ø 用户端DR逐跳向源端DR发送(S,G)Join报文并创建(S,G)表项,建立源端DR到用户端DR的SPT。
Ø SPT建立后,用户端DR会沿着RPT逐跳向RP发送剪枝报文,收到剪枝报文的路由器将(*,G)复制成相应的(S,G),并将相应的下游接口置为剪枝状态。剪枝结束后,RP不再沿RPT转发组播报文到组成员端。
Ø 如果SPT不经过RP,RP会继续向源端DR逐跳发送剪枝报文,删除(S,G)表项中相应的下游接口。剪枝结束后,源端DR不再沿“源端DR-RP”的SPT转发组播报文到RP。
在VRP中,缺省情况下连接接收者的路由器在探测到组播源之后(即接收到第一个数据报文),便立即加入最短路径树,即从RPT向SPT切换。