多播静态路由引起的循环问题( 三 )


(2)多播开放最短路径优先 (MOSPF)
开放最短路径优先(OSPF)是一个单播路由协议,它将数据包在最小开销路径上进行路由传送,这里的开销是表示链路状态的一种量度 。除了路径中的跳数以外,其他能够影响路径开销的网络性能参数还有负载平衡信息、应用程序需要的QoS等 。
MOSPF是为单播路由多播使用设计的 。MOSPF依靠于OSPF作为单播路由协议,就象DVMRP也包含它自己的单播协议一样 。在一个OSPF/MOSPF网络中每个路由器都维持一个最新的全网络拓扑结构图 。这个“链路状态”信息被用来构建多播分布树 。
每个MOSPF路由器都通过IGMP协议周期性的收集多播组成员关系信息 。这些信息和这些链路状态信息被发送到其路由域中的所有其他路由器 。路由器将根据它们从临近路由器接收到的这些信息更新他们的内部连接状态信息 。由于每个路由器都清楚整个网络的拓扑结构,就能够独立的计算出一个最小开销扩展树,将多播发送源和多播组成员分别作为树的根和叶 。这个树就是用来将多播流从发送源发送到多播组成员的路径 。
(3)独立多播密集模式协议(PIM-DM)
独立多播协议(PIM)是一种标准的多播路由协议,并能够在Internet上提供可扩展的域间多播路由而不依靠于任何单播协议 。PIM有两种运行模式,一种是密集分布多播组模式,另一个是稀疏分布多播组模式,前者被称为独立多播密集模式协议(PIM-DM),后者被称为独立多播稀疏模式协议(PIM-SM) 。
PIM-DM有点类似于DVMRP,这两个协议都使用了反向路径多播机制来构建分布树 。它们之间的主要不同在于PIM完全不依靠于网络中的单播路由协议而DVMRP依靠于某个相关的单播路由协议机制,并且PIM-DM比DVMRP简单 。
PIM-DM协议和所有的密集模式路由协议一样也是数据驱动的 。但是既然PIM-DM不依靠于任何单播路由协议,路由器某个接收端口(就是返回到源的最短路径的端口)接收到的多播数据包被发送到所有下行接口直到不需要的分枝从树中被修剪掉 。DVMRP在树构建阶段能够使用单播协议提供的拓扑数据有选择性的向下行发送数据包,PIM-DM则更加倾向于简单性和独立性,甚至不惜增加数据包复制引起的额外开销 。
3.稀疏模式多播路由协议
当多播组在网络中集中分布或者网络提供足够大带宽的情况下,密集模式多播路由协议是一个有效的方法,当多播组成员在广泛区域内稀疏分布时,就需要另一种方法即稀疏模式多播路由协议将多播流量控制在连接到多播组成员的链路路径上,而不会“泄漏”到不相关的链路路径上,这样既保证了数据传输的安全,又能够有效的控制网络中的总流量和路由器的负载 。
(1)基于核心树的多播协议 (CBT)
和DVMRP和MOSPF为每个“发送源、目的组”对构建最短路径树不同的是,CBT协议只构建一个树给组中所有成员共享,这个树也就被称为共享树 。整个多播组的多播通信量都在这个共享树上进行收发而不论发送源有多少或者在什么位置 。这种共享树的使用能够极大的减少路由器中的多播状态信息 。
CBT共享树有一个核心路由器用来构建这个树 。要加入的路由器发送加入请求给这个核心路由器 。核心路由器接收到加入请求后,沿反路径返回一个确认,这样就构成了树的一个分枝 。加入请求数据包在被确认之前不需要一直被传送到核心路由器 。假如加入请求包在到达核心路由器之前先到达树上的某个路由器,该路由器就接收下这个请求包而不继续向前发送并确认这个请求包 。发送请求的路由器就连接到共享树上了 。CBT将多播流量集中在最少数量的链路而不是在一个基于发送源的共享树上 。集中在核心路由器上的流量可能会引起多播路由的某些问题 。某些版本的CBT支持多个多播核心的使用,和单个多播核心相比多核心更能达到负载平衡 。

推荐阅读