IP组播之组播路由算法,ip组播路由算法


       上一篇文章说的是组管理协议IGMP,它是用来给组播路由器确定自己局域网下面有哪些主机加入了哪些组播的。那么这篇文章就说说IP组播另一个重要协议,组播路由协议。组播路由协议用于在路由器之间共享组信息,为组播数据报的分发提供路由,确保每一个组播路由器都能收到数据包。它的目标是找出一棵树,它连接所有附接主机属于组播组的路由器;根据这棵树路由组播包从发送者到达属于这棵组播树的所有主机。

        组播路由算法用来构建一棵树,通过这棵树组播源把自己的消息分发给所有的加入组播的主机。构建的树的种类有两种:共享组播树基于源的树

        共享组播树的特点是:该树具有最小“成本”(树的树枝的链路成本和最小)但是从源到接受者的路径并非最优。具体解释为:构造出的树的链路和成本最小,但是组播源必须将组播数据首先发送给树根节点,之后树根节点再根据这棵树发送给所有节点。


        如上图所示:蓝色线段为构造的树,这些点构成的线段的和是最小的,总和只有7,但是因为考虑到从组播源发送到树根还有一定的距离,所以组播包一共发送的长度不一定是最小的。并且可能会引起数据的重复传输的问题(从源->根->接受者的路径可能重复)。他最适合的场合是多数共享树与源树相同的环境。这样就可以达到最小路径了。

        第二种树是基于源的树,也称最短路径树。以发送者为树根到每一个接收者的最短路径构成一棵转发树,从发送者到接收者的路径最优,但需要维护较多的状态信息。这样,在具有N个主机的组播组中,需要构造N棵不同的路由树,因为每一个源能构造出以自己为根的最优路径的树。它适用于发送者数量较少而接收者大量的应用,这样可以构造尽量少的树。

        对于基于源的树,构造方式就是著名的dijkstra算法,计算从源到所有其他目标的最短路径。这些路径的集合可形成一棵最小成本路径树。dijkstra算法在之前路由算法的那篇文章中有述,可以在拓展部分来看,构造树如下所示:


        两种构造组播树的方法都是为了让组播数据包到达所有的组播路由器,两者的区别就是是否把源节点当做根节点,这样可以决定是树成本最小还是路径最优。通过组播路由算法,有效构造了树,加上组管理协议IGMP,能够实现IP组播的有效传输了。

        拓展阅读:

        互联网组播管理协议IGMP

        路由算法之距离矢量算法和链路状态算法

        

查看评论

相关内容