距离矢量路由协议和链路状态路由协议

一、距离矢量路由协议

距离矢量路由协议主要会产生2个问题,无限计数路由环路问题。当然也有相应的解决办法。

1.无限计数问题及解决方法

请看下列拓扑图:

距离矢量路由协议和链路状态路由协议_第1张图片

假设初始状态R0、R1、R2构成的网络已经收敛,当10.4.0.0这个网络出现问题时,R2觉察到该链路出现问题,那么它会发现R1的路由表上有关于10.4.0.0的路由信息,即R2认为通过R1可以到达10.4.0.0网络,此时R2会借此更新自己的路由表中关于该路径的开销信息,R1此时也发现R2上关于10.4.0.0路由表项的变化,因此也会更新自己的路由表,二者如此反复,就会产生计数至无穷大的问题。

解决方案:定义最大值防止该问题,即定义的最大允许值为16跳,当度量超过该值时,则认为该网络不可达,从而防止扩散增加度量的路由更新。

2.路由环路问题及解决方法

当两台或多态路由器的路由信息中存在错误的(通过其他路由器指向不可达目的网络的有效路径)或者路由收敛缓慢时,就可能形成路由环路,这样会极大的浪费带宽资源。

以上面的那个拓扑图为例:

假如发往10.4.0.0的数据包到达R1,R1发往R2,R2又发往R1,如此循环往复,就变成路由环路的状况。

解决方法:

1.水平分割:决不再原始信息的来源方向再次发送该路由信息。显然,这样可以消除路由环路并加快网络收敛。

2.毒性逆转水平分割:在基于路由信息协议的网络中,当一条路径信息变为无效之后,路由器并不立即将它从路由表中删除,而是用16,即不可达的度量值将它广播出去,这叫做毒性逆转。这样虽然增加了路由表的大小,但对消除路由循环很有帮助,它可以立即清除相邻路由器之间的任何环路,

另外,毒性反转非常特殊,它会忽略水平分割规则的要求。

3.抑制计时器:用来防止定期更新消息错误的恢复某条可能已经发生故障的路由,其工作原理如下:

  • 路由器收到来自邻居的更新指示以前可到达的路由现在已经不可达时,路由器将该路由标记为“可能有故障的路由”并启动抑制计时器。
  • 如果从邻居收到具有由于原来记录的更新消息,则将该路由重新标记为可访问并删除抑制计时器。
  • 如果在抑制计时器过时之前的任何时间点收到的更新消息均差于原来的记录,那么忽略这些消息。
  • 抑制期间,路由器仍会将数据包路由到“可能有故障”的网络中。

4.触发更新:路由表的更新通常会以固定的间隔发往邻居路由器,而触发更新是在某些变化发生的时候立刻发送该变化信息。当该信息到达邻居路由器的时候,邻居路由器又会立刻向其邻居发送更新消息,如此将消息传遍网络。

二、链路状态路由协议

链路状态协议与前面的距离矢量路由协议有很大不同。

1.主要区别:

  • 距离矢量路由协议是通过路由器向其邻居发送自己的路由表的方式来维护自己本身的路由信息。
  • 链路状态协议从网络或者网络的限定区域内的所有其他路由器处(不仅仅限制在自己的邻居路由器处)收集信息。收集完信息之后,每台路由器会在不依赖其他路由器的情况下计算到达各个网络的路由,由于每台路由器维护的是其对整个网络的印象,因此路由器不太会传播邻居路由器提供的错误信息。

2.拓扑数据库

前面我们讲到,链路状态路由协议是收集整个网络的各种信息,所以,这些信息就构成了路由器的一个拓扑数据库。通过对这个数据库使用Dijkstra算法创建SPF树,这样就能找到通往目的地的最佳路径。

3.优点

  • 用开销来衡量链路,比较全面。
  • 网络可以被分成层级,以限制路由变化的范围。
  • 很难形成路由环路
  • 及时报告机制会加快收敛速度。

你可能感兴趣的:(●CCNA)