我的思想随着这些闪耀的绿叶而闪耀;我的心灵因了这日光的抚触而歌唱;

PIM-DM 基本工作原理

华为认证 致远 134℃ 0评论

PIM-DM ( PIM 密集模式〉使用”推” ( Push ) 模式转发组播报文, 一般应用于组播组成员规模相对较小、相对密集的网络。在实现过程中, 它会假设网络中的组成员分布非常稠密,每个网段都可能存在组成员。当有活跃的组播源出现时, PIM-DM 会将组播源发来的组播报文扩散到整个网络的PIM 路由器上,再裁剪掉不存在组播报文转发的分支。

PTM-DM 就这样通过周期性地进行”扩散(Flooding) 一剪枝( Prune )” 过程来构建并维护一棵连接组播源和组成员的单向无环SPT ( Source Specific Shortest Path Tree,源指定最短路径树) 。如果在下一次”扩散一剪枝”进行前, 被裁剪掉的分支由于其叶子路由器上有新的组成员加入而希望提前恢复转发状态,也可通过嫁接( Graft ) 机制主动恢复其对组播报文的转发。

综上所述, PIM-DM 的关键工作机制包括邻居发现、扩散、剪枝、嫁接、断言和状态刷新。其中,扩散、剪校、嫁接是构建SPT 的主要方法。

树(Tree ) 和图(Graph ) 是计算机科学领域中两个常用的概念,前者具有层次化结构, 而后者没有。从组播的角度来看,网络可以抽象为Tree ,也称为组播树( MulticastTree );从单播的角度来看,网络可以抽象为Graph。组播树又可以分为两大类, 一类称为Source-Based Tree , 另一类称为Group-Shared Tree 。

一棵Source-Based Tree 是由组播源和组成员共同决定的。例如,对于一个特定的组播组,如果组成员的分布己经确定了,则组播源的位置不同将会导致形成不同的Source-Based Tree 。同样,对于一个特定的组播组,如果组播源的位置己经确定了,则组成员的不同分布也将会导致产生不同的Source-Based Tree 。一棵Group-Shared Tree 仅仅是由组成员的分布完全决定的,而与组播源的位置无关。

PIM-DM (Protocol Independent Multicast Dense Mode) 和PIM-SM (Protocol IndependentMulticast Sparse Mode ) 是两个常见的组播路由协议,前者基于Source-Based Tree ,后者基于Group-Shared Tree 。

PIM-DM 主要采用扩散、剪枝的方式来转发组播数据流。对于组播组成员稀少的网络, PIM-DM 会产生大量的剪枝报文,而如果网络规模较大,则扩散、剪枝的周期就会比较长,因此PIM-DM 一般适合于规模较小、组播组成员比较密集的网络。

PIM-DM 首先假设网络中的每个子网都存在至少一个组成员,井将组播数据包从组播源扩散到网络中的所有路由器,然后,对于实际上没有组成员的分支进行剪枝操作。所谓剪枝(Prune) ,就是路由器向上游节点发送剪枝消息,通知上游节点不用再转发组播数据到该分支。上游节点收到剪枝消息后, 会将相应的接口从其组播转发表项( S , G)中删除,只保留包含组成员的分支, 这样便可减少网络资源的消耗。另外,各个被剪枝的节点同时还提供了超时机制, 当剪枝超时后(默认为210s) 将重新开始扩散、剪枝过程。被裁剪的分支如果临时有组描数据转发需求, 也可以使用嫁接( Graft) 机制主动请求恢复组播数据的转发。

周期性的扩散-剪枝行为是PIM-DM 的一个重要特征,通过这样的行为, PIM-DM 可以构建并动态地维护一棵从组播源到组成员的单向无环的SPT ( Shortest Path Tree) 。SPT是以组播源为根、组播组成员为枝叶的从组播源到组成员的一棵最短路径树,此树也就是组播数据的转发路径。组播数据的转发中会出现上游接口和下游接口这两个概念,路由器收到组播数据的接口称为上游接口, 转发组播数据的接口称为下游接口。在PIM-DM 网络中,路由器需要周期性地发送Hello 消息来发现邻居并维护PIM 邻居关系。此外, Hello 消息还有一个重要的作用: 路由器会通过比较Hello 消息中携带的优先级和IP地址,为多路由器网段选举出DR (Designated Router ) ,并以它作为IGMPv 1 中的查询器。

转载请注明:致远博客 » PIM-DM 基本工作原理

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址