DV算法和LS路由算法的特点和区别(计算机网络)

本文转自人人小站
找不到原文地址了。。。看到另一个博主转的,我就整理学习了下,再发一遍吧。

  路由器是网络间的连接设备,它重要工作之一是路径选择。这个功能是路由器智能的核心,它是由管理员的配置和一系列的路由算法实现的。路由算法可分为distance vector(DV)algorithm和link_state(LS)algorithms两种。

LS算法和DV算法,这两种算法各有特点,分述如下。

1、工作原理的不同
  LS算法中,网络拓扑和所有的链路费用都是已知的,也就是说可用来做LS算法的输入。在实践中,这是通过让每个节点向网络中所有其他路由器广播状态分组来完成,其中每个链路分组包含它所连接的链路的特征和费用,这经常用链路广播算法来完成。节点广播的结果是所有节点具有了该网络的同一个以及完整的视图。于是每个节点都可像其他节点一样,运行LS算法并计算相同的最低费用路径集。在此算法中,每个节点经广播与所有其他节点交谈。
  DV算法中,每个节点仅与他的直接邻居交谈,但它为他的邻居提供了从其自己到网络中所有其他节点的最低费用。DV算法要求每个路由器都要向其他邻接的路由器发布一个距离向量,距离向量是该路由器到其他已知的各网络的相对距离。通告内容基本上是告诉其邻接的路由器:你可以通过我到达网络X,距离是Y。从本地路由器到X的有效距离等于该路由器从各邻接路由器接收到的最短距离,再加上他与该邻接路由器之间的链路距离。
2、算法结构不同
  显然LS算法是一种全局信息的算法,而DV算法是一种迭代的异步的分布式的算法。说它是分布式的,是因为每个节点都要从一个或多个直接相连邻居接受某些信息,执行计算,然后将计算结果发回给邻居。说它是迭代的,是因为此过程一直要持续到邻居之间没有更多要交换的信息为止。说该算法是异步的,是因为他不要求所有节点相互之间锁步,即步伐一致的工作。
3、时间复杂性
  考虑LS算法,即给定n个节点,考虑最坏情况下需要经多少次计算才能找到从源节点到所有目的节点的最低费用呢。
1)在第一次迭代时,我们需要搜索所有的n个节点以确定出节点w,w不在n-1中且具有最低费用。
2)第二次我们需要检查所有的n-1个节点以确定最低费用。
3)第三次,需要检查n-2个节点,依此类推。
因此,我们在所有迭代中需检索n+(n-1)+(n-2)+…+1=n(n+1)/2个节点。所以我们可以得出LS算法在最差情况下的时间复杂度为n的平方阶。
  考虑DV算法,它存在对好消息的反应迅速,但对坏消息却反应迟钝。特别是对坏消息存在计数无穷大问题。当链路的权值变化很大时,它的时间复杂性也就很难确定了。
4、报文复杂性
  LS算法要求每个节点知道网络中每条链路的费用。这就要发送O(|N||E|)个报文。
  DV算法要求在每次迭代时,在两个直接相连的邻居之间交换报文。在链路费用改变时,DV算法仅当在新费用导致与该链路相连节点的最低费用路径发生改变时,才传播已改变的链路费用。
5、收敛速度
  收敛是路由算法选择时所遇到的一个重要问题。收敛时间是指从网络的拓扑结构发生变化到网络上所有的相关路由器都得知这一变化,并且相应地做出改变所需要的时间。这一时间越短,网络变化对全网的扰动就越小。收敛时间过长会导致路由循环的出现。
  LS在直接相连的路由之间维护正常的邻居关系。这允许路由更快收敛。链路状态路由协议在会话期间通过交换Hello包(也叫链路状态信息)创建对等关系,这种关系加速了路由的收敛。
  而DV算法收敛较慢,且在收敛过程中会遇到选路环路。DV算法还会遭到计数无穷大的问题。
6、跳数的限制
  DV使用跳数或向量来确定从一个设备到另一个设备的距离。不考虑每跳链路的速率。
  LS没有跳数的限制,使用“图形理论”算法或最短路径优先算法。
7、路由表的更新
  DV算法根据相邻节点的路由信息更新自己的路由表并发送整个路由表。DV的这种特性随着路由表的增大,需要消耗更多的CPU资源,并消耗了内存。
  LS算法,每个节点都有一个全局的拓扑结构,根据此拓扑结构计算路由表。不像DV那样,更新时发送整个路由表。LS只广播更新的或改变的网络拓扑,这使得更新信息更小,节省了带宽和CPU利用率。另外,如果网络不发生变化,更新包只在特定的时间内发出(通常为30min到2h)。
8、健壮性
  如果一台路由器发生故障,行为错乱或受到破坏时情况会怎样呢?
  对于LS算法,路由器能够向其连接的的一条链路广播不正确费用。一个节点作为LS广播的一部分也可损坏或丢弃它收到的任何LS广播分组。但是一个LS节点仅计算自己的转发表:其他节点为自己做类似的计算。这就意味这在LS算法下,路由计算有些是孤立的,提供了一定程度的健壮性。
  在DV算法下,一个节点可向任意或所有的目的节点通告其不正确的最低费用路径。DV算法中一个不正确的节点计算值会扩散到整个网络。
9、可扩展性
  DV算法可扩展性差。相对而言,LS算法可扩展性好,可靠。
10、环路
  尽管最基本的DV协议描述和实现起来非常简单,但是会导致网络中的最短通路树在短时间内出现环路。一个基于DV的网络路由可能需要花费几十秒到几分钟才能汇聚到一个无环路的拓扑。如果本地路由器对于本地链路以外的网络属性只能掌握一些二手的,已被解释过的信息,那么在任何一种这样的方案中低速汇聚都是一种根本的局限性。LS协议,虽然与DV协议相比较,即便是对于最基本的形式,它的描述和实现都是很复杂的,但它有一个优点,当链路状态发生变化时,在变化的信息传播到网络中以后,我们立即就可以得到不存在环路的最短通路树。

  • 13
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值