网络故障定位系统及方法

文档序号:7930309阅读:201来源:国知局
专利名称:网络故障定位系统及方法
技术领域
本发明涉及一种网络测试系统及方法,尤其是关于一种网络故障定位系统及方法。
技术背景随着网络技术的飞速发展,计算机网络已经成为人们生活及工作不可或缺的一部分。一 旦网络通讯发生故障,可能会导致工作陷入瘫痪状态或给生活造成不便。所以,当网络发生 故障时,如何检测发生故障的位置及原因, 一直是人们探求和期待解决的问题。目前在排除网络故障方面,应用最广发的是通过采用ICMP (Internet Control Message Protocol)数据包来探测目标计算机是否存活的方式发送端计算机发送一个ICMP数据包到 目标端计算机,如果在一定时间内发送端计算机接收到目标端计算机回送的响应ICMP数据包 ,则表明目标端计算机为存活状态,如果未接收到响应ICMP数据包,则表明网络存在故障。 这种机制就是我们通常所用的ping命令来检测目标计算机是否可以ping到的机制。随着计算机网络的复杂化,网络变成一个具备多层、多终端、多主干入口的复杂体系。 一个网络可能存在多个路由器、多个主干入口,而我们使用的计算机通常属于网络某一级中 的某一点。上述网络故障排除方法的不足开始显露出来1.当网络出现故障时,无从得知 具体是哪一段网络、哪一个设备出现故障,网络管理员只能逐一进行排査最终确定故障源; 2.当网络出现故障时,无从得知具体是什么原因导致的故障,只能对网络软件设置、网络 协议、通讯线路、网络硬件设备逐一进行检査,能否快速准确地排除故障依赖于网络管理员 的经验及技能。发明内容鉴于以上内容,有必要提供一种网络故障定位系统,可以在网络出现故障时,准确地定 位发生故障的网络节点及原因。此外,还有必要提供一种网络故障定位方法,可以在网络出现故障时,准确地定位发生 故障的网络节点及原因。本发明提供一种网络故障定位系统,运行于一台计算机。该网络故障定位系统包括设 置模块,用于设置检测的目标计算机的IP地址及设置检测数据包的生存周期值;发送模块, 用于向目标端计算机发送检测数据包;接收模块,用于接收网络中网络节点回送的响应数据 包;及检査模块,用于检査接收到的响应数据包的报文类型为表明检测数据包已到达目标端计算机的类型、为表明检测数据包不可到达目标端计算机的类型还是超时报文类型,当响应 数据包的报文类型为表明检测数据包不可到达目标端计算机的类型时,根据响应数据包的报 文信息确定故障发生位置及原因;当响应数据包的报文类型为超时报文类型时,由设置模块 重新设置检测数据包的生存周期值,并由发送模块重新向目标端计算机发送检测数据包。本发明还提供一种网络故障定位方法,该方法包括以下步骤(a)设置检测的目标端 计算机的IP地址;(b)设置检测数据包的生存周期值为n, n为正整数,并初始化!1=1; (c )向目标端计算机发送检测数据包;(d)在该检测数据包流经每一个具有路由功能的网络 节点时,其生存周期值被减l;(e)监测并接收从各个网络节点反馈的对该检测数据包的响 应数据包;(f)检査接收到的响应数据包的报文类型为表明检测数据包已到达目标端计算 机的类型、为表明检测数据包不可到达目标端计算机的类型还是超时报文类型;及(g)若 响应数据包的报文类型为表明检测数据包不可到达目标端计算机的类型,则根据响应数据包 中的信息确定发生故障的网络节点及发生故障的原因,或者,若响应数据包的报文类型为超 时报文类型,则设置11=11+1,并返回步骤(c)。相较于现有技术,本发明提供的网络故障定位系统及方法可以对数据包从发送端计算机 出发到目标端计算机经过的网络设备逐一进行探测,直到出现故障为止,并准确定位出现故 障的位置及原因。


图1是本发明网络故障定位系统较佳实施例的运行环境图。图2是图1中网络故障定位系统的功能模块图。图3是ICMP数据包的格式示意图。图4是本发明网络故障定位方法较佳实施例的流程图。
具体实施方式
如图1所示,是本发明网络故障定位系统较佳实施例的运行环境图。网络50中接入多个 网络设备,包括计算机IO、集线器30、路由器40及其它设备,各计算机10通过通讯连接20及 适当的数据连接设备(例如集线器30或/及路由器40)相连接,并基于网络协议(Internet Protocol, IP)实现与其它计算机10之间的通讯。本网络故障定位系统100运行于任意一台计算机10,可以将ICMP数据包从发送端计算机 10到目标端计算机10所经过的网络节点全部探测出来,识别产生故障的网络节点。该网络故障定位系统100包括设置模块110、发送模块120、接收模块130、检査模块 140及记录模块150。设置模块110用于设置检测的目标计算机的IP地址,所述目标计算机可以为一台计算机 10,也可以为一个IP段的多个计算机IO,当目标计算机为一个IP段的多个计算机IO,所述IP地址为一个IP地址段。设置模块110还用于设置ICMP检测数据包的生存周期(Time To Live, TTL)值,并初始 化TK 。 TTL代表的是ICMP检测数据包被丢弃之前允许通过的具有路由功能的网络节点(例 如路由器40或具有路由功能的计算机10)数量。当ICMP数据包在网络中传递时,其经过的每 个具有路由功能的网络节点(如路由器40)都要将TTL值减1。当TTL值为O时,具有路由功能 的网络节点(如路由器40)丢弃该ICMP检测数据包,并发送一个ICMP响应数据包给发送端计 算机IO。有很多原因会导致ICMP检测数据包在一定时间内不能被传递到目标端计算机IO。例 如,不正确的路由表配置可能导致数据包的无限循环,而解决方法就是在一段时间后丢弃该 ICMP检测数据包,然后给发送端计算机10发送一个ICMP响应数据包,由发送端计算机10决定 是否重发该ICMP检测数据包。如图3所示,ICMP数据包(包括所述ICMP检测数据包及ICMP响应数据包)的格式示意图 。ICMP数据包分为两级封装,ICMP报文放在IP数据报的数据部分,IP数据报则放在帧的数据 中进行网络传输。ICMP报文包括ICMP头及ICMP数据。IP数据报包括IP头及IP数据。IP头包括 源IP地址及目的IP地址,其中,源IP地址指发送端计算机10或路由器的IP地址,目的IP地址 指目标端计算机10或路由器的IP地址。ICMP头包括分别代表类型域、代码域及校验和的三个 字段。类型域表示ICMP报文的类型,例如类型为8表示该ICMP报文为请求回应报文,类型为 ll表示该ICMP报文超时报文,类型为O表示该ICMP报文为目标端计算机10回送的回应报文, 类型为3表示目标端计算机10不可达。代码域提供关于报文类型更进一步的信息,例如网络 不可达、主机不可达、协议不可用等。校验和是整个ICMP数据包的校验和。发送模块120用于向目标端计算机10发送ICMP检测数据包。接收模块130用于接收网络50中网络设备(计算机10或路由器40)回送的ICMP响应数据包。检査模块140用于监测接收模块130是否收到ICMP响应数据包,并检査接收到的ICMP响应 数据包的报文类型,是为O,为3,还是为ll。如果ICMP报文类型为O,则表明ICMP检测数据包已成功到达目标端计算机IO,发送端计 算机10与目标端计算机10的IP、 ICMP软件运行正常网络畅通,流程结束。若检査模块140检査ICMP报文类型为3,则表明ICMP检测数据包在传送过程中遇到网络故 障(如硬件损坏或协议不支持等),导致ICMP检测数据包被定向一个无效的目的地,这时无6效目的地(即发送网络故障的位置)前一站的路由器或计算机10向发送端计算机回送目的不 可达数据包(类型为3),则检査模块140根据ICMP响应数据包中IP头中源IP地址确定发生故 障的网络节点,并根据代码域中记载的具体情况确定发生故障的原因,是网络不可达、主机 不可达等、协议不可用,还是别的原因。记录模块150用于记录故障发生位置及故障原因。若检査模块140检査ICMP报文类型为11,则表明ICMP检测数据包还在网络50中正常传递 ,当ICMP检测数据包每经过一个具有路由功能的网络节点(如路由器40)时,其TTL值被减 1,若TTL值被减1后不为0,则该ICMP检测数据包会继续向下一个网络设备传递,直到当TTL 值为O时,该网络节点丢弃该ICMP检测数据包,并反馈一个超时报文给发送端计算机IO (类 型为ll)。记录模块150还用于记录超时报文信息,据此发送端计算机10得知其与该网络节点之间 的网络正常,设置模块110将上一次设置的TTL值加1后重新发送ICMP检测数据包,以检测发 送端计算机10与下一个网络节点之间的网络是否正常。如图4所示,是本发明网络故障定位方法较佳实施例的流程图。在步骤SIOI,设置模块110设置检测的目标端计算机的IP地址,所述目标端计算机可以 为一台计算机IO,也可以为一个IP段的多个计算机IO,当目标端计算机为一个IP段的多个计 算机IO,所述IP地址为一个IP地址段。在步骤S102,设置模块110设置ICMP检测数据包的TTL值,并初始化TTL4。 在步骤S103,发送模块120向目标端计算机10发送ICMP检测数据包。在步骤S104,检査模块140监测接收模块130是否接收网络50中网络节点(计算机10或路 由器)回送的ICMP响应数据包。若未接收到,则继续监测。在步骤S104,若检査模块140检査接收模块130接收到ICMP响应数据包,则在步骤S105, 检査模块140检査ICMP响应数据包中的ICMP报文类型是为0还是为3,如果ICMP报文类型为O, 则表明ICMP检测数据包已成功到达目标端计算机IO,发送端计算机10与目标端计算机10IP、 ICMP软件运行正常网络畅通,流程结束。在步骤S105,若检査模块140检査ICMP响应数据包中的ICMP报文类型为3,则表明ICMP检 测数据包在传送过程中遇到网络故障(如硬件损坏或协议不支持等),导致ICMP检测数据包 被定向一个无效的目的地,这时无效目的地前一站的路由器或计算机10向发送端计算机10回 送目的不可达数据包(类型为3)。在步骤S106,检査模块140根据ICMP响应数据包中IP头中 源IP地址确定发生故障的网络节点,并根据代码域中记载的具体情况确定发生故障的原因,是网络不可达、主机不可达等、协议不可用,还是别的原因。 在步骤S107,记录模块150记录故障发生位置及故障原因。在步骤S105,如果检査模块140检査ICMP响应数据包中的ICMP报文类型不为0也不为3, 而为ll,即ICMP响应数据包的报文类型为超时报文,则表明ICMP监测数据包还在网络50中传 递,当ICMP检测数据包每经过一个具有路由功能的网络节点(如路由器40)时,其TTL值被 减l,若TTL值被减1后不为0,则该ICMP检测数据包会继续向下一个网络设备传递,直到当 TTL值为O时,该网络节点(如路由器40)丢弃该ICMP检测数据包,并反馈一个超时报文给发 送端计算机IO (类型为ll)。在步骤S108,记录模块150记录超时报文信息,据此发送端计算机10得知其与该网络节 点(路由器40)之间的网络正常。在步骤S109,设置模块110将上一次设置的ICMP检测数据包的TTL值加1后返回步骤S103 ,发送模块120重新向所述目标端计算机10发送ICMP检测数据包,以检测发送端计算机10与 下一个网络节点之间的网络是否正常。如此循环,直到査找到出现故障的网络节点或探测完 所有网络节点。
权利要求
1.一种网络故障定位方法,其特征在于,该方法包括以下步骤(a)设置检测的目标端计算机的IP地址;(b)设置检测数据包的生存周期值为n,n为正整数,并初始化n=1;(c)向目标端计算机发送检测数据包;(d)在该检测数据包流经每一个具有路由功能的网络节点时,其生存周期值被减1;(e)监测并接收从各个网络节点反馈的对该检测数据包的响应数据包;(f)检查接收到的响应数据包的报文类型为表明检测数据包已到达目标端计算机的类型、为表明检测数据包不可到达目标端计算机的类型还是超时报文类型;及(g)若响应数据包的报文类型为表明检测数据包不可到达目标端计算机的类型,则根据响应数据包中的信息确定发生故障的网络节点及发生故障的原因,或者,若响应数据包的报文类型为超时报文类型,则设置n=n+1,并返回步骤(c)。
2.如权利要求l所述的网络故障定位方法,其特征在于,所述超时 报文类型的响应数据包由将该检测数据包的生存周期值减为零的网络节点发送。
3.如权利要求l所述的网络故障定位方法,其特征在于,所述目标 端计算机为一台计算机。
4.如权利要求l所述的网络故障定位方法,其特征在于,所述目标 端计算机为一个IP段的多台计算机,所述IP地址为一个IP地址段。
5.如权利要求l所述的网络故障定位方法,其特征在于,当步骤(g )中响应数据包的报文类型为表明检测数据包不可到达目标端计算机的类型时,该方法还包 括以下步骤(gl )记录发生故障的网络节点位置及发生故障的原因。
6.如权利要求l所述的网络故障定位方法,其特征在于,当步骤(g )中响应数据包的报文类型为超时报文类型时,该方法还包括以下步骤 (g2)记录超时报文信息。
7. 一种网络故障定位系统,运行于一台计算机,其特征在于,该网 络故障定位系统包括设置模块,用于设置检测的目标计算机的IP地址及设置检测数据包的生存周期值; 发送模块,用于向目标端计算机发送检测数据包; 接收模块,用于接收网络中网络节点回送的响应数据包;及检査模块,用于检査接收到的响应数据包的报文类型为表明检测数据包已到达目标端 计算机的类型、为表明检测数据包不可到达目标端计算机的类型还是超时报文类型,当响应 数据包的报文类型为表明检测数据包不可到达目标端计算机的类型时,根据响应数据包的报 文信息确定故障发生位置及原因;当响应数据包的报文类型为超时报文类型时,由设置模块 重新设置检测数据包的生存周期值,并由发送模块重新向目标端计算机发送检测数据包。
8.如权利要求6所述的网络故障定位系统,其特征在于,所述检测 数据包流经每一个具有路由功能的网络节点时,其生存周期值被减l,所述超时报文类型的 响应数据包由将该检测数据包的生存周期值减为零的网络节点发送。
9.如权利要求6所述的网络故障定位系统,其特征在于,所述设置 模块重新设置检测数据包的生存周期值是在上一次设置的检测数据包的生存周期值上加l。
10.如权利要求6所述的网络故障定位系统,其特征在于,该系统还 包括记录模块,用于记录发生故障的网络节点位置及发生故障的原因。
全文摘要
本发明提供一种网络故障定位系统,运行于计算机,该计算机通过网络与其它计算机连接。该系统包括设置模块,用于设置检测的目标端计算机的IP地址及设置检测数据包的生存周期值;发送模块,用于向目标端计算机发送检测数据包;接收模块,用于接收网络中设备回送的响应数据包;检查模块,用于检查所述响应数据包的报文类型,当响应数据包的报文类型为表明检测数据包不可到达目标端计算机的类型时,根据响应数据包的报文信息确定故障发生位置及原因。本发明还提供一种网络故障定位方法。利用本发明,可以准确定位网络中出现故障的位置及原因。
文档编号H04L12/26GK101605063SQ200810302070
公开日2009年12月16日 申请日期2008年6月10日 优先权日2008年6月10日
发明者常小军 申请人:鸿富锦精密工业(深圳)有限公司;鸿海精密工业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1