基于OSPF的LSA删除方法及装置转让专利

申请号 : CN201510103106.9

文献号 : CN105991451B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王旭

申请人 : 杭州迪普科技股份有限公司

摘要 :

本发明提供基于OSPF的LSA删除方法及装置,该方法应用于OSPF路由器上,包括:当需要删除本地老化链表中任一待老化的LSA时,判断邻居重传链表中是否包括待老化的LSA;若邻居重传链表中不包括待老化的LSA,且本地路由器没有和任一邻居路由器处于建立邻接关系状态,则获取待老化的LSA的生成时间,并计算当前时间与待老化的LSA的生成时间的时间差;若时间差大于预设的LSA生成间隔值,则删除本地LSA数据库中待老化的LSA对应的链路状态信息,以及删除本地老化链表中待老化的LSA对应的LSA标识。因此,本发明可以实现待老化的LSA不会很快被删除,以及LSA生成后,在预设的LSA生成间隔值内仍然存在。

权利要求 :

1.一种基于开发式最短路径优先OSPF的LSA删除方法,其特征在于,所述方法应用于OSPF路由器上,包括:当需要删除本地老化链表中任一待老化的链路状态广播LSA时,判断邻居重传链表中是否包括所述待老化的LSA;

若所述邻居重传链表中不包括所述待老化的LSA,且本地路由器没有和任一邻居路由器处于建立邻接关系状态,则获取所述待老化的LSA的生成时间,并计算当前时间与所述待老化的LSA的生成时间的时间差;

若所述时间差大于一个特定LSA生成的最小间隔值,则删除本地LSA数据库中所述待老化的LSA对应的链路状态信息,以及删除本地老化链表中所述待老化的LSA对应的LSA标识。

2.根据权利要求1所述的方法,其特征在于,所述判断邻居重传链表中是否包括所述待老化的LSA之后,还包括:若所述邻居重传链表中包括所述待老化的LSA,则检测所述邻居重传链表,直至所述邻居重传链表中不包含所述待老化的LSA后,且本地路由器没有和任一邻居路由器处于建立邻接关系状态,再获取所述待老化的LSA的生成时间,并计算当前时间与所述待老化的LSA的生成时间的时间差。

3.根据权利要求1所述的方法,其特征在于,所述判断邻居重传链表中是否包括所述待老化的LSA之后,还包括:若所述邻居重传链表中不包括所述待老化的LSA,且本地路由器和邻居路由器处于建立邻接关系状态,则检测所述邻接关系状态,直至本地路由器没有和任一邻居路由器处于建立邻接关系状态后,再获取所述待老化的LSA的生成时间,并计算当前时间与所述待老化的LSA的生成时间的时间差。

4.根据权利要求1至3任一项所述的方法,其特征在于,所述获取所述待老化的LSA的生成时间具体包括:若本地老化链表中所述待老化的LSA对应的LSA标识为LSA名称和LSA生成时间,则从本地老化链表中获取所述待老化的LSA的生成时间;

若本地老化链表中所述待老化的LSA对应的LSA标识为LSA名称,则从本地LSA数据库的所述待老化的LSA对应的链路状态信息中获取所述待老化的LSA的生成时间。

5.根据权利要求1至3任一项所述的方法,其特征在于,所述计算当前时间与所述待老化的LSA的生成时间的时间差之后,还包括:若所述时间差不大于预设的LSA生成间隔值时,则对所述待老化的LSA添加延迟删除标志,并延迟删除所述待老化的LSA,以及定时计算所述时间差,直至所述时间差大于预设的时间值时,再删除本地LSA数据库中所述待老化的LSA对应的链路状态信息,以及删除本地老化链表中所述待老化的LSA对应的LSA标识。

6.根据权利要求1所述的方法,其特征在于,所述方法还包括:

接收邻居路由器发送的至少一个待老化的LSA,并将所述至少一个待老化的LSA存入本地老化链表中;和/或根据OSPF协议确定本地至少一个待老化的LSA,并将所述至少一个待老化的LSA存入本地老化链表中。

7.一种基于开发式最短路径优先OSPF的LSA删除装置,其特征在于,所述装置应用于OSPF路由器上,包括:判断单元,用于当需要删除本地老化链表中任一待老化的链路状态广播LSA时,判断邻居重传链表中是否包括所述待老化的LSA;

获取单元,用于若所述邻居重传链表中不包括所述待老化的LSA,且本地路由器没有和任一邻居路由器处于建立邻接关系状态,则获取所述待老化的LSA的生成时间,并计算当前时间与所述待老化的LSA的生成时间的时间差;

删除单元,用于若所述时间差大于一个特定LSA生成的最小间隔值,则删除本地LSA数据库中所述待老化的LSA对应的链路状态信息,以及删除本地老化链表中所述待老化的LSA对应的LSA标识。

8.根据权利要求7所述的装置,其特征在于,所述装置还包括:

检测单元,用于若所述邻居重传链表中包括所述待老化的LSA,则检测所述邻居重传链表,直至所述邻居重传链表中不包含所述待老化的LSA后,且本地路由器没有和任一邻居路由器处于建立邻接关系状态,再获取所述待老化的LSA的生成时间,并计算当前时间与所述待老化的LSA的生成时间的时间差;以及,若所述邻居重传链表中不包括所述待老化的LSA,且本地路由器和邻居路由器处于建立邻接关系状态,则检测所述邻接关系状态,直至本地路由器没有和任一邻居路由器处于建立邻接关系状态后,再获取所述待老化的LSA的生成时间,并计算当前时间与所述待老化的LSA的生成时间的时间差。

9.根据权利要求7所述的装置,其特征在于,所述装置还包括:

延迟单元,用于若所述时间差不大于预设的LSA生成间隔值时,则对所述待老化的LSA添加延迟删除标志,并延迟删除所述待老化的LSA,以及定时计算所述时间差,直至所述时间差大于预设的时间值时,再删除本地LSA数据库中所述待老化的LSA对应的链路状态信息,以及删除本地老化链表中所述待老化的LSA对应的LSA标识。

10.根据权利要求7所述的装置,其特征在于,所述装置还包括:

接收单元,用于接收邻居路由器发送的至少一个待老化的LSA,并将所述至少一个待老化的LSA存入本地老化链表中;和/或根据OSPF协议确定本地至少一个待老化的LSA,并将所述至少一个待老化的LSA存入本地老化链表中。

说明书 :

基于OSPF的LSA删除方法及装置

技术领域

[0001] 本发明涉及网络通信技术领域,尤其涉及基于OSPF的LSA删除方法及装置。

背景技术

[0002] 开放式最短路径优先(Open Shortest Path First,OSPF)是目前使用最广泛的一种内部网关协议(Interior Gateway Protocol,IGP)。OSPF域内路由器计算路由的一致性是以各个路由器自身的LSA数据库的一致为前提的。
[0003] 现有技术中,在生成一个LSA时,一般需要记录该LSA的生成时间,下次再生成LSA时需要计算当前时间与上一次生成时间的差值,如果小于MinLSInterval秒则延迟生成,否则可直接生成。其中,MinLSInterval秒指的是生成一个特定LSA的最小间隔,其值一般设为5秒;MinLSArrival秒指的是对于特定的LSA,在洪泛过程中接受到LSA新实例之间必须间隔的时间,其值一般设为1秒。
[0004] 上述生成LSA的方法皆是建立在本地OSPF路由器保存有上一次生成的LSA的基础上,并不适用于上一次生成的LSA已经被老化的情形。而现有的LSA删除方法一般为:当OSPF路由器需要老化一个LSA时,则将该LSA置为无效,并从自身的LSA数据库中删除该LSA对应的所有信息。
[0005] 但是,由于LSA老化后很快被删除,使得再生成该LSA时,无法判断此次生成时间是否合适,从而容易导致OSPF区域内的各个LSA数据库中保存的数据出现不一致。

发明内容

[0006] 本发明提供基于OSPF的LSA删除方法及装置,以解决现有技术中由于LSA老化后很快被删除,使得再生成该LSA时,无法判断此次生成时间是否合适,从而容易导致OSPF区域内的各个LSA数据库中保存的数据出现不一致的问题。
[0007] 根据本发明实施例的第一方面,提供一种基于OSPF的LSA删除方法,所述方法应用于OSPF路由器上,包括:
[0008] 当需要删除本地老化链表中任一待老化的链路状态广播LSA时,判断邻居重传链表中是否包括所述待老化的LSA;
[0009] 若所述邻居重传链表中不包括所述待老化的LSA,且本地路由器没有和任一邻居路由器处于建立邻接关系状态,则获取所述待老化的LSA的生成时间,并计算当前时间与所述待老化的LSA的生成时间的时间差;
[0010] 若所述时间差大于预设的LSA生成间隔值,则删除本地LSA数据库中所述待老化的LSA对应的链路状态信息,以及删除本地老化链表中所述待老化的LSA对应的LSA标识。
[0011] 根据本发明实施例的第二方面,提供一种基于OSPF的LSA删除装置,所述装置应用于OSPF路由器上,包括:
[0012] 判断单元,用于当需要删除本地老化链表中任一待老化的链路状态广播LSA时,判断邻居重传链表中是否包括所述待老化的LSA;
[0013] 获取单元,用于若所述邻居重传链表中不包括所述待老化的LSA,且本地路由器没有和任一邻居路由器处于建立邻接关系状态,则获取所述待老化的LSA的生成时间,并计算当前时间与所述待老化的LSA的生成时间的时间差;
[0014] 删除单元,用于若所述时间差大于预设的LSA生成间隔值,则删除本地LSA数据库中所述待老化的LSA对应的链路状态信息,以及删除本地老化链表中所述待老化的LSA对应的LSA标识。
[0015] 应用本发明实施例,当需要删除本地老化链表中任一待老化的LSA时,判断邻居重传链表中是否包括该待老化的LSA,若邻居重传链表中不包括待老化的LSA,且本地路由器没有和任一邻居路由器处于建立邻接关系状态,则获取待老化的LSA的生成时间,并计算当前时间与待老化的LSA的生成时间的时间差,若计算得到的时间差大于预设的LSA生成间隔值,则删除本地LSA数据库中待老化的LSA对应的链路状态信息,以及删除本地老化链表中待老化的LSA对应的LSA标识,从而实现了待老化的LSA不会很快被删除,只有符合删除条件后才能被删除,进而保证了LSA生成后,在预设的LSA生成间隔值内仍然存在,从而避免邻居路由器接收LSA时出现丢包。

附图说明

[0016] 图1是应用本发明实施例基于OSPF的LSA删除的应用场景示意图;
[0017] 图2是本发明基于OSPF的LSA删除方法的一个实施例流程图;
[0018] 图3是本发明基于OSPF的LSA删除方法的另一个实施例流程图;
[0019] 图4是本发明基于OSPF的LSA删除装置所在设备的一种硬件结构图;
[0020] 图5是本发明基于OSPF的LSA删除装置的一个实施例框图。

具体实施方式

[0021] 为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
[0022] 参见图1,为应用本发明实施例基于OSPF的LSA删除的应用场景示意图:
[0023] 图1中示出了一种多个OSPF路由器的组网架构。该多个OSPF路由器计算路由的一致性是以各个OSPF路由器自身的LSA数据库的一致为前提的。
[0024] 其中,每一台OSPF路由器都会把所有有效的链路状态广播(Link-State Advertisement,LSA)放入自身的LSA数据库中,并利用这些LSA计算路由,因此,保证同一OSPF区域内的各个LSA数据库的统一性和正确性就显得尤为重要。
[0025] OSPF协议规定:当OSPF路由器接收到一个LSA时,若本地LSA数据库中包括该LSA,而且本地LSA数据库的LSA是在MinLSArrival秒内通过洪泛加入本地LSA数据库的,则丢弃新接收的LSA,所以要求OSPF路由器发送LSA的时间间隔不能小于MinLSInterval秒。其中,MinLSInterval秒指的是生成一个特定LSA的最小间隔,其值一般设为5秒;MinLSArrival秒指的是对于特定的LSA,洪泛过程中接收到LSA新实例之间必须间隔的时间,其值一般设为1秒。
[0026] 比如:如图1所示,当OSPF路由器2的某个LSA频繁更新时,该频繁更新的LSA包括LSA1和LSA2,其中,LSA2为较新的LSA,LSA2在LSA1之后很短的时间内向OSPF路由器1和OSPF路由器3洪泛,此时还未收到OSPF路由器1和OSPF路由器3对LSA1的确认报文,则会将邻居重传链表上的LSA1替换为LSA2,而之后收到OSPF路由器1和OSPF路由器3对LSA1的确认报文,由于接收到的确认报文没有对应的LSA1或LSA2的具体内容,无法判断是LSA1的确认报文还是LSA2的确认报文,所以OSPF路由器2也会将LSA2从邻居重传链表上删除。而OSPF路由器1和OSPF路由器3也由于接收间隔时间在MinLSArrival内即MinLSArrival检查,而丢弃LSA2,从而OSPF路由器2、OSPF路由器1或OSPF路由器3的LSA数据库中保存的数据不一致。因此,为了避免上述确认乱序问题,还是要求各个路由器在发送LSA时间隔不能小于MinLSInterval秒。
[0027] 现有技术中,在生成一个LSA时,一般需要记录该LSA的生成时间,下次再生成LSA时需要计算当前时间与上一次生成时间的差值,如果小于MinLSInterval秒则延迟生成,否则可直接生成。
[0028] 其中,MinLSInterval秒指的是生成一个特定LSA的最小间隔,其值一般设为5秒;MinLSArrival秒指的是对于特定的LSA,在洪泛过程中接受到LSA新实例之间必须间隔的时间,其值一般设为1秒。
[0029] 另外,LSA的生成有两个触发条件,一个是LSA的内容变化,比如,LSA的网段、掩码、花销等信息发生变化;另一个是LSA的定时刷新。
[0030] 上述生成LSA的方法皆是建立在本地OSPF路由器保存有上一次生成的LSA的基础上,并不适用于上一次生成的LSA已经被老化的情形。而现有的LSA删除方法一般为:当OSPF路由器需要老化一个LSA时,则将该LSA置为无效,并从自身的LSA数据库中删除该LSA对应的所有信息。但是,由于LSA老化后很快被删除,使得再生成该LSA时,无法判断此次生成时间是否合适,从而容易导致OSPF区域内的各个LSA数据库中保存的数据出现不一致。
[0031] 而本发明实施例中,当OSPF路由器需要老化一个LSA时,不是将该LSA很快删除,而是将该LSA挂在本地老化链表上,等待一段时间后,判断该LSA是否需要删除,当符合删除条件,则删除该LSA,若不符合删除条件,则延迟删除该LSA,直至符合删除条件后再删除,从而保证了LSA生成后,在MinLSInterval秒内仍然存在,进而保证了OSPF区域内的各个LSA数据库中保存的数据出现不一致。
[0032] 下面结合附图对本发明基于OSPF的LSA方法的实施例进行详细描述。
[0033] 参见图2,为本发明基于OSPF的LSA删除方法的一个实施例流程图,该实施例可以应用于OSPF路由器上,包括以下步骤:
[0034] 步骤210:当需要删除本地老化链表中任一待老化的LSA时,判断邻居重传链表中是否包括该待老化的LSA。其中,本地老化链表可以下挂多个待老化的LSA。
[0035] 具体地,本地路由器自身生成新的LSA或者接收到的新的LSA后,要将该新的LSA向其它的邻居路由器洪泛即扩散。为了保证邻居路由器确实接收到该新的LSA,需要将该新的LSA挂到邻居重传链表上。若接收到邻居路由器回复的确认信息,则从邻居重传链表上删除该新的LSA;若没有接收到邻居路由器回复的确认信息,则会定时继续给邻居路由器重传该新的LSA。所以,由于邻居重传链表的存在,能够确保新的LSA准确传输。当邻居重传链表中包括待老化的LSA,表明该待老化的LSA还需要重传,不能删除;当邻居重传链表中不包括待老化的LSA,表明该待老化的LSA不需要重传,是否需要删除该待老化的LSA还需要进一步地分析。
[0036] 其中,该待老化的LSA为旧的LSA,区分LSA的新旧可以采用现有的OSPF协议中规定的LSA的新旧判断原则,在这里不再赘述。
[0037] 步骤220:若邻居重传链表中不包括待老化的LSA,且本地路由器没有和任一邻居路由器处于建立邻接关系状态,则获取待老化的LSA的生成时间,并计算当前时间与待老化的LSA的生成时间的时间差。
[0038] 具体地,当本地路由器和任一邻居路由器处于建立邻接关系状态时,本地路由器和邻居路由器需要交换各自的LSA数据库。为了保证各个LSA数据库中保存的数据的一致性,此时不能删除LSA数据库中的数据。
[0039] 步骤230:若计算得到的时间差大于预设的LSA生成间隔值,则删除本地LSA数据库中待老化的LSA对应的链路状态信息,以及删除本地老化链表中待老化的LSA对应的LSA标识。其中,预设的LSA生成间隔值一般为5秒,LSA标识可以是LSA的名称,也可以是LSA的名称和LSA的生成时间。
[0040] 具体地,当时间差大于预设的LSA生成间隔值时,表明在LSA生成后,在预设的LSA生成间隔值即MinLSInterval秒内仍然存在,并符合其他的删除条件,则可以删除该待老化的LSA。
[0041] 在一个实施例中,当获取待老化的LSA的生成时间时,可以根据待老化的LSA的生成时间保存的位置不同,而采用不同的获取方式,具体如下:
[0042] 第一:保存在本地老化链表中。
[0043] 具体为:若本地老化链表中待老化的LSA对应的LSA标识为LSA名称和LSA生成时间,则从本地老化链表中获取该待老化的LSA的生成时间。
[0044] 第二:保存在本地LSA数据库中。
[0045] 具体为:若本地老化链表中待老化的LSA对应的LSA标识为LSA名称,则从本地LSA数据库的待老化的LSA对应的链路状态信息中获取该待老化的LSA的生成时间。
[0046] 另一个实施例中,本地老化链表的数据来源由以下两种来源方式或者以下两种来源方式的结合:
[0047] 第一:接收邻居路由器发送的至少一个待老化的LSA,并将接收到的待老化的LSA存入本地老化链表中。
[0048] 第二:根据OSPF协议确定本地至少一个待老化的LSA,并将确定的待老化的LSA存入本地老化链表中。
[0049] 另外,当待老化的LSA存入本地老化链表之后,可以启动老化定时器,只有该老化定时器超时后才可以启动是否需要删除该待老化的LSA的判断识别。
[0050] 因此,本发明实施例中当需要删除本地老化链表中任一待老化的LSA时,判断邻居重传链表中是否包括该待老化的LSA,若邻居重传链表中不包括待老化的LSA,且本地路由器没有和任一邻居路由器处于建立邻接关系状态,则获取待老化的LSA的生成时间,并计算当前时间与待老化的LSA的生成时间的时间差,若计算得到的时间差大于预设的LSA生成间隔值,则删除本地LSA数据库中待老化的LSA对应的链路状态信息,以及删除本地老化链表中待老化的LSA对应的LSA标识,从而实现了待老化的LSA不会很快被删除,只有符合删除条件后才能被删除,进而保证了LSA生成后,在预设的LSA生成间隔值内仍然存在,从而避免邻居路由器出现丢包。
[0051] 参见图3,为本发明基于OSPF的LSA删除方法的另一个实施例流程图,该实施例可以应用于OSPF路由器上,并是对图2所示实施例的进一步扩充,该实施例包括以下步骤:
[0052] 步骤310:当需要删除本地老化链表中任一待老化的LSA时,判断邻居重传链表中是否包括该待老化的LSA,若是,则执行步骤320;否则执行步骤330。
[0053] 步骤320:检测邻居重传链表,直至所述邻居重传链表中不包含所述待老化的LSA后,且本地路由器没有和任一邻居路由器处于建立邻接关系状态,再获取待老化的LSA的生成时间,并计算当前时间与所述待老化的LSA的生成时间的时间差,然后,执行步骤360。
[0054] 步骤330:判断本地路由器和邻居路由器处于建立邻接关系状态,若本地路由器和至少一个邻居路由器处于建立邻接关系状态,则执行步骤340;若本地路由器没有和任一邻居路由器处于建立邻接关系状态,则执行步骤350。
[0055] 步骤340:检测邻接关系状态,直至本地路由器没有和任一邻居路由器处于建立邻接关系状态后,再获取待老化的LSA的生成时间,并计算当前时间与所述待老化的LSA的生成时间的时间差,然后,执行步骤360。
[0056] 步骤350:获取待老化的LSA的生成时间,并计算当前时间与所述待老化的LSA的生成时间的时间差,然后,执行步骤360。
[0057] 步骤360:判断计算得到的时间差是否大于预设的LSA生成间隔值,若是,则执行步骤370;否则,执行步骤380。
[0058] 步骤370:删除本地LSA数据库中待老化的LSA对应的链路状态信息,以及删除本地老化链表中待老化的LSA对应的LSA标识,流程结束。
[0059] 步骤380:对待老化的LSA添加延迟删除标志,并延迟删除待老化的LSA,以及定时计算当前时间与所述待老化的LSA的生成时间的时间差,直至该时间差大于预设的时间值时,再删除本地LSA数据库中待老化的LSA对应的链路状态信息,以及删除本地老化链表中待老化的LSA对应的LSA标识,流程结束。
[0060] 其中,添加延迟删除标志的目的是为了和本地LSA数据库中可供正常使用的LSA进行区分,该被标识延迟删除的LSA在OSPF协议上看来是已经不存在的,只是强制让它在本地LSA数据库中再保留一段时间,但它不会像可供正常使用的LSA那样被同步,这样不会影响OSPF协议的正常功能,所以当某LSA不存在本地LSA数据库中时表明这个时间点是可以重新生成新的LSA的。
[0061] 因此,本发明实施例中利用延迟删除机制,一方面可以保证了LSA生成后,在MinLSInterval秒内仍然存在,从而避免邻居路由器MinLSArrival检查时出现丢包;另一方面也可以抑制OSPFv3中链路状态ID(Link State ID,LSID)增长过快。
[0062] 以五类LSA为例,在OSPFv3中对该五类LSA中的LSID进行设置时,现有的方法一般采用记录已分配的最大LSID,如果新生成LSA时,则用最大的LSID加1,但是在LSA频繁老化、生成时,老化则将原来的LSA从数据库中删除,紧接着又要生成新的LSA,每次都是使用最大的LSID加1,从而导致LSID增加的会很快。而本发明实施例中采用延迟删除机制,在生成一个新的LSA时,肯定会先查找本地LSA数据库中时否存在该LSA,如果存在则会使用同一个LSID,使得LSID增加的不会过快。
[0063] 与前述基于OSPF的LSA删除方法的方法实施例相对应,本发明还提供了基于OSPF的LSA删除装置的实施例。
[0064] 本发明基于OSPF的LSA删除装置的实施例可以应用在OSPF路由器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本发明基于OSPF的LSA删除装置所在设备的一种硬件结构图,除了图4所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等;从硬件结构上来讲该设备还可能是分布式的设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。
[0065] 参见图5,为本发明基于OSPF的LSA删除装置的一个实施例框图,所述装置可以应用在OSPF路由器上,所述装置包括:判断单元51、获取单元52和删除单元53。
[0066] 其中,判断单元51用于当需要删除本地老化链表中任一待老化的链路状态广播LSA时,判断邻居重传链表中是否包括所述待老化的LSA。
[0067] 获取单元52用于若所述邻居重传链表中不包括所述待老化的LSA,且本地路由器没有和任一邻居路由器处于建立邻接关系状态,则获取所述待老化的LSA的生成时间,并计算当前时间与所述待老化的LSA的生成时间的时间差。
[0068] 删除单元53用于若所述时间差大于预设的LSA生成间隔值,则删除本地LSA数据库中所述待老化的LSA对应的链路状态信息,以及删除本地老化链表中所述待老化的LSA对应的LSA标识。
[0069] 在一个可选的实现方式中,所述基于OSPF的LSA删除装置可以包括:检测单元(图5中未示出)。
[0070] 其中,检测单元用于若所述邻居重传链表中包括所述待老化的LSA,则检测所述邻居重传链表,直至所述邻居重传链表中不包含所述待老化的LSA后,且本地路由器没有和任一邻居路由器处于建立邻接关系状态,再获取所述待老化的LSA的生成时间,并计算当前时间与所述待老化的LSA的生成时间的时间差;以及,若所述邻居重传链表中不包括所述待老化的LSA,且本地路由器和邻居路由器处于建立邻接关系状态,则检测所述邻接关系状态,直至本地路由器没有和任一邻居路由器处于建立邻接关系状态后,再获取所述待老化的LSA的生成时间,并计算当前时间与所述待老化的LSA的生成时间的时间差。
[0071] 在另一个可选的实现方式中,所述基于OSPF的LSA删除装置可以包括:延迟单元(图5中未示出)。
[0072] 其中,延迟单元用于若所述时间差不大于预设的LSA生成间隔值时,则对所述待老化的LSA添加延迟删除标志,并延迟删除所述待老化的LSA,以及定时计算所述时间差,直至所述时间差大于预设的时间值时,再删除本地LSA数据库中所述待老化的LSA对应的链路状态信息,以及删除本地老化链表中所述待老化的LSA对应的LSA标识。
[0073] 在另一个可选的实现方式中,所述基于OSPF的LSA删除装置可以包括:接收单元(图5中未示出)。
[0074] 其中,接收单元用于接收邻居路由器发送的至少一个待老化的LSA,并将所述至少一个待老化的LSA存入本地老化链表中;和/或根据OSPF协议确定本地至少一个待老化的LSA,并将所述至少一个待老化的LSA存入本地老化链表中。
[0075] 上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0076] 对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0077] 由上述实施例可见,当需要删除本地老化链表中任一待老化的LSA时,判断邻居重传链表中是否包括该待老化的LSA,若邻居重传链表中不包括待老化的LSA,且本地路由器没有和任一邻居路由器处于建立邻接关系状态,则获取待老化的LSA的生成时间,并计算当前时间与待老化的LSA的生成时间的时间差,若计算得到的时间差大于预设的LSA生成间隔值,则删除本地LSA数据库中待老化的LSA对应的链路状态信息,以及删除本地老化链表中待老化的LSA对应的LSA标识,从而实现了待老化的LSA不会很快被删除,只有符合删除条件后才能被删除,进而保证了LSA生成后,在预设的LSA生成间隔值内仍然存在,从而避免邻居路由器出现丢包。
[0078] 本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
[0079] 应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。