CN107404393A - 一种判断链路故障的方法及*** - Google Patents
一种判断链路故障的方法及*** Download PDFInfo
- Publication number
- CN107404393A CN107404393A CN201610340855.8A CN201610340855A CN107404393A CN 107404393 A CN107404393 A CN 107404393A CN 201610340855 A CN201610340855 A CN 201610340855A CN 107404393 A CN107404393 A CN 107404393A
- Authority
- CN
- China
- Prior art keywords
- sender
- timeout
- fpga
- cpu
- recipient
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0677—Localisation of faults
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种判断链路故障的方法及***。一种判断链路故障的方法,包括:发送方通过FPGA向接收方发送一个带有第一状态位的检测报文,等待接收方的回复报文;发送方若通过FPGA在预设超时时间Timeout内接收到回复报文,判断第一状态位是否为预设正常状态值,若是,则确定通信正常;若否,且确定发送预设次数检测报文均接收到第一状态位为预设非正常状态值,则确定接收方***工作异常;发送方若通过FPGA在Timeout内未接收到回复报文,则确定链路异常。本发明可以在CPU故障时有效地进行故障判断和故障分析,在接收方***出现故障状态时可有效的帮助检测方判断是接收方***故障而非链路故障。
Description
技术领域
本发明实施例涉及链路故障判断及链路故障分析技术,尤其涉及一种判断链路故障的方法及***。
背景技术
随着网络和信息技术的发展,为确保通信接收方(核心网)可靠并能有效收到发送方(基站)回传的数据,发送方(基站)需要能实时了解接收端***是否正常,因此如何检测对端设备状态对数据发送方越来越重要。
传统IP网络的通信故障是采用发送ICMPEcho request。
但由于报文在网络中传输的链路会自动切换,时延也在实时变化,因此在实际链路时延不确定时会出现误判或实时效果不好,并且ICMP无法准确地进行故障分析,报文的处理也会占用***开销,尤其是上行请求太多时会严重降低CPU的效率,甚至使***阻塞。
发明内容
本发明提供一种判断链路故障的方法及***,以实现为通信双方提供一种实时且快速的链路故障判断的方法。
第一方面,本发明提供了一种判断链路故障的方法,包括:
发送方通过FPGA向接收方发送一个带有第一状态位的检测报文,等待所述接收方的回复报文;
所述接收方通过FPGA接收到所述检测报文,根据接收方CPU的工作状态更新所述第一状态位,并向所述发送方回复带有所述第一状态位的所述回复报文;
所述发送方若通过FPGA在预设超时时间Timeout内接收到所述回复报文,判断所述第一状态位是否为预设正常状态值,若是,则确定通信正常;若否,且确定发送预设次数所述检测报文均接收到所述第一状态位为预设非正常状态值,则确定接收方***工作异常;所述发送方若通过FPGA在Timeout内未接收到所述回复报文,则确定链路异常。
优选的,所述发送方通过FPGA向接收方发送一个带有第一状态位的检测报文,等待所述接收方的回复报文,具体包括:发送方通过FPGA向接收方发送一个带有第一状态位的检测报文,并开始计时,等待所述接收方的回复报文;
所述若所述发送方通过FPGA在Timeout内接收到所述回复报文,具体包括:所述发送方通过FPGA在预设超时时间Timeout内接收到所述回复报文,结束计时得到往返时延t1,将t1发送给发送方CPU来计算更新Timeout,将更新后的Timeout反馈发送方给FPGA。
优选的,所述将t1发送给发送方CPU来计算更新Timeout,将更新后的Timeout反馈发送方给FPGA,具体为:通过发送方CPU判定是否为初次上电或链路变化,若是,则将t1发送给发送方CPU来计算更新Timeout,将更新后的Timeout反馈发送方给FPGA,若否链路不变时,不向FPGA更新Timeout值。
优选的,所述将t1发送给发送方CPU来计算更新Timeout,具体包括:将t1发送给发送方CPU,通过发送方CPU根据t1和用户设置的δ计算得到更新的Timeout=t1+t1xδ。
优选的,所述发送方通过FPGA向接收方发送一个带有第一状态位的检测报文,具体包括:
所述发送方通过FPGA中的预设周期DetectInterval周期性向接收方发送一个带有第一状态位的检测报文。
优选的,所述确定通信正常,具体包括:将所述接收方***工作正常的信息发送给发送方CPU,然后将Timeout的计时器置满,进入下一个检测周期;
所述确定接收方***工作异常,具体为:将TimeOut的计时器清0,同时将DetectInterval的计时器清0,将所述接收方***工作异常的信息发送给发送方CPU;
所述确定链路异常,具体为:将TimeOut的计时器清0,同时将DetectInterval的计时器清0,将疑似链路故障信息发送给发送方CPU。
优选的,所述确定链路异常之后,还包括:所述发送方CPU向所述接收方发起ICMP echo request报文,通过得到的差错报文探测链路故障位置。
第二方面,本发明实施例还提供了一种判断链路故障的***,该***包括:
发送方和接收方,所述发送方中包括第一FPGA模块、第二FPGA模块以及发送方CPU,所述接收方中包括第三FPGA模块以及接收方CPU;
第一FPGA模块,用于向接收方发送一个带有第一状态位的检测报文,等待所述接收方的回复报文;
第三FPGA模块,用于接收到所述检测报文,根据所述接收方CPU的工作状态更新所述第一状态位,并向所述发送方回复带有所述第一状态位的所述回复报文;
第二FPGA模块,用于在预设超时时间Timeout内接收到所述回复报文,判断所述第一状态位是否为预设正常状态值,若是,则确定通信正常;若否,且确定发送预设次数所述检测报文均接收到所述第一状态位为预设非正常状态值,则确定接收方***工作正常;所述发送方若在Timeout内未接收到所述回复报文,则确定链路异常。
优选的,第一FPGA模块,具体用于:向接收方发送一个带有第一状态位的检测报文,并开始计时,等待所述接收方的回复报文;
所述第二FPGA模块,具体用于:在预设超时时间Timeout内接收到所述回复报文,结束计时得到往返时延t1,将t1发送给发送方CPU,判断所述第一状态位是否为预设正常状态值,若是,则确定通信正常;若否,且确定发送预设次数所述检测报文均接收到所述第一状态位为预设非正常状态值,则确定接收方***工作正常;所述发送方若在Timeout内未接收到所述回复报文,则确定链路异常;;
所述发送方CPU,用于根据t1计算更新Timeout,将更新后的Timeout反馈发送方给所述第二FPGA模块。
优选的,所述发送方CPU,用于判定是否为初次上电或链路变化,若是,则将根据t1来计算更新Timeout,将更新后的Timeout反馈发送方给FPGA,若否链路不变时,不向FPGA更新Timeout值。
优选的,所述发送方CPU,具体用于:根据t1和用户设置的δ计算得到更新的Timeout=t1+t1xδ。
优选的,所述第一FPGA模块,具体用于:通过预设周期DetectInterval周期性向接收方发送一个带有第一状态位的检测报文。
优选的,所述第二FPGA模块,具体用于:在预设超时时间Timeout内接收到所述回复报文,判断所述第一状态位是否为预设正常状态值,若是,则将所述接收方***工作正常的信息发送给发送方CPU,然后将Timeout的计时器置满,进入下一个检测周期;若否,且确定发送预设次数所述检测报文均接收到所述第一状态位为预设非正常状态值,则将TimeOut的计时器清0,同时将DetectInterval的计时器清0,将所述接收方***工作异常的信息发送给发送方CPU;所述发送方若通过FPGA在Timeout内未接收到所述回复报文,则将TimeOut的计时器清0,同时将DetectInterval的计时器清0,将疑似链路故障信息发送给发送方CPU。
优选的,所述发送方CPU,具体用于:计算更新Timeout,将更新后的Timeout反馈发送方给所述第二FPGA模块,获取到所述疑似链路故障信息后,向所述接收方发起ICMP echo request报文,通过得到的差错报文探测链路故障位置。
本发明通过采用FPGA硬件来执行发送方和接收方之间的协议,回传方发起链路检测请求,接收方收到后要对回传方发起的请求报文进行回复确认,通过硬件来执行协议,可以有效减少了CPU负载,提高利用率;可以在CPU故障时有效地进行故障分析,在应用程序出现死锁、干扰引起程序跑飞、以及CPU其它故障而引起宕机的状态下可以有效的帮助检测方判断是***故障而非链路故障。
附图说明
图1是本发明实施例一中的一种判断链路故障的方法的方法流程图;
图2是本发明实施例二中的一种判断链路故障的方法的方法流程图一;
图3是本发明实施例二中的一种判断链路故障的方法的方法流程图二;
图4是本发明实施例二和实施例四中的实例的发送方的流程图;
图5是本发明实施例二和实施例四中的实例的接收方的流程图;
图6是本发明实施例二和实施例四中的实例的时间协商交互的流程图;
图7是本发明实施例三中的一种判断链路故障的***的结构框图;
图8是本发明实施例四中的一种判断链路故障的***的结构框图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种判断链路故障的方法的流程图,本实施例可适用于IP网络中两个设备的交互,尤其适用于IP网络中基站与核心网的交互情况,该方法可以由包括带有FPGA的发送方和带有的FPGA的接收方的IP网络来执行,具体包括如下步骤:
S110、发送方通过FPGA向接收方发送一个带有第一状态位的检测报文,等待接收方的回复报文。
其中,发送方中包括带有发送方CPU的发送方***以及发送方FPGA模块,发送方可以为基站,包括基站CPU的***以及基站FPGA模块。第一状态位为用来表示接收方CPU工作状态的,本步骤中第一状态位为默认值。具体的,发送方通过FPGA向接收方发送一个带有第一状态位的检测报文,启动默认的预设超时时间Timeout计时器开始计时,等待接收方的回复报文。
S120、接收方通过FPGA接收到检测报文,根据接收方CPU的工作状态更新第一状态位,并向发送方回复带有第一状态位的回复报文。
其中,接收方中包括带有接收方CPU的接收方***以及接收方FPGA模块,接收方可以为核心网,包括核心网CPU的***以及核心网FPGA模块。第一状态位为根据核心网CPU工作状态进行更新,若核心网CPU工作状态正常,则第一状态位更新为预设正常状态值,若核心网CPU工作状态异常,则第一状态位更新为预设非正常状态值。
S130:发送方若通过FPGA在预设超时时间Timeout内接收到回复报文,判断第一状态位是否为预设正常状态值,若是,则确定通信正常,;若否,且确定发送预设次数检测报文均接收到第一状态位为预设非正常状态值,则确定接收方***工作异常,将接收方***工作异常的信息发送给发送方CPU;发送方若通过FPGA在Timeout内未接收到回复报文,则确定链路异常。
例如:发送方若通过FPGA在预设超时时间Timeout内接收到回复报文,判断第一状态位是否为预设正常状态值,若是,则确定通信正常,将接收方***工作正常的信息发送给发送方CPU;若否,且确定发送预设次数检测报文均接收到第一状态位为预设非正常状态值,则确定接收方***工作异常,断定为***故障,将接收方***工作异常的信息发送给发送方CPU;发送方若通过FPGA在Timeout内未接收到回复报文,则确定链路异常,将疑似链路故障信息发送给发送方CPU。
其中,若否,且确定发送预设次数检测报文均接收到第一状态位为预设非正常状态值,则将接收方***工作异常的信息发送给发送方CPU,具体为:若否,则将接收方***疑似工作异常的信息发送给发送方CPU,通过FPGA向接收方再次发送一个带有第一状态位的检测报文,若再次接收到的回复报文的第一状态位为预设非正常状态数值,再次向接收方发送一个带有第一状态位的检测报文,直至发送次数超出预设次数,则停止发送并向发送方CPU发送接收***工作异常的信息,并将接收方***工作异常的信息发送给发送方CPU。
其中预设超时时间Timeout内,指的是发送方在S110中发送一个带有第一状态位的检测报文开始计时的时间段内。
本实施例的技术方案,通过采用FPGA硬件来执行发送方和接收方之间的协议,发送方发起链路检测请求,接收方收到后要对发送方发起的请求报文进行回复确认,通过硬件来执行协议,可以有效减少了CPU负载,提高利用率;并可以在CPU故障时有效地进行故障分析。在应用程序出现死锁、干扰引起程序跑飞、以及CPU其它故障而引起宕机的状态下可以有效的帮助检测方判断是***故障而非链路故障。
在上述技术方案的基础上,S110优选可以具体为:发送方通过FPGA向接收方发送一个带有第一状态位的检测报文,并开始计时,等待接收方的回复报文。其中,开始计时是指开始记录往返时延,且S120优选的可以具体为:发送方通过FPGA在预设超时时间Timeout内接收回复报文,结束计时得到往返时延t1,将t1发送给发送方CPU来计算更新Timeout,将更新后的Timeout反馈发送方给FPGA。S110和S120这样设置的好处在于每次接收到回复报文通过发送方CPU来重新计算一次Timeout,并配置给FPGA模块,避免在实际链路时延不确定时会出现误判或实时效果不好。
在上述技术方案的基础上,S110中的:将t1发送给发送方CPU来计算更新Timeout,优选的为:将t1发送给发送方CPU,通过发送方CPU根据t1和用户设置的δ计算得到更新的Timeout=t1+t1xδ。
在上述技术方案的基础上,S110中的:将t1发送给发送方CPU来计算更新Timeout,优选的为:通过发送方CPU判定是否为初次上电或链路变化,若是,则将t1发送给发送方CPU来计算更新Timeout,将更新后的Timeout反馈发送方给FPGA,若否链路不变时,不向FPGA更新Timeout值。这样的好处是,每次接收到回复报文通过发送方CPU来判断链路变化状态决定是否进行重新Timeout,并配置给FPGA模块,减少重复计算,效率更高,且避免在实际链路时延不确定时会出现误判或实时效果不好,在链路变化时可以得到一个与实际链路时延相符的时延参考值。
实施例二
图2为本发明实施例二提供的一种判断链路故障的方法的流程图,本实施例在上述各实施例的基础上,进一步优化发送方的发送和接收步骤。
S210:发送方通过FPGA中的预设周期DetectInterval周期性向接收方发送一个带有第一状态位的检测报文,等待接收方的回复报文。
S220:接收方通过FPGA接收到检测报文,根据接收方CPU的工作状态更新第一状态位,并向发送方回复带有第一状态位的回复报文。
S230:发送方若通过FPGA在预设超时时间Timeout内接收到回复报文,判断第一状态位是否为预设正常状态值,若是,则将接收方***工作正常的信息发送给发送方CPU,然后将Timeout的计时器置满,进入下一个检测周期;若否,且确定发送预设次数检测报文均接收到第一状态位为预设非正常状态值,将TimeOut的计时器清0,同时将DetectInterval的计时器清0,判断为***故障,将接收方***工作异常的信息发送给发送方CPU;发送方若通过FPGA在Timeout内未接收到回复报文,则将TimeOut的计时器清0,同时将DetectInterval的计时器清0,将疑似链路故障信息发送给发送方CPU。
其中,将Timeout的计时器置满,即为根据需要在下一个检测周期重新进行链路探测作准备,如再次根据S210发送一个带有第一状态位的检测报文时,启动置满的Timeout的计时器;TimeOut的计时器清0,即为Timeout的时间等待用尽已到时限,将DetectInterval的计时器清0,即为DetectInterval的计时器时间用尽,需要执行S210执行下一个周期向接收方发送一个带有第一状态位的检测报文的操作。
如图4、图5和图6所示,通过以下实例来解释本实施例:在主测方用户配置一个可接受的误差时延系数δ和检测时间间隔DetectInterval。δ:时延误差系数,范围为0~5,默认时间为1;DetectInterval:故障检测的时间间隔,可配范围为1ms~1s,默认时间为1s;TimeOut为等待超时间隔,默认时间为1s。
1)发送方eNode通过FPGA按DetectInterval间隔周期向被检测设备发送一个State=0的DetectRequest报文,并启动TimeOut(默认为1s)定时器开始计时,然后等待接收方EPC的回复报文。
2)接收方EPC收到该报文后,如果接收方EPC***正常则将State位置1,否则State位置0,并向发起发送方eNode回复一个DetectReply的报文。
3)发送方eNode通过FPGA收到DetectReply后,停止计数记录这个往返时延t1,并向回传方CPU发送t1和State。
发送方eNodeCPU根据t1和用户设置的δ计算,得到一个时实的误差符合客户期望的等待超时时间间隔TimeOut,并反馈给回传方FPGA:TimeOut=t1+t1xδ,同时进行故障判断。
如果发送方eNode通过FPGA在预设超时时间Timeout内接收到回复报文并判断State=1,则认为接收设备***正常,并将TimeOut置满。
如果发送方eNode通过FPGA在预设超时时间Timeout内接收到回复报文的State=0,疑似接收方***宕机,将TimeOut清0,同时将DetectInterval清0,立即向被测发起第二次检测,如果在第三次检测后仍收到State=0的回复,则认为接收方EPC***宕机。向CPU发送接收设备故障消息,并停止向其回传或将回传路径切换到备份接收设备。
如果发送方eNode通过FPGA在预设超时时间Timeout内未收到任何回复,则疑似链路不可达,将TimeOut清0,同时将DetectInterval清0。通知CPU,由发送方eNodeCPU向其发起ICMP echo request报文,根据相应的差错报文探测链路故障位置。
本实施例的技术方案,通过硬件(FPGA)进行时延协商,有效减少了CPU负载,提高利用率;通过时间协商的方法确定一个与业务相符的超时等待时间,能有效规避链路时延不稳定、不固定带来故障误判的影响;可以在CPU故障时有效地进行故障分析。在应用程序出现死锁、干扰引起程序跑飞、以及CPU其它故障而引起宕机的状态下可以有效的帮助检测方判断是***故障而非链路故障。
在上述各个实施例的基础上,在S230的确定链路异常之后,还包括S240:发送方CPU向接收方发起ICMP echo request报文,通过得到的差错报文探测链路故障位置。该S240的好处为,通过步骤可以找到链路故障位置,通过S210-S240可以快速诊断出链路的故障位置。
实施例三
图7所示为本发明实施例三提供的一种判断链路故障的***的结构示意图,本实施例可适用于IP网络中任意两个设备的交互,尤其适用于IP网络中基站与核心网的交互情况,该***的具体结构如下:
该***包括发送方310和接收方320,发送方310中包括第一FPGA模块311、第二FPGA模块312以及发送方CPU313,接收方320中包括第三FPGA模块321以及接收方CPU322。发送方CPU313分别连接第一FPGA模块311、第二FPGA模块312,接收方CPU322连接第三FPGA模块321,第一FPGA模块311、第二FPGA模块与第三FPGA模块321分别通过IP网络链路连接完成交互通信。
第一FPGA模块311,用于向接收方发送一个带有第一状态位的检测报文,等待接收方的回复报文。
其中,发送方中包括带有发送方CPU313的发送方***、第一FPGA模块311以及第二FPGA模块312,第一FPGA模块311以及第二FPGA模块312在硬件上可以为同一个FPGA芯片,第一发送方可以为基站,包括基站CPU的***以及基站FPGA模块。第一状态位为用来表示接收方CPU322工作状态的,本步骤中第一状态位为默认值。具体的,第一FPGA模块311向接收方发送一个带有第一状态位的检测报文,启动默认的预设超时时间Timeout计时器开始计时,等待接收方的回复报文。
第三FPGA模块321,用于接收到检测报文,根据接收方CPU的工作状态更新第一状态位,并向发送方回复带有第一状态位的回复报文。
其中,接收方320中包括带有接收方CPU322的接收方***以及接收方FPGA模块321,接收方320可以为核心网,包括核心网CPU的***以及核心网FPGA模块。第一状态位为根据核心网CPU工作状态进行更新,若核心网CPU工作状态正常,则第一状态位更新为预设正常状态值,若核心网CPU工作状态异常,则第一状态位更新为预设非正常状态值。
第二FPGA模块312,用于在预设超时时间Timeout内接收到回复报文,判断第一状态位是否为预设正常状态值,若是,则确定通信正常;若否,且确定发送预设次数检测报文均接收到第一状态位为预设非正常状态值,则确定接收方***工作正常;发送方若在Timeout内未接收到回复报文,则确定链路异常。其中,第二FPGA模块312中,若第一状态位不是预设正常状态值,且确定发送预设次数检测报文均接收到第一状态位为预设非正常状态值,则将接收方***工作异常的信息发送给发送方CPU313,具体为:若第一状态位不是预设正常状态值,则将接收方***疑似工作异常的信息发送给发送方CPU313,向接收方再次发送一个带有第一状态位的检测报文,若再次接收到的回复报文的第一状态位为预设非正常状态数值,再次向接收方发送一个带有第一状态位的检测报文,直至发送次数超出预设次数,则停止发送并向发送方CPU313发送接收***工作异常的信息,并将接收方***工作异常的信息发送给发送方CPU313。
其中,预设超时时间Timeout内,指的是发送方310通过第一FPGA模块311发送一个带有第一状态位的检测报文开始计时的时间段内。
例如:用于在预设超时时间Timeout内接收到回复报文,判断第一状态位是否为预设正常状态值,若是,则确定通信正常,将接收方***工作正常的信息发送给发送方CPU;若否,且确定发送预设次数检测报文均接收到第一状态位为预设非正常状态值,则确定接收方***工作正常,将接收方***工作异常的信息发送给发送方CPU;发送方若在Timeout内未接收到回复报文,则确定链路异常。
本实施例的技术方案,通过采用FPGA硬件来执行发送方和接收方之间的协议,回传方发起链路检测请求,接收方收到后要对回传方发起的请求报文进行回复确认,通过硬件来执行协议,可以有效减少了CPU负载,提高利用率;此外,可以在CPU故障时有效地进行故障分析。在应用程序出现死锁、干扰引起程序跑飞、以及CPU其它故障而引起宕机的状态下可以有效的帮助检测方判断是***故障而非链路故障。
在上述技术方案的基础上,第一FPGA模块311优选可以具体为:向接收方发送一个带有第一状态位的检测报文,并开始计时,等待接收方的回复报文。其中,开始计时是指开始记录往返时延,且第二FPGA模块312优选的可以具体用于:在预设超时时间Timeout内接收到回复报文,结束计时得到往返时延t1,将t1发送给发送方CPU,判断第一状态位是否为预设正常状态值,若是,则将接收方***工作正常的信息发送给发送方CPU;若否,且确定发送预设次数检测报文均接收到第一状态位为预设非正常状态值,则将接收方***工作异常的信息发送给发送方CPU;发送方若在Timeout内未接收到回复报文,则将疑似链路故障信息发送给发送方CPU。
且发送方CPU311,用于根据t1计算更新Timeout,将更新后的Timeout反馈发送方给第二FPGA模块312。第一FPGA模块311、第二FPGA模块312和发送方CPU311这样设置的好处在于每次接收到回复报文通过发送方CPU来重新计算一次Timeout,并配置给FPGA模块,避免在实际链路时延不确定时会出现误判或实时效果不好。
在上述技术方案的基础上,发送方CPU311优选的具体用于:根据t1和用户设置的δ计算得到更新的Timeout=t1+t1xδ。
通过用户设置的参数δ,通过时间协商的方法确定一个与业务相符的超时等待时间Timeout,能有效规避链路时延不稳定、不固定带来故障误判的影响。
在上述技术方案的基础上,发送方CPU311优选的具体用于:将t1发送给发送方CPU来计算更新Timeout,优选的为:判定是否为初次上电或链路变化,若是,则将t1发送给发送方CPU来计算更新Timeout,将更新后的Timeout反馈发送方给FPGA,若否链路不变时,不向FPGA更新Timeout值。这样的好处是,每次接收到回复报文通过发送方CPU来判断链路变化状态决定是否进行重新Timeout,并配置给FPGA模块,减少重复计算,效率更高,且避免在实际链路时延不确定时会出现误判或实时效果不好,在链路变化时可以得到一个与实际链路时延相符的时延参考值。
实施例四
图8为本发明实施例四提供的一种判断链路故障的***的结构示意图,本实施例在上述各实施例的基础上,优选是将第一FPGA模块和第二FPGA模块进一步优化。该***包括发送方410和接收方420,发送方410中包括第一FPGA模块411、第二FPGA模块412以及发送方CPU413,接收方420中包括第三FPGA模块421以及接收方CPU422。发送方CPU413分别连接第一FPGA模块411、第二FPGA模块412,接收方CPU422连接第三FPGA模块421,第一FPGA模块411、第二FPGA模块412与第三FPGA模块421分别通过IP网络链路连接完成交互通信。
第一FPGA模块411,具体用于:通过预设周期DetectInterval周期性向接收方发送一个带有第一状态位的检测报文,等待接收方的回复报文。
第三FPGA模块421,用于接收到检测报文,根据接收方CPU的工作状态更新第一状态位,并向发送方回复带有第一状态位的回复报文。
第二FPGA模块412,具体用于:在预设超时时间Timeout内接收到回复报文,判断第一状态位是否为预设正常状态值,若是,则将接收方***工作正常的信息发送给发送方CPU,将Timeout的计时器置满,进入下一个检测周期;若否,且确定发送预设次数检测报文均接收到第一状态位为预设非正常状态值,则将TimeOut的计时器清0,同时将DetectInterval的计时器清0,将接收方***工作异常的信息发送给发送方CPU;若在Timeout内未接收到回复报文,则将TimeOut的计时器清0,同时将DetectInterval的计时器清0,将疑似链路故障信息发送给发送方CPU。
其中,将Timeout的计时器置满,即为根据需要重新进行一次Timeout的时间等待,如再次通过第二FPGA模块412发送一个带有第一状态位的检测报文时,开启置满的Timeout的计时器;TimeOut的计时器清0,即为Timeout的时间等待用尽已到时限,将DetectInterval的计时器清0,即为DetectInterval的计时器时间用尽,需要第二FPGA模块412执行下一个周期向接收方发送一个带有第一状态位的检测报文的操作。
通过以下实例来解释本实施例:在主测方用户配置一个可接受的误差时延系数δ和检测时间间隔DetectInterval。δ:时延误差系数,范围为0~5,默认时间为1;DetectInterval:故障检测的时间间隔,可配范围为1ms~1s,默认时间为1s;TimeOut为等待超时间隔,默认时间为1s。
1)发送方eNode的第一FPGA模块按DetectInterval间隔周期向被检测设备发送一个State=0的DetectRequest报文,并启动TimeOut(默认为1s)定时器开始计时,然后等待接收方的回复报文。
2)接收方EPC的第三FPGA模块收到该报文后,如果接收方***正常则将State位置1,否则State位置0,并向发起回传的设备回复一个DetectReply的报文。
3)发送方eNode的第二FPGA模块回传方收到DetectReply后,停止计数记录这个往返时延t1,并向回传方CPU发送t1和State。
发送方eNode根据t1和用户设置的δ计算,得到一个时实的误差符合客户期望的等待超时时间间隔TimeOut,并反馈给发送方eNode的第二FPGA模块:TimeOut=t1+t1xδ,同时进行故障判断。
如果发送方eNode通过第二FPGA模块在预设超时时间Timeout内接收到回复报文并判断State=1,则认为接收方EPC***正常,并将TimeOut置满。
如果发送方eNode通过第二FPG模块A在预设超时时间Timeout内接收到回复报文的State=0,疑似接收方***宕机,将TimeOut清0,同时将DetectInterval清0,立即向被测发起第二次检测,如果在第三次检测后仍收到State=0的回复,则认为接收方***宕机。向发送方eNode的CPU发送接收设备故障消息,并停止向其回传或将回传路径切换到备份接收设备。
发送方eNode通过第二FPGA模块在预设超时时间Timeout内未收到任何回复,则疑似链路不可达,将TimeOut清0,同时将DetectInterval清0。通知CPU,由发送方eNode的CPU向其发起ICMP echo request报文,根据相应的差错报文探测链路故障位置。
本实施例的技术方案,通过硬件(FPGA)进行时延协商,有效减少了CPU负载,提高利用率;通过时间协商的方法确定一个与具体业务相符的超时等待时间,能有效规避链路时延不稳定、链路切换以及主观判断导致的错误影响;通过协商的时延可以快速实时进行故障判断,并且采用硬件协商的方法可以在CPU故障时有效地进行故障分析,在应用程序出现死锁、干扰引起程序跑飞、以及CPU其它故障而引起宕机的状态下可以有效的帮助检测方判断是***故障而非链路故障。
在上述各个实施例的基础上,,发送方CPU413,具体用于:计算更新Timeout,将更新后的Timeout反馈发送方给第二FPGA模块,获取到疑似链路故障信息后,向接收方发起ICMP echo request报文,通过得到的差错报文探测链路故障位置。发送方CPU413的好处为,发送方CPU413通过ICMP echorequest报文可以找到链路故障位置,通过本判断链路故障的***可以快速诊断出链路的故障位置。
综上所述,本发明通过硬件的方式进行链路故障判断,有效减少了CPU负载,提高利用率,***宕机情况下能有效向检测方回复***状态,使检测方确定是***故障非传输链路故障。通过时间协商的方法确定等待超时时间,能有效规避链路时延不稳定、链路切换以及主观判断导致的错误判断影响,通过协商的时延可以快速实时进行故障判断。并且采用硬件协商的方法可以在CPU故障时有效地进行故障分析,在应用程序出现死锁、干扰引起程序跑飞、以及CPU其它故障而引起宕机的状态下可以有效的帮助检测方判断是***故障而非链路故障。本发明在冗余的IP网络中,当逻辑链路发生变化时可以自动计算并调整与实际传输相符的超时等待时间Timout,以实时快速的进行故障判断,并且在CPU故障时也能有效地进行故障判断和故障分析。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (14)
1.一种判断链路故障的方法,其特征在于,包括:
发送方通过FPGA向接收方发送一个带有第一状态位的检测报文,等待所述接收方的回复报文;
所述接收方通过FPGA接收到所述检测报文,根据接收方CPU的工作状态更新所述第一状态位,并向所述发送方回复带有所述第一状态位的所述回复报文;
所述发送方若通过FPGA在预设超时时间Timeout内接收到所述回复报文,判断所述第一状态位是否为预设正常状态值,若是,则确定通信正常;若否,且确定发送预设次数所述检测报文均接收到所述第一状态位为预设非正常状态值,则确定接收方***工作异常;所述发送方若通过FPGA在Timeout内未接收到所述回复报文,则确定链路异常。
2.根据权利要求1所述的方法,其特征在于,
所述发送方通过FPGA向接收方发送一个带有第一状态位的检测报文,等待所述接收方的回复报文,具体包括:发送方通过FPGA向接收方发送一个带有第一状态位的检测报文,并开始计时,等待所述接收方的回复报文;
所述若所述发送方通过FPGA在Timeout内接收到所述回复报文,具体包括:所述发送方通过FPGA在预设超时时间Timeout内接收到所述回复报文,结束计时得到往返时延t1,将t1发送给发送方CPU来计算更新Timeout,将更新后的Timeout反馈发送方给FPGA。
3.根据权利要求2所述的方法,其特征在于,所述将t1发送给发送方CPU来计算更新Timeout,将更新后的Timeout反馈发送方给FPGA,具体为:通过发送方CPU判定是否为初次上电或链路变化,若是,则将t1发送给发送方CPU来计算更新Timeout,将更新后的Timeout反馈发送方给FPGA,若否链路不变时,不向FPGA更新Timeout值。
4.根据权利要求2所述的方法,其特征在于,所述将t1发送给发送方CPU来计算更新Timeout,具体包括:将t1发送给发送方CPU,通过发送方CPU根据t1和用户设置的δ计算得到更新的Timeout=t1+t1xδ。
5.根据权利要求1所述的方法,其特征在于,所述发送方通过FPGA向接收方发送一个带有第一状态位的检测报文,具体包括:
所述发送方通过FPGA中的预设周期DetectInterval周期性向接收方发送一个带有第一状态位的检测报文。
6.根据权利要求1所述的方法,其特征在于,所述确定通信正常,具体包括:将所述接收方***工作正常的信息发送给发送方CPU,然后将Timeout的计时器置满,进入下一个检测周期;
所述确定接收方***工作异常,具体为:将TimeOut的计时器清0,同时将DetectInterval的计时器清0,将所述接收方***工作异常的信息发送给发送方CPU;
所述确定链路异常,具体为:将TimeOut的计时器清0,同时将DetectInterval的计时器清0,将疑似链路故障信息发送给发送方CPU。
7.根据权利要求1所述的方法,其特征在于,所述确定链路异常之后,还包括:所述发送方CPU向所述接收方发起ICMP echo request报文,通过得到的差错报文探测链路故障位置。
8.一种判断链路故障的***,其特征在于,包括:发送方和接收方,所述发送方中包括第一FPGA模块、第二FPGA模块以及发送方CPU,所述接收方中包括第三FPGA模块以及接收方CPU;
第一FPGA模块,用于向接收方发送一个带有第一状态位的检测报文,等待所述接收方的回复报文;
第三FPGA模块,用于接收到所述检测报文,根据所述接收方CPU的工作状态更新所述第一状态位,并向所述发送方回复带有所述第一状态位的所述回复报文;
第二FPGA模块,用于在预设超时时间Timeout内接收到所述回复报文,判断所述第一状态位是否为预设正常状态值,若是,则确定通信正常;若否,且确定发送预设次数所述检测报文均接收到所述第一状态位为预设非正常状态值,则确定接收方***工作正常;所述发送方若在Timeout内未接收到所述回复报文,则确定链路异常。
9.根据权利要求8所述的***,其特征在于,第一FPGA模块,具体用于:向接收方发送一个带有第一状态位的检测报文,并开始计时,等待所述接收方的回复报文;
所述第二FPGA模块,具体用于:在预设超时时间Timeout内接收到所述回复报文,结束计时得到往返时延t1,将t1发送给发送方CPU,判断所述第一状态位是否为预设正常状态值,若是,则确定通信正常;若否,且确定发送预设次数所述检测报文均接收到所述第一状态位为预设非正常状态值,则确定接收方***工作正常;所述发送方若在Timeout内未接收到所述回复报文,则确定链路异常;
所述发送方CPU,用于根据t1计算更新Timeout,将更新后的Timeout反馈发送方给所述第二FPGA模块。
10.根据权利要求9所述的***,其特征在于,所述发送方CPU,用于判定是否为初次上电或链路变化,若是,则将根据t1来计算更新Timeout,将更新后的Timeout反馈发送方给FPGA,若否链路不变时,不向FPGA更新Timeout值。
11.根据权利要求8所述的***,其特征在于,所述发送方CPU,具体用于:根据t1和用户设置的δ计算得到更新的Timeout=t1+t1xδ。
12.根据权利要求8所述的***,其特征在于,
所述第一FPGA模块,具体用于:通过预设周期DetectInterval周期性向接收方发送一个带有第一状态位的检测报文。
13.根据权利要求8所述的***,其特征在于,
所述第二FPGA模块,具体用于:在预设超时时间Timeout内接收到所述回复报文,判断所述第一状态位是否为预设正常状态值,若是,则将所述接收方***工作正常的信息发送给发送方CPU,然后将Timeout的计时器置满,进入下一个检测周期;若否,且确定发送预设次数所述检测报文均接收到所述第一状态位为预设非正常状态值,则将TimeOut的计时器清0,同时将DetectInterval的计时器清0,将所述接收方***工作异常的信息发送给发送方CPU;所述发送方若通过FPGA在Timeout内未接收到所述回复报文,则将TimeOut的计时器清0,同时将DetectInterval的计时器清0,将疑似链路故障信息发送给发送方CPU。
14.根据权利要求8所述的***,其特征在于,所述发送方CPU,具体用于:计算更新Timeout,将更新后的Timeout反馈发送方给所述第二FPGA模块,获取到所述疑似链路故障信息后,向所述接收方发起ICMP echo request报文,通过得到的差错报文探测链路故障位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610340855.8A CN107404393A (zh) | 2016-05-20 | 2016-05-20 | 一种判断链路故障的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610340855.8A CN107404393A (zh) | 2016-05-20 | 2016-05-20 | 一种判断链路故障的方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107404393A true CN107404393A (zh) | 2017-11-28 |
Family
ID=60389537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610340855.8A Withdrawn CN107404393A (zh) | 2016-05-20 | 2016-05-20 | 一种判断链路故障的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107404393A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108908402A (zh) * | 2018-07-06 | 2018-11-30 | 浙江国自机器人技术有限公司 | 一种机器人硬件的检测方法及*** |
CN109327333A (zh) * | 2018-09-30 | 2019-02-12 | 潍柴动力股份有限公司 | 一种报文停发方法及装置 |
CN110138657A (zh) * | 2019-05-13 | 2019-08-16 | 北京东土军悦科技有限公司 | 交换机间的聚合链路切换方法、装置、设备及存储介质 |
CN110519096A (zh) * | 2019-08-29 | 2019-11-29 | 西安电子工程研究所 | RocketIO通信链路自动检测与恢复方法 |
CN112688826A (zh) * | 2019-10-18 | 2021-04-20 | 中车株洲电力机车研究所有限公司 | 链路诊断方法、终端设备、链路诊断***和存储介质 |
CN116155774A (zh) * | 2022-12-20 | 2023-05-23 | 中国联合网络通信集团有限公司 | 链路检测方法、装置及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050141563A1 (en) * | 1996-03-29 | 2005-06-30 | Cisco Technology, Inc., A California Corporation | Communication server apparatus providing XDSL services and method |
CN1925429A (zh) * | 2006-09-30 | 2007-03-07 | 杭州华为三康技术有限公司 | 一种实现快速检测的方法和设备 |
CN102548011A (zh) * | 2011-01-04 | 2012-07-04 | ***通信集团公司 | 中继接入链路的半持续调度、接收方法、***及装置 |
CN104917624A (zh) * | 2014-03-10 | 2015-09-16 | 华耀(中国)科技有限公司 | 一种链路聚合路径的健康检查***及方法 |
-
2016
- 2016-05-20 CN CN201610340855.8A patent/CN107404393A/zh not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050141563A1 (en) * | 1996-03-29 | 2005-06-30 | Cisco Technology, Inc., A California Corporation | Communication server apparatus providing XDSL services and method |
CN1925429A (zh) * | 2006-09-30 | 2007-03-07 | 杭州华为三康技术有限公司 | 一种实现快速检测的方法和设备 |
CN102548011A (zh) * | 2011-01-04 | 2012-07-04 | ***通信集团公司 | 中继接入链路的半持续调度、接收方法、***及装置 |
CN104917624A (zh) * | 2014-03-10 | 2015-09-16 | 华耀(中国)科技有限公司 | 一种链路聚合路径的健康检查***及方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108908402A (zh) * | 2018-07-06 | 2018-11-30 | 浙江国自机器人技术有限公司 | 一种机器人硬件的检测方法及*** |
CN109327333A (zh) * | 2018-09-30 | 2019-02-12 | 潍柴动力股份有限公司 | 一种报文停发方法及装置 |
CN110138657A (zh) * | 2019-05-13 | 2019-08-16 | 北京东土军悦科技有限公司 | 交换机间的聚合链路切换方法、装置、设备及存储介质 |
CN110138657B (zh) * | 2019-05-13 | 2021-11-09 | 北京东土军悦科技有限公司 | 交换机间的聚合链路切换方法、装置、设备及存储介质 |
CN110519096A (zh) * | 2019-08-29 | 2019-11-29 | 西安电子工程研究所 | RocketIO通信链路自动检测与恢复方法 |
CN112688826A (zh) * | 2019-10-18 | 2021-04-20 | 中车株洲电力机车研究所有限公司 | 链路诊断方法、终端设备、链路诊断***和存储介质 |
CN112688826B (zh) * | 2019-10-18 | 2022-05-20 | 中车株洲电力机车研究所有限公司 | 链路诊断方法、终端设备、链路诊断***和存储介质 |
CN116155774A (zh) * | 2022-12-20 | 2023-05-23 | 中国联合网络通信集团有限公司 | 链路检测方法、装置及存储介质 |
CN116155774B (zh) * | 2022-12-20 | 2024-04-16 | 中国联合网络通信集团有限公司 | 链路检测方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107404393A (zh) | 一种判断链路故障的方法及*** | |
JP5249950B2 (ja) | ユーティリティ・ネットワーク機能停止検出のための方法とシステム | |
CN100571173C (zh) | 一种网络节点异常的检测方法 | |
CN107787005A (zh) | 在链路质量监测的方法和相应的用户设备 | |
CN102143522A (zh) | 一种无线链路失败的处理方法和设备 | |
CN103957538A (zh) | 一种网络质量探测方法和设备 | |
CN102064981A (zh) | 双向转发检测方法和*** | |
CN104272659B (zh) | 在面向包的通讯网络中传输数据的方法和通讯网络上的相应设置的用户设备 | |
CN102118278B (zh) | 网络状况测量方法、***及网络覆盖监控方法 | |
CN105828354B (zh) | 一种lte网络业务下行速率的评估方法及装置 | |
CN103036696A (zh) | 一种联机业务的实现方法、***及相应设备 | |
CN102761461A (zh) | 一种链路健康检查方法及装置 | |
CN109728967A (zh) | 通信质量检测方法、通信设备及*** | |
CN103684818A (zh) | 检测网络通道故障的方法及装置 | |
CN103957552B (zh) | 提高自动气象站中数据通信可靠性的方法 | |
CN107404735A (zh) | 一种上行数据传输方法及***、用户设备及基站 | |
CN102137420A (zh) | 语音信道的检测方法和基站控制器 | |
CN105871667B (zh) | 一种网关设备的网络切换方法 | |
CN103109497B (zh) | 用于测量网络中性能特性的互连设备的动态配置 | |
CN102271067B (zh) | 网络检测方法、装置及*** | |
CN110971459B (zh) | 会话故障检测方法、装置、终端设备及可读存储介质 | |
CN100563201C (zh) | 一种路由器故障检测方法及装置 | |
CN104243199A (zh) | 分组传送网的数据传输方法及保护装置 | |
CN106982127B (zh) | 一种融合计费中消息检测及分流方法及汇接代理装置 | |
CN102014054A (zh) | 保活报文的发送方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20171128 |