哈工大计算机网络课程网络层协议详解之:距离向量路由算法与层次化路由算法

本文介绍了距离向量路由算法,基于Bellman-Ford算法,强调每个节点只需知道邻居节点信息即可计算最短路径。接着,层次化路由概念被提出,以解决大规模网络和管理自治问题,通过自治系统划分和网关路由器实现跨区域路由。层次化路由在Internet网络中广泛应用。


在上一节中我们介绍了路由算法中的链路状态路由算法,介绍它基于Dijkstra算法来实现,同时分析了其缺点。接下来,我们继续介绍另外两种路由算法:距离向量路由算法和层次化路由算法

距离向量路由算法

距离向量路由算法实际上是基于Bellman-Ford方程(动态规划的思想)来实现的。

同样的,这里先列举出后续算法介绍中会使用到的符号定义:

  • 令dx(y) = 从x到y最短路径的费用(距离)

    则dx(y) = minv{ c(x,v) + dv(y) }

    其中

    • minv表示 在x节点的所有邻居v中取最小值。
    • c(x,v)表示x到邻居v的费用(距离)。
    • dv(y)表示从邻居v到目的节点y的费用(距离)。

有了上述公式后,作为x节点就不需要知道整个网络的拓扑结构和路径费用,而只需要知道跟所有邻居节点间的费用,以及每个邻居节点到目的节点的最短路径费用即可。

Bellman-Ford算法举例

如下图所示,假设我们希望计算节点u到节点z的最短路径。

根据图上的路径费用,显然有:

  • dv(z) = 5
  • dx(z) = 3
  • dw(z) = 3

因此, 根据Bellman-Ford算法公式可以得到:

du(z) = min{ c(u,v) + dv(z),

​ c(u,x) + dx(z),

​ c(u,w) + dw(z) }

​ = min{ 2+5,

​ 1+3,

​ 5+3}

​ = 4
在这里插入图片描述

可以看出,在这种算法中,节点u不需要知道完整的网络拓扑,只需要知道跟所有邻居节点间的费用,以及每个邻居节点到目的节点的最短路径费用即可。

在上面的例子中,当节点u知道到达节点z的最短路径是从邻居节点x中获取的,就会把这个信息记录在转发表中。后续数据报达到需要转发到z节点上时,就会经过路由器的u->x的接口转发出去。

重点:节点获得最短路径的下一跳,该信息用于转发表中

距离向量路由算法

在上述公式:dx(y) = min

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

JermeryBesian

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

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

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

打赏作者

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

抵扣说明:

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

余额充值