计算机网络原理 最短路径路由

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机网络原理最短路径路由

在路由选择方法中,我们经常采用的算法是:求给定网络中任意两个节点间的最短路径。即求任意两个节点间的最小时延或最小费用的路径。这里已知的是整个网络拓扑和各链路的长度。

求最短路径的方法有许多种,下面我们以图6-4所示的网络为例来讨论一种由Dijkstra 提出的求最短路径的算法,即寻找从源节点到网络中其他各节点的最短路径。在本例中,设节点A为源节点,然后逐步寻找其最短路径,每次找一个节点到源节点的最短路径,直到把所有的点都找到为止。

图6-4 求最短路径算法的网络举例

令D(V)为源节点(节点A)到节点v的距离,它就是沿着某一通路的所有链路的长度之和。再令l(i,l)为节点i至节点j之间的距离。整个算法有以下部分:

(1)初始化。令N表示网络节点的集合。先令N={A},对所有不在N中的节点v,写出:

λ(A,ν)若节点ν与节点A直接相连;

D(ν)= {

∞若节点ν与节点A不直接相连;

在用计算机进行求解时,可以用一个比任何路径长度大得多的数值代替∞,可以使D (v)=99。

(2)寻找一个不在N中的节点w,其D(w)值为最小。把w加入到N中,然后对所有不在N中的节点,用D(v)与[D(w)+λ(w,ν)]中较小的值去更新原有的D(v)值,即:D(v)←min[D(v),D(w)+λ(w,ν)]

(3)重得步骤(2),直到所有的网络节点都在N中为止。

6-2所示

是对图

6-4的网

络进行求

解的详细

步骤。可

以看出,上述的步骤(2)共执行了5次,表中带圆圈的数字是在每一次执行步骤(2)时所寻找的具有最小值的D(w)值。当第5次执行步骤(2)并得出了结果后,所有网络节点都已包含在N之中,整个算法即告结束。

最后就可得出以节点A 为根的最短路径树,如图6-5(1)所示。从这个最短路径树可以清楚地看出从源节点A 到网内任何一个节点的最短路径。图中,每个节点旁边括号中的数字表明该节点是在执行第几步的算法时加入到集合中去的。初始化步骤为第0步。在图6-5(2)中,是节点A 内存中的路由表。该路由表指出对于发往某个目的站的分组,从节点A 出发后的后继节点应当是哪个节点,同样,在所有其他各节点中都有一个这样的路由表。当然,这就需要分别以这些节点为源节点,重新执行算法,然后才能找出其最短路径树和相应的源节点路由表。

(3)(4)

(0)

(1)用算法求出节点A的最短路径树

(2)节点A的路由表 图6-5 节点A 的最短路径树和路由表

相关文档
最新文档