【计算机网络自顶向下方法】DV算法的运行举例

本文详细介绍了距离向量路由算法在一个简单的三节点网络中的同步执行过程。初始化时,每个节点拥有其初始路由选择表,并向邻居发送距离向量。节点根据接收到的更新计算新的距离向量,并在变化时发送更新。此过程持续进行直至无节点发送更新,算法进入静止状态。文章强调了算法也能在异步环境中正确运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        应用场合是该图顶部有三个节点的简单网络。算 法的运行以同步的方式显示出来,其中所有节点同时从其邻居接收报文,计算其新距离向 量,如果距离向量发生了变化则通知其邻居。学习完这个例子后,你应当确信该算法以异 步方式也能正确运行,异步方式中可在任意时刻出现节点计算与更新的产生/接收。

        该图最左边一列显示了这3个节点各自的初始路由选择表(routing table)。例如,位 于左上角的表是节点咒的初始路由选择表。在一张特定的路由选择表中,每行是一个距离向量特别是每个节点的路由选择表包括了它的距离向量和它的每个邻居的距离向量。 因此,在节点x的初始路由选择表中的第一行是D_{x} = [D_{x}(x), D_{x}(y), D_{x}(z)] = [0, 2, 7]。在该表的第二和第三行是最近分别从节点y和z收到的距离向量。因为在初始化时节 点x还没有从节点y和z收到任何东西,所以第二行和第三行表项中被初始化为无穷大。

        初始化后,每个节点向它的两个邻居发送其距离向量。图5-6中用从表的第一列到表 的第二列的箭头说明了这一情况。例如,节点x向两个节点y和z发送了它的距离向量D_{x} = [0, 2, 7]。在接收到该更新后,每个节点重新计算它自己的距离向量。例如,节点 x计算

D_{x}(x) = 0

D_{x}(y) = min{c(x,y) + D_{y}(y), c(x,z) + D_{z}(y)} = min{2 + 0, 7 + 1} = 2

D_{x}(z) = min{c(x,y) + D_{y}(z), c(x,z) + D_{z}(z)} = min{2 + 1, 7 + 0} = 3

        第二列因此为每个节点显示了节点的新距离向量连同刚从它的邻居接收到的距离向 量。注意到,例如节点x到节点z的最低开销估计D_{x}(z)已经从7变成了 3。还应注意到, 对于节点x,节点y在该DV算法的第14行中取得了最小值;因此在该算法的这个阶段, 我们在节点x得到了v^{*}(y) = y和v^{*}(z) = y。

 

        在节点重新计算它们的距离向量之后,它们再次向其邻居发送它们的更新距离向量(如果它们已经改变的话)。图5-6中由从表第二列到表第三列的箭头说明了这一情况。注 意到仅有节点x和节点z发送了更新:节点y的距离向量没有发生变化,因此节点y没有发送更新。在接收到这些更新后,这些节点则重新计算它们的距离向量并更新它们的路由选择表,这些显示在第三列中。

        从邻居接收更新距离向量、重新计算路由选择表项和通知邻居到目的地的最低开销路 径的开销已经变化的过程继续下去,直到无更新报文发送为止。在这个时候,因为无更新报文发送,将不会出现进一步的路由选择表计算,该算法将进入静止状态,即所有的节点 将执行DV算法中的等待。该算法停留在静止状态,直到一条链路开销发生改变。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wellnw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值