链路故障处理方法及数据转发装置的制作方法

文档序号:7665773阅读:102来源:国知局
专利名称:链路故障处理方法及数据转发装置的制作方法
技术领域
本发明涉及通信技术,尤其是链路故障处理方法及数据转发装置。
背景技术
随着网络的飞速普及以及网络应用的不断丰富,网络上的流量不断膨胀, 网络规模也越来越大,其中的网络设备也越来越难以维护与管理。为此,要
求网络设备具备的一个越来越重要的特征就是要求网络设备具有故障检测 功能,以便于相邻网络设备之间的路径在通信过程中的出现故障时,网络设 备可以对该故障进行快速检测,较快地建立起替代故障通信通道的新通信通 道,或者将通信由故障通信通道切换到其它链路进行。现有的一些网络设备, 例如同步数字体系(Synchronous Digital Hierarch,以下简称SDH )设备、 弹性分组环(Resilient Packet Ring,以下简称RPR),已经具有上述的故障 检测功能。但是,仍有很多硬件与软件不具有上述的故障检测功能,例如 转发引擎、互联网协议(InternetProtocol,以下简称IP)数据报文转发设备 的接口等,无法实现端到端的检测。
现有的网络系统中, 一般采用慢Hello机制对网络设备之间的路径进行 故障检测,在没有硬件设备的帮助下,故障检测所需时间较长,例如采用 开放最短路径优先(Open Shortest Path First,以下简称OSPF)协议对网络 设备之间的路径进行故障检测需要2秒左右的检测时间,利用中间系统到中 间系统(Intermediate System-to-intermediate System,以下简称ISIS)协议 对网络设备之间的路径进行故障检测需要1秒左右的检测时间,在数据传输 速率较高时,例如数据传输速率达到吉比特数量级时,较长的检测时间会
导致大量数据丢失;并且,上述对路径进行故障检测需要网络设备节点支持路由协议,对于不支持路由协议的节点,无法进行链路状态检测。
为了提高网络设备之间路径的故障检测速度,缩短故障检测时间,现有
技术在网络设备中增加了双向故障检测(Bidirectional Failure Detection,以下 简称BFD)模块,由该BFD模块来快速发送故障检测数据包,从而实现对 链路故障的快速检测。通过BFD模块,能够对网络系统中或网络系统之间的 任何类型的数据通道,例如直接的物理链路、虚电路、隧道、多协议标记 交换(Multi-Protocol Label Switch,以下简称MPLS )的标记交换通道(Label SwitchedPath,以下简称LSP)、多跳路由通道、以及非直接的通道等,进 行故障检测。当BFD模块检测到链路故障时,通知网络设备中的上层应用模 块,例如内部网关协议(Interior Gateway Protocol,以下简称IGP)才莫块、 边界网关协议(Border Gateway Protocol,以下简称BGP)才莫块、MPLS才莫 块、组播模块等,由上层应用模块对根据检测到的故障进行相应的处理。
如图1所示,为现有技术利用BFD协议进行链路故障检测的流程图,以 路由器A中的BFD模块进行故障检测为例,其包括如下步骤
步骤101 ,路由器A中的BFD模块超时没有接收到路由器B中的BFD 模块发送的BFD报文,认为路由器A与路由器B之间的链路出现故障;
步骤102,路由器A中的BFD模块向该路由器A中的IGP模块发送BFD 报文掉线(BFD Session Down)的通知消息;
步骤103,路由器A中的IGP冲莫块断开路由器A与路由器B之间的邻居 关系,并据此生成表示路由器A周围网络拓朴结构的新链路状态信息,将网 络拓朴变化的信息扩散(Flooding )到同一 自治域内的所有其它路由器;同时, 向路由器A中的BFD模块发送删除BFD会话的通知消息;
步骤104,路由器A中的BFD模块删除BFD会话。
在路由器A与路由器B之间的链路故障消除后,路由器A中的IGP模 块依靠慢握手(Hello)机制重新发现邻居路由器B,并建立与路由器B之间 的邻居关系,计算到路由器B的路由,并指示路由器A中的BFD模块重新创建BFD会话。
在实现发明的过程中发现,发明人发现现有技术中至少存在以下问题 BFD模块检测到链路故障时,IGP模块断开与采用该故障链路的相应路 由器之间的邻居关系,生成新链路状态信息将网络拓朴变化的信息扩散到同 一自治域内的所有路由器,并通知BFD模块删除BFD报文,在故障链路恢 复后,IGP模块再依靠自身的慢Hello机制重新发现邻居路由器建立与该邻居 路由器之间的邻居关系,计算到该邻居路由器的路由,此时,若路由器之间 的链路出现闪断情况,即可以快速恢复的短暂链路失效,链路失效的时间 小于Hello报文的发送周期,例如该链路失效的时间为毫秒级,则由于IGP 模块发送Hello报文的缺省时间比较长, 一般为10秒,重新建立邻居关系所 需的时间较长,此时,即使故障链路提前恢复,也需要等待IGP模块重新建 立邻居关系,并进行路由计算后才可使用该链路,IGP模块的收敛时间较长, 降低了故障链路恢复的收敛性能;并且,大量的路由计算耗费了路由器的大 量中央处理器(Central Processing Unit,以下简称CPU)资源,影响了路由 器的工作性能。

发明内容
本发明实施例所要解决的技术问题是缩短数据转发装置间链路闪断时 的收敛时间,提高故障链路恢复的收敛性能,节约数据转发装置的CPU资源, 提高数据转发装置的工作性能。
才艮据本发明的第一个方面,提供的一种链路故障处理方法包括以下步骤
检测到一链路发生故障,启动一定时器;
发送故障检测会话掉线通知;
所述定时器超时前接收到检测报文,保持与通过所述链路连接的邻居路 由设备的邻居关系,生成路由信息,发送所述路由信息。
根据本发明的第二个方面,提供的一种数据转发装置,包括
7计时模块,用于计时;
报文接收模块,用于接收检测报文,并与计时模块连接;
故障检测模块,用于利用所接收到的检测报文检测与该装置相连接的链
路是否发生故障;
邻居关系管理单元,用于在检测到链路故障后在计时模块超时前通过所 述链路接收到检测报文时,保持与通过该链路连接的邻居路由设备的邻居关 系;
通知单元,用于发送链路故障检测会话掉线通知;
上层应用模块,用于生成表示所述数据转发装置周围网络拓朴结构的链 路状态路由信息并发送所述路由信息。
本发明实施例在第一数据转发装置与第二数据转发装置之间的链路闪断 时,保持第一数据转发装置与第二数据转发装置之间的邻居关系,这样,在 故障链路恢复时,不需要等待数据转发装置依靠自身的慢Hello机制重新发 现邻居数据转发装置并重新建立二者之间的邻居关系,计算二者之间的路由, 与现有技术相比,缩短了上层应用模块的收殓时长,提高了其收殓性能;并 且,由于不需要重新进行路由计算,节省了数据转发装置的CPU资源,提高 了其工作性能。


图1为现有技术利用BFD协议进行链路故障检测的流程图。 图2为本发明链路故障处理方法第一实施例的流程图。 图3为本发明链路故障处理方法第二实施例的流程图。 图4为本发明链路故障处理方法第三实施例的流程图。 图5为本发明数据转发装置第一实施例的结构示意图。 图6为本发明数据转发装置第二实施例的结构示意图。 图7为本发明数据转发装置第三实施例的结构示意图。图8为本发明数据转发装置第四实施例的结构示意图。 图9为本发明数据转发装置第五实施例的结构示意图。 图IO为本发明数据转发装置第六实施例的结构示意图。
具体实施例方式
本发明实施例在第一数据转发装置与第二数据转发装置之间的链路闪断 时,保持第一数据转发装置与第二数据转发装置之间的邻居关系,这样,在 链路故障恢复后,不需要重新发现并建立第一数据转发装置与第二数据转发 装置之间的邻居关系,从而缩短数据转发装置间链路闪断时的收敛时间,提 高故障链路恢复的收敛性能,避免路由计算洪泛,节约数据转发装置的CPU
资源,提高数据转发装置的工作性能。
本发明以下各实施例的数据转发装置可以是以IP为基础的数据转发设
备,例如路由器。数据转发装置中,故障检测模块可以是BFD模块或RPR 环;上层应用模块可以是IGP模块、BGP模块、MPLS模块或组播模块。以 下以路由器作为数据转发装置,以BFD模块作为故障检测模块,以IGP模块 作为上层应用模块为例,对本发明的实施例进行说明。其中,不同数据转发 装置中BFD模块之间发送的故障检测报文为BFD报文。
本发明实施例提供的一种链路故障处理方法,包括以下步骤;险测到一 链路发生故障,启动一定时器;发送故障检测会话掉线通知;所述定时器超 时前接收到检测报文,保持与通过所述链路连接的邻居路由设备的邻居关系, 生成路由信息,发送所述路由信息。
如图2所示,为本发明链路故障处理方法第一实施例的流程图,其包括 以下步骤
步骤201 ,第一路由器中的第一 BFD模块在预定的BFD会话接收时刻未 接收到第二路由器发送的BFD会话时,获知第一路由器与第二路由器之间的 链路发生故障,启动定时模块开始计时。步骤202,第一 BFD模块向第一路由器中的第一 IGP模块发送BFD会 话掉线的掉线通知消息。
步骤203 ,第一 IGP模块保持第 一路由器与第二路由器之间的邻居关系, 生成表示第一路由器与第二路由器之间的链路断开后第一路由器周围网络拓 朴结构的新链路状态报文,并将其发送到同一 自治域内的其它路由器。
步骤204,第一BFD模块根据定时模块的计时信息,判断在距离未接收
是否接收到第二路由器发送的BFD报文,该闪断时长为定时器上预先设置的 时长,在该时长范围内通过第一路由器与第二路由器之间的链路接收到第二 路由器发送的BFD会话,表示链路发生闪断,超越该时长未接收到第二路由 器发送的BFD会话,则表示链路发生非闪断故障,若在闪断时长内接收到第 二路由器发送的BFD报文,执行步骤205,否则,执行步骤207。
具体地,上述闪断时长小于Hello报文的发送周期。所述时间通过定时 器模块计时,在定时器超时前收到第二路由器发送的BFD报文则表示链路发 生闪断故障,定时器超时,没有收到第二路由器发送的BFD报文则表示链路 发生非闪断故障。
步骤205 ,第一 BFD模块向第一 IGP模块发送接收到第二路由器发送的 BFD报文(BFD Session Up )的BFD恢复通知消息。
步骤206,第一 IGP模块生成新链路状态报文,并将其扩散到第一路由 器自治域内的其它路由器,该新链路状态报文表示第 一路由器与第二路由器 之间的链路恢复后第一路由器周围网络拓朴结构。
步骤207,第一 BFD模块向第一 IGP模块发送与第二路由器之间的链路 出现故障的链路故障通知消息。
步骤208,第一 IGP模块断开与第二路由器之间的邻居关系,生成表示 第 一路由器的新的邻居关系的邻居关系表并存储。
步骤209,第一 IGP模块通知第一 BFD模块删除该第一 BFD模块生成的BFD报文。
步骤210,第一 BFD模块删除该第一 BFD模块生成的BFD报文。
若第 一路由器与第二路由器之间的邻居关系断开,且BFD会话已被删除, 则第 一路由器与第二路由器之间的链路故障消除后,第二路由器无法重新向 第 一路由器中的第一 BFD模块发送BFD会话,需要第一 IGP模块依靠HELLO 机制去重新发现第一路由器,建立与第一路由器之间的邻居关系,并对第一 路由器与第二路由器之间的路由进行计算。
由于第一路由器与第二路由器之间的邻居关系保持,在第一路由器与第 二路由器之间的链路故障消除后,第一路由器便可接收到第二路由器发送的 BFD报文,而不需要等待IGP模块依靠自身的慢Hello机制重新发现邻居路 由器并重新建立二者之间的邻居关系,计算二者之间的路由,缩短了 IGP模 块的收殓时长,提高了其收敛性能,并且,由于减少了路由计算,节省了路 由器的CPU资源,提高了其工作性能。
如图3所示,为本发明链路故障处理方法第二实施例的流程图,其包括 以下步骤
步骤301,第一路由器中的第一 BFD模块在预定的BFD会话接收时刻未 接收到第二路由器发送的BFD会话时,获知第一路由器与第二路由器之间的 链路发生故障,启动定时模块开始计时。
步骤302,第一 BFD模块向第一路由器中的第一 IGP模块发送BFD会 话掉线的掉线通知消息。
步骤303,第一 IGP模块保持第一路由器与第二路由器之间的邻居关系, 生成表示第一路由器与第二路由器之间的链路断开后第一路由器周围网络拓 朴结构的新链路状态报文,并将其扩散到同 一 自治域内的其它路由器。
步骤304,第一 IGP模块根据定时模块的计时信息,判断在距离第一 IGP 模块发送的BFD会话掉线的掉线通知消息起的闪断时长内,是否接收到第一 BFD模块发送的接收到第二路由器发送的BFD报文的BFD恢复通知消息,所述闪断时长为定时器上预先设置的时长,在该时长范围内接收到第二路由
器发送的BFD会话,表示链路发生闪断,超越该时长未接收到第二路由器发 送的BFD会话,则表示链路发生非闪断故障,若在闪断时长内接收到第二路 由器发送的BFD报文,执行步骤305,否则,执行步骤306。 具体地,上述闪断时长可以小于Hello报文的发送周期。 步骤305,第一 IGP模块接收到第一 BFD模块发送的BFD恢复通知消 息时,生成表示第 一路由器与第二路由器之间的链路恢复后第 一路由器周围 网络拓4卜结构的新链路状态报文,并扩散到第 一路由器自治域内的其它路由 器。
步骤306,第一 IGP模块断开与第二路由器之间的邻居关系,生成表示 第 一 路由器的新的邻居关系的邻居关系表并存储。
步骤307,第一 IGP模块通知第一 BFD模块删除该第一 BFD模块生成 的BFD报文。
步骤308,第一BFD模块删除该第一BFD模块生成的BFD报文。 如图4所示,为本发明链路故障处理方法第三实施例的流程图,其包括 以下步骤
步骤401,第一路由器中的第一 BFD模块在预定的BFD会话接收时刻未 接收到第二路由器发送的BFD会话时,获知第一路由器与第二路由器之间的 链路发生故障,启动定时模块开始计时。
步骤402,第一BFD模块根据定时模块的计时信息,判断在距离未接收
是否接收到第二路由器发送的BFD报文,所述闪断时长为定时器上预先设置 的时长,在该时长范围内接收到第二路由器发送的BFD会话,表示链路发生 闪断,超越该时长未接收到第二路由器发送的BFD会话,则表示链路发生非 闪断故障,若在闪断时长内接收到第二路由器发送的BFD报文,执行步骤 403,否则,执行步骤404。具体地,上述闪断时长小于Hello报文的发送周期。 步骤403,第一 BFD模块不向第一 IGP模块发送BFD会话掉线的掉线 通知消息。
步骤404,第一 BFD模块向第一 IGP模块发送与第二路由器之间的链路 出现故障的链路故障通知消息。
步骤405,第一 IGP模块断开与第二路由器之间的邻居关系,生成表示 第 一路由器的新的邻居关系的邻居关系表并存储。
步骤406,第一 IGP模块通知第一 BFD模块删除该第一 BFD模块生成 的BFD才艮文。
步骤407,第一 BFD模块删除该第一 BFD模块生成的BFD报文。
本发明的上述实施例中,闪断时长可以动态变化,以适应突发事件引起 的网络变化。通常情况下, 一个正常运行的网络是稳定的,发生频繁的网络 变化的概率很小,因此,可以统计在某一时间段内,路由器与相邻路由器之 间的链路闪断的次数,如果网络拓朴变化比较频繁,则可以随着链路闪断次 数的增加而增长闪断时长,避免占用路由器的大量CPU资源。例如可以将 第一次链路闪断的闪断时长设置的较短,例如毫秒级。
如图5所示,为本发明数据转发装置第一实施例的结构示意图,该实施 例可以实现如图2与所示实施例的流程,该实施例的数据转发装置包括
计时模块,用于计时;
报文接收模块,与计时模块连接,用于接收检测报文; 第一故障检测模块,用于利用检测报文检测与该装置相连接的链路是否 发生故障;用于对数据转发装置之间的链路进行故障检测,根据计时模块的 计时信息,在数据转发装置与相邻数据转发装置之间的链路闪断时,相应生 成故障检测报文掉线的掉线通知消息或故障检测报文恢复通知消息,在数据 转发装置与相邻数据转发装置之间的链路发生非闪断故障时,生成链路故障 通知消息;第一上层应用模块,与第一故障检测模块连接,用于根据第一故障检测 模块的链路故障检测结果,对数据转发装置之间进行邻居关系管理,根据第 一故障检测模块发送的通知消息,在链路闪断时,保持数据转发装置与相邻 数据转发装置之间的邻居关系,生成表示数据转发装置周围网络拓朴结构的 新链路状态信息并扩散到同一 自治域内的相邻数据转发装置;在链路发生非 闪断故障时,断开数据转发装置与相邻数据转发装置之间的邻居关系,并指 示第 一故障检测模块删除其产生的故障检测报文。
再参见图5,其中,第一故障检测模块可以包括 报文生成单元,用于生成故障检测报文;
报文发送单元,与报文生成单元连接,用于向相邻数据转发装置发送报 文生成单元生成的故障检测报文,以及接收相邻数据转发装置发送的故障检 测报文;
第一通知单元,分别与计时模块、报文接收模块及第一上层应用模块连 接,用于根据计时模块的计时信息,在接收模块在预定报文接收时刻未接收 到相邻数据转发装置发送的故障检测报文时,生成并向第一上层应用模块发 送故障检测报文掉线的掉线通知消息,并启动计时模块开始计时,在报文接 收模块距离预定报文接收时刻的闪断时长内接收到相邻数据转发装置发送的 故障检测报文时,生成并向第一上层应用模块发送故障检测报文恢复通知消 息,在报文接收模块距离预定报文接收时刻的闪断时长内未接收到相邻数据 转发装置发送的故障检测报文时,生成并向第一上层应用模块发送链路故障 通知消息;
删除单元,分别与第一上层应用模块及报文生成单元连接,用于根据第 一上层应用模块的指示,删除报文生成单元生成的故障检测报文。 进一步地,在上述各实施例中,第一上层应用模块可以包括 链路状态管理单元,用于在数据转发装置与相邻数据转发装置之间的链 路闪断时,生成表示数据转发装置周围网络拓朴结构的新链路状态信息,并扩散到同一 自治域内的相邻数据转发装置;
第一邻居关系管理单元,用于在数据转发装置与相邻数据转发装置之间 的链路闪断时,保持数据转发装置与相邻数据转发装置之间的邻居关系,在 数据转发装置与相邻数据转发装置之间的链路发生非闪断故障时,断开数据
转发装置与相邻数据转发装置之间的邻居关系;
删除指示单元,与第一故障检测模块或其中的删除单元连接,用于在数 据转发装置与相邻数据转发装置之间的链路发生非闪断故障时,指示第一故
障检测模块或其中的删除单元删除其生成的故障检测报文;
第一调度单元,分别与链路状态管理单元、第一邻居关系管理单元、删 除指示单元与第一故障检测模块,或第一故障检测模块中的删除单元连接, 用于根据第 一故障检测模块发送的通知消息,在数据转发装置与相邻数据转 发装置之间的链路闪断时,指示链路状态管理单元生成新链路状态信息并扩 散到同一自治域内的相邻数据转发装置,在链路发生非闪断故障时,指示邻 居关系管理模块断开数据转发装置与相邻数据转发装置之间的邻居关系,并 指示删除指示模块向第 一故障检测模块发送删除故障检测报文的删除指示信

再参见图5,上述实施例中,第一上层应用模块还可以包括存储单元, 与第 一邻居关系管理单元连接,用于存储数据转发装置的邻居关系表。
另外,在上述实施例中,数据转发装置还可以包括统计模块与设置模 块。其中,统计模块与第一故障检测模块或其中的报文收发单元连接,用于 统计在某一时间段内,数据转发装置与其它数据转发装置之间的链路闪断的 次数;设置模块,分别与统计模块及计时模块连接,用于根据统计模块的统 计结果,在次数增加时,将计时模块上设置的用于表示数据转发装置与其它 数据转发装置之间的链路闪断的闪断时长增长。如图6所示,为本发明数据 转发装置第二实施例的结构示意图。
如图7所示,为本发明数据转发装置第三实施例的结构示意图,该实施例可以实现如图3所示实施例的流程,该实施例的数据转发装置包括 计时模块,用于计时;
第二故障检测模块,与计时模块连接,用于对数据转发装置之间的链路 进行故障检测,根据计时模块的计时信息,在数据转发装置与相邻数据转发 装置之间的链路闪断时,相应生成故障检测报文掉线的掉线通知消息或故障 检测报文恢复通知消息;
第二上层应用模块,分别与计时模块及第二故障检测模块连接,用于根 据第二故障检测模块的链路故障检测结果,对数据转发装置之间进行邻居关
系管理,接收到第二故障检测模块发送的掉线通知消息时,启动计时模块开 始计时,保持数据转发装置与相邻数据转发装置之间的邻居关系,生成表示 数据转发装置周围网络拓朴结构的新链路状态信息并扩散到同 一 自治域内的 相邻数据转发装置,在距离接收到第二故障检测模块发送的掉线通知消息起 的闪断时长未接收到第二故障检测模块发送的故障检测报文恢复通知消息 时,断开数据转发装置与相邻数据转发装置之间的邻居关系,并指示故障检 测模块删除产生的故障检测报文。
再参见图7,其中的第二故障检测模块可以包括
报文生成单元,用于生成故障检测报文;
报文收发单元,与报文生成单元连接,用于向相邻数据转发装置发送报 文生成单元生成的故障检测报文,以及接收相邻数据转发装置发送的故障检 测报文;
第二通知单元,分别与报文收发单元、计时模块及第二上层应用模块连 接,用于根据计时模块的计时信息,在报文收发单元在预定报文接收时刻未 接收到相邻数据转发装置发送的故障检测报文时,生成并向第二上层应用模 块发送故障检测报文掉线的掉线通知消息,并启动计时模块开始计时,在报 文收发单元距离预定报文接收时刻的闪断时长内接收到相邻数据转发装置发 送的故障检测报文时,生成并向第二上层应用模块发送故障检测报文恢复通
16知消息;
删除单元,分别与第二上层应用模块及报文生成单元连接,用于根据第 二上层应用模块的指示,删除报文生成单元生成的故障检测报文。
进一步地,图7所述实施例中的第二上层应用模块可以包括
链路状态管理单元,用于在数据转发装置与相邻数据转发装置之间的链 路闪断时,生成表示数据转发装置周围网络拓朴结构的新链路状态信息,并 扩散到同 一 自治域内的相邻数据转发装置;
第一邻居关系管理单元,用于在数据转发装置与相邻数据转发装置之间 的链路闪断时,保持数据转发装置与相邻数据转发装置之间的邻居关系,在 数据转发装置与相邻数据转发装置之间的链路发生非闪断故障时,断开数据 转发装置与相邻数据转发装置之间的邻居关系;
删除指示单元,与第二故障检测模块或其中的删除单元连接,用于在数
据转发装置与相邻数据转发装置之间的链路发生非闪断故障时,指示第二故 障检测模块或其中的删除单元删除其生成的故障检测报文;
第二调度单元,分别与链路状态管理单元、第一邻居关系管理单元、删 除指示单元、计时模块及第二故障检测模块,或第二故障检测模块中的删除 单元连接,用于根据第二故障检测模块发送的通知消息,在数据转发装置与 相邻数据转发装置之间的链路闪断时,启动计时模块开始计时,指示链路状 态管理单元生成新链路状态信息并扩散到同一 自治域内的相邻数据转发装 置,在距离接收到第二故障检测模块发送的掉线通知消息起的闪断时长内未 接收到第二故障检测模块发送的故障检测报文恢复通知消息时,指示邻居关 系管理模块断开数据转发装置与相邻数据转发装置之间的邻居关系,并指示 删除指示模块向第二故障检测模块发送删除故障检测报文的删除指示信息。
再参见图7,第二上层应用模块还可以包括存储单元,与第一邻居关系 管理单元连接,用于存储数据转发装置的邻居关系表。
另外,在上述实施例中,数据转发装置还可以包括统计模块与设置模块。其中,统计模块与第二故障检测模块或其中的报文收发单元连接,用于统计
在某一时间段内,数据转发装置与其它数据转发装置之间的链路闪断的次数;
设置模块,分别与统计模块及计时模块连接,用于根据统计模块的统计结果,在次数增加时,将计时模块上设置的用于表示数据转发装置与其它数据转发
装置之间的链路闪断的闪断时长增长。如图8所示,为本发明数据转发装置第四实施例的结构示意图。
如图9所示,为本发明数据转发装置第五实施例的结构示意图,该实施例可以实现如图4所示实施例的流程,该实施例的数据转发装置包括
计时模块,用于计时;
第三故障检测模块,与计时模块连接,用于对数据转发装置之间的链路进行故障检测,根据计时模块的计时信息,在数据转发装置与相邻数据转发装置之间的链路发生非闪断故障时,生成链路故障通知消息;
第三上层应用模块,与第三故障检测模块连接,用于在接收到第三故障检测模块发送的链路故障通知消息时,断开数据转发装置与相邻数据转发装置之间的邻居关系,并指示第三故障检测模块删除生成的故障检测报文。
再参见图9,第三故障检测模块可以包括
4艮文生成单元,用于生成故障检测报文;
报文收发单元,与报文生成单元连接,用于向相邻数据转发装置发送报文生成单元生成的故障检测报文,以及接收相邻数据转发装置发送的故障检测报文;
第三通知单元,分别与计时模块、报文收发单元与第三上层应用模块连接,用于根据计时模块的计时信息,当报文收发单元在未接收到相邻数据转发装置发送的故障检测报文的预定报文接收时刻起的闪断时长内,未接收到相邻数据转发装置发送的故障检测报文时,生成并向第三上层应用模块发送链路故障通知消息;
删除单元,分别与第三上层应用模块及报文生成单元连接,用于根据第三上层应用模块的指示,删除报文生成单元生成的故障检测报文。
进一步地,第三上层应用模块可以包括
第二邻居关系管理单元,用于在接收到报文收发单元发送的链路故障通
知消息时,断开数据转发装置与相邻数据转发装置之间的邻居关系;
删除指示单元,分别与第二邻居关系管理单元及第三故障检测模块,或
第三故障检测模块中的删除单元连接,用于在第二邻居关系管理单元断开数据转发装置与相邻数据转发装置之间的邻居关系后,指示第三故障检测模块或其中的删除单元删除该第三故障检测模块生成的故障检测报文。
再参见图9,第三上层应用模块还可以包括存储单元,与第二邻居关系管理单元连接,用于存储数据转发装置的邻居关系表。
另外,在上述实施例中,数据转发装置还可以包括统计模块与设置模块。其中,统计模块与第三故障检测模块或其中的报文收发单元连接,用于统计在某一时间段内,数据转发装置与其它数据转发装置之间的链路闪断的次数;设置模块,分别与统计模块及计时模块连接,用于根据统计模块的统计结果,在次数增加时,将计时模块上设置的用于表示数据转发装置与其它数据转发装置之间的链路闪断的闪断时长增长。如图IO所示,为本发明数据转发装置第六实施例的结构示意图。
本发明实施例在第 一数据转发装置与第二数据转发装置之间的链路闪断时,保持第一数据转发装置与第二数据转发装置之间的邻居关系,这样,在故障链路恢复时,不需要等待数据转发装置依靠自身的慢Hello机制重新发现邻居数据转发装置并重新建立二者之间的邻居关系,计算二者之间的路由,与现有技术相比,缩短了上层应用模块的收殓时长,提高了其收殓性能;并且,由于不需要重新进行路由计算,节省了数据转发装置的CPU资源,提高了其工作性能;
另外,闪断时长可以动态变化,随着链路闪断次数的增加而增长闪断时长,级可以适应突发事件引起的网络变化,也可以避免占用路由器的大量CPU资源。
最后所应说明的是以上实施例仅用以说明本发明的技术方案,而非对本发明作限制性理解。尽管参照上述较佳实施例对本发明进行了详细说明,
本领域的普通技术人员应当理解其依然可以对本发明的技术方案进行修改
或者等同替换,而这种修改或者等同替换并不脱离本发明技术方案的精神和范围。
权利要求
1、一种链路故障处理方法,其特征在于,包括以下步骤检测到一链路发生故障,启动一定时器;发送故障检测会话掉线通知;所述定时器超时前接收到检测报文,保持与通过所述链路连接的邻居路由设备的邻居关系,生成路由信息,发送所述路由信息。
2、 根据权利要求1所述的链路故障处理方法,其特征在于,所述方法进 一步包括在所述定时器超时前由所述链路接收到故障检测报文,发送链路恢复通 知信息。
3、 根据权利要求1所述的链路故障处理方法,其特征在于,所述方法进 一步包括所述定时器超时,断开与通过所述链路连接的邻居路由设备的邻居关系, 建立新的邻居关系,生成邻居关系表。
4、 根据权利要求1所述的链路故障处理方法,其特征在于,所述保持与 邻居路由设备的邻居关系并生成新的路由信息,发送所述路由信息具体为生成表示所述链路断开后与通过所述链路连接的路由器周围网络拓朴结 构的链路状态报文,并将其发送到同 一 自治域内的其它路由器。
5、 根据权利要求1所述的链路故障处理方法,其特征在于,所述检测到 一链路发生故障中的检测方法为双向故障检测。
6、 根据权利要求1所述的链路故障处理方法,其特征在于,预置所述定 时器,所述定时器超时时间时长小于握手报文的发送周期。
7、 一种数据转发装置,其特征在于,包括 计时模块,用于计时;报文接收模块,用于接收检测报文,并与计时模块连接; 故障检测模块,用于利用所接收到的检测报文检测与该装置相连接的链路是否发生故障;邻居关系管理单元,用于在检测到链路故障后在计时模块超时前通过所 述链路接收到检测报文时,保持与通过该链路连接的邻居路由设备的邻居关系;通知单元,用于发送链路故障检测会话掉线通知; 上层应用模块,用于生成表示所述数据转发装置周围网络拓朴结构的链 路状态路由信息并发送所述路由信息。
8、 根据权利要求7所述的数据转发装置,其特征在于,所述故障检测模 块包括报文生成单元,用于生成故障检测报文;报文收发单元,用于向相邻数据转发装置发送所述报文生成单元生成的 故障检测报文,以及接收所述相邻数据转发装置发送的故障检测报文; 删除单元,用于删除所述报文生成单元生成的故障检测报文。
9、 根据权利要求7或8所述的数据转发装置,其特征在于,所述第一上 层应用模块包括链路状态管理单元,用于在计时模块超时前由所述链路接收到检测报文 时,生成表示所述数据转发装置周围网络拓朴结构的新链路状态信息,并扩 散到同 一 自治域内的相邻数据转发装置;第 一邻居关系管理单元,在计时模块超时前由所述链路接收到检测报文 时,保持所述数据转发装置与所述相邻数据转发装置之间的邻居关系,在所 述数据转发装置与所述相邻数据转发装置之间的链路发生非闪断故障时,断 开所述数据转发装置与所述相邻数据转发装置之间的邻居关系。
10、 根据权利要求7所述的数据转发装置,其特征在于,所述上层应用 模块还包括存储单元,用于存储所述数据转发装置的邻居关系表。
11、 根据权利要求9所述的数据转发装置,其特征在于,还包括统计模块,用于统计在某一时间段内,所述数据转发装置与所述相邻数 据转发装置之间的链路闪断故障的次数;设置模块,用于根据所述统计模块的统计结果,在所述次数增加时,增 加所述计时模块上超时时长。
全文摘要
本发明实施例提供了链路故障处理方法与数据转发装置。所述方法为检测到一链路发生故障,启动一定时器;发送故障检测会话掉线通知;所述定时器超时前接收到检测报文,保持与通过所述链路连接的邻居路由设备的邻居关系,生成路由信息,发送所述路由信息。同时本发明还提供了实施所述方法的数据转发装置。本发明实施例可以缩短上层应用模块的收敛时长,提高其收敛性能;并且,节省数据转发装置的CPU资源,提高其工作性能。
文档编号H04L12/26GK101459549SQ20071017957
公开日2009年6月17日 申请日期2007年12月14日 优先权日2007年12月14日
发明者詹葆荣, 刚 闫 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1