一种报文统计方法及装置与流程

文档序号:15594054发布日期:2018-10-02 19:17阅读:220来源:国知局

本申请涉及通信技术领域,尤其涉及一种报文统计方法及装置。



背景技术:

在网络设备对报文的处理过程中,由于网络设备配置的问题,或者由于报文数据本身存在异常,导致报文的流程异常,或者报文经过的流程不符合预期,因此,需要对报文处理的流程进行统计。现有技术中,是通过针对报文的特定的监测节点分别进行统计完成的,具体地,针对报文的流程节点分别设置一个计数器进行统计。

由于报文可能包含很多流程节点,根据现有技术的方案,无法确定报文的具体流程,进而在遇到异常情况需要排查时,耗时耗力。另外,对于维护人员关心的报文流程节点,现有技术统计报文需要消耗大量的片内存储资源,当各类统计标识随报文一同在转发流程中传输的过程中,将会占用设备内部大量传输带宽及缓存资源。

因此,如何获取报文在转发流程中的具体处理过程,是现有技术中亟待解决的问题之一。



技术实现要素:

本申请实施例提供了一种报文统计方法及装置,用以解决报文统计时无法获取报文在转发流程中的具体处理过程的问题。

本申请实施例提供了一种报文统计方法,包括:

报文处理设备根据至少一个类型的数据报文的处理流程,确定所述类型的数据报文的n个处理流程树形图;n为正整数,所述处理流程树形图用于标识所述处理流程;

所述报文处理设备根据所述n个处理流程树形图,确定所述类型的数据报文在所述报文处理设备中进行处理时所经过的处理流程,以及统计每个处理流程树形图所对应的处理流程所处理的报文数量。

本申请实施例提供的报文统计方法及装置,报文处理设备根据至少一个类型的数据报文的处理流程,确定用于标识所述处理流程的所述类型的数据报文的n个处理流程树形图;以处理流程为粒度,建立处理流程树结构;根据所述n个处理流程树形图,确定所述类型的数据报文在所述报文处理设备中进行处理时所经过的处理流程,以及统计每个处理流程树形图所对应的处理流程所处理的报文数量。实现了对报文按处理流程的具体过程进行统计,解决了现有的报文统计方案只能对进入某个特定的检测点的报文进行计数,却不能记录这些报文是经过怎样的处理流程到达这处检测点的。

一种可能的实现方式,所述报文处理设备根据至少一个类型的数据报文的处理流程,确定所述类型的数据报文的n个处理流程树形图,包括:

针对所述n个处理流程树形图中的任一个处理流程树形图,执行:

所述报文处理设备将所述数据报文的处理流程的第一层的处理流程节点,确定为所述处理流程树形图的根节点;

所述报文处理设备根据所述数据报文的第一层的处理流程节点的下一层处理流程节点,确定所述根节点的下一层节点;

所述报文处理设备根据所述数据报文的处理流程中的每层处理流程节点间的处理顺序,确定所述处理流程树形图中每层节点与所述层节点的下一层节点。

本申请实施例通过对需要关心的处理流程的统计结果按处理流程的树形图来输出,可以实现快速定位需要统计的处理流程所处理的数据报文的至少一个完整的处理过程,以及在所述统计的处理过程的报文数目,进而实现快速高效的报文统计。

一种可能的实现方式,所述报文处理设备根据所述n个处理流程树形图,确定所述类型的数据报文在所述报文处理设备中进行处理时所经过的处理流程,以及统计每个处理流程树形图所对应的处理流程所处理的报文数量,包括:

所述报文处理设备获取所述类型的数据报文在所述报文处理设备中进行处理时需统计的处理流程节点;

所述报文处理设备若确定所述n个处理流程树形图中的m个处理流程树形图包括所述需统计的处理流程节点,则在所述m个处理流程树形图中的所述需统计的处理流程节点上设置m个统计节点;

所述报文处理设备将所述m个统计节点所在的m个处理流程树形图确定为所述类型的数据报文在所述报文处理设备中进行处理时所经过的处理流程;

所述报文处理设备统计所述数据报文经过所述m个统计节点的数量;所述m为正整数。

通过在所述处理流程树形图上的流程节点的下一层处理流程节点列表中增加统计节点,即可以确定所述流程节点经过的报文数量,而不需要在所述数据报文中携带处理流程的数据,提高了统计报文的效率。

一种可能的实现方式,所述方法还包括:

所述报文处理设备若根据统计的每个处理流程树形图所对应的处理流程所处理的报文数量,确定需要监测的所述处理流程树形图所对应的处理流程异常,则向用户指示所述异常。

通过向用户指示异常,可以使得用户快速的知晓所述报文处理设备出现异常,而不需要用户主动查找,提高了用户管理所述报文处理设备的效率。

一种可能的实现方式,所述异常包括:

所述需要监测的所述处理流程树形图所对应的处理流程的所处理的报文数量超过第一阈值;

或者,所述处理流程树形图所对应的处理流程的处理结果为失败,且所述处理流程树形图所对应的处理流程的报文数量超过第二阈值。

通过对异常的分类处理,所述用户设备具体的异常内容分别上报,可以使得用户针对不同程度的异常分类处理,进而实现了对所述报文处理设备的优化管理,提高了管理效率。

本申请实施例提供一种报文统计装置,包括:

确定单元,用于根据至少一个类型的数据报文的处理流程,确定所述类型的数据报文的n个处理流程树形图;n为正整数,所述处理流程树形图用于标识所述处理流程;

统计单元,用于根据所述n个处理流程树形图,确定所述类型的数据报文在所述报文处理设备中进行处理时所经过的处理流程,以及统计每个处理流程树形图所对应的处理流程所处理的报文数量。

一种可能的实现方式,所述确定单元具体用于:

针对所述n个处理流程树形图中的任一个处理流程树形图,执行:

将所述数据报文的处理流程的第一层的处理流程节点,确定为所述处理流程树形图的根节点;根据所述数据报文的第一层的处理流程节点的下一层处理流程节点,确定所述根节点的下一层节点;根据所述数据报文的处理流程中的每层处理流程节点间的处理顺序,确定所述处理流程树形图中每层节点与所述层节点的下一层节点。

一种可能的实现方式,所述统计单元具体用于:

获取所述类型的数据报文在所述报文处理设备中进行处理时需统计的处理流程节点;若确定所述n个处理流程树形图中的m个处理流程树形图包括所述需统计的处理流程节点,则在所述m个处理流程树形图中的所述需统计的处理流程节点上设置m个统计节点;将所述m个统计节点所在的m个处理流程树形图确定为所述类型的数据报文在所述报文处理设备中进行处理时所经过的处理流程;统计所述数据报文经过所述m个统计节点的数量;所述m为正整数。

一种可能的实现方式,所述统计单元还用于:若根据统计的每个处理流程树形图所对应的处理流程所处理的报文数量,确定需要监测的所述处理流程树形图所对应的处理流程异常,则向用户指示所述异常。

一种可能的实现方式,所述异常包括:

所述需要监测的所述处理流程树形图所对应的处理流程的所处理的报文数量超过第一阈值;

或者,所述处理流程树形图所对应的处理流程的处理结果为失败,且所述处理流程树形图所对应的处理流程的报文数量超过第二阈值。

本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述任一项的方法。

本申请实施例提供一种报文统计的计算设备,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述任一项所述的方法。

附图说明

图1为本申请实施例提供的一种报文统计方法的流程示意图;

图2为本申请实施例提供的一种报文统计的处理流程树形图的示意图;

图3为本申请实施例提供的一种报文统计方法的流程示意图;

图4为本申请实施例提供的一种报文统计装置的结构示意图。

具体实施方式

目前交换机、路由器、防火墙等网络设备都涉及对接收或发送的网络数据包进行处理,而在网络设备对数据包的处理过程中,常常由于数据包本身存在异常(如:数据包长度不对、数据包协议字段问题等)或网络设备上配置的规则问题(如:配置了错误的防火墙规则、数据转发规则等)或设备代码本身的缺陷,导致数据包进入一些意外的处理流程;另外,正常的数据包所经过的流程中,存在不同的处理流程。而这些流程中,一些处理流程是需要尽量避免的,即还需要统计不同处理流程中处理的数据包所占的比例。而现有的报文统计方案只能对在某个特定的处理节点的报文进行计数,无法统计报文是完整的处理流程到达该监测节点的。为了解决现有技术中,报文统计时无法获取报文在转发流程中的具体处理过程的问题,本申请提出了一种报文统计方法及装置。

如图1所示,其为本申请实施例提供的一种报文统计方法的实施流程示意图,可以包括以下步骤:

步骤101:报文处理设备根据至少一个类型的数据报文的处理流程,确定所述类型的数据报文的n个处理流程树形图;

其中,n为正整数,所述处理流程树形图用于标识所述处理流程;

步骤102:所述报文处理设备根据所述n个处理流程树形图,确定所述类型的数据报文在所述报文处理设备中进行处理时所经过的处理流程,以及统计每个处理流程树形图所对应的处理流程所处理的数据报文的数量。

在步骤101中,以以太网交换转发为例,在以太网交换转发系统报文转发的过程中,当一条报文流经总线上的处理单元时,处理单元可以获取该报文中包含的所有特征,并确定所述报文的类型,并根据所述报文的类型,在对应类型的处理流程树形图中统计所述报文。

报文按类别可以分为三类:网络报文二层转发、ip(internetprotocol,网络协议)报文三层转发以及报文的转发方式。

具体地,网络报文二层转发可以但不限于包括:报文所携带的vlan(virtuallocalareanetwork,虚拟局域网)层数、报文的mac(mediaaccesscontrol,媒体访问控制)类型以及报文以太网类型。其中,vlan层数可以但不限于包括0层、1层、2层以及大于2层,报文的mac类型可以但不限于包括:广播报文mac、多播报文mac、bpdu(bridgeprotocoldataunit,网桥协议数据单元)报文mac以及1588报文mac,报文以太网类型可以但不限于包括:ip报文、arp(addressresolutionprotocol,地址解析协议)报文、rarp(reverseaddressresolutionprotocol,反向地址转换协议)报文、llc((logicallinkcontrol,逻辑链路控制)报文以及snap(subnetworkaccessprotocol,子网访问协议)报文。

ip报文三层转发可以但不限于包括:ip报文承载的报文种类、ip报文是否有option(可选)字段以及报文ip地址类型。其中,ip报文承载的报文种类可以但不限于包括:tcp(transmissioncontrolprotocol,传输控制协议)报文、udp(userdatagramprotocol,用户数据报协议)报文以及icmp(internetcontrolmessageprotocol,网际控制报文协议)报文。

报文的转发方式可以但不限于包括:多播、单播、广播、泛洪、重定向以及转发至cpu(centralprocessingunit、中央处理器)。

在具体实施过程中,上述三类报文可以分别建立3种类型的处理流程树形图。针对每一类型的报文,可以根据不同的处理单元进行处理,各处理单元之间可以通过总线相连接,具体地,网络二层转发报文可以通过二层报文处理单元提取、三层ip报文可以通过三层报文处理单元提取、报文的转发方式可以通过转发控制处理单元提取得到。具体实施时,也可以将上述三个处理单元作为一个整体的处理单元,对此,本申请实施例不作限定。

在具体实施过程中,所述报文处理设备可以根据获取的数据报文,确定报文的处理流程。所述报文处理设备可以根据报文统计需求,设置所述需要统计的报文的流程节点,以及流程节点在所述处理流程树形图的对应关系。

具体地,当报文统计需求为统计包含一个需要统计的流程节点的报文个数或流量时,则将需要统计的流程节点分别与处理流程树形图上,包括该流程节点的不同的流程相对应,即在所述处理流程树形图中需要统计的流程节点作为统计节点。当报文统计需求为统计同时包含多个需要统计的流程节点的报文个数或流量时,或者当报文统计需求为统计包含多个需要统计的流程中的任意一个流程节点的报文个数或流量的累计量时,则将所述多个需要统计的流程与所述处理流程树形图中的流程中的流程节点相对应,即在所述处理流程树形图中需要统计的流程中的所关心的流程节点作为统计节点。

如图2所示,下面具体描述处理流程树形图的生成方法。针对所述n个处理流程树形图中的任一个处理流程树形图,执行:

步骤一、所述报文处理设备将所述数据报文的处理流程的第一层的处理流程节点,确定为所述处理流程树形图的根节点;

步骤二、所述报文处理设备根据所述数据报文的第一层的处理流程节点的下一层处理流程节点,确定所述根节点的下一层节点;

步骤三、所述报文处理设备根据所述数据报文的处理流程中的每层处理流程节点间的处理顺序,确定所述处理流程树形图中每层节点与所述层节点的下一层节点。

在步骤一中,初始化时,可以将需要统计的处理流程与所述处理流程树形图上的各流程节点建立一个一一对应的关系,每一流程节点均有一个属于自己的标识,例如可以以流程0、流程1、流程2、流程3……来表示,并根据报文的处理流程的标识与处理流程树形图的对应关系确定所述处理流程树形图。

例如,若所述报文处理设备含有4个物理端口,则可以根据4个物理端口设置为4个处理流程树形图,即在1个物理端口接收的报文作为1个处理流程树形图的1个根节点对应的处理流程;该处理流程可以采用物理端口号进行标识。

例如,分别若需统计的流程节点为统计“vlan层数为0”的报文、“vlan层数为1”的报文、“vlan层数为2”的报文以及“vlan层数大于2”的报文各自的个数或流量,则在“vlan层数为0”的报文、“vlan层数为1”的报文、“vlan层数为2”的报文以及“vlan层数大于2”对应的处理流程处设置流程节点。

当报文统计需求为统计同时包含多个需要统计的处理流程的报文个数或流量时,例如统计“vlan层数为1”,“报文转发方式为多播”的报文的个数或流量,则可以将上述两个特征对应的处理流程作为统计的流程节点。

当报文统计需求为统计包含多个需要统计的处理流程中的任意一个处理流程对应的报文个数或流量的累计量时,例如统计“vlan层数为1”的报文与“报文转发方式为多播”的报文的累计个数或流量,则可以将上述两个处理流程对应的流程节点分别作为需要统计的流程节点,在所述处理流程树形图中进行统计。

在步骤二中,需要说明的是,所述数据报文在所述报文处理设备进行处理的多个处理流程中,与所述处理流程树形图中包括的所述数据报文经过的处理流程,可以根据实际需要进行选择。即,若在报文处理过程中,一些处理流程不需要关心,可以在所述处理流程树形图中省略,只生成需要关心的处理流程,以节省存储资源。

举例来说,报文1进入所述报文处理设备时的第一处理流程为流程1,则在所述处理流程树形图中建立所述树形图的根节点为流程1,流程1中可以包括下一层处理流程节点列表,所述下一层处理流程节点列表包括在流程1的下一层流程节点的所有可能的流程节点。当需要进入下一层的处理流程时,可以在所述下一层处理流程节点列表中新增一个处理流程的存储空间,所述存储空间用于存储下一层的处理流程的标识,所述标识可以通过当前流程节点所在的处理流程树形图的位置确定。

例如,若报文1经过流程1后,需要经过进入处理流程2,则在所述流程1的下一层处理流程节点列表中,建立所述处理流程树形图中流程1至流程2的树枝分叉,此处流程1为根节点,因此,流程2为所述处理流程树形图的第二层节点,流程2对应的处理流程为处理流程2。

依此类推,可以根据报文1经过的处理流程,建立报文1在所述处理流程树形图对应的流程节点,例如,第一处理过程为流程1至流程2至流程3,第二处理过程为流程1至流程4至流程3。

所述处理流程树形图形成的多叉树,其最大宽度是所有加入统计的处理流程的总数目。

在步骤102中,一种可能的实现方式,具体包括以下步骤:

步骤一、所述报文处理设备获取所述类型的数据报文在所述报文处理设备中进行处理时需监测的处理流程节点;

步骤二、所述报文处理设备若确定所述n个处理流程树形图中的m个处理流程树形图包括所述需监测的处理流程节点,则在所述m个处理流程树形图中的所述需统计的处理流程节点上设置m个统计节点;

步骤三、所述报文处理设备将所述m个统计节点所在的m个处理流程树形图确定为所述统计所述类型的数据报文在所述报文处理设备中进行处理时所经过的处理流程;

步骤四、所述报文处理设备统计所述数据报文经过所述m个统计节点的数量;所述m为正整数。

在步骤一的具体实施过程中,在每个流程节点中的下一层处理流程节点列表中,可以包括检测节点,所述检测节点,用于统计经过该流程节点的报文数量。另外,在不同的处理过程中,可能会出现相同的流程节点,为标识不同处理过程中的每个流程节点,可以根据流程节点在所述处理流程树形图的位置进行标识,进而确定每个流程节点所处的处理过程,或者每个流程节点所处的多个处理过程。例如,若确定根节点为流程1,第二层节点为流程2,第三层节点为流程3,则可以确定所述处理过程为第一处理过程。

一种可能的实现方式,若统计节点的下一层处理流程节点列表中,不存在多个流程节点,则可以输出该统计节点所处的处理过程,例如,结合上面的例子,在所述第一处理过程中的流程3上,统计的是所述第一处理过程所对应的报文数量,在所述第二处理过程中的流程3上,统计的是所述第二处理过程所对应的报文数量。

在流程3的下一层处理流程节点列表中,可以包括统计节点,所述统计节点可以记录经过流程3的报文数量或流量。也就是说,只要是与报文1经历相同处理流程的数据报文,例如,数据报文的处理流程为流程1至流程2至流程3,则都会在流程3中的统计节点统计,进而确定经过处理流程为流程1至流程2至流程3的报文数量或流量。

一种可能的实现方式,所述报文处理设备在统计所述类型的数据报文时,在流程1处,出现了2种不同的处理方式,即流程1后,至少一个数据报文执行的下一处理流程为流程2,至少一个数据报文执行的下一处理流程为流程4。

若需要统计流程1的报文数量,则可以根据流程1的下一层处理流程节点列表中包括的流程个数,确定分叉的数目,进而确定流程1所处的多个处理流程。例如,如图2所示,在流程1的下一层处理流程节点列表中,包括流程2和流程4,即流程1处于2个处理流程中,此时可以确定所述流程1的2种处理过程。

根据所述流程1的2种处理过程,可以分别通过其他流程节点,统计这2种处理过程中报文的数量,例如,在所述第一处理过程中,可以根据流程3上的统计节点统计的报文数目,确定所述第一处理过程在统计时间内统计的报文数量。

在步骤四中,若确定所述数据报文经过需要统计的统计节点,则确定该统计节点的命中结果为是,即“命中”,并将该命中结果置1,如果若确定所述数据报文不经过需要统计的统计节点,则确定该统计节点的命中结果为否,即“未命中”,并将该命中结果置0,进而获得各需要统计的统计节点的命中结果。

本申请实施例通过对需要关心的处理流程的统计结果按处理流程的树形图来输出,可以实现快速定位需要统计的处理流程所处理的数据报文的至少一个完整的处理过程,以及在所述统计的处理过程的报文数目,进而实现快速高效的报文统计。通过在所述处理流程树形图上的流程节点的下一层处理流程节点列表中增加统计节点,即可以确定所述流程节点经过的报文数量,而不需要在所述数据报文中携带处理流程的数据,提高了统计报文的效率。

进一步的,所述报文统计的流程中可以包括以下4种操作,每一种操作的时间复杂度都是1,因此针对一个处理流程来说,时间复杂度为1,总的时间复杂度取决于多叉树最大调用深度。具体的,可以包括:进入处理过程时入栈,时间复杂度为1;命中统计节点时记录检测点的计数,时间复杂度为1;结束处理过程时出栈,时间复杂度为1;记录下一流程列表对应的处理流程,时间复杂度为1。极大的简化了报文统计的复杂度,提高了报文统计的效率。

本申请实施例中,所述方法还包括:

所述报文处理设备若根据统计的每个处理流程树形图所对应的处理流程所处理的报文数量,确定需要监测的所述处理流程树形图所对应的处理流程异常,则向用户指示所述异常。

在具体实施过程中,由于所述报文处理设备在处理报文前,可以确定报文在经过2层转发时可能进入的处理节点,3层转发可能会进入的处理节点,异常流程会进入的处理节点等等。通过标记不同功能的处理节点,将需要关心的处理节点上设置统计节点,在需要监测的处理节点上设置统计节点,使得经过该处理节点的报文经过的流程都可以统计,进而可以可以根据不同的流程上的统计的报文数量来确定报文的处理流程是否出现异常。

一种可能的实现方式,所述处理报文设备若确定所述需要监测的所述处理流程树形图所对应的处理流程的所处理的报文数量超过第一阈值,则确定所述需要监测的所述处理流程树形图所对应的处理流程异常。

例如,在3层转发的处理流程中,若报文为正常转发流程,则所述报文可以经过如下处理流程:

流程1为接收报文;流程2为转发输入;流程3为进入转发流程;流程4为转发输出;流程5为发送数据包。所述处理流程中的统计节点在所述报文完成所述处理流程后,所述处理流程中的统计节点的计数值加1。

若报文为异常转发,例如,数据包没有找到路由,则将出现如下异常处理流程:

流程1为接收报文;流程2为转发输入;流程3为进入转发流程;流程4为处理失败。所述处理流程中的统计节点在所述报文完成所述处理流程后,所述处理流程中的统计节点的计数值加1。

通过上述方法,可以直接统计出异常转发报文的报文数量,并且可以根据所述异常转发报文经过的具体处理流程,进而可以直接确定出所述异常的原因,提高了报文的处理效率。通过向用户指示异常,可以使得用户快速的知晓所述报文处理设备出现异常,而不需要用户主动查找,提高了用户管理所述报文处理设备的效率。进一步的,本申请实施例中,还提供一种报文监测方法,包括:

若确定所述报文为三层转发报文,则所述处理流程可能出现的异常流程可以为:

流程1为接收报文;流程2为转发输入;流程3为进入三层转发流程(do_route);流程4为处理失败。所述处理流程中的统计节点在所述报文完成所述处理流程后,所述处理流程中的统计节点的计数值加1。

若确定所述报文为二层转发报文,则所述处理流程可能出现的异常流程可以为:

流程节点1为接收报文;流程2为转发输入;流程3为进入2层转发流程(do_forward);流程4为处理失败。所述处理流程中的统计节点在所述报文完成所述处理流程后,所述处理流程中的统计节点的计数值加1。

由于两个流程最终都会调用处理失败的流程节点,现有技术中的计数方式只能在处理失败的流程节点进行总计,不能区分是三层报文异常导致计数增加还是二层报文异常导致计数值增加,而通过本申请实施例中的流程树,可以在不同的处理流程中的处理失败的流程节点上分别统计,进而可以直接确定出所述异常的来源是三层报文还是二层报文。

一种可能的实现方式,所述处理报文设备可以根据统计的每个处理流程树形图所对应的处理流程所处理的报文数量,确定需要监测的所述处理流程树形图所对应的处理流程占整体处理流程的比例,进而指示出所述报文的处理是否合理,可以达到预期要求。

例如,若报文为tcp报文,则所述报文可以包括如下处理流程:

流程1为接收报文;流程2为对所述报文进行解码;流程3为解析ip;流程4为解析tcp;流程5为发送数据包。所述处理流程中的统计节点统计tcp报文数量。在所述报文完成所述处理流程后,所述处理流程中的统计节点的计数值加1。

若报文为udp报文,则所述报文可以包括如下处理流程:

流程1为接收报文;流程2为解码所述报文;流程3为解码所述报文的ip;流程4为解码所述报文的upd。所述处理流程中的统计节点为统计所述upd报文数量。在所述报文完成所述处理流程后,所述处理流程中的统计节点的计数值加1。

通过上述方法,可以直接确定,所述报文转发设备处理的tcp报文或udp报文的处理比例,进而确定所述报文转发设备是否满足预期的转发要求。

一种可能的实现方式,所述处理报文设备若确定所述处理流程树形图所对应的处理流程的处理结果为失败,且所述处理流程树形图所对应的处理流程的报文数量超过第二阈值,则确定所述需要监测的所述处理流程树形图所对应的处理流程异常。

所述第一阈值和所述第二阈值可以根据实际需要确定,在此不做限定。

通过对异常的分类处理,所述用户设备具体的异常内容分别上报,可以使得用户针对不同程度的异常分类处理,进而实现了对所述报文处理设备的优化管理,提高了管理效率。

如图3所示,本申请实施例提供的一种报文统计方法,包括以下步骤:

步骤301:所述报文处理设备根据获取的所述数据报文,对所述数据报文进行处理,确定当前处理所述数据报文的处理流程,此处以流程1为例说明;

步骤302:所述报文处理设备根据所述处理流程,在所述报文处理设备对应的处理流程树形图的根节点中,查找是否有与流程1相同的根节点;

若是,则执行步骤304,若否则执行303;

步骤303:所述报文处理设备根据流程1,建立处理流程树形图的根节点;所述根节点用于标识流程1;并标记所述数据报文执行流程1;

步骤304:所述报文处理设备在所述根节点处,标记所述数据报文;

步骤305:所述报文处理设备判断流程1是否存在统计节点;若存在,则执行步骤306,否则执行步骤307;

步骤306:所述报文处理设备将所述统计节点的计数加1;

步骤307:所述报文处理设备根据所述处理流程的处理结果,确定下一处理流程,此处以流程2为例说明;

步骤308:所述报文处理设备根据所述下一处理流程,如流程2,在所述处理流程树形图中的当前处理流程,如流程1的下一处理流程节点列表中查找所述下一处理流程,如流程2;若确定当前处理流程,如流程1的下一处理流程节点列表中不存在所述下一处理流程,如流程2,则执行步骤309,否则,执行310;

步骤309:所述报文处理设备在当前处理流程,如流程1的下一处理流程节点列表中建立所述下一处理流程,如流程2,以及所述下一处理流程,如流程2的下一层处理流程节点列表;并标记所述数据报文;

步骤310:所述报文处理设备在所述下一处理流程,如流程2,标记所述数据报文;

步骤311:所述报文处理设备判断所述下一处理流程,如流程2是否存在统计节点;若存在,则执行步骤312,否则,执行步骤313;

步骤312:所述报文处理器将所述统计节点的计数加1;

步骤313:所述报文处理设备根据所述数据报文在所述下一处理流程,如流程2的处理结果,确定所述数据报文在所述下一处理流程,如流程2之后的处理流程,若确定存在下一处理流程,则返回至步骤306;否则,执行步骤314;

步骤314:所述报文处理设备完成对所述数据报文的统计。

一种可能的实现方式,所述方法还包括:

所述报文处理设备若确定所述处理流程树形图所对应的处理流程所处理的报文数量超过第一阈值,则向用户发送告警。

一种可能的实现方式,所述方法还包括:

所述报文处理设备若确定所述处理流程树形图所对应的处理流程的处理结果为失败,且所述处理流程树形图所对应的处理流程的报文数量超过第二阈值,则向用户发送告警。

本申请实施例中,不需要针对每个统计节点单独设置一个计数器,而是将需要统计的节点与处理流程树形图建立对应关系,并在树形图上的每个流程上建立一个计数器,对需要统计的各特征的命中结果与用户设置的需要统计的各统计节点在报文执行的同时,对应处理流程树形图中,对用户根据统计需求设置的统计节点进行统计,从而实现了统计包含需要统计的各统计节点的报文个数或报文流量,因此,用户可以根据需要只统计包含自己所关心的统计节点的报文,可以直接获取统计节点经过的完整的统计流程,有效地节约了传输带宽及存储资源,提高了报文统计的效率。

基于同一申请构思,本申请实施例还提供了一种网络报文统计装置,如图4所示,包括:

确定单元401,用于根据至少一个类型的数据报文的处理流程,确定所述类型的数据报文的n个处理流程树形图;n为正整数,所述处理流程树形图用于标识所述处理流程;

统计单元402,用于根据所述n个处理流程树形图,确定所述类型的数据报文在所述报文处理设备中进行处理时所经过的处理流程,以及统计每个处理流程树形图所对应的处理流程所处理的报文数量。

一种可能的实现方式,确定单元401具体用于:

针对所述n个处理流程树形图中的任一个处理流程树形图,执行:

将所述数据报文的处理流程的第一层的处理流程节点,确定为所述处理流程树形图的根节点;根据所述数据报文的第一层的处理流程节点的下一层处理流程节点,确定所述根节点的下一层节点;根据所述数据报文的处理流程中的每层处理流程节点间的处理顺序,确定所述处理流程树形图中每层节点与所述层节点的下一层节点。

一种可能的实现方式,统计单元402具体用于:

获取所述类型的数据报文在所述报文处理设备中进行处理时需统计的处理流程节点;若确定所述n个处理流程树形图中的m个处理流程树形图包括所述需统计的处理流程节点,则在所述m个处理流程树形图中的所述需统计的处理流程节点上设置m个统计节点;将所述m个统计节点所在的m个处理流程树形图确定为所述统计所述类型的数据报文在所述报文处理设备中进行处理时所经过的处理流程;统计所述数据报文经过所述m个统计节点的数量;所述m为正整数。

一种可能的实现方式,统计单元402还用于:若确定所述处理流程树形图所对应的处理流程所处理的报文数量超过第一阈值,则向用户发送告警。

一种可能的实现方式,统计单元402还包括:若确定所述处理流程树形图所对应的处理流程的处理结果为失败,且所述处理流程树形图所对应的处理流程的报文数量超过第二阈值,则向用户发送告警。

本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述任一项的方法。

本申请实施例提供一种报文统计的计算设备,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述任一项所述的方法。

本申请实施例提供的报文统计方法及装置,用户需根据报文处理的具体流程,确定报文的异常节点,进而去排查异常情况,或者,用户需要根据报文处理的具体流程,确定其关心的报文流程节点是否达到预期效果,进而对网络设备的运行状态进行检测,从而实现了统计包含需要统计的类型的报文个数或报文流量,因此,用户可以根据需要只统计包含自己所关心的类型的报文的统计节点,以满足不同的统计需求。采用了处理层级的方法来进行报文统计,对于报文进入了某些意外的处理流程时,可根据此方法得出详细的流程层级信息,为分析问题提供了更高的参考价值。另外,可以根据此方法得出各个处理流程上报文的比例,为流程和性能优化提供参考。

具体实施时,由于上述装置解决问题的原理与报文统计方法相似,因此上述装置的实施可以参见方法的实施,重复之处不再赘述。

为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本申请时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。

本领域内的技术人员应明白,本申请的实施例可提供为方法、装置、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1