老化过程为泛洪扩散增加了可靠性,该协议为网络定义了一个最大年龄差距(MaxAgeDiff)值。路由器可能接收到一个LSA的多个副本,其中序列号相同,年龄不同。如果年龄的差距小于MaxAgeDiff,那么认为是由于网络的正常时延造成了年龄的差异,因此数据库原有的LSA继续保存,新收到的LSA(年龄更大)不被扩散;如果年龄差距超过MaxAgeDiff,那么认为网络发生异常,因为新被发送的LSA 的序列号值没有增加。在这种情况下,较新的LSA会被记录下来,并将数据包扩散出去。典型的MaxAgeDiff值为15min(用于OSPF)。
若LSA驻留在数据库中,则LSA的年龄会不断增加。如果链路状态记录的年龄增加到某个最大值(MaxAge)-由特定的路由选择协议-那么一个带有MaxAge值的LSA被泛洪扩散到所有邻居,邻居随即从数据库中删除相关记录。
当LSA的年龄到达MaxAge时,将被从所有的数据库中删除,这需要有一种机制来定期地确认LSA并且在达到最大年龄之前将它的计时器复位。链路状态刷新计时器(LSRefesh Timer)就是做此用途的;一旦计时器超时,路由器将向所有邻居泛洪扩散新的LSA,收到的邻居会把有关路由器记录的年龄设置为新接收到的年龄。 OSPF定义MaxAge为1小时,LSRefresh Time为30min。
四、链路状态数据库
除了邻居发现和泛洪扩散LSA,链路状态路由选择协议的第3个主要任务是建立链路状态数据库。链路状态数据库,也叫拓扑数据库把LSA作为一连串记录保存下来。LSA包括两类通用信息:
1、路由器链路信息-使用路由器ID、邻居ID和代价通告路由器的邻居路由器,这里的代价是发送LSA路由器到其邻居的代价;
2、末梢网络信息 -使用路由器ID、网络ID和代价通告路由器直接连接的末梢网络(没有邻居的网络)。
注意:链路代价是按照出站接口的方向计算的!
五、SPF算法-Dijkstra算法
SPF算法的基本过程:
构建最短路径树时,路由器首先将它自己作为根,然后使用拓扑数据库中的信息,创建所有与它直连的邻居列表。到一个邻居的代价最小的路径将成为树的一个分枝,该路由器的所有邻居都被加入列表。检查该列表,看是否有重复的路径:如果有,代价高的路径将从列表中删除,代价低的路由器将被加入树;路由器的邻居也被加入列表,再次检查该列表是否有重复路径。此过程不断重复,直到列表中没有路由器为止!
相关推荐