1. 1.4 链路状态的局限性

链路状态协议也有很多局限性。除了路由表,链路状态协议还需要维护拓扑数据库、邻居数据库和转发表。为了交换路由信息,邻居数据库保存了与邻居路由器的所有关联。转发表是由网络地址和下一跳组成的数据结构。在非常大或非常复杂的网络中,需要大量的存储空间来存储这些数据库数据。

  • 如果网络复杂(例如,Dijkstra算法计算非常复杂)或网络不稳定(例如,Dijkstra算法总是在进行计算),链路状态协议将耗费大量的CPU周期。但是现代网络大多装备了高速处理器,处理这些计算问题是非常容易的。

  • 为了避免过度使用内存或CPU,我们要合理地设计网络的分层结构,把网络分成一个一个的小区域来减少拓扑表的大小和Dijkstra的计算量。然而,这种划分也会产生新问题,因为我们必须保证区域总是连续的。区域中的路由器必须能够与区域中的其他路由器交换LSA。在多区域设计中,区域路由器必须有路径能够到达骨干区域,否则,它们将不能与网络中的其余部分连通。此外,骨干区域必须保持连续,否则一些区域会被孤立(分割)。

  • 如果网络结构设计非常合理,通常配置链路状态的网络很简单。如果网络设计很复杂,链路状态协议可能不得不进行改变来适应它。在大的网络中配置链路状态协议非常具有挑战性。

  • 在链路状态网络中,排错通常非常简单,因为每个路由器都有一份整个网络结构的拷贝或至少是本区域的网络结构拷贝。但是要解释拓扑数据库、邻居数据库和转发表中的信息,则要求对链路状态路由的概念理解透彻。

  • 链路状态协议通常比距离矢量协议,尤其是传统的距离矢量协议(如RIP和IGRP),适用的网络范围更大。除了链路状态路由的特性和适用性,它还涉及下面两个潜在的值得关注的问题。

  • 最初的拓扑发现过程中,链路状态路由协议需要通过LSA泛洪,这就大大降低了网络传送数据的能力。这种行为是暂时的,但可能非常显著。泛洪的过程是否显著地降低了网络性能由以下两个因素决定:可用带宽以及需要交换路由信息的路由器数量。在大网络中使用相对较小的链路泛洪(例如帧中继网络中的低带宽数据链路连接),可能会显著影响网络性能。