链路状态路由17 Mar 2025 | 6 分钟阅读 链路状态路由是一种技术,其中每个路由器与互联网中的每个其他路由器共享其邻居的知识。 理解链路状态路由算法的三个关键
链路状态路由有两个阶段可靠泛洪
路由计算每个节点在图上使用 Dijkstra 算法来计算到所有节点的最优路由。
让我们描述一些符号
算法Initialization N = {A} // A is a root node. for all nodes v if v adjacent to A then D(v) = c(A,v) else D(v) = infinity loop find w not in N such that D(w) is a minimum. Add w to N Update D(v) for all v adjacent to w and not in N: D(v) = min(D(v) , D(w) + c(w,v)) Until all nodes in N 在上述算法中,初始化步骤后是循环。循环执行的次数等于网络中可用节点的总数。 让我们通过一个例子来理解 ![]() 在上图中,源顶点是 A。 步骤 1第一步是初始化步骤。从 A 到其直接相连的邻居 B、C、D 的当前已知最小成本路径分别为 2、5、1。从 A 到 B 的成本设置为 2,从 A 到 D 的成本设置为 1,从 A 到 C 的成本设置为 5。由于 A 与 E 和 F 不直接相连,因此从 A 到 E 和 F 的成本设置为无穷大。
步骤 2在上表中,我们观察到顶点 D 在第一步中包含最小成本路径。因此,将其添加到 N 中。现在,我们需要确定通过顶点 D 的最小成本路径。 a) 计算从 A 到 B 的最短路径 b) 计算从 A 到 C 的最短路径 c) 计算从 A 到 E 的最短路径 注意:顶点 D 与顶点 E 没有直接连接。因此,D(F) 的值为无穷大。
步骤 3在上表中,我们观察到在第二步中,E 和 B 都具有最小成本路径。让我们考虑顶点 E。现在,我们确定通过 E 的剩余顶点的最小成本路径。 a) 计算从 A 到 B 的最短路径。 b) 计算从 A 到 C 的最短路径。 c) 计算从 A 到 F 的最短路径。
步骤 4在上表中,我们观察到在第三步中,顶点 B 具有最小成本路径。因此,将其添加到 N 中。现在,我们确定通过 B 的剩余顶点的最小成本路径。 a) 计算从 A 到 C 的最短路径。 b) 计算从 A 到 F 的最短路径。
步骤 5在上表中,我们观察到在第四步中,顶点 C 具有最小成本路径。因此,将其添加到 N 中。现在,我们确定通过 C 的剩余顶点的最小成本路径。 a) 计算从 A 到 F 的最短路径。
最终表
缺点链路状态路由由于泛洪会产生大量流量。泛洪可能导致无限循环,这个问题可以通过使用生存时间字段来解决。 下一主题# |
我们请求您订阅我们的新闻通讯以获取最新更新。