一种网络故障诊断方法、装置、网络设备及存储介质
技术领域
本发明涉及通信技术领域,尤其涉及一种网络故障诊断方法、装置、网络设备及存储介质。
背景技术
以太网是目前局域网使用最多的标准,广泛应用于各个专业领域,在通信领域,对网络设备的管理基本都是采用以太网的接口,甚至全网IP(Internet Protocol,网络之前互连的协议)化,而一个通信系统中网络侧层次比较多,比如在一个DAS(DistributedAntenna System,分布式天线系统)系统中就包括接入单元、扩展单元、远端,各个网络设备之间是通过光纤连接的,网络设备内部的通信一般采用MCU(Microcontroller Unit,微控制单元)+FPGA(Field-Programmable Gate Array,现场可编程门阵列)的架构,MCU通过MII(Media Independent Interface,介质无关接口或媒体独立接口)将数据发送给FPGA,而不同网络设备的FPGA之间一般是通过CPRI(Common Public Radio Interface,通用公共无线电接口)协议来承载数据。当系统通信出现异常时,工程人员很难定位异常问题所在,一般是通过经验判断或者直接复位整个系统来解决问题。
可见,在现有技术中需要人工介入来确定网络故障,并且人工一般只能确认故障但是难以准确定位出网络故障的原因,也就是说,现有的网络故障诊断的效率较低。
发明内容
本申请实施例提供一种网络故障诊断方法、装置、网络设备及存储介质,用于实现网络故障的自动诊断,并且能够确定故障原因,提高了网络故障诊断的效率。
第一方面,提供一种网络故障诊断方法,所述方法应用于网络设备,所述网络设备包括微控制器和可编程逻辑器件,所述微控制器和所述可编程逻辑器件之间通过网口通信,所述可编程逻辑器件具有至少一个CPRI接口,所述方法包括:
获取所述网络设备的通信状态信息,其中,所述通信状态信息包括所述网络设备与其它网络设备之间的同步状态信息、所述网络设备与其它网络设备之间通过CPRI接口进行光通信的误码率信息、所述微控制器和所述可编程逻辑器件之间传输的数据包的包统计信息中的至少一种;
根据预设故障诊断策略,确定所述通信状态信息是否异常;
在所述通信状态信息异常时,根据异常的通信状态信息与故障事件之间的对应关系,确定与所述通信状态信息对应的目标故障事件;
根据所述目标故障事件,确定所述网络设备发生网络故障的原因。
在一种可能的设计中,所述通信状态信息包括所述同步状态信息、所述误码率信息和所述包统计信息中的至少两种,则,按照预设故障诊断策略,确定所述通信状态信息是否异常,包括:
按照预设检测规则,确定至少两种通信状态信息的检测顺序;
按照所述检测顺序,以所述预设故障诊断策略分别确定所述通信状态信息是否异常。
在一种可能的设计中,根据预设故障诊断策略,确定所述通信状态信息是否异常,包括:
若所述同步状态信息表明所述网络设备与其它网络设备之间的时钟未同步,则确定所述同步状态信息异常;
若所述误码率信息表明所述网络设备与其它网络设备之间进行光通信的误码率大于预设误码率,则确定所述误码率信息异常;
若所述包统计信息表明所述微控制器向所述可编程逻辑器件发送的数据包的数量大于所述可编程逻辑器件接收的数据包的数量,且丢包率大于第一预设丢包率,则确定所述包统计信息为第一种包传输异常;
若所述包统计信息表明所述微控制器向所述可编程逻辑器件发送的数据包的数量小于所述可编程逻辑器件接收的数据包的数量,且丢包率大于第二预设丢包率,则确定所述包统计信息为第二种包传输异常。
在一种可能的设计中,在所述通信状态信息异常时,根据异常的通信状态信息与故障事件之间的对应关系,确定与所述通信状态信息对应的目标故障事件,包括:
若所述同步状态信息异常和/或所述误码率信息异常,则确定所述目标故障事件为所述网络设备的光纤链路异常和/或所述可编程逻辑器件异常;
若所述包统计信息为所述第一种包传输异常,则确定所述目标故障事件为所述可编程逻辑器件异常;
若所述包统计信息为所述第二种包传输异常,则确定所述目标故障事件为所述微控制器异常。
在一种可能的设计中,在确定所述网络设备发生网络故障的原因之后,所述方法还包括:
按照故障事件与自愈策略之间的对应关系,确定与所述目标故障事件对应的目标自愈策略;
按照所述目标自愈策略,对所述网络设备的网络故障进行修复处理。
在一种可能的设计中,按照故障事件与自愈策略之间的对应关系,确定与所述目标故障事件对应的目标自愈策略,包括:
若所述目标故障事件为根据所述同步状态信息或所述误码率信息确定的所述可编程逻辑器件异常,则确定所述目标自愈策略为重新配置所述可编程逻辑器件;
若所述目标故障事件为根据所述包统计信息确定的所述可编程逻辑器件异常,则确定所述目标自愈策略为按照预设时钟周期调整所述可编程逻辑器件的网口时序,若在调整预设次数后仍未解除异常,则重新配置所述可编程逻辑器件;其中,所述预设次数是根据所述预设时钟周期确定的;
若所述目标故障事件为根据所述包统计信息确定的所述微控制器异常,则确定所述目标自愈策略为重启所述微控制器,或,确定所述目标自愈策略为在禁用再重启所述微控制器的网口之后若仍未解除异常,则重启所述微控制器。
在一种可能的设计中,所述方法还包括:
根据CPRI接口承载的业务的业务类型,调整业务数据和控制数据分别占该CPRI接口的传输带宽的带宽比例,并以调整后的带宽比例经该CPRI接口传输所述业务数据和所述控制数据。
第二方面,提供一种网络故障诊断装置,所述装置包括:
获取模块,用于获取网络设备的通信状态信息,其中,所述通信状态信息包括所述网络设备与其它网络设备之间的同步状态信息、所述网络设备与其它网络设备之间进行光通信的误码率信息、所述网络设备的微控制器和可编程逻辑器件之间传输的数据包的包统计信息中的至少一种;
第一确定模块,用于按照预设故障诊断策略,确定所述通信状态信息是否异常;
第二确定模块,用于在所述通信状态信息异常时,根据异常的通信状态信息与故障事件之间的对应关系,确定与所述通信状态信息对应的目标故障事件;
第三确定模块,用于根据所述目标故障事件,确定所述网络设备发生网络故障的原因。
在一种可能的设计中,所述通信状态信息包括所述同步状态信息、所述误码率信息和所述包统计信息中的至少两种,则,所述第一确定模块用于:
按照预设检测规则,确定至少两种通信状态信息的检测顺序;
按照所述检测顺序,以所述预设故障诊断策略分别确定所述通信状态信息是否异常。
在一种可能的设计中,所述第一确定模块用于:
若所述同步状态信息表明所述网络设备与其它网络设备之间的时钟未同步,则确定所述同步状态信息异常;
若所述误码率信息表明所述网络设备与其它网络设备之间进行光通信的误码率大于预设误码率,则确定所述误码率信息异常;
若所述包统计信息表明所述微控制器向所述可编程逻辑器件发送的数据包的数量大于所述可编程逻辑器件接收的数据包的数量,且丢包率大于第一预设丢包率,则确定所述包统计信息为第一种包传输异常;
若所述包统计信息表明所述可编程逻辑器件向所述微控制器发送的数据包的数量大于所述微控制器接收的数据包的数量,且丢包率大于第二预设丢包率,则确定所述包统计信息为第二种包传输异常。
在一种可能的设计中,所述第二确定模块用于:
若所述同步状态信息异常和/或所述误码率信息异常,则确定所述目标故障事件为所述网络设备的光纤链路异常和/或所述可编程逻辑器件异常;
若所述包统计信息为所述第一种包传输异常,则确定所述目标故障事件为所述可编程逻辑器件异常;
若所述包统计信息为所述第二种包传输异常,则确定所述目标故障事件为所述微控制器异常。
在一种可能的设计中,所述装置还包括自愈修复模块,用于在所述第三确定模块确定所述网络设备发生网络故障的原因之后,按照故障事件与自愈策略之间的对应关系,确定与所述目标故障事件对应的目标自愈策略;并。按照所述目标自愈策略,对所述网络设备的网络故障进行修复处理。
在一种可能的设计中,所述自愈修复模块用于:
若所述目标故障事件为根据所述同步状态信息或所述误码率信息确定的所述可编程逻辑器件异常,则确定所述目标自愈策略为重新配置所述可编程逻辑器件;
若所述目标故障事件为根据所述包统计信息确定的所述可编程逻辑器件异常,则确定所述目标自愈策略为按照预设时钟周期调整所述可编程逻辑器件的网口时序,若在调整预设次数后仍未解除异常,则重新配置所述可编程逻辑器件;其中,所述预设次数是根据所述预设时钟周期确定的;
若所述目标故障事件为根据所述包统计信息确定的所述微控制器异常,则确定所述目标自愈策略为重启所述微控制器,或,确定所述目标自愈策略为在禁用再重启所述微控制器的网口之后若仍未解除异常,则重启所述微控制器。
在一种可能的设计中,所述装置还包括带宽调整模块,用于据CPRI接口承载的业务的业务类型,调整业务数据和控制数据分别占该CPRI接口的传输带宽的带宽比例,并以调整后的带宽比例经该CPRI接口传输所述业务数据和所述控制数据。
第三方面,提供一种网络设备,所述网络设备包括微控制器和可编程逻辑器件,所述微控制器和所述可编程逻辑器件之间通过网口连接通信,所述可编程逻辑器件具有至少一个CPRI接口,其中,所述微控制器包括至少一个处理器以及至少一个存储器,其中,所述存储器存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行如上述第一方面中的任一种方法所包括的步骤。
第四方面,提供一种存储介质,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述第一方面中的任一种方法所包括的步骤。
本申请实施例中,在获得网络设备的通信状态信息之后,可以根据预设故障诊断策略,自动地确定通信状态信息是否异常,进而在通信状态信息异常时确定出对应的目标故障事件,再根据确定出的目标故障事件确定网络设备发生网络故障的原因,也就是说,通过网络设备的通信状态信息可以实现对网络设备的网络故障的自动诊断,并且能够定位出故障原因,相对于人工诊断的方式可以提高网络故障的诊断效率,并且是通过网络设备实时的通信状态信息动态地进行故障诊断,所以可以尽量确保故障诊断的准确性和有效性,以及可以提高网络故障诊断的时效。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例中的DAS系统的网络拓扑示意图;
图2为本申请实施例中的DAS系统中的DAS近端机的示意图;
图3为本申请实施例中的网络故障诊断方法的流程图;
图4为本申请实施例中的网络故障诊断方法的另一流程图;
图5为本申请实施例中的网络故障诊断装置的结构框图;
图6为本申请实施例中的网络故障诊断装置的另一结构框图;
图7为本申请实施例中的网络设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互任意组合。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请的说明书和权利要求书及上述附图中的术语“第一”和“第二”是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的保护。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请中的“多个”可以表示至少两个,例如可以是两个、三个或者更多个,本申请实施例不做限制。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,在不做特别说明的情况下,一般表示前后关联对象是一种“或”的关系。
如前所述的,现有技术中需要人工介入来确定网络故障,而人工一般只能确认故障但是难以准确定位网络故障的原因,所以网络故障诊断的效率较低。鉴于此,本申请实施例提供一种网络故障诊断方案,基于该方案可以实现网络故障的自动诊断,并且能够确定故障原因,进而提高网络故障诊断的效率。
在介绍完本申请实施例的设计思想之后,下面对本申请实施例提供的技术方案适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本申请实施例提供的技术方案。
请参见图1所示的DAS系统的网络拓扑示意图,其中包括DAS近端机和DAS远端机,DAS近端机和DAS远端机之间通过光纤连接通信。以DAS近端机为例,采用的是MCU+FPGA的通信架构,MCU通过以太网标准数据接口(例如MII接口或者SMII接口或者RMII接口)与FPGA通信,FPGA将以太网数据转换成CPRI协议数据,并根据IP地址选择对应光口将CPRI协议数据通过光纤发送出去,例如发送给DAS远端机。
在DAS系统中,DAS近端机也可以理解为是信号接入设备,一般负责管理扩展单元和DAS远端机,设置和查询监控量、同步状态、告警以及软件升级。而所有网络设备都通过IP化管理,每个网络设备都有自己对应的IP地址,各个网络设备之间一般通过光纤连接。在DAS近端机中,主要包括MCU和FPGA,它们之间的数据通过MII或者RMII的方式传输,MII是一种媒体独立接口,是标准以太网接口的一种,也是实现IP传输的基础。而MCU对FPGA的控制命令则是通过SPI(Serial Peripheral Interface,串行外设接口)总线传输,通过操作FPGA定义的一些寄存器发送命令或者读取数据。近端FPGA包含多个光口,每个光口可接一个扩展单元或者远端,它们之间通过CPRI接口传输数据,CPRI是一种高速串行的标准,主要用于光纤通信,CPRI接口不仅需要传监控的数据,还需要传输业务的IQ(In-phaseQuadrature,同相正交信号)数据,因此,对于近远端管理的数据通信,CPRI分配了一定的带宽给其使用。对于下行,近端FPGA将从网口接口收到的数据,根据网络包的IP地址可知道该网络包需要投递到哪一个光口上去,通过并串转换后就可以将数据发送出去。对于上行,收到来自光口的网络包后,直接串并转换投递给MCU。
上述以DAS近端机为例对DAS系统中的网络设备进行了大致介绍,而DAS远端机的处理亦是如此。
在DAS系统的通信过程中,受设备运行环境、硬件上干扰以及软件上的缺陷的影响,可能会出现通信异常。为了保证网络通信正常,以确保通信系统的健壮性,本申请实施例建立了一套网络故障自动诊断机制,通过该自动诊断机制不仅可以及时高效地检测并且定位出网络故障,还可以在出现网络故障后尽快恢复,尽量不要等到系统复位甚至人为的重启设备,以提高通信的连续性和稳定性。
基于本申请实施例中的网络故障自动诊断以及自我修复机制,以DAS近端机为例,本申请实施例对通信系统中的网络设备在功能上进行了一些改进,以下结合图2进行说明。
在FPGA端,设置了网口接口模块、CPRI模块、包统计模块、误码率模块和同步模块。其中:
1)网口接口模块,一般设计成标准以太网接口,比如MII接口或RMII接口,根据协议解析和校验数据,并将结果提供给包统计模块。
2)CPRI模块,与对端进行通信,将网口接口模块发过来的并行数据转成串行数据发送出去,一般来说,网口接口的数据(例如可以称作用户数据或者业务数据或者用户业务数据)只占用CPRI的部分带宽,而另一部分带宽一般用于传输控制数据。
3)同步模块,近端和远端之间使用光纤连接,两个FPGA(即DAS近端机和DAS远端机中分别包括的FPGA)之间必须时钟同步才能正常通信,而同步模块就是用于近端网络设备和远端网络设备之间的时钟同步,并指示同步状态。
4)误码率模块,用于对CPRI接口链路的误码检测,可以检测出近段和远端之间光纤通信的误码率。
5)包统计模块,从网口接口模块获取数据,统计从MCU发过来的合法网络包的数量,以及统计FPGA发送给MCU的合法网络包的数量,通过对网络包的统计计数,并对比MCU端和FPGA端的网络包统计计数,可以明确的推断是MCU端还是FPGA端的问题,这样可以利于网络问题的大致定于,同时也利于工程上问题的排查。
在MCU端,增加了网络监视模块和自愈模块。其中:
1)网络监视模块,运行在MCU端,定时检测MCU发送出去的网络包的数量以及MCU端收到的网络包的数量。通过SPI总线获取FPGA当前的同步状态、误码率及FPGA的数据包计数等相关信息,也就是说,FPGA端检测到的通信状态信息可以通过SPI传输给MCU端,以便于MCU端中的网络监视模块根据这些通信状态信息来进行网络故障的自动监测和诊断。
2)自愈模块,用于在网络监视模块诊断出网络故障的原因后,采取对应的自愈策略来修复问题,以及时地解除网络故障,提高通信系统的稳定性和健壮性。
为进一步说明本申请实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本申请实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。所述方法在实际的处理过程中或者装置执行时,可按照实施例或者附图所示的方法顺序执行或者并行执行。
以下结合图3所示的网络故障诊断方法的流程图对本申请实施例中的技术方案进行说明。该网络故障诊断方法可以由如图2中所示的网络设备执行,该网络设备例如是DAS系统中的DAS近端机或者DAS远端机。该网络设备包括微控制器(例如MCU)和可编程逻辑器件(例如FPGA),即该网络设备可以采用MCU+FPGA的通信架构,其中,微控制器和可编程逻辑器件之间通过网口(例如MII接口)通信,并且可编程逻辑器件具有至少一个CPRI接口,通过CPRI接口,网络设备可以与其它网络设备进行光纤通信,以实现光通信的目的。
以下对图3中的方法流程进行说明。
步骤301:检测是否满足故障检测触发条件。
在具体实施过程中,针对网络设备的网络故障检测可以动态地实时进行,或者也可以在满足特定的故障检测触发条件时才进行故障的自我诊断,例如,可以按照一定的检测周期定时地进行检测,或者可以是在检测到系统的通信效果较差的时候主动诊断,或者是根据用户的手动触发进行临时的诊断,等等,在检测到满足故障检测触发条件时,网络设备则可以自我诊断。
步骤302:在满足故障检测触发条件时,获取网络设备的通信状态信息。
在进行网络故障自我诊断时,可以首先获取网络设备的通信状态信息,该通信状态信息是用于表征网络设备在通信过程中的状态,而该通信过程包括该网络设备内部的通信过程,例如网络设备内部的MCU和FPGA之间的通信,同时,该通信过程还包括网络设备外部的通信过程,即该网络设备与其它网络设备之间的通信,例如该网络设备与其它网络设备之间的光通信。
本申请实施例中的通信状态信息是对各种可能的通信状态信息的泛指,也就是说,该通信状态信息可以包括一种特定的通信状态信息,也可以包括多种通信状态信息,而不管是一种或多种,通信状态信息可以在一定程度上反映网络设备的实时通信状态。考虑到实际情形,即导致网络设备的网络故障的原因可能很多,所以为了实现更为准确的网络故障诊断,通信状态信息可以尽量包括多种类型的信息,以通过多种类型的通信状态信息来从多方面多层次地进行网络故障检测。
在本申请实施例中,例如通信状态信息可以包括网络设备与其它网络设备之间的同步状态信息、网络设备与其它网络设备之间通过CPRI接口进行光通信的误码率信息、网络设备中的微控制器和所述可编程逻辑器件之间传输的数据包的包统计信息中的至少一种,在一种可能的实施方式中,通信状态信息可以同时包括前述的三种信息,通信状态信息的种类越多,在对网络故障检测时就可以更全面的检测。需要说明的是,这里只是对通信状态信息的一些可能类型进行了举例说明,在具体实施过程中,其它可能导致网络故障的通信状态信息也还可以包括在内,此处就不一一举例说明了。
步骤303:根据预设故障诊断策略,判断通信状态信息是否异常。
在正常通信时,各种通信状态信息应该也是处于正常状态,而一旦出现网络故障,那么一些通信状态信息也就可能出现异常,也就是说,网络故障可以在一定程度通过通信状态信息的异常来体现,基于此,本申请实施例预先设置了预设故障诊断策略,基于该策略可以判断各种通信状态信息是否异常,也就是说,通过本申请实施例中的预设故障诊断策略,可以有效地判断出各种通信状态信息是否异常,进而可以通过异常的通信状态信息来定位引起网络故障的原因。
由于通信状态信息的种类较多,以下列举几种来对本申请实施例中预设故障诊断策略进行说明。
以通信状态信息为同步状态信息为例,其中的同步状态信息是用于表明网络设备与其它网络设备之间是否保持时钟同步的信息,当同步状态信息表明网络设备与其它网络设备之间的时钟未同步时,则可以确定当前的同步状态信息是异常的,因为未时钟同步的话传输的所有数据可能都是错误的。
再以通信状态信息为误码率信息为例,若误码率信息表明网络设备与其它网络设备之间进行光通信的误码率大于预设误码率,例如大于1%,则可以确定误码率信息异常。
再以通信状态信息为包统计信息为例,分为两种情况。
第一,若包统计信息表明微控制器向可编程逻辑器件发送的数据包的数量大于可编程逻辑器件接收的数据包的数量,则说明可编程逻辑器件存在丢包问题,而当丢包率大于第一预设丢包率(例如20%)时,则可以确定包统计信息是异常的,并将这种可编程逻辑器件侧的丢包异常称为第一种包传输异常。
第二,若包统计信息表明可编程逻辑器件向微控制器发送的数据包的数量大于微控制器接收的数据包的数量,则说明微控制器存在丢包问题,而当丢包率大于第二预设丢包率(例如20%或者25%)时,则可以确定包统计信息是异常的,并将这种微控制器侧的丢包异常称为第二种包传输异常。
在本申请实施例中,可以预先为各种通信状态信息设置优先检测规则,在通信状态信息同时包括多种类型的通信状态信息时,可以先确定各种通信状态信息的检测顺序,进而按照确定出的检测顺序,在以预设故障诊断策略分别确定各种通信状态信息是否异常。通过设置优先检测顺序的方式,可以确保对网络故障影响较大或者影响概率较大的通信状态信息优先检测,以尽快地排查影响较大的网络故障,这样在一旦确定故障之后即可尽快地进行自愈修复,这样可以及时地修复问题,以尽快地恢复网络正常的通信,影响越大的越尽快恢复,那么对整个网络的影响也就尽量越小。
步骤304:在通信状态信息异常时,根据异常的通信状态信息与故障事件之间的对应关系,确定与通信状态信息对应的目标故障事件。
进一步地,确定存在异常的通信状态信息时,则可以预先设置的根据异常的通信状态信息与故障事件之间的对应关系,确定与确定出的异常的通信状态信息对应的故障事件,为了便于描述,例如将实时确定出的故障事件称作目标故障事件。以下继续前面介绍的几种具体的通信状态信息进行说明。
在一种可能的情况中,若同步状态信息异常,则可以确定目标故障事件为网络设备的光纤链路异常,或者可编程逻辑器件异常,或者网络设备的光纤链路和可编程逻辑器件同时异常。
在一种可能的情况中,若误码率信息异常,则可以确定目标故障事件为网络设备的光纤链路异常,或者可编程逻辑器件异常,或者网络设备的光纤链路和可编程逻辑器件同时异常。
在一种可能的情况中,若包统计信息为前述的第一种包传输异常,则可以确定目标故障事件为可编程逻辑器件异常。
在一种可能的情况中,若包统计信息为前述的第二种包传输异常,则可以确定目标故障事件为微控制器异常。
步骤305:根据目标故障事件,确定网络设备发生网络故障的原因。
在确定出了目标故障事件之后,即可对应的确定出网络故障的具体原因,例如若目标故障事件为微控制器异常,那么定位出的网络故障原因例如可以是微控制器硬件异常或者软件异常,若目标故障事件为光纤链路异常,那么定位出的网络故障原因例如是光纤断开或者光纤磨损或者光纤未能稳固地插接在光口上,等等。
步骤306:按照故障事件与自愈策略之间的对应关系,确定与目标故障事件对应的目标自愈策略。
步骤307:按照目标自愈策略,对网络设备的网络故障进行修复处理。
在检测出网络故障并定位出故障原因之后,为了尽快地修复问题,本申请实施例可以词用自愈机制以实现网络故障的自我修复,具体来说,可以根据不同目标故障事件选择对应的目标自愈策略,然后执行对应的目标自愈策略,以实现对网路故障的及时自我修复,实现对网络的有效维护,提高网络的稳定性和健壮性。
为了便于理解,以下再结合图4对本申请实施例中的网络故障检测定位以及对应的自愈修复手段进行说明。
例如,若目标故障事件为根据同步状态信息或误码率信息确定的可编程逻辑器件异常,则可以确定目标自愈策略为重新配置可编程逻辑器件,进一步地可以重新配置可编程逻辑器件,以尽量的对可编程逻辑器件的异常进行修复。
又例如,若目标故障事件为根据包统计信息确定的可编程逻辑器件异常,则可以确定目标自愈策略为按照预设时钟周期调整可编程逻辑器件的网口时序,若在调整预设次数后仍未解除异常,则重新配置可编程逻辑器件,其中的预设次数是根据预设时钟周期确定的。例如,在确定可编程逻辑器件的丢包率大于20%时,可以认为是FPGA异常,则可以在FPGA端尝试调整网口的接口时序,接口一般为MII接口或者RMII接口,例如每次调整1/4clk,即四分之一的时钟,调整三次,如果三次调整后网口仍然异常,则重新配置FPGA。通过调整接口时序的方式可以尽量地避免重配FPGA,以尽量的避免数据的丢失。其中,调整的次数(例如前述的三次)是根据1/4clk来确定的,例如可以将一个完整的时钟分为4份,而每次调整1/4,那么则可以检测3次后是否能够解除异常,这样相当于是将一个完整的时钟周期分为了几次小周期来分别进行调整。
若目标故障事件为根据包统计信息确定的微控制器异常,则可以确定目标自愈策略为直接重启微控制器,或者,也可以确定目标自愈策略为在禁用网口再重启网口之后若仍未解除异常的话,再重启微控制器。例如在确定MCU的丢包率大于20%时,可以先尝试Down网口然后再Up网口,如果还是未能解除MCU的异常,则可以重启MCU系统。
需要说明的是,在图4中,针对各种通信状态信息是按照一定的检测顺序来进行检测的,例如图4中优先检测的是否达到光同步(即两个网络设备之间是否达到时钟同步),因为两个网络设备之间的有效通信均是基于两者之间的时钟同步而进行的,所以可以首先判断同步状态。另外,在检测出一种通信状态信息异常时,即可立即进行自愈修复,而对于其它通信状态信息的异常检测可以实时同步进行,这样可以在一旦检测出异常时就尽快进行自愈修复,以期尽快地恢复网络,提高系统的健壮性。
在本申请实施例中,当DAS近端机检测到某个光口(即某个CPRI接口)上有需要升级远端软件时,可以动态调整CPRI接口的通信带宽,具体来说,是调整网口(例如MII接口)通信占用CPRI接口的通信带宽,而网口传输的数据一般是业务数据,或者可以称作用户数据或用户业务数据,所以,可以根据CPRI接口承载的业务的业务类型,调整业务数据和控制数据分别占据该CPRI接口的传输带宽的带宽比例,并以调整后的带宽比例经该CPRI接口传输前述的业务数据和控制数据,通过传输带宽比例的动态调整,可以确保各种类型的数据能够有效快速地经CPRI接口向外传输,从而可以充分利用传输资源,进而提高通信效率。
基于同一发明构思,本申请实施例提供一种网络故障诊断装置。该网络故障诊断装置可以是硬件结构、软件模块、或硬件结构加软件模块。该网络故障诊断装置可以由芯片系统实现,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。请参见图5所示,本申请实施例中的网络故障诊断装置包括获取模块501、第一确定模块502、第二确定模块503和第三确定模块504,其中:
获取模块501,用于获得网络设备的通信状态信息,其中,通信状态信息包括网络设备与其它网络设备之间的同步状态信息、网络设备与其它网络设备之间进行光通信的误码率信息、网络设备的微控制器和可编程逻辑器件之间传输的数据包的包统计信息中的至少一种;
第一确定模块502,用于按照预设故障诊断策略,确定通信状态信息是否异常;
第二确定模块503,用于在通信状态信息异常时,根据异常的通信状态信息与故障事件之间的对应关系,确定与通信状态信息对应的目标故障事件;
第三确定模块504,用于根据目标故障事件,确定网络设备发生网络故障的原因。
在一种可能的实施方式中,通信状态信息包括同步状态信息、误码率信息和包统计信息中的至少两种,则,第一确定模块502用于:
按照预设检测规则,确定至少两种通信状态信息的检测顺序;
按照确定出的检测顺序,以预设故障诊断策略分别确定通信状态信息是否异常。
在一种可能的实施方式中,第一确定模块502用于:
若同步状态信息表明网络设备与其它网络设备之间的时钟未同步,则确定同步状态信息异常;
若误码率信息表明网络设备与其它网络设备之间进行光通信的误码率大于预设误码率,则确定误码率信息异常;
若包统计信息表明微控制器向可编程逻辑器件发送的数据包的数量大于可编程逻辑器件接收的数据包的数量,且丢包率大于第一预设丢包率,则确定包统计信息为第一种包传输异常;
若包统计信息表明可编程逻辑器件向微控制器发送的数据包的数量大于微控制器接收的数据包的数量,且丢包率大于第二预设丢包率,则确定包统计信息为第二种包传输异常。
在一种可能的实施方式中,第二通信模块503用于:
若同步状态信息异常和/或误码率信息异常,则确定目标故障事件为网络设备的光纤链路异常和/或可编程逻辑器件异常;
若包统计信息为第一种包传输异常,则确定目标故障事件为可编程逻辑器件异常;
若包统计信息为第二种包传输异常,则确定目标故障事件为微控制器异常。
在一种可能的实施方式中,请参见图6所示,本申请实施例中的网络故障诊断装置还包括自愈修复模块601,用于在第三确定模块504确定网络设备发生网络故障的原因之后,按照故障事件与自愈策略之间的对应关系,确定与目标故障事件对应的目标自愈策略;并按照目标自愈策略,对网络设备的网络故障进行修复处理。
在一种可能的实施方式中,自愈修复模块601用于:
若目标故障事件为根据同步状态信息或误码率信息确定的可编程逻辑器件异常,则确定目标自愈策略为重新配置可编程逻辑器件;
若目标故障事件为根据包统计信息确定的可编程逻辑器件异常,则确定目标自愈策略为按照预设时钟周期调整可编程逻辑器件的网口时序,若在调整预设次数后仍未解除异常,则重新配置可编程逻辑器件;其中,预设次数是根据预设时钟周期确定的;
若目标故障事件为根据包统计信息确定的微控制器异常,则确定目标自愈策略为重启微控制器,或,确定目标自愈策略为在禁用再重启微控制器的网口之后若仍未解除异常,则重启微控制器。
在一种可能的实施方式中,请参见图6所示,本申请实施例中的网络故障诊断装置还包括带宽调整模块602,用于根据CPRI接口承载的业务的业务类型,调整业务数据和控制数据分别占据该CPRI接口的传输带宽的带宽比例,并以调整后的带宽比例经该CPRI接口传输业务数据和控制数据。
前述的网络故障诊断方法的实施例涉及的各步骤的所有相关内容均可以援引到本申请施例中的网络故障诊断装置所对应的功能模块的功能描述,在此不再赘述。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
基于同一发明构思,本申请实施例还提供一种网络设备,该网络设备例如是前述的DAS近端机或DAS远端机,该网络设备能够执行前述的网络故障诊断方法。参见图7所示,本申请实施例中的网络设备包括微控制器701和可编程逻辑器件702,其中的微控制器701例如是MCU,可编程逻辑器件702例如是FPGA,微控制器701和可编程逻辑器件702之间通过网口(例如MII接口)通信。微控制器701包括至少一个处理器703和至少一个存储器704。微控制器701还包括通信接口705,该通信接口705例如是SPI接口或者其它接口,可编程逻辑器件702包括通信接口706,该通信接口706例如是SPI接口或者CPRI接口(光口),等等。
在本申请实施例中,存储器704存储有可被至少一个处理器703执行的指令,至少一个处理器703通过执行存储器704存储的指令,可以执行前述的网络故障诊断方法中所包括的步骤。
其中,处理器703是网络设备的控制中心,可以利用各种接口和/或线缆、电路连接整个网络设备的各个部分,通过运行或执行存储在存储器704内的指令以及调用存储在存储器704内的数据,网络设备的各种功能和处理数据,从而对网络设备进行整体监控。可选的,处理器703可包括一个或多个处理单元,处理器703可集成应用处理器和调制解调处理器,其中,处理器703主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器703中。在一些实施例中,处理器703和存储器704可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器703可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器704作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器704可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、RAM(Random Access Memory,随机访问存储器)、SRAM(Static Random Access Memory,静态随机访问存储器)、PROM(ProgrammableRead Only Memory,可编程只读存储器)、ROM(Read Only Memory,只读存储器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,带电可擦除可编程只读存储器)、磁性存储器、磁盘、光盘等等。存储器704是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器704还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本申请实施例中,存储器704存储有计算机程序,当该计算机程序被处理器703执行时,使得处理器703执行前述的网络故障诊断方法的步骤。
基于同一发明构思,本申请实施例还提供一种存储介质,该存储介质可以是计算机可读存储介质,该计算机可读存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行如前述的网络故障诊断方法的步骤。
基于同一发明构思,本申请实施例还提供一种网络故障诊断装置,该网络故障诊断装置包括至少一个处理器及存储介质,当该存储介质中包括的指令被该至少一个处理器执行时,可以执行如前述的网络故障诊断方法的步骤。
基于同一发明构思,本申请实施例还提供一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现如前述的网络故障诊断方法的步骤。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
在一些可能的实施方式中,本申请实施例提供的网络故障诊断方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机上运行时,所述程序代码用于使所述计算机执行前文述描述的根据本发明各种示例性实施方式的网络故障诊断方法中的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。