一种目标设备可达性的检测方法和装置
技术领域
本发明涉及网络技术领域,尤其涉及一种目标设备可达性的检测方法和装置。
背景技术
随着各行各业对信息化要求的不断提高,企业网、校园网、园区网等各式各样网络的建设步伐也不断加快,如何为网络中大量的设备提供便捷、高效的管理是网络管理者急需考虑的问题。其中告警管理是网管软件中最为重要的功能,通过告警管理,用户可以及时发现网络中设备的运行情况和出现的问题。在发现问题的时候可以第一时间赶到现场排除故障,解决问题。在告警管理中,对设备可达性的管理是尤其重要的,因为设备的连通性和可达性是设备正常工作的必要条件。在实际工作中,当出现设备不可达告警的时候,网管员会高度重视和关注。在这种情况下,设备可达性告警的处理就显得尤其关键,也成为评价一个网管软件的性能和精度的标准,甚至决定着网管软件的销售业绩。
目前网管软件判断设备是否可达,一般是采用ICMP(Internet ControlMessage Protocol,Internet控制信息协议)协议的Ping方式。ICMP Ping是使用ICMP协议的网络探测工具在网管设备侧向设备发送ICMP请求报文,设备的ICMP模块在收到该请求报文后会发送响应报文,据此可判断设备是否可达。通过设定若干次重复探测设备是否可Ping通来判断是否可达。在网络环境正常的情况下,这种方式能比较准确地判定设备的可达性,但是在网络环境比较繁忙的情况下,由于ICMP本身的实现方式是基于面向无连接的协议,是一种非可靠连接方式,因此有可能会丢包而造成对设备可达性的误判。与ICMP Ping类似有SNMP(Simple Network Management Protocol,简单网络管理协议)Ping,是指采用SNMP协议对设备进行SNMP操作的方式,来达到判断设备是否可达的目的。由于SNMP协议是基于UDP(User DatagramProtocol,用户数据报协议)协议的,同样也是基于面向无连接协议的,也是一种不可靠连接协议,所以也会出现由于丢包造成的设备不可达误报情况。
现常一般采用对具体设备多次ICMP Ping的方式来避免由于网络影响造成的误判,具体如下:(1)、先设置每次Ping的超时时间,比如第一次1秒,第二次两秒,第三次四秒;(2)、如果第一次Ping不成功则进行第二次Ping,如果第二次不成功再进行第三次Ping;(3)、如果三次都不能成功,则判定设备不可达。通过该方式,在一定程度上可以提高判断的准确性,减少网管发出错误的设备不可达告警的概率。
由于ICMP Ping是非可靠连接方式,在网络环境十分拥挤的时段,即使Ping三次也很有可能会出现ICMP Ping报文全部丢失的情况,从而误判设备是否可达。在出现误判以后,网管员很难发现到底是设备真的出现了问题还是网管的错误告警,给定位问题和故障排除带来很大的问题。
发明内容
本发明提供一种目标设备可达性的检测方法和装置,用于在短时间内准确判断网络中的目标设备是否可达。
为达到上述目的,本发明提供一种目标设备可达性的检测方法,包括以下步骤:
根据Ping方式检测目标设备是否可达;
所述Ping方式检测为所述目标设备不可达时,通过与所述目标设备建立传输控制协议TCP连接进一步检测所述目标设备是否可达。
其中,所述根据Ping方式检测目标设备是否可达前还包括:
定时对网络中包括所述目标设备在内的设备的状态进行轮询;
所述通过与所述目标设备建立TCP连接进一步检测所述目标设备是否可达进一步包括:
所述Ping方式检测为所述目标设备不可达时,获取所述目标设备在上一次轮询中的状态;
所述目标设备在上一次轮询中的状态为可达时,通过与所述目标设备建立TCP连接进一步检测所述目标设备是否可达;否则判断为所述目标设备不可达。
其中,所述根据Ping方式检测目标设备是否可达具体为:
使用基于因特网控制信息协议ICMP或简单网络管理协议SNMP的Ping方式,对所述目标设备进行至少一次Ping检测,获取所述Ping检测结果;
根据所述Ping检测结果判断所述目标设备是否可达。
其中,所述与所述目标设备建立传输控制协议TCP连接具体为:
尝试连接所述目标设备上已经开启TCP协议的服务端口。
其中,所述服务端口为所述目标设备的Telnet服务端口23。
本发明还提供一种网管设备检测目标网络设备可达性的方法,包括以下步骤:
a.向目标网络设备发起基于面向无连接协议的可达性检测,并等待目标网络设备的响应;若在一个预定时间内得到目标网络设备的响应,则判定目标网络设备可达,并记录本次检测结果为可达;若到达到上述预定时间后目标网络设备仍没有响应,则重新发起基于面向无连接协议的可达性检测,当该面向无连接协议的可达性检测次数已经到达预定次数,转步骤b;
b.查询网管设备记录的上一次目标网络设备可达性的检测结果,若上一次可达转步骤c,若上一次不可达,则记录本次检测结果为不可达,并生成目标设备不可达的告警;
c.向目标网络设备发起基于面向连接协议的可达性检测,并判断是否能够成功与目标网络设备建立连接,若成功,则确定设备可达,并记录本次检测结果为可达,若不成功,则记录本次检测结果为不可达,并生成目标网络设备不可达的告警。
其中,步骤a中每次基于面向无连接协议检测的预定时间不同,且成倍递增,其中步骤a中的检测次数小于等于3次。
其中,步骤c中的面向连接协议是TCP协议,并且该TCP连接的目标端口是目标网络设备的Telnet服务端口。
其中,步骤a中所述的发起基于面向无连接协议的可达性检测具体为:向目标网络设备发送ICMP Ping或者SNMP Ping报文。
本发明还提供一种目标设备可达性的检测装置,包括:
基于面向无连接协议方式检测单元,用于根据基于面向无连接协议的方式检测目标设备是否可达;
基于面向连接协议方式检测单元,用于所述基于面向无连接协议方式检测单元检测为所述目标设备不可达时,通过基于面向连接协议的检测方式进一步检测所述目标设备是否可达。
其中,所述基于面向连接协议方式检测单元进一步包括:
轮询状态获取子单元,用于所述基于面向无连接协议方式检测单元检测到所述目标设备不可达时,获取所述目标设备在上一次轮询中的状态并通知基于面向连接协议方式检测子单元;
基于面向连接协议方式检测子单元,用于当所述轮询状态获取子单元的通知为所述目标设备在上一次状态轮询中的状态为可达时,通过与所述目标设备建立基于面向连接协议的连接进一步检测所述目标设备是否可达;否则判断为所述目标设备不可达。
其中,还包括:
轮询检测单元,用于定时对网络中包括所述目标设备在内的设备的状态进行轮询,并在需要时将所述目标设备在轮询中的状态提供给所述基于面向连接协议方式检测单元。
与现有技术相比,本发明具有以下优点:
有效地使用面向无连接协议的可达性检测方式耗时短的特点以及面向连接协议的可达性检测连接可靠的优势。在正常网络环境下可以在比较短的时间内判断设备是否可达;而在网络环境比较拥挤或设备确实不可达的情况下可以比较准确地判定设备是否真的不可达,从而避免设备的不可达误报,提高网管软件的整体质量。
附图说明
图1是本发明中一种目标设备可达性检测方法的流程图;
图2是本发明中网管设备对目标设备可达性探测的流程图;
图3是本发明中一种目标设备可达性检测装置的示意图。
具体实施方式
本发明一种目标设备可达性的检测方法的核心思想在于:结合基于面向无连接协议检测方式的快捷性(如ICMP/SNMP Ping的检测方式)以及基于面向连接协议检测方式的可靠性(如基于TCP协议的检测方式,TransmissionControl Protocol,传输控制协议)综合判断设备的可达性。很显然以上具体协议仅仅是本领域技术人员最熟悉的流行协议,以下将以上述具体协议为例进行具体实施方式介绍,但正如本领域技术人员所了解的那样,面向连接协议/面向无连接协议并不局限于以上几种。
具体的,以基于面向无连接协议检测方式为ICMP Ping检测方式、基于面向连接协议检测方式为基于TCP协议的检测方式为例,本发明中一种目标设备可达性的检测方法如图1所示,包括以下步骤:
步骤s101、根据Ping方式检测目标设备是否可达。
具体的,Ping工具是对两个系统进行连通性测试的工具。以ICMP Ping为例,它只利用ICMP回显请求和回显应答报文,而不经过传输层,设备一般在系统内核中实现Ping功能。由于Ping不经过传输层,所以不需要与对端设备建立可靠连接就可以直接发送,具有方便快捷的特点,在网管设备管理的设备数量非常大的情况下使用Ping探测设备可达性具有效率高、速度快的特点。
步骤s102、该Ping方式检测为目标设备不可达时,通过与该目标设备建立TCP连接检测该目标设备是否可达。
具体的,考虑到在网络环境拥挤时,Ping方式检测的结果可能出现误判设备不可达的情况。而TCP协议具有高可靠性的特点,因此可以采用尝试与Ping方式检测为不可达的目标设备建立TCP连接的方式,来进一步判断目标设备是否可达。如果无法建立TCP连接,则设备肯定不可达。
上述步骤s102中,考虑到建立TCP连接需要经过三次握手等一系列的相互通信,中止连接需要四次握手,需要的时间比较长,因此在设备较多的情况下尝试大量建立TCP连接容易造成网管设备负载过大、效率降低。为此,可以将上一次对该目标设备的轮询结果作为参考,进一步判断是否通过建立TCP连接的方式判断目标设备是否可达。轮询是指网络中的特定设备(如网管设备)定时对网络中的所有设备的状态进行一次扫描,获取设备的状态信息。例如将设备的状态轮询时间设置为60分钟,那么网管设备每隔60分钟会对该设备进行一次状态轮询,轮询时间的设定可以根据网络状况和网络设备的重要程度来适当调整。
根据上一次对于目标设备的轮询结果,对步骤s101中Ping方法检测为不可达的目标设备采取区别对待的方式:如果上次轮询时该目标设备可达,那么Ping不通的原因可能是设备真正不通,也可能是网络状况不佳丢包造成,在这种情况下采用TCP的方式连接是必要的;如果上次轮询时该目标设备就不可达,本次依然不能Ping通,那么设备本身不可达的概率是非常高的,考虑到网管设备的负载情况,可以不再尝试进行TCP连接。
以下以网管设备对目标设备可达性的探测为例,说明本发明中一种目标设备可达性检测方法的具体实施方式。其中同样以基于面向无连接协议检测方式为ICMP Ping检测方式、基于面向连接协议检测方式为基于TCP协议的检测方式为例。
步骤s201、网管设备通过Ping探测目标设备是否可达,不可达时进行步骤s202,否则判定该目标设备可达并结束。
具体的,网管设备首先通过ICMP Ping或SNMP Ping方式判断设备是否可达。以使用ICMP Ping为例,可以使用多次ICMP Ping探测,例如设置ICMPPing的超时时间为第一次1秒,第二次两秒,第三次四秒。则如果第一次Ping探测不成功则进行第二次Ping探测,如果第二次依然不成功再进行第三次Ping,如此反复,根据此Ping探测的结果判断目标设备是否可达。
步骤s202、网管设备判断该目标设备在上一次轮询时是否可达,可达则进行步骤s203,否则进行步骤s205。
具体的,网管设备查询上一次轮询时该目标设备是否可达的信息,根据该信息判断是否尝试与该目标设备建立TCP连接。如果在上一次轮询时该目标设备是可达的,那么步骤s201中的Ping探测结果存在误报的可能,可以进一步尝试与目标设备建立TCP连接;如果上一次轮询时该目标设备已经不可达,则不需再发起TCP连接,直接判断设备不可达,发送不可达告警。
步骤s203、网管设备向该目标设备发起TCP连接。
考虑到网络设备一般由于维护的需要都设置有Telnet的服务端口,因此可以使用TCP方式尝试连接Telnet的服务端口23,如果能连接上则说明设备可达,否则判定设备不可达。当然也可以尝试连接网络设备上常用的已经开启TCP协议服务的端口,以避免由于连接某些不存在的端口造成错误判断。
步骤s204、网管设备根据该TCP连接的结果判断目标设备是否可达并结束。
具体的,预先根据网络环境设置TCP连接的超时时间,一般根据网管设备所在网络的繁忙程度设定,比如5秒。如果TCP连接正常建立则判定该目标设备可达;否则判定该目标设备不可达,发送不可达告警。
步骤s205、网管设备判定该目标设备不可达并结束。
具体的,网管设备判定该目标设备不可达,发送不可达告警。
通过使用本发明上述实施例提供的目标设备可达性检测方法,有效地使用面向无连接协议的可达性检测方式耗时短的特点以及面向连接协议的可达性检测连接可靠的优势。在正常网络环境下可以在比较短的时间内判断设备是否可达;而在网络环境比较拥挤或设备确实不可达的情况下可以比较准确地判定设备是否真的不可达,从而避免设备的不可达误报,提高网管软件的整体质量。
本发明中还提供一种目标设备可达性的检测装置,其结构如图3所示,包括:
基于面向无连接协议方式检测单元10,用于使用基于面向无连接协议方式检测目标设备是否可达。具体的,可以使用基于ICMP或SNMP的Ping方式,对目标设备进行至少一次Ping检测,获取Ping检测结果并根据该Ping检测结果判断目标设备是否可达。
基于面向连接协议方式检测单元20,用于当基于面向无连接协议方式检测单元10检测为该目标设备不可达时,通过对该目标设备进行基于面向连接协议方式的检测,如通过尝试与目标设备建立TCP连接进一步检测该目标设备是否可达。
具体的,该基于面向连接协议方式检测单元20进一步包括:轮询状态获取子单元21,用于在基于面向无连接协议方式检测单元10检测为所述目标设备不可达时,获取该目标设备在上一次轮询中的状态并通知基于面向连接协议方式检测子单元22;基于面向连接协议方式检测子单元22,用于当轮询状态获取子单元21的通知为该目标设备在上一次状态轮询中的状态为可达时,通过与该目标设备建立基于面向连接协议方式的连接进一步检测该目标设备是否可达;否则判断为该目标设备不可达。如通过尝试与目标设备建立TCP连接进一步检测该目标设备是否可达,与该目标设备建立TCP连接可以为:尝试连接该目标设备上已经开启TCP协议的服务端口,如Telnet服务端口23。
另外,该目标设备可达性的检测装置还包括:
轮询检测单元30,用于定时对网络中包括该目标设备在内的设备的状态进行轮询,并在需要时将该目标设备在轮询中的状态提供给基于面向连接协议方式检测单元20。轮询时间的设定可以根据网络状况和设备的重要程度来适当调整。
通过使用本发明上述实施例提供的目标设备可达性检测装置,有效地使用面向无连接协议的可达性检测方式耗时短的特点以及面向连接协议的可达性检测连接可靠的优势。在正常网络环境下可以在比较短的时间内判断设备是否可达;而在网络环境比较拥挤或设备确实不可达的情况下可以比较准确地判定设备是否真的不可达,从而避免设备的不可达误报,提高网管软件的整体质量。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台设备执行本发明各个实施例所述的方法。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。