远距离矢量多播选路协议( 六 )


不等于接收网关的地址 。因此 , LSRR选项不会被检查出来 , 中间网关将把该数据报转发给
到目的地址的下一跳 。
当目的网关接收到一个数据报时 , 它注重到该数据报的目的地址与它自己的一个地址相
匹配 。因为源路由还没有用完 , 它将查看下一个LSRR选项地址 。这个地址是多播地址 。因
为主机被禁止把多播地址放到源路由上 , 网关能推断出LSRR用于隧道 。这里的不足之处是
LSRR中的多播地址可能有一些其它意义 。不过当前还没有其它的意义被定义 。
假如隧道化的数据报被错误的定址到不支持多播的目的网关上 , 则目的网关将试图找到一条
到多播地址的路由 。这将失败 , 而且一个ICMP目的不可达错误报文被送到隧道化的数据报
源端 。因为隧道化数据报的源地址已被调整为源多播网关的地址 , ICMP错误将不会被送到
起始主机 , 这台主机并不知道隧道的存在 。
5路由算法
这一部分对距离矢量路由算法做一个简要的介绍 。要了解更多的信息请参阅[1] 。
虽然DVMRP能表示到单个主机的路由 , 这个转发和路由算法仅支持网络和子网路由 。
在以下的讨论中 , 术语“虚接口”用来代表一个物理接口或一个隧道本地终端 。物理接
口是一个网络接口 , 例如是以太网卡 。到目的地的路由将通过一个虚接口 。术语“虚网络”
用来代表一个物理网络或隧道 , 它仅能在参考物理网络上路由 。
TRPB算法通过计算最短(反向)路径树 , 将多播数据报从源端(物理)网络转发到这
个数据报所有可能的接收者 。每个多播路由器必须确定它在树中相对于特定源端的位置 , 而
且确定它的那些虚接口在最短路径树上 。数据报就从这些虚接口中转发出来 。排除不在最短
路径树上的虚接口的过程叫做“修剪”(pruning) 。
考虑一个虚拟网络 , 使用Deering的术语 , 假如一台路由器的责任是通过它的连接虚拟
接口向一个虚拟网络转发数据报 , 则这台路由器叫做这个虚拟网络的“父亲” 。虚拟网络也
能被认为是这个路由器的“孩子”虚拟网络 。使用孩子信息 , 路由器能进行反向路径广播 。
不必要的数据报可能仍会被送到一些网络上 , 而这些网络没有这些数据报的任何接收
者 。
有两种接收者:属于一个特定多播组的主机和多播路由器 。假如在一个虚拟网络上没有
多播路由器 , 则认为虚拟网络沿树向上到达一个给定的源端 , 这个虚拟网络是一个“叶子”
网络 。假如一个网络是给定源端的一个叶子 , 而且在这个网络上没有特定组的成员 , 则没有
接收者接收从源端到这个网络上的组的数据报 。那个网络的父亲路由器能放弃发送这个网络
上的数据报 , 或“截断”最短路径树 。跟踪和使用这个信息的算法是截断反向路径广播(TRPB)
算法 。
确定那些虚拟网络是否是叶子并不简单 。假如任何临近路由器认为一个给定的虚拟网络
在到一个给定目的地的路径上 , 那么这个虚拟网络不是叶子 。否则 , 它是叶子 。这是一个选
举的功能 。假如一个带有由分裂水平处理毒害的度量的路由被某一路由器发送 , 则那个路由
器使用那个虚拟网络作为那个路由的向上树路径(即 , 那个路由器投票认为这个虚拟网络相
对于这条路由的目的地来说不是叶子) 。因为在一个虚拟网络上的路由器是动态的 , 而且所
有路由更新信息并不被路由器保存 , 所以需要一个试探法来决定一个网络是一个叶子 。当时

推荐阅读