本发明涉及通信技术领域,尤指一种网络故障检测方法及装置。
背景技术:
随着网络技术的飞速发展,用户的数量越来越多。为了确保用户的上网体验,及时准确地检测出网络故障成为新的挑战。
目前,通常采用人工方式进行网络故障检测,具体过程是:技术人员获取报障用户信息(即源互联网协议(internetprotocol,ip)地址)和目的服务器信息(即目的ip地址)后,确定从源ip地址到目的ip地址的路径(即经过的网络设备),然后采用ping报文逐跳检查该路径,能够正常转发ping报文的网络设备是正常的,不能正常转发ping报文的网络设备则是故障的,若存在不能正常转发ping报文的网络设备,则检测到网络故障。
上述方案中,需要人工确定故障网络设备,由于目前网络设备的数量巨大且用户数量也越来越多,这就导致网络故障检测效率非常低;同时,ping报文的转发路径与数据报文的实际转发路径可能存在差异,这就导致网络故障检测准确性较差。
技术实现要素:
本发明实施例提供一种网络故障检测方法及装置,用以解决现有网络故障检测方法中存在的网络故障检测效率较低、网络故障检测准确性较差的问题。
根据本发明实施例,提供一种网络故障检测方法,包括:
确定待检测数据流依次经过的入口网络设备和其他网络设备;
向所述入口网络设备下发切换周期和标识切换规则,以使所述入口网络设备根据所述标识切换规则确定每个所述切换周期对应的标识,在每个所述切换周期内接收到的属于所述待检测数据流的报文中添加每个所述切换周期对应的标识,在每个所述切换周期到期后统计添加每个所述切换周期对应的标识的第一报文数量、并上报所述第一报文数量;以及,
向所述其他网络设备下发报文统计指令,以使所述其他网络设备监控到当前报文携带的第一标识与相邻前一个报文携带的第二标识不同时,统计携带所述第二标识的报文的第二报文数量,上报所述第二报文数量;
根据所述入口网络设备上报的所述第一报文数量和所述其他网络设备上报的所述第二报文数量,确定故障的网络设备。
可选的,还包括:
获取指定的第一源互联网协议ip地址、第一目的ip地址、第一端口、第一源媒体访问控制mac地址和第一目的mac地址,得到所述待检测数据流;或者,
接收到所有数据流检测指令,依次从接收到的数据流中获取第二ip地址、第二目的ip地址、第二端口、第二源mac地址和第二目的mac地址,得到所述待检测数据流。
具体的,确定待检测数据流依次经过的入口网络设备和其他网络设备,具体包括:
获取整网拓扑图;
从所述整网拓扑图中查找所述待检测数据流依次经过的入口网络设备和其他网络设备。
具体的,根据所述入口网络设备上报的所述第一报文数量和所述其他网络设备上报的所述第二报文数量,确定故障的网络设备,具体包括:
针对每个所述切换周期执行:
获取所述入口网络设备上报的所述第一报文数量和所述其他网络设备上报的所述第二报文数量,得到n个报文数量,其中,n等于所述入口网络设备的数量和所述其他网络设备的数量的和;
按照所述待检测数据流经过网络设备的顺序将所述n个报文数量进行排序,得到报文数量序列;
若所述报文数量序列中的第三报文数量小于所述报文数量序列中相邻前一个的报文数量,则确定上报所述第三报文数量的网络设备发生故障。
可选的,还包括:
若在设定数量的切换周期内均确定上报所述第三报文数量的网络设备发生故障,则发出故障告警信息,并提示上报所述第三报文数量的网络设备故障。
根据本发明实施例,还提供一种网络故障检测装置,包括:
第一确定模块,用于确定待检测数据流依次经过的入口网络设备和其他网络设备;
第一下发模块,用于向所述入口网络设备下发切换周期和标识切换规则,以使所述入口网络设备根据所述标识切换规则确定每个所述切换周期对应的标识,在每个所述切换周期内接收到的属于所述待检测数据流的报文中添加每个所述切换周期对应的标识,在每个所述切换周期到期后统计添加每个所述切换周期对应的标识的第一报文数量、并上报所述第一报文数量;以及,
第二下发模块,用于向所述其他网络设备下发报文统计指令,以使所述其他网络设备监控到当前报文携带的第一标识与相邻前一个报文携带的第二标识不同时,统计携带所述第二标识的报文的第二报文数量,上报所述第二报文数量;
第二确定模块,用于根据所述入口网络设备上报的所述第一报文数量和所述其他网络设备上报的所述第二报文数量,确定故障的网络设备。
可选的,还包括获取模块,用于:
获取指定的第一源互联网协议ip地址、第一目的ip地址、第一端口、第一源媒体访问控制mac地址和第一目的mac地址,得到所述待检测数据流;或者,
接收到所有数据流检测指令,依次从接收到的数据流中获取第二ip地址、第二目的ip地址、第二端口、第二源mac地址和第二目的mac地址,得到所述待检测数据流。
具体的,所述第一确定模块,具体用于:
获取整网拓扑图;
从所述整网拓扑图中查找所述待检测数据流依次经过的入口网络设备和其他网络设备。
具体的,所述第二确定模块,具体用于:
针对每个所述切换周期执行:
获取所述入口网络设备上报的所述第一报文数量和所述其他网络设备上报的所述第二报文数量,得到n个报文数量,其中,n等于所述入口网络设备的数量和所述其他网络设备的数量的和;
按照所述待检测数据流经过网络设备的顺序将所述n个报文数量进行排序,得到报文数量序列;
若所述报文数量序列中的第三报文数量小于所述报文数量序列中相邻前一个的报文数量,则确定上报所述第三报文数量的网络设备发生故障。
可选的,还包括提示模块,用于:
若在设定数量的切换周期内均确定上报所述第一报文数量的网络设备发生故障,则发出故障告警信息,并提示上报所述第三报文数量的网络设备故障。
本发明有益效果如下:
本发明实施例提供一种网络故障检测方法及装置,通过确定待检测数据流依次经过的入口网络设备和其他网络设备;向所述入口网络设备下发切换周期和标识切换规则,以使所述入口网络设备根据所述标识切换规则确定每个所述切换周期对应的标识,在每个所述切换周期内接收到的属于所述待检测数据流的报文中添加每个所述切换周期对应的标识,在每个所述切换周期到期后统计添加每个所述切换周期对应的标识的第一报文数量、并上报所述第一报文数量;以及,向所述其他网络设备下发报文统计指令,以使所述其他网络设备监控到当前报文携带的第一标识与相邻前一个报文携带的第二标识不同时,统计携带所述第二标识的报文的第二报文数量,上报所述第二报文数量;根据所述入口网络设备上报的所述第一报文数量和所述其他网络设备上报的所述第二报文数量,确定故障的网络设备。该方案中,能够自动确定故障网络设备,无需人工确定,即使网络设备的数量巨大且用户数量越来越多,也能够保证网络故障检测效率;同时,由于以切换周期在实际接收到的报文中添加每个切换周期对应的标识,并统计携带每个切换周期对应的标识的报文,从而能够保证网络故障检测准确性。
附图说明
图1为本发明实施例中网络故障检测方法的流程图;
图2为本发明实施例中s14的流程图;
图3为本发明实施例中网络故障检测装置的结构示意图。
具体实施方式
针对现有网络故障检测方法中存在的网络故障检测效率较低、网络故障检测准确性较差的问题,本发明实施例提供一种网络故障检测方法,该方法可以但不限于应用在控制器中,流程如图1所示,执行步骤如下:
s11:确定待检测数据流依次经过的入口网络设备和其他网络设备。
通常待检测数据流需要经过一系列网络设备到达目的服务器,首先经过的网络设备定义为入口网络设备,除入口网络设备之外经过的网络设备定义为其他网络设备。
在确定待检测数据流依次经过的入口网络设备和其他网络设备时,可以首先获取整网拓扑图,然后从整网拓扑图中查找待检测数据流依次经过的入口网络设备和其他网络设备;也可以使用ping报文逐一确定。
s12:向入口网络设备下发切换周期和标识切换规则,以使入口网络设备根据标识切换规则确定每个切换周期对应的标识,在每个切换周期内接收到的属于待检测数据流的报文中添加每个切换周期对应的标识,在每个切换周期到期后统计添加每个切换周期对应的标识的第一报文数量、并上报第一报文数量。
为了保证网络故障检测准确性,可设置切换周期和标识切换规则,控制器将切换周期和标识切换规则下发给入口网络设备,也就是说在接收到的报文中添加标识的动作仅需要入口网络设备来完成。入口网络设备接收到切换周期和标识切换规则后,首先根据切换规则确定每个切换周期对应的标识,然后监控切换周期,在该切换周期内接收到的报文中添加该切换周期对应的标识,该切换周期到期后,统计添加该切换周期对应的标识的第一报文数量、并上报第一报文数量,进入下一个切换周期,重复上述执行过程。
其中,切换周期可以根据实际需要进行设定,例如设定为5秒、10秒等等;标识切换规则也可以根据实际需要进行设定,例如,可以设定为轮流在切换周期内添加x色和y色,也可以设定为轮流在切换周期内添加1-100,等等。
s13:向其他网络设备下发报文统计指令,以使其他网络设备监控到当前报文携带的第一标识与相邻前一个报文携带的第二标识不同时,统计携带第二标识的报文的第二报文数量,上报第二报文数量。
为了保证网络故障检测准确性,控制器将报文统计指令下发给其他网络设备。其他网络设备接收到报文统计指令后,开始监控当前报文携带的第一标识与相邻前一个报文携带的第二标识是否相同,若监控到当前报文携带的第一标识与相邻前一个报文携带的第二标识不同时,可以认为携带第二标识的报文已接收完毕,从而触发统计和上报的动作,也就是,统计携带第二标识的报文的第二报文数量,上报第二报文数量。若其他网络设备有多个,每个其他网络设备都会上报一个第二报文数量,也就是说最终上报的第二报文数量有多个,第二报文数量的个数与其他网络设备的个数是相同的。
s14:根据入口网络设备上报的第一报文数量和其他网络设备上报的第二报文数量,确定故障的网络设备。
一种可选的方式,在确定故障的网络设备后,发出故障告警信息,并提示故障的网络设备。
该方案中,能够自动确定故障网络设备,无需人工确定,即使网络设备的数量巨大且用户数量越来越多,也能够保证网络故障检测效率;同时,由于以切换周期在实际接收到的报文中添加每个切换周期对应的标识,并统计携带每个切换周期对应的标识的报文,从而能够保证网络故障检测准确性。
可选的,上述s11中的待检测数据流的获取方式可以但不限于包括以下两种方式:
第一种方式,获取指定的第一源ip地址、第一目的ip地址、第一端口、第一源mac地址和第一目的mac地址,得到待检测数据流。
可以将某些数据流指定为待检测数据流,这时,只要获取指定的第一源ip地址、第一目的ip地址、第一端口、第一源mac地址和第一目的mac地址五元组信息就可以得到待检测数据流。
第二种方式,接收到所有数据流检测指令,依次从接收到的数据流中获取第二ip地址、第二目的ip地址、第二端口、第二源mac地址和第二目的mac地址,得到待检测数据流。
也可以将接收到的所有数据流都指定为待检测数据流,通过所有数据流检测指令进行指示。一旦控制器接收到所有数据流检测指令,就可以依次从接收到的数据流中获取第二ip地址、第二目的ip地址、第二端口、第二源mac地址和第二目的mac地址,得到待检测数据流。
以上列举了两种获取待检测数据流的方法,当然还有其他的获取方式,在这里不再一一赘述。
具体的,上述s14中根据入口网络设备上报的第一报文数量和其他网络设备上报的第二报文数量,确定故障的网络设备,其实现过程如图2所示,针对每个切换周期,执行:
s141:获取入口网络设备上报的第一报文数量和其他网络设备上报的第二报文数量,得到n个报文数量。
其中,第一报文数量是入口网络设备在每个切换周期到期后统计添加每个切换周期对应的标识的第一报文数量,第二报文数量是其他网络设备监控到当前报文携带的第一标识与相邻前一个报文携带的第二标识不同时,统计携带第二标识的报文的报文数量,由于其他网络设备的个数决定第二报文数量的个数,第二报文数量的个数可能不是定值,因此可以假设第一报文数量和第二报文数量的总个数为n,n等于入口网络设备的数量和其他网络设备的数量的和。假设,入口网络设备为a,其他网络设备为b和c,则n为3,a在当前切换周期上报的第一报文数量为100,b在当前切换周期上报的第二报文数量为98,c在当前切换周期上报的第二报文数量为98。
s142:按照待检测数据流经过网络设备的顺序将n个报文数量进行排序,得到报文数量序列。
由于待检测数据流流经网络设备的顺序是先经过入口网络设备,再经过其他网络设备,因此,针对每个切换周期得到的报文数量序列中,第一报文数量总是排在第一位的。
继续沿用上例,得到的报文数量序列为100、98、98。
s143:若报文数量序列中的第三报文数量小于报文数量序列中相邻前一个的报文数量,则确定上报第三报文数量的网络设备发生故障。
继续沿用上例,由于第一个98小于前面的100,因此,可以确定b发生故障。其中,第三报文数量可以是上述报文数量序列中的一个。
一种可选的方式,为了避免发生误判,若在设定数量的切换周期内均确定上报第三报文数量的网络设备发生故障,则发出故障告警信息,并提示上报第三报文数量的网络设备故障,从而便于后续进行网络故障排除,确保用户上网体验。
基于同一发明构思,本发明实施例提供一种网络故障检测装置,该装置可以但不限于应用在控制器中,结构如图3所示,包括:
第一确定模块31,用于确定待检测数据流依次经过的入口网络设备和其他网络设备;
第一下发模块32,用于向入口网络设备下发切换周期和标识切换规则,以使入口网络设备根据标识切换规则确定每个切换周期对应的标识,在每个切换周期内接收到的属于待检测数据流的报文中添加每个切换周期对应的标识,在每个切换周期到期后统计添加每个切换周期对应的标识的第一报文数量、并上报第一报文数量;以及,
第二下发模块33,用于向其他网络设备下发报文统计指令,以使其他网络设备监控到当前报文携带的第一标识与相邻前一个报文携带的第二标识不同时,统计携带第二标识的报文的第二报文数量,上报第二报文数量;
第二确定模块34,用于根据入口网络设备上报的第一报文数量和其他网络设备上报的第二报文数量,确定故障的网络设备。
该方案中,能够自动确定故障网络设备,无需人工确定,即使网络设备的数量巨大且用户数量越来越多,也能够保证网络故障检测效率;同时,由于以切换周期在实际接收到的报文中添加每个切换周期对应的标识,并统计携带每个切换周期对应的标识的报文,从而能够保证网络故障检测准确性。
可选的,还包括获取模块,用于:
获取指定的第一源ip地址、第一目的ip地址、第一端口、第一源mac地址和第一目的mac地址,得到待检测数据流;或者,
接收到所有数据流检测指令,依次从接收到的数据流中获取第二ip地址、第二目的ip地址、第二端口、第二源mac地址和第二目的mac地址,得到待检测数据流。
具体的,第一确定模块31,具体用于:
获取整网拓扑图;
从整网拓扑图中查找待检测数据流依次经过的入口网络设备和其他网络设备。
具体的,第二确定模块34,具体用于:
针对每个切换周期执行:
获取入口网络设备上报的第一报文数量和其他网络设备上报的第二报文数量,得到n个报文数量,其中,n等于入口网络设备的数量和其他网络设备的数量的和;
按照待检测数据流经过网络设备的顺序将n个报文数量进行排序,得到报文数量序列;
若报文数量序列中的第三报文数量小于报文数量序列中相邻前一个的报文数量,则确定上报第三报文数量的网络设备发生故障。
可选的,还包括提示模块,用于:
若在设定数量的切换周期内均确定上报第三报文数量的网络设备发生故障,则发出故障告警信息,并提示上报第三报文数量的网络设备故障。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的可选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括可选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。