报文处理方法、故障定位方法及网络设备与流程

文档序号:14022561阅读:399来源:国知局
报文处理方法、故障定位方法及网络设备与流程

本发明涉及互联网领域,尤其涉及一种报文处理方法、故障定位方法及网络设备。



背景技术:

随着互联网的发展,大型数据中心网络发挥的作用也越来越重要。由于在所述数据中心网络中存在着大量的交换机端口和大量的链路,任何一个端口或者任意一条链路出现故障,都会影响报文的传输,因此对故障的检测变的尤为重要。

目前,数据中心网络中的故障检测通常可采用操作维护管理(operationadministrationandmaintenance,oam)技术。所述oam技术的工作原理如下:上层交换机会将oam帧插入到数据业务帧序列中,并将携带有oam帧的数据业务帧序列发送给下层交换机,若下层交换机能够收到携带有oam帧的数据业务帧序列,则表明所述上层交换机和所述下层交换机之间没有出现故障。

目前,上述故障检测方法中,所述oam帧是随机选择路径进行转发的,不能保证与传输报文的转发路径完全一致,进而不能进行故障定位。



技术实现要素:

本发明实施例提供一种报文处理方法、故障定位方法及网络设备,以实现故障定位。

第一方面,提供一种报文处理方法,在该方法中,网络设备接收报文,所述报文可以是至少两个不同于所述网络设备的其它网络设备或至少两个端设备发送的报文。其中,所述端设备可以为服务器主机。接收到多个其它网络设备和/或多个端设备发送的报文的网络设备确定用于标识所述报文的序列化信息,并将确定的所述序列化信息,插入到接收到的报文中。其中,所述序列化信息按照报文的接收顺序单调递增或单调递减,且每一所述序列化信息用于在序列化信息的单调变化范围内唯一标识一个报文。所述网络设备将具有单调性的序列化信息插入到接收的报文中,使得每个报文都具有唯一的标识,相互可区分,从而当将报文发送到待进行故障定位的目标网络时,目标网络中各网络设备可根据每个报文的标识,监控每个报文到指定的网络设备或者指定的网络设备端口,并在指定的网络设备或者指定的网络设备端口处根据每个报文的标识统计接收的报文数目。其中,所述目标网络中的各个网络设备以及各个网络设备的报文收发端口均可称为网络节点。若在指定的网络节点处监控到报文发生了丢包现象,则可确定发生了丢包现象的节点为故障节点。

其中,所述序列化信息具有序列化信息空间范围,在所述序列化信息空间范围内所述序列化信息呈单调变化且唯一。

在一个可能的设计中,为了使得所述网络设备维护一个单一的最新的序列化信息,网络设备需要确定在接收所述报文之前接收的上一个报文的序列化信息,并根据所述上一个报文的序列化信息以及预设的序列化信息单调变化方向,确定用于标识所述报文的序列化信息。

在另一个可能的设计中,由于通常需要对网络中传输的报文进行多流组并行处理,因此为了实现不同的流组相互无依赖,网络设备需要确定接收的报文所属流组,并将接收的报文分配到确定出的所述流组,再分别确定出各个流组中报文的序列化信息,且各个流组中报文的序列化信息相同。其中,所述流组为按照报文目的子网、报文目的地址和报文发送端口中之一或组合对接收到的多个报文所划分出的不同数据流。

在又一个可能的设计中,网络设备通常将所述序列化信息插入到所述报文的指定位置处。具体的,可将确定的所述序列化信息,插入到所述报文的ip头和tcp/udp头之间。或者将确定的所述序列化信息插入到所述报文的设定字段中,能够便于网络设备对所述报文进行处理。

在又一个可能的设计中,为了避免在一次报文的传输过程中,所述序列化信息出现重复,导致两个不同的报文具有相同的序列化信息,网络设备会根据待接收的报文数目和报文收发端口支持的收发速率,确定出接收所述数目报文所用的时间,进而确定出能够对在所述时间内接收的所述数目报文中每一报文进行标识的序列化信息范围,并在所述序列化信息空间范围内确定唯一标识所述报文的序列化信息,能够保证在不同种类速率的端口处所述序列化信息不出现重复。

其中,所述网络设备可以是架顶(topofrack,tor)交换机等物理网络设备,也可以是虚拟交换机等虚拟网络设备。

一种可能的设计中,所述网络设备可为网络边缘设备。

第二方面,提供一种故障定位方法,该方法中,确定用于标识目标网络中在网报文的序列化信息的序列化信息空间范围,将所述序列化信息范围划分为至少两个区间,再统计所述目标网络中在网报文的序列化信息落入所述至少两个区间中每一区间的次数,并确定统计次数相对稳定的区间,进而分别在所述目标网络的不同节点上,监测在网报文的序列化信息落入所述统计次数相对稳定的区间的统计次数,若确定所述不同节点中存在统计次数不同的节点,则确定所述统计次数不同的节点存在网络故障。

本发明实施例中,通过将所述序列化信息空间范围划分为至少两个区间,并统计目标网络中在网报文的序列化信息落入所述至少两个区间中每一区间的次数,确定统计次数相对稳定的区间,再在所述目标网络不同节点上,监测所述统计次数相对稳定区间的统计次数,能够清楚的实时跟踪任意报文到任意节点,即跟踪任意报文的转发轨迹,可以明确的得到任意报文的确定性转发路径,进而实现故障定位。另外,所述故障定位方法仅仅对接收网络边缘设备比如tor交换机或服务器上虚拟交换机有要求、对其他网络设备和服务器没有改动、成本低、可实施性好。

第三方面,提供一种网络设备,该网络设备具备实现上述第一方面涉及的报文处理方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

在一个可能的设计中,该网络设备包括接收单元和处理单元,其中:

接收单元,用于接收报文。处理单元,用于确定用于标识所述接收单元接收的报文的序列化信息;将确定的所述序列化信息,插入到所述报文中,并发送插入序列化信息后的报文;其中,所述序列化信息按照报文的接收顺序单调递增或单调递减,且每一所述序列化信息用于在所述序列化信息的单调变化范围内唯一标识一个报文。

在另一个可能的设计中,该网络设备包括处理器和收发端口,所述处理器被配置为支持网络设备执行上述第一方面涉及的报文处理方法中相应的功能。所述收发端口被配置为支持所述网络设备与其它网络设备、所述网络设备与端设备之间的通信。

其中,所述网络设备还可以包括存储器,所述存储器用于与处理器耦合,其保存网络设备必要的程序指令和数据。

第四方面,提供一种网络设备,该网络设备具备实现上述第二方面涉及的故障定位方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

在一个可能的设计中,所述网络设备包括处理单元和监测单元,所述处理单元,用于确定用于标识目标网络中在网报文的序列化信息的序列化信息空间范围,所述序列化信息空间范围内的各个序列化信息按照单调递增或单调递减的顺序变化,且每一序列化信息用于在所述序列化信息的单调变化范围内唯一标识一个在网报文;将确定的所述序列化信息范围划分为至少两个区间;统计所述目标网络中在网报文的序列化信息落入所述至少两个区间中每一区间的次数,并确定统计次数相对稳定的区间。所述监测单元,用于在所述目标网络的不同节点上,监测所述在网报文的序列化信息落入所述统计次数相对稳定区间的统计次数;若确定所述不同节点中存在统计次数不同的节点,则确定所述统计次数不同的节点存在网络故障。

在另一个可能的设计中,所述网络设备包括的处理单元可以是处理器,监测单元可以是监测器,存储单元可以是存储器。

第五方面,本发明实施例提供了一种计算机存储介质,用于储存为上述第三方面涉及的网络设备所用的计算机软件指令,其包含用于执行上述第一方面和第三方面网络设备所涉及的程序。

第六方面,本发明实施例提供了一种计算机存储介质,用于储存为上述第四方面涉及的网络设备所用的计算机软件指令,其包含用于执行上述第二方面和第四方面网络设备所涉及的程序。

上述各方面涉及的报文处理方法、故障定位方法及网络设备,使得目标网络中各网络设备接收到的报文,都具有唯一的标识,相互可区分,从而可根据每个报文的标识,监控每个报文到指定的节点,并在指定的节点处根据每个报文的标识统计接收的报文数目,若在指定的网络节点处监控到报文发生了丢包现象,则可确定发生了丢包现象的节点为故障节点。另外,所述故障定位方法仅仅对接收网络边缘设备比如tor交换机或服务器上虚拟交换机有要求、对其他网络设备和服务器没有改动、成本低、可实施性好。

附图说明

图1为本发明的一种可能的应用场景示意图;

图2为本发明实施例提供的一种报文处理方法流程图;

图3为本发明实施例提供的一种确定序列化信息的方法流程图;

图4为本发明实施例提供的一种高速生成序列化信息的示意图;

图5为本发明实施例提供的另一种确定序列化信息的方法流程图;

图6为本发明实施例提供的一种多流组高速生成序列化信息的示意图;

图7a为本发明实施例提供的一种未序列化的报文层次结构;

图7b为本发明实施例提供的一种插入序列化信息到报文中之后的新报文层次结构;

图8为本发明实施例提供的一种序列化信息位于ipv4option中的示意图;

图9为本发明实施例提供的一种序列化信息位于ipv4独立header的示意图;

图10为本发明实施例提供的一种序列化信息位于ipv6独立header的示意图;

图11为本发明实施例提供的一种序列化信息位于vxlan隧道头特定字段的示意图;

图12为本发明实施例提供的另一种确定序列化信息的方法流程图;

图13为本发明实施例提供的一种故障定位的方法流程图;

图14为本发明实施例提供的另一种故障定位的方法流程图;

图15为本发明实施例提供的一种将序列化信息划分区间的方法示意图;

图16为本发明实施例提供的一种统计结果示意图;

图17为本发明实施例提供的一种网络设备结构示意图;

图18为本发明实施例提供的另一种网络设备的结构示意图;

图19为本发明实施例提供的又一种网络设备的结构示意图;

图20为本发明实施例提供的又一种网络设备的结构示意图。

具体实施方式

本发明实施例描述的网络架构以及业务场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。

本发明实施例提供的报文处理方法和故障定位方法可应用于图1所示的网络架构。图1中,网络设备作为网络边缘设备,能够接收其它网络中的网络设备所发送的报文,并将接收到的报文发送给其所属网络中的各网络节点。例如,图1中当网络设备将接收到的报文发送给交换机s1,报文经由交换机s2和交换机s3,可发送至服务器。

需要说明的是,图1所示中涉及的网络设备、交换机以及服务器的结构仅是进行示意性说明,并不引以为限,例如网络设备、交换机以及服务器中均可以包括具有处理功能的处理单元,也可以包括具有发送功能的发送单元,且处理单元和发送单元的组合可以看作是一个独立的网络功能实体,图1中并未进行示意。

现有技术中,通常采用oam技术进行故障检测,即可在网络边缘设备处将oam帧插入到网络设备接收的报文中,当携带oam帧的报文通过网络设备上的端口向交换机s1传送时,若交换机s1能够接收到所述携带oam帧的报文,则表明网络边缘设备和交换机s1之间没有故障。但是,这种故障检测方法并不可靠,因为交换机s1上至少存在一个接收报文的端口,若所述交换机s1存在两个端口,端口a和端口b,此时不能保证oam帧与传输的报文的选择的端口一致,假如oam帧选择a端口到达交换机s1,而传输的报文是选择端口b到达交换机s1,此时就不能判断出端口b是否发生故障,即不能判断出是否在端口b处发生丢包现象。

本发明实施例提供一种报文处理方法和故障定位方法,在网络设备接收到报文时,确定用于标识所述报文的序列化信息,并将确定的序列化信息插入到报文中,再将插入序列化信息后的报文发送出去,其中,所述序列化信息按照报文的接收顺序单调递增或单调递减。所述网络设备将具有单调性的序列化信息插入到接收的报文中,使得每个报文都具有唯一的标识,相互可区分,从而当将报文发送到待进行故障定位的目标网络时,目标网络中各网络设备可根据每个报文的标识,监控每个报文到目标网络中指定的网络设备或者指定的网络设备端口,并在指定的网络设备或者指定的网络设备端口处根据每个报文的标识统计接收的报文数目。其中,目标网络中的各个网络设备以及各个网络设备的报文收发端口均可称为网络节点。若在指定的网络节点处监控到报文发生了丢包现象,则可确定发生了丢包现象的节点为故障节点。

本发实施例中对接收到的报文进行序列化的网络设备可以是物理的网络设备,例如tor交换机,也可以是虚拟的网络设备,例如虚拟交换机。

本发明实施例以下将结合实际应用分别对上述实施例涉及的报文处理和故障定位方法进行说明。

图2为本发明实施例提供的一种报文处理方法流程图,可以包括以下步骤:

s11、网络设备接收报文。

本发明实施例中,网络设备接收的报文可能来自至少两个不同于所述网络设备的其它网络设备发送的报文,也可能来自至少两个端设备(服务器主机)发送的报文。

其中,用于接收报文的网络设备可以为网络边缘设备,网络边缘设备可以是tor交换机,也可以是虚拟交换机。

s12、所述网络设备确定用于标识所述报文的序列化信息。

本发明实施例中,可以预先在网络设备上配置序列化功能,使得接收到多个其它网络设备和/或多个端设备发送的报文的网络设备能够对接收到的报文进行序列化。其中,所述报文序列化功能可以针对整个网络设备系统使能,也可以针对某些端口使能。通过使能序列化功能可确定出序列化信息。所述序列化信息用于唯一标识和区分一个报文,并且要求在数学上是单调的,可以是单调递增或单调递减,但是不要求连续。例如,所述序列化信息可以是按照接收的报文数目单调变化的数值或时间戳,比如所述序列化信息可以为1、2、3…或者3、5、9、11…。在实际应用中,序列化信息的单调变化方向可能是系统内部默认的单调增加或者单调减少,也可以进行外部配置,但是无论是需要外部配置还是内部默认的,网络设备必须能够获得序列化信息单调变化的方向。

s13、所述网络设备将确定的所述序列化信息,插入到所述报文中,并发送插入序列化信息后的报文。

本发明实施例中,所述序列化信息按照报文的接收顺序呈单调变化,且每一所述序列化信息用于在序列化信息的单调变化范围内唯一标识和区分一个报文。在实际应用中,当第一报文在第一时间到达、第二报文在第二时间到达、第三报文在第三时间到达,且第一时间早于第二时间、第二时间早于第三时间时,若报文的序列化信息是单调增加的,则第一报文中插入的序列化信息小于第二报文中插入的序列化信息、第二报文中插入的序列化信息小于第三报文中插入的序列化信息;若报文的序列化信息是单调减少的,则第一报文中插入的序列化信息大于第二报文中插入的序列化信息、第二报文中插入的序列化信息大于第三报文中插入的序列化信息。

例如,可采用如下方式插入序列化信息,若确定出的序列化信息为1、2、3…,则根据报文的接收顺序,可将序列化信息1插入到第一报文中,序列化信息2插入到第二报文中,接下来依次进行插入。当然,确定出的序列化信息也可以是单调递减的,比如500、499…,此时可将序列化信息500插入到第一报文中,序列化信息499插入到第二报文中,接下来依次进行插入。

本发明实施例中,通过确定用于标识从多个其它网络设备或端口接收到的报文的序列化信息,所述序列化信息按照报文的接收顺序呈单调变化,且每一所述序列化信息用于在序列化信息单调变化的范围内唯一标识和区分一个报文,实现将跨越网络设备的不同端口上接收到的报文的序列化信息进行归一化,并归一到同一个单调区间内,实现可比较的序列化信息。将确定的序列化信息插入到报文中并发送插入了序列化信息的报文,使得目标网络中的每个报文,都具有唯一的标识,相互可区分,从而可监控每个报文到指定的节点,若在指定节点监控到报文发生了丢包现象,则可确定发生了丢包现象的节点为故障节点。

可选的,为了使网络设备维护一个单一的最新的序列化信息,本发明实施例中,所述网络设备可采用如下方法确定用于唯一标识所述报文的序列化信息,如图3所示,可包括如下步骤:

s121、网络设备确定在接收所述报文之前接收的上一个报文的序列化信息。

s122、网络设备根据所述上一个报文的序列化信息以及预设的序列化信息单调变化方向,确定用于唯一标识所述报文的序列化信息。

具体的,由于报文的收发速度较快,可采用专用的高速寄存器保存序列化信息和序列化信息的单调变化方向等。所述网络设备可以每次直接从高速寄存器中读取当前报文之前的上一个报文的序列化信息,再按照单调变化方向增加或减少,进而获得当前报文的序列化信息。其中,所述当前报文之前的上一个报文的序列化信息可称为历史的序列化信息。

例如,可采用如图4所示的方法确定报文的序列化信息,其中,第一寄存器保存历史的序列化信息,第二寄存器保存单调变化方向,从第一寄存器读出历史的序列化信息后,获取第二寄存器保存的单调变化方向,通过计算单元可生成当前报文的序列化信息。若单调变化方向是增加,则计算单元只需要在历史数值上加1;若单调变化方向是减少,则计算单元只需要在历史数值上减1,最终将得到的当前报文的序列化信息保存在第三寄存器或者第一寄存器中。

需要说明的是,本发明实施例涉及的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序,例如本发明实施例中上述涉及的第一寄存器和第二寄存器仅是用于方便描述以及区分不同的寄存器,并不构成对寄存器的限定。应该理解这样使用的术语在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。

可选的,由于通常需要对网络中传输的报文进行多流组并行处理,其中,所述流组为按照报文目的子网、报文目的地址和报文发送端口中之一或组合对接收到的多个报文所划分出的不同数据流,因此为了实现不同的流组相互无依赖,本发明实施例中,所述网络设备可采用如下方法确定用于标识所述报文的序列化信息,如图5所示,可包括如下步骤:

s123、确定所述报文所属流组,并将所述报文分配到确定出的所述流组。

s124、确定用于标识所述流组中每一流组报文的序列化信息。

在实际应用中,通常采用如图6所示的方法确定每个流组的序列化信息,其中,采用第一寄存器保存第一流组的历史序列化信息,第二寄存器保存第二流组的历史序列化信息,第三寄存器保存单调变化方向,从第一寄存器读出第一流组的历史序列化信息后,获取第三寄存器保存的单调变化方向,通过计算单元可生成第一流组中当前报文的序列化信息。同样的,从第二寄存器读出第二流组的历史序列化信息后,获取第三寄存器保存的单调变化方向,通过计算单元可生成第二流组中当前报文的序列化信息。

可选的,在上述实施例中,所述网络设备可将所述序列化信息插入到所述报文的指定位置处,例如,通常序列化信息是插入到报文的ip头和tcp/udp头之间,如图7a所示为网络设备收到的未序列化的报文层次结构,其中,从上到下分别为应用层、传输层、网络层、数据链路层和物理层。图7b所示为插入序列化信息到网络设备接收的报文中去之后的新报文层次结构。

具体的,网络设备可以根据ipv4协议将所述序列化信息插入到如图8所示的ipv4头的option字段。另外,所述序列化信息也可在ipv4报文中作为独立的header存在,具体的存在格式如图9所示。同样,所述序列化信息也可在ipv6报文中作为独立的header存在,具体的存在格式如图10所示。

可选的,在上述实施例中,所述网络设备可将确定的所述序列化信息承载在设定字段中,并将所述设定字段插入到所述报文的指定位置处。例如,可以将所述序列化信息放在ip隧道头中,所述ip隧道头包括虚拟化可扩展的局域网(virtualextensiblelocalareanetwork,vxlan),具体的存在格式如图11所示。

本发明实施例中,所述序列化信息可以通过协议规范的方式,约定放置到指定位置,或者通过约定规范的方式在特定的位置插入特定的字段来承载。其中,插入的位置和承载字段的长度,最好是相对报文头的固定位置和固定长度,或者至少是在一定的空间范围或时间周期内固定的,能够便于网络设备对所述报文进行处理。

其中,所述序列化信息具有序列化信息空间范围,在所述序列化信息空间范围内所述序列化信息呈单调变化且唯一。

可选的,为了避免在一次报文传输过程中,标识报文的序列化信息出现重复,导致两个不同的报文具有相同的序列化信息,在本发明实施例中,所述网络设备采用如下方法确定用于唯一标识报文的序列化信息,如图12所示,可以包括以下步骤:

s21、所述网络设备根据待接收的报文数目和报文收发端口支持的收发速率,得到接收所述数目报文所用的时间,并确定能够对所述时间内接收的所述数目报文中每一报文进行标识的序列化信息空间范围。

具体的,用于存储所述序列化信息的空间范围是服务于应用需求的,也受限于报文到达网络设备的速率和报文的数目,因此可以根据待接收的报文数目和报文收发端口支持的收发速率,计算出接收所述数目报文所用的时间。例如,若有m个报文,接收报文的端口支持的接收速率为每毫秒n个报文,则可计算出接收m个报文所需的时间,进而再确定能够对在所述时间内接收的所述数目报文中每一报文进行标识的序列化信息空间范围。由于用于存储序列化信息的空间范围是有限的,因此随着报文数目的增加,迟早会出现绕回,比如如果是一个16比特的存储空间范围,当历史序列化信息是65535时,下一个数值必然绕回到0或1或者其他小于65535的数值。较佳的,若为所述序列化信息提供较大的存储空间,则能在较长的时间段内唯一标识和区分该网络设备收到的报文,进而便于后续的跟踪等应用。其中,承载序列化信息的空间范围可以是系统默认的或者通过配置指定的。

在实际应用中,若是在100mbps的端口上对接收的报文进行序列化,则承载序列化信息的空间范围至少需要16个比特,否则就可能出现在网报文的序列化信息绕回。若端口速率是1tbps,则承载报文序列化信息的空间范围至少需要32比特。

s22、在所述序列化信息空间范围内确定唯一标识所述报文的序列化信息。

本发明实施例中,所述网络设备根据待接收的报文数目和报文收发端口支持的收发速率,确定能够对所述数目中每一报文进行标识的序列化信息空间范围,进而在所述序列化信息空间范围内确定唯一标识所述报文的序列化信息,能够保证在不同种类速率的端口处所述序列化信息不出现绕回的问题。

进一步的,在对所述报文进行处理后,本发明实施例还提供一种故障定位的方法流程图,如图13所示,可以包括以下步骤:

s31、确定用于标识目标网络中在网报文的序列化信息的序列化信息空间范围。

具体的,在网络设备将确定的所述序列化信息,插入到所述在网报文中之后,所述网络设备可根据所述在网报文的数目,确定出插入所述在网报文的序列化信息的空间范围。

s32、将所述序列化信息空间范围划分为至少两个区间。

实际应用中,网络设备根据预先配置的访问控制列表(accesscontrollist,acl)规则,将插入所述在网报文的序列化信息的空间范围通过不同的掩码划分为至少两个区间。例如可按照如下所示的代码,

#

aclnumber5001

rule1permitipv4-head0x000000000x060000004

rule2permitipv4-head0x020000000x060000004

rule3permitipv4-head0x040000000x060000004

rule4permitipv4-head0x060000000x060000004

#

配置acl规则5001,指向ipv4头的紧邻第四个字节以后的字段(四个字节长度,即32比特),把该字段通过不同的掩码划分为四个区间。若插入的序列化信息为1、2、3...1000,则按照配置的acl规则5001可将该序列化信息的空间范围划分为1-250、251-500、501-750和751-1000四个区间。

s33、统计所述目标网络中在网报文的序列化信息落入所述至少两个区间中每一区间的次数,并确定统计次数相对稳定的区间。

具体的,可按照如下所示的代码,

#

interfacegigabitethernet0/0/2

portlink-typeaccess

portdefaultvlan110

traffic-statiaticinboundacl5001rule1

traffic-statiaticinboundacl5001rule2

traffic-statiaticinboundacl5001rule3

traffic-statiaticinboundacl5001rule4

ntdpenable

ndpenable

loopbackinternal

#

在端口gigabitethernet0/0/2上应用acl5001,对落入到指定字段四个区间的报文数目进行统计,其中rule1是统计进入的ipv4报文且指定字段数值在采用掩码0x06000000计算后得到的数值落在0x00000000和0x02000000,即0和33554432之间的报文数目。

其中,对报文数目的统计可体现在对序列化信息落入不同区间的次数的统计。若要统计序列化信息落入不同区间的次数,可按照上述实施例的方法将该序列化信息的空间范围划分为1-250、251-500、501-750和751-1000四个区间,为了描述方便,将1-250的区间称为第一区间,将251-500的区间称为第二区间,依次分别为第三区间和第四区间,进而分别统计目标网络中在网报文的序列化信息落入所述第一区间、第二区间、第三区间和第四区间的次数。进一步的,由于在网报文的序列化信息是单调变化的,可表明网络设备对第一区间进行统计和对第二区间进行统计的过程是交替变化的,即在目标网络中在网报文的序列化信息落入第二区间的统计次数不断发生变化的时候,落入第三区间和第四区间的统计次数也是发生变化的。当目标网络中的各个网络设备统计出落入不同区间的次数时,可根据统计结果确定出统计次数稳定的区间。本发明实施例中并不限定统计次数具体的确定方法。例如,可通过数据中心网络中对目标网络中各个网络设备具有控制管理功能的网络控制设备使能各个网络设备在各区间内进行次数统计,并采集各个区间的统计结果。

s34、分别在目标网络的不同节点上,监测在网报文的序列化信息落入统计次数相对稳定的区间的统计次数。

具体的,当确定出统计次数相对稳定的区间之后,再对目标网络中不同节点处的统计次数相对稳定的区间的统计次数进行监测。实际应用中,对不同节点的监测方法不作限定。例如,可采用如下所示的代码,

统计在指定端口的接收方向(inbound)上所接收的报文数目,即通过该统计方法可以查看接口gigabitethernet0/0/2接收的报文落入到指定四个区间的数目,可得出报文统计是可以精确到个位数的。

其中,对报文数目的统计可体现在对序列化信息落入不同区间的次数的统计。例如,若在目标网络中指定的节点上,确定出统计次数相对稳定的区间为第一区间,即可确定出落入第一区间的统计次数基本上维持在250左右,而落入第二区间的统计次数在不断发生变化,即在任意两个节点统计出的落入第二区间的次数相差较大,此时,只需要监测统计次数相对稳定的第一区间。

s35、若确定所述不同节点中存在统计次数不同的节点,则确定所述统计次数不同的节点存在网络故障。

具体的,由于插入的序列化信息的范围可表示在网报文的数目,所以当确定出统计次数相对稳定的区间之后,若目标网络未发生故障,则在不同的节点上监测相对稳定区间的统计次数是相同的,即表明在网报文未发生丢失。若确定节点中存在统计次数不同的节点,则确定所述统计次数不同的节点存在网络故障。例如,在落入第一区间的统计次数稳定的情况下,若在目标网络中的节点a处,统计出落入第一区间的次数为250,而在节点b处,统计出落入第一区间的次数为249,则表明在网报文在节点b处发生了丢包。

本发明实施例中,通过将所述序列化信息空间范围划分为至少两个区间,并统计目标网络中在网报文的序列化信息落入所述至少两个区间中每一区间的次数,确定统计次数相对稳定的区间,再在所述目标网络不同节点上,监测所述统计次数相对稳定区间的统计次数,能够清楚的实时跟踪任意报文到任意节点,即跟踪任意报文的转发轨迹,可以明确的得到任意报文的确定性转发路径,进而实现故障定位,可消除等价多路径(equal-costmulti-path,ecmp)hash转发引入的随机性对故障定位的干扰。另外,所述故障定位方法仅仅对网络边缘设备比如tor交换机或服务器上虚拟交换机有要求、对其他网络设备和服务器没有改动、成本低、可实施性好。

基于上述实施例提供的报文序列化处理方法,本发明实施例提供一种故障定位的方法,如图14所示,可以包括如下步骤:

s41、根据报文的序列化信息,对接收的在网报文进行分组,划分为不同的区间。

本发明实施例中,在目标网络的各个节点实时监控在网报文时,由于源自服务器的报文流是无穷无尽的,因此可以根据各个报文的不同序列化信息,对接收的在网报文进行分组,划分为不同的区间。例如,可按照插入报文的单调的序列化信息空间范围将在网报文划分为不同的区间,如图15所示,横坐标为网络设备接收的报文数目,纵坐标为网络设备插入的具有单调性的序列化信息。若序列化信息所占字节数为16比特,则可将数值为0-32767的序列化信息标识的报文划分为第一区间,将数值为32768-65536的序列化信息标识的报文划分为第二区间。

s42、统计目标网络中在网报文的序列化信息落入不同区间中每一区间的次数,并确定统计次数相对稳定的区间。

本发明实施例中,由于报文的序列化信息是单调变化的,表明对第一区间的报文的统计和对第二区间的报文的统计是交替变化的。当第一区间被统计的时候,第二区间的报文是不会被统计的,即第二区间的报文数目不断发生变化的时候,第一区间的报文数目是相对稳定的。

s43、监测统计次数相对稳定区间的统计次数,并定位故障点。

在实际应用中,若在网报文途径交换机s1、s2、s3,则具体的定位故障点的过程为:对目标网络中各个网络设备具有控制管理功能的网络控制设备通过频繁采集得到的信息发现第一区间的统计在变、第二区间的统计相对稳定,则通过对比s1、s2和s3上的第二区间的统计来检查是否存在丢包;等到第一区间的统计不变、第二区间的统计变化的时候就可以通过对比s1、s2和s3上的第一区间的统计来检查是否存在丢包;具体的统计结果如图16所示,可以发现第二区间发生了丢包,且发生在交换机s2的3号端口上。

基于上述实施例提供的报文处理方法,本发明实施例提供一种网络设备70,该网络设备70可以应用于数据中心网络中,图17所示为本发明实施例提供的网络设备70的结构示意图,如图17所示,网络设备70包括接收单元71和处理单元72,其中:

接收单元71,用于接收报文。

处理单元72,用于确定用于唯一标识所述接收单元71接收的报文的序列化信息;将确定的所述序列化信息,插入到所述报文中,并发送插入序列化信息后的报文;其中,所述序列化信息按照报文的接收顺序呈单调变化,且每一所述序列化信息用于唯一标识和区分一个报文。

具体的,所述处理单元72具体用于:

确定在接收所述报文之前接收的上一个报文的序列化信息;根据所述上一个报文的序列化信息以及预设的序列化信息单调变化方向,确定用于唯一标识所述报文的序列化信息。

具体的,所述处理单元72具体用于:

所述网络设备确定所述报文所属流组,并将所述报文分配到确定出的所述流组,并确定用于标识所述流组中每一流组报文的序列化信息,其中,所述流组为按照报文目的子网、报文目的地址和报文发送端口中之一或组合对接收到的多个报文所划分出的不同数据流。

具体的,所述处理单元72采用如下方式之一或组合,将所述确定的所述序列化信息插入到所述报文中:

将所述确定的所述序列化信息,插入到所述报文的ip头和tcp/udp头之间;将所述确定的所述序列化信息插入到所述报文的设定字段中。

具体的,所述处理单元72具体用于:

根据待接收的报文数目和报文收发端口支持的收发速率,确定接收所述数目报文所用的时间,并确定能够对在所述时间内接收的所述数目报文中每一报文进行标识的序列化信息空间范围;在所述序列化信息空间范围内确定唯一标识所述报文的序列化信息。

其中,本发明实施例提供的网络设备为网络边缘设备。

需要说明的是,本发明实施例中的网络设备的各个单元的功能实现以及交互方式可以进一步参照相关方法实施例的描述,在此不再赘述。

基于上述实施例提供的故障定位方法,本发明实施例提供一种网络设备80,如图18所示,该网络设备80可以应用于数据中心网络中,包括处理单元81和监测单元82,其中:

处理单元81,用于确定用于标识目标网络中在网报文的序列化信息的序列化信息空间范围,所述序列化信息空间范围内的序列化信息呈单调变化,且每一序列化信息用于唯一标识和区分一个在网报文;将所述确定的所述序列化信息空间范围划分为至少两个区间;统计所述目标网络中在网报文的序列化信息落入所述至少两个区间中每一区间的次数,并确定统计次数相对稳定的区间。

监测单元82,用于在所述目标网络不同节点上,监测所述在网报文的序列化信息落入所述统计次数相对稳定的区间的统计次数;若确定所述不同节点中存在统计次数不同的节点,则确定所述统计次数不同的节点存在网络故障。

需要说明的是,本发明实施例中的另一种网络设备的各个单元的功能实现以及交互方式可以进一步参照相关方法实施例的描述,在此不再赘述。

上述主要从各个单元之间交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,各个单元为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

图19示出了上述实施例中所涉及的网络设备100的一种可能的硬件结构示意图。

所述网络设备100包括:处理器101、以太网接口102、存储器103。可选的,网络设备100还可以包括总线104。其中,以太网接口102、处理器101和存储器103可以通过总线104相互连接;总线104可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。所述总线104可以分为地址总线、数据总线、控制总线等。为便于表示,图19中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。其中,执行本发明方案的程序代码保存在存储器103中,并由处理器101来控制执行。存储器103中存储的程序用于指令处理器101执行对接收到的报文的处理,包括:所述处理器101确定用于唯一标识所述以太网接口102接收的报文的序列化信息,并将确定的所述序列化信息,插入到所述报文中,再将插入序列化信息后的报文发送出去。处理器102还执行图2至图6以及图12中涉及所述网络设备的处理过程和/或用于本申请所描述的技术的其他过程。存储器103用于存储所述网络设备的程序代码和数据。

可以理解的是,本实施例的网络设备100可用于实现上述方法实施例中涉及的报文处理方法中相应的功能,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

本发明实施例还提供另一种网络设备200,图20所示为本发明实施例提供的另一种网络设备200的结构示意图,如图20所示,所述另一种网络设备200包括存储器201、处理器202和监测器203,执行本发明方案的程序代码保存在存储器201中,并由处理器202和监测器203来控制执行。

存储器201中存储的程序用于指令处理器202执行传送重新加密得到的数据的方法,包括:所述处理器202确定用于标识目标网络中在网报文的序列化信息的序列化信息空间范围,并将所述序列化信息空间范围划分为至少两个区间,再统计所述目标网络中在网报文的序列化信息落入所述至少两个区间中每一区间的次数,并确定统计次数相对稳定的区间。

所述监测器203,用于在所述目标网络不同节点上,监测所述统计次数相对稳定区间的统计次数;若确定所述节点中存在统计次数不同的节点,则确定所述统计次数不同的节点存在网络故障。

可以理解的是,本实施例的网络设备200可用于实现上述方法实施例中涉及的故障定位方法的功能,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(randomaccessmemoryram)、闪存、只读存储器(read-onlymemory,rom)、eprom存储器、eeprom存储器、寄存器、硬盘、移动硬盘、cd-rom或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于特定应用集成电路(application-specificintegratedcircuit,asic)中。另外,该asic可以位于用户设备中。当然,处理器和存储介质也可以作为分立组件存在于用户设备中。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

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

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