距离向量路由算法

在距离向量路由算法中,相邻路由器之间周期性地相互交换各自的路由表备份。 当网络拓扑结构发生变化时,路由器之间也将及时地相互通知有关变更信息。
       
一.路由表的建立和更新
如上图,有三个路由器,ABC。路由器A的两个网络接口E0S0
分别连接在 10.1.0 .010.2.0.0网段上;路由器B的两个网络接口S0S1
分别连接在 10.2.0 .010.3.0.0网段上;路由器C的两个网络接口S0E0
分别连接在 10.3.0 .010.4.0.0网段上;
   如上图中各路由表的前两行所示,通过路由表的网络接口到与之直接相连的网
络的网络连接,其向量距离设置为0。这即是最初的路由表。
       当路由器BA以及BC之间相互交换路由信息后,它们会更新各自的路由表。
例如,路由器B通过网络端口S1收到路由器C的路由信息( 10.3.0 .0,S0,0)和(10.4.0.0,E0,0)
后,在自己的路由表中增加一条( 10.4.0 .0,S1,1)路由信息。该信息表示:通过路由器B的网络接
S1可以访问到 10.4.0 .0网段,其向量距离为1,该向量距离是在路由器C的基础上加1获得的。
同样道理,路由器B还会产生一条( 10.1.0 .0,S0,1)路由,这条路由是通过网络端口S0从路由器A
获得的。如此反复,直到最终收敛,形成图中所示的路由表。
     概括地说,距离向量算法要求每一个路由器把它的整个路由表发送给与它直接连接的其它路由
器。路由表中的每一条记录都包括目标逻辑地址、相应的网络接口和该条路由的向量距离。当一个路
由器从它的相邻处收到更新信息时,它会将更新信息与本身的路由表相比较。如果该路由器比较出一条
新路由或是找到一条比当前路由更好的路由时,它会对路由表进行更新:将从该路由器到邻居之间的
向量距离与更新信息中的向量距离相加作为新路由的向量距离。
 
二.收敛
  所谓收敛,是指直接或间接交换路由信息的一组路由器在网络的拓扑结构方面或者说在网络的路由信息方面达成一致。路由协议必须通过某种算法使路由器尽快达到收敛状态。
  要实现收敛,必须解决路由器之间的路由环路(Routing Looops)问题,下面比较直观地举例讲述
路由环路问题的产生。
     假设在上图中,网络 10.4.4 .0发生故障,在网络发生故障前,路由器ABC的路由表已经收敛。
     网络发生故障后,路由器C检测到故障停止通过接口E0向外发送数据包,并通过接口S0通知路由器
B .在路由器A没有收到故障通知前,它仍然相信可以通过路由器B访问到 10.4.0 .0(路由器A的路由表的最后一行),这条路径的向量距离为2
由于路由器B的路由表中指示有一条通往 10.4.0 .0的路径,因此,如果路由器B在收到路由器C
的故障通知前将路由表发送到CC会认为通过B可以访问 10.4.0 .0,并在此基础上修改自己的路由表,
将路由表的第二条记录修改为( 10.4.0 .0,S0,2),其中S0表示通过接口S0可以访问10.4.0.0,其向量距离为2
这样一来,路由器ABC都认为通过其它的路由器存在着一条通往 10.1.0 .0的网络路径,结果导致
目标地址为 10.4.0 .0的数据包在这三个路由器之间来回传递,从而造成一条路由环路。
一般采用4种方法解决路由环路问题。
(1)         水平分割
       这种方法规定,路由器必须有选择地将路由表中的路由信息发送给相邻的其它路由器,而不是发送整个路由表。具体地说,即一条路由信息不能被发送到广播此路由的路由器,这样就避免了路由环路的发生。
(2)         定义一个最大值
(3)         挂起计数器
(4)         解发式更新

你可能感兴趣的:(职场,路由,休闲,距离向量路由算法)