心跳检测方法及网络设备技术

技术编号:6543222 阅读:612 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种心跳检测方法及网络设备。其中,方法包括:当检测设备向被检测设备发送心跳请求报文时,判断具有指定窗口长度的滑动窗口中是否存在存储有应答标识的窗格,应答标识是从被检测设备返回的第一心跳应答报文中获取并存储到相应的窗格中的;若判断结果为是,检测设备判定被检测设备未死机,同时向被检测设备发送携带有时间戳的心跳请求报文,将滑动窗口向前滑动一个格,并将时间戳存储到刚滑入的窗格中;若判断结果为否,检测设备判定被检测设备死机。采用本发明专利技术技术方案,可以克服现有技术因心跳请求报文或心跳应答报文发送延迟或丢失导致检测设备误判被检测设备工作状态的问题,提高判定被检测设备工作状态的准确度。

【技术实现步骤摘要】

本专利技术涉及网络通信技术,尤其涉及一种心跳检测方法及网络设备
技术介绍
在网络环境中,常常需要通过自动化的方式来诊断设备的工作状态;当被检测设备发生故障,则检测设备可以自行采取应对措施,以确保网络的畅通。其中,心跳检测机制是一种最常见的检测设备工作状态的方法,其通过检测被检测设备发出的心跳报文来判断被检测设备的工作状态。心跳检测机制有两种实现方式一种是被检测设备定时发送心跳检测报文,检测设备通过捕捉心跳检测报文来判断被检测设备是否处于工作状态。如果检测设备在规定时间内未捕捉到心跳检测报文,就判定被检测设备发生故障。另一种是检测设备发送心跳请求报文给被检测设备,被检测设备在接收到心跳请求报文后,向检测设备返回心跳应答报文,以告知检测设备其处于工作状态。如果检测设备在规定时间内未接收到被检测设备返回的心跳应答报文,则判定被检测设备发生故障。对于第一种方式在被检测设备因业务过载导致心跳进程无法及时发出心跳检测报文,例如原定IOOms发送一次心跳检测报文,因为心跳进程得不到调度而出现300ms发送一次心跳检测报文的情况下,或者,在被检测设备的中央处理器(Central Processing Unit ;简称为CPU)遭受攻击,由于大量报文涌入被检测设备导致心跳检测报文被丢失的情况下,如果检测设备无法在规定时间内捕捉到心跳检测报文,会将被检测设备判定为发生故障,发生误判的现象。对于第二种方式在被检测设备因业务过载导致心跳应答报文无法及时发出的情况下,或者在检测设备因业务过载导致心跳请求报文无法被及时发出的情况下,又或者,在检测设备因CPU遭受攻击而出现心跳请求报文丢失的情况下,再或者,在被检测设备因CPU遭受攻击而出现心跳应答报文丢失的情况下,如果检测设备无法在规定时间内接收到心跳应答报文,也会误将被检测设备判定为发生故障。
技术实现思路
本专利技术提供一种心跳检测方法及网络设备,用以解决现有技术根据心跳检测机制判定被检测设备的工作状态时会发生误判的问题,提高判定被检测设备工作状态的准确度。本专利技术提供一种心跳检测方法,包括当检测设备向被检测设备发送心跳请求报文时,判断具有指定窗口长度的滑动窗口中是否存在存储有应答标识的窗格,所述应答标识是从所述被检测设备返回的第一心跳应答报文中获取并存储到相应的窗格中的;若判断结果为是,所述检测设备判定所述被检测设备未死机,同时向所述被检测设备发送携带有时间戳的所述心跳请求报文,将所述滑动窗口向前滑动一个格,并将所述时间戳存储到刚滑入的窗格中;若判断结果为否,所述检测设备判定所述被检测设备死机。本专利技术提供一种网络设备,包括第一判断模块,用于在向被检测设备发送心跳请求报文时,判断具有指定窗口长度的滑动窗口中是否存在存储有应答标识的窗格,所述应答标识是从所述被检测设备返回的第一心跳应答报文中获取并存储到相应的窗格中的;判定处理模块,用于在所述第一判断模块的判断结果为是时,判定所述被检测设备未死机,同时向所述被检测设备发送携带有时间戳的所述心跳请求报文,将所述滑动窗口向前滑动一格,并将所述时间戳存储到刚滑入的窗格中;以及用于在所述第一判断模块的判断结果为否时,判定所述被检测设备死机。本专利技术还提供一种网络设备,包括第三接收模块,用于接收检测设备发送的携带有时间戳的心跳请求报文,所述心跳请求报文是由所述检测设备在判断出具有指定窗口长度的滑动窗口中存在存储有应答标识的窗格时发送的;生成发送模块,用于根据所述心跳请求报文,生成所述第一心跳应答报文,并将所述第一心跳应答报文发送给所述检测设备;所述第一心跳应答报文包括所述应答标识和所述心跳请求报文中的时间戳。本专利技术的心跳检测方法及网络设备,检测设备通过滑动窗口来管理心跳请求报文和心跳应答报文的收发状态,在向被检测设备发送心跳请求报文之前判断滑动窗口中是否存在存储有应答标识的窗格,即判断在滑动窗口对应的范围内是否有心跳请求报文被应答过,如果有,则表明被检测设备未死机,反之,说明被检测设备死机;被检测设备根据心跳请求报文向检测设备返回携带应答标识的心跳应答报文。本专利技术技术方案利用滑动窗口,而不是严格的时间,由于滑动窗口的滑动速度与心跳请求报文发送速度相一致,提高了检测设备对心跳应答报文延时的承受能力,克服了现有技术因心跳请求报文或心跳应答报文发送延迟或丢失导致检测设备误判被检测设备工作状态的问题,提高了判定被检测设备工作状态的准确度。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例一提供的心跳检测方法的流程图;图2为本专利技术实施例二提供的心跳检测方法的流程图;图3为本专利技术实施例三提供的网络设备的结构示意图;图4为本专利技术实施例四提供的网络设备的结构示意图;图5为本专利技术实施例五提供的网络设备的结构示意图;图6为本专利技术实施例六提供的网络设备的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1为本专利技术实施例一提供的心跳检测方法的流程图。如图1所示,本实施例的方法包括步骤101、当检测设备向被检测设备发送心跳请求报文时,判断具有指定窗口长度的滑动窗口中是否存在存储有应答标识的窗格;如果判断结果为是,执行步骤102 ;如果判断结果为否,执行步骤103。在本实施例中,检测设备维护一个滑动窗口,该滑动窗口在数据结构上就是一个环形缓存区。滑动窗口具有固定的窗口长度,该窗口长度可以根据实际需求预先指定,该窗口长度也就是环形缓存区的有效数据区。在具体实现上,该滑动窗口具有头指针和尾指针, 滑动窗口每向前滑动一格是指该滑动窗口的头指针和尾指针同时向前移动一格,以保证滑动窗口始终具有固定的窗口长度,其中所述“一格”是指一个缓存区(即缓存空间)。在本实施例以及后续各实施例中,将滑动窗口中的一个缓存区称为一个窗格,滑动窗口的窗口长度也就是滑动窗口中窗格的个数。其中,窗格主要用于存储发送心跳请求报文时的时间戳;另外,当滑动窗口中某个窗格对应的心跳请求报文被应答时,该窗格中还会存储应答标识,以表示该窗格对应的心跳请求报文已经被应答。其中,如果某个心跳请求报文被应答,则检测设备就会收到被检测设备返回的心跳应答报文,在该心跳应答报文中携带有应答标识,检测设备会获取心跳应答报文中的应答标识,并将应答标识存储到相应的窗格中。具体的,在检测设备上同时还维护着心跳周期,当心跳周期到达时,表示检测设备需要向被检测设备发送心跳请求报文。此时,检测设备首先判断滑动窗口中是否存在存储有应答标识的窗格,即判断在滑动窗口对应的时间范围内的心跳请求报文中是否存在已经被应答过的;如果存在,表明被检测设备还保持心跳;如果不存在,则表明被检测设备已经心跳停止。在此说明,上述判断滑动窗口中是否存在应答标本文档来自技高网
...

【技术保护点】
1.一种心跳检测方法,其特征在于,包括:当检测设备向被检测设备发送心跳请求报文时,判断具有指定窗口长度的滑动窗口中是否存在存储有应答标识的窗格,所述应答标识是从所述被检测设备返回的第一心跳应答报文中获取并存储到相应的窗格中的;若判断结果为是,所述检测设备判定所述被检测设备未死机,同时向所述被检测设备发送携带有时间戳的所述心跳请求报文,将所述滑动窗口向前滑动一个格,并将所述时间戳存储到刚滑入的窗格中;若判断结果为否,所述检测设备判定所述被检测设备死机。

【技术特征摘要】
1.一种心跳检测方法,其特征在于,包括当检测设备向被检测设备发送心跳请求报文时,判断具有指定窗口长度的滑动窗口中是否存在存储有应答标识的窗格,所述应答标识是从所述被检测设备返回的第一心跳应答报文中获取并存储到相应的窗格中的;若判断结果为是,所述检测设备判定所述被检测设备未死机,同时向所述被检测设备发送携带有时间戳的所述心跳请求报文,将所述滑动窗口向前滑动一个格,并将所述时间戳存储到刚滑入的窗格中;若判断结果为否,所述检测设备判定所述被检测设备死机。2.根据权利要求1所述的心跳检测方法,其特征在于,还包括所述被检测设备根据接收到的所述心跳请求报文,生成所述第一心跳应答报文,并将所述第一心跳应答报文发送给所述检测设备,所述第一心跳应答报文包括所述应答标识和所述心跳请求报文中的时间戳;所述检测设备判断所述第一心跳应答报文中的时间戳是否存在于所述滑动窗口中;若判断结果为是,将所述第一心跳应答报文中的所述应答标识存储到所述时间戳对应的窗格中;若判断结果为否,将所述第一心跳应答报文直接丢弃。3.根据权利要求2所述的心跳检测方法,其特征在于,所述被检测设备根据接收到的所述心跳请求报文,生成所述第一心跳应答报文包括所述被检测设备将所述心跳请求报文的源地址和目的地进行调换,并添加所述应答标识后生成所述第一心跳应答报文。4.根据权利要求2或3所述的心跳检测方法,其特征在于,所述被检测设备接收到所述心跳请求报文时,产生第一中断请求;所述被检测设备的中央处理器CPU根据所述第一中断请求调用第一中断处理程序, 由所述第一中断处理程序执行根据接收到的所述心跳请求报文,生成所述第一心跳应答报文,并将所述第一心跳应答报文发送给所述检测设备的操作;所述检测设备接收到所述第一心跳应答报文时,产生第二中断请求;所述检测设备的CPU根据所述第二中断请求调用第二中断处理程序,由所述第二中断处理程序执行判断所述第一心跳应答报文中的时间戳是否存在于所述滑动窗口中,以及在判断结果为是时,将所述第一心跳应答报文中的所述应答标识存储到所述时间戳对应的窗格中;以及在判断结果为否时,将所述第一心跳请求报文直接丢弃的操作。5.根据权利要求4所述的心跳检测方法,其特征在于,所述被检测设备在根据接收到的所述心跳请求报文产生所述第一中断请求的同时,将所述心跳请求报文提交给处理所述心跳请求报文的心跳响应进程,所述心跳响应进程根据所述心跳请求报文,生成第二心跳应答报文,并将所述第二心跳应答报文发送给所述检测设备;所述检测设备根据接收所述第二心跳应答报文的情况,判断所述被检测设备的CPU的繁忙程度。6.根据权利要求5所述的心跳检测方法,其特征在于,所述检测设备根据接收所述第二心跳应答报文的情况,判断所述被检测设备的CPU的繁忙程度包括所述检测设备判断是否接收到所述第二心跳应答报文;如果判断结果为否,所述检测设备判定所述被检测设备的CPU处于满负荷状态;如果判断结果为是,所述检测设备判定所述被检测设备的CPU处于非满负荷状态。7.根据权利要求6所述的心跳检测方法,其特征在于,还包括当所述检测设备接收到所述第二心跳应答报文时,判断接收到所述第二心跳应答报文和接收到所述第一心跳应答报文的时间差是否小于预设时间差门限;若判断结果为是,所述检测设备判定所述被检测设备的CPU处于所述非满负荷状态中的轻负荷状态;如判断结果为否,所述检测设备判定所述被检测设备的CPU处于所述非满负荷状态中的重负荷状态。8.根据权利要求1-7任一项所述的心跳检测方法,其特征在于,所述检测设备与所述被检测设备通过专用网络线路连接。9.一种网络设备,其特征在于,包括第一判断模块,用于在向被检测设备发送心跳请求报文时,判断具有指定窗口长度的滑动窗口中是否存在存储有应答标识的窗格,所述应答标识是从所述被检测设备返回的第一心跳应答报文中获取并存储到相应的窗格中的;判定处理模块,用于在所述第一判断模块的判断结果为是时,判定所述被检测设备未死机,同时向所述被检测设备发送...

【专利技术属性】
技术研发人员:马云莺
申请(专利权)人:北京星网锐捷网络技术有限公司
类型:发明
国别省市:11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1