距离矢量路由协议
路由协议的种类
距离矢量路由协议(英语:distance-vector routing protocol),为路由协议中的两大分类之一,这类协议采用距离向量(distance-vector,缩写为DV)算法来决定报文交换的路径。包括贝尔曼-福特算法,Ford–Fulkerson algorithm与DUAL FSM等算法,都被归类于距离向量算法中。
简介
这类协议包括路由信息协议(RIP)及内部网关协议(IGP)等。在这类协议中,路由器需要周期性与相邻的路由器交换更新通告(routing updates),动态建立路由表,以决定最短路径。
贝尔曼-福特算法
贝尔曼-福特算法(英语:Bellman–Ford algorithm),求解单源最短路径问题的一种算法,由理查德·贝尔曼(Richard Bellman) 和莱斯特·福特创立的。有时候这种算法也被称为 Moore-Bellman-Ford 算法,因为Edward F. Moore也为这个算法的发展做出了贡献。它的原理是对图进行次松弛操作,得到所有可能的最短路径。其优于迪科斯彻算法的方面是边的权值可以为负数、实现简单,缺点是时间复杂度过高,高达。但算法可以进行若干种优化,提高了效率。
算法
贝尔曼-福特算法与迪科斯彻算法类似,都以松弛操作为基础,即估计的最短路径值渐渐地被更加准确的值替代,直至得到最优解。在两个算法中,计算时每个边之间的估计距离值都比真实值大,并且被新找到路径的最小长度替代。 然而,迪科斯彻算法以贪心法选取未被处理的具有最小权值的节点,然后对其的出边进行松弛操作;而贝尔曼-福特算法简单地对所有边进行松弛操作,共次,其中是图的点的数量。在重复地计算中,已计算得到正确的距离的边的数量不断增加,直到所有边都计算得到了正确的路径。这样的策略使得贝尔曼-福特算法比迪科斯彻算法适用于更多种类的输入。
贝尔曼-福特算法的最多运行(大O符号)次,和分别是节点和边的数量)。
伪代码表示
路由协议
路由协议(英语:Routing protocol)是一种指定数据包转送方式的网上协议。Internet网络的主要节点设备是路由器,路由器通过路由表来转发接收到的数据。转发策略可以是人工指定的(通过静态路由策略路由等方法)。在具有较小规模的网络中,人工指定转发策略没有任何问题。但是在具有较大规模的网络中(如跨国企业网络、ISP网络),如果通过人工指定转发策略,将会给网络管理员带来巨大的工作量,并且在管理、维护路由表上也变得十分困难。为了解决这个问题,动态路由协议应运而生。动态路由协议可以让路由器自动学习到其他路由器的网络,并且网络拓扑发生改变后自动更新路由表。网络管理员只需要配置动态路由协议即可,相比人工指定转发策略,工作量大大减少。
路由信息协议
路由信息协议(英语:Routing Information Protocol,缩写:RIP)是一种内部网关协议(IGP),为最早出现的距离向量路由协定。属于网络层,其主要应用于规模较小的、可靠性要求较低的网络,可以通过不断的交换信息让路由器动态的适应网络连接的变化,这些信息包括每个路由器可以到达哪些网络,这些网络有多远等。
虽然RIP仍然经常的被使用,但是由于收敛慢和支持的广播网络规模有限等缺点,许多人认为它将会而且正在被诸如OSPFIS-IS这样的路由协议所取代。当然,我们也看到EIGRP,一种和RIP属于同一基本协议类但更具适应性的路由协议,也有被使用。
参考资料
最新修订时间:2024-05-07 16:58
目录
概述
简介
贝尔曼-福特算法
参考资料