摘要:链路状态路由一个路由器在使用链路状态路由时,它将会向网络上所有其它的路由器分发它到它邻路由器的距离。这就使每个路由器不用知道从某一源节点到目的节点的开销,该路由器就可以产生一张路由表。环路的问题不会出现,因为每个路由器都拥有整个网络的拓扑。主要思想是一个路由器产生有3个部分的记录包含源路由器(它自己)、邻
链路状态路由
一个路由器在使用链路状态路由时,它将会向网络上所有其它的路由器分发它到它邻路由器的距离。这就使每个路由器不用知道从某一源节点到目的节点的开销,该路由器就可以产生一张路由表。环路的问题不会出现,因为每个路由器都拥有整个网络的拓扑。主要思想是一个路由器产生有3个部分的记录包含源路由器(它自己)、邻路由器和到邻路由器的开销。因此,如果路由器A通过一条开销为3的链路连接到路由器B,并且路由器A通过一条开销为5的链路连接到路由器C,那么路由器将会向网络上所有的路由器广播链路状态包(LSPs)和。每个路由器将可以从接收到的LSPs中推算出一条通向目的节点的最短路径。
很显然,LSP是收敛过程中的一个组成部分。如果向网络中加入了错误的LSP。将会导致错误的路由信息(会使包沿比原来更长的路径传输)甚至产生路由黑洞。如果路由器C向其它路由器广播一条到他的邻路由器的路径信息,但当该链路断开时路由器C撤回了刚才的广播。不幸的是第二个LSP先到而第一个LSP先到,这时其它路由器的路由表就不能正确地反映网络的拓扑,而只能等到另一个正确的LSP来到。
为了解决这个问题,LSP引进了序列码。因此网络上所有的路由器都会以一些值作为起始值来初始化他们的序列码,然后在广播他们的LSP。这就解决了刚才的问题。
当使用序列码时会碰到序列码空间是有限这一问题。LSPs可以用的序列码都被设置成有限值。因此,当序列码到达最大值后,有要从最小值重新开始。这就给路由器在比较链路状态的当前记录和刷新记录时带来困难,因为序列码大的有优先权。为了解决这个问题,可以为LSP定义一个最大老化时间。也就是说,如果路由器在X段时间内没有收到刷新记录,它就将现有的记录丢弃而去等待更新的记录。要注意必须使到目的地的路径信息无效。例如,当路由器Y连向某一局网的链路断开时,路由器Y向路由器Z广播了这条链路的信息,这时局网中的路由器们此时还在认为它们仍可以到达Z。如果它们在最大老化时间内接收不到刷新记录,它们就会假设到Y的链路已经不可达。这样所有的路由器的路由表才会一致,路由器Y和Z也可以使用有限的序列码。
序列码的初始化也是这个问题中另一个重要的方面。假设路由器Y重起了,而此时网络又开始重新计算路径。当该路由器的链路状态协议开始工作,它必须知道重新初始化它的序列码为何值以使它和其它路由器保持一致。因此,它就广播一个带有特别的初始化集合的路径信息。这条记录会告诉其它路由器它需要那个序列码,并且其它路由器会告诉它。
软考备考资料免费领取
去领取