上一篇文章说的是组管理协议IGMP,它是用来给组播路由器确定自己局域网下面有哪些主机加入了哪些组播的。那么这篇文章就说说IP组播另一个重要协议,组播路由协议。组播路由协议用于在路由器之间共享组信息,为组播数据报的分发提供路由,确保每一个组播路由器都能收到数据包。它的目标是找出一棵树,它连接所有附接主机属于组播组的路由器;根据这棵树路由组播包从发送者到达属于这棵组播树的所有主机。
组播路由算法用来构建一棵树,通过这棵树组播源把自己的消息分发给所有的加入组播的主机。构建的树的种类有两种:共享组播树和基于源的树。
共享组播树的特点是:该树具有最小“成本”(树的树枝的链路成本和最小)但是从源到接受者的路径并非最优。具体解释为:构造出的树的链路和成本最小,但是组播源必须将组播数据首先发送给树根节点,之后树根节点再根据这棵树发送给所有节点。
如上图所示:蓝色线段为构造的树,这些点构成的线段的和是最小的,总和只有7,但是因为考虑到从组播源发送到树根还有一定的距离,所以组播包一共发送的长度不一定是最小的。并且可能会引起数据的重复传输的问题(从源->