一种数据帧的处理方法及装置与流程

文档序号:11878132阅读:512来源:国知局
一种数据帧的处理方法及装置与流程

本申请涉及网络通信技术领域,尤其涉及一种数据帧的处理方法及装置。



背景技术:

在实际的网络环境中,网络设备上运行的服务可能需要通过创建相应的嗅探器来监听接口上流经的数据帧。

现有技术中,网络设备创建的所有嗅探器都配置在同一链表中,由于监听同一接口的嗅探器可能不止一个,所以网络设备需要遍历整条链表来查找出所有监听该接口的嗅探器,以将数据帧的副本送至所有监听该接口的嗅探器。

然而,当网络设备创建的嗅探器的数量较多时,嗅探器链表上配置了大量的嗅探器,导致在遍历嗅探器链表查找对应的嗅探器时,占用该网络设备大量的处理资源,降低了该网络设备的性能。



技术实现要素:

有鉴于此,本申请提供一种数据帧的处理方法及装置,可以解决当网络设备创建的嗅探器的数量较多时,嗅探器链表上配置了大量的嗅探器,导致在遍历嗅探器链表查找对应的嗅探器时,占用该网络设备大量的处理资源,降低了该网络设备的性能的问题。

为实现上述目的,本申请提供技术方案如下:

根据本申请的第一方面,提出了一种数据帧的处理方法,应用于网络设备,所述网络设备维护了若干条链表,每一链表中包含若干用于监听所述网络设备上同一类型的接口的嗅探器;所述方法包括:

通过所述网络设备的接口接收数据帧;

在所述若干条链表中,确定与所述接口对应的链表;

通过遍历所述接口对应的链表,查找出与所述接口对应的嗅探器,以将所述数据帧的副本送至所述接口对应的嗅探器。

根据本申请的第二方面,提出了一种数据帧的处理装置,应用于网络设备,所述网络设备维护了若干条链表,每一链表中包含若干用于监听所述网络设备上同一类型的接口的嗅探器;所述装置包括:

接收单元,通过所述网络设备的接口接收数据帧;

确定单元,在所述若干条链表中,确定与所述接口对应的链表;

查找单元,通过遍历所述接口对应的链表,查找出与所述接口对应的嗅探器,以将所述数据帧的副本送至所述接口对应的嗅探器。

由以上技术方案可见,本申请根据嗅探器监听的接口的类型,对网络设备创建的嗅探器进行分类,并按照分类的结果,将嗅探器配置到对应的链表上。当网络设备需要查找出所有与该接口对应的嗅探器时,只需要遍历与该接口的类型对应的链表即可,而不需要再去遍历其他的链表,从而大大减少了该网络设备遍历链表中的嗅探器的数量,这就极大提高了网络设备查找对应的嗅探器的效率,节省了网络设备的处理资源,进一步提高了网络设备的性能。

附图说明

图1是相关技术中嗅探器链表的结构示意图。

图2是相关技术中网络设备将数据帧的副本送至所有对应的嗅探器的过程的流程图。

图3是本申请一示例性实施例提供的一种数据帧的处理方法的流程图。

图4是本申请一示例性实施例提供的嗅探器链表的结构示意图。

图5是本申请一示例性实施例提供的网络设备将数据帧的副本送至所有对应的嗅探器的过程的流程图。

图6是本申请一示例性实施例提供的一种电子设备的结构示意图。

图7是本申请一示例性实施例提供的一种数据帧的处理装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

图1是相关技术中嗅探器链表的结构示意图。如图1所示,假定网络设备先后共创建了6个嗅探器,并配置在嗅探器链表中。其中,嗅探器1和嗅探器2监听所有接口的数据帧,嗅探器3监听二层接口port2-1的数据帧,嗅探器4监听二层接口port2-2的数据帧,嗅探器5和嗅探器6都监听三层接口port3-1的数据帧。

当网络设备的某个接口接收到一数据帧时,先进入二层业务处理流程,将该接口作为二层接口,该网络设备为了监听流经该二层接口的数据帧,会遍历嗅探器链表,查找出所有与该二层接口对应的嗅探器(即监听该二层接口的嗅探器),并将该数据帧的副本送至所有与该二层接口对应的嗅探器。请参见图2,将数据帧的副本送至所有对应的嗅探器的过程可以包括以下步骤:

步骤201,遍历嗅探器链表。

步骤202,判断是否为对应的嗅探器,若为对应的嗅探器则转入步骤203,否则转入步骤201。

其中,若嗅探器链表中的任一嗅探器为监听该二层接口的嗅探器,或者该任一嗅探器为监听所有接口的嗅探器,则判定为对应的嗅探器。

步骤203,将该数据帧的副本送至对应的嗅探器。

举例而言,假定在二层业务处理流程中,该二层接口为port2-1,该网络设备遍历嗅探器链表,将二层接口port2-1的标识,与嗅探器链表中每一嗅探器监听的接口的标识逐个进行比较,以判断是否将该数据帧的副本送至嗅探器链表中当前进行比较的嗅探器,若当前进行比较的嗅探器监听的接口的标识与二层接口port2-1的标识相同,或者当前进行比较的嗅探器监听所有的接口,则判定需要将该数据帧的副本送至当前进行比较的嗅探器,即最终确定需要将该数据帧的副本分别送至嗅探器1、嗅探器2与嗅探器3。

当该数据帧的目的设备为该网络设备时,再进入三层业务处理流程,将该接口作为三层接口,此时网络设备为了监听流经该三层接口的数据帧,会再次遍历嗅探器链表,查找出所有与该三层接口对应的嗅探器(即监听该三层接口的嗅探器),并将该数据帧的副本送至所有与该三层接口对应的嗅探器。其将数据帧的副本送至所有对应的嗅探器的过程与上述图2中的步骤类似。

举例而言,假定在三层业务处理流程中,该三层接口为port3-1,此时该网络设备会再次遍历嗅探器链表,将三层接口port3-1的标识,与嗅探器链表中每一嗅探器监听的接口的标识逐个进行比较,以判断是否将该数据帧的副本送至嗅探器链表中当前进行比较的嗅探器,若当前进行比较的嗅探器监听的接口的标识与三层接口port3-1的标识相同,或者当前进行比较的嗅探器监听所有的接口,则判定需要将该数据帧的副本送至当前进行比较的嗅探器,即最终确定需要将该数据帧的副本分别送至嗅探器1、嗅探器2、嗅探器5和嗅探器6。

可见,在相关技术中,为了将数据帧的副本送至对应的嗅探器,网络设备需要遍历整条嗅探器链表,而所有的嗅探器都配置在同一嗅探器链表中,当网络设备需要查找出所有与某二层接口对应的嗅探器(即监听该二层接口的嗅探器)时,嗅探器链表中所有监听的接口为三层接口的嗅探器就会降低网络设备查找对应嗅探器的效率;当网络设备需要查找出所有与某三层接口对应的嗅探器(即监听该三层接口的嗅探器)时,嗅探器链表中所有监听的接口为二层接口的嗅探器就会降低网络设备查找对应嗅探器的效率。同时,当网络设备创建的嗅探器的数量较大时,遍历整条链表将占用该网络设备大量的处理资源,影响该网络设备的性能。

图3是本申请一示例性实施例示出的一种数据帧的处理方法的流程图,如图3所示,该方法应用于网络设备,所述网络设备维护了若干条链表,每一链表中包含若干用于监听所述网络设备上同一类型的接口的嗅探器;该方法可以包括以下步骤:

步骤301,通过所述网络设备的接口接收数据帧。

步骤302,在所述若干条链表中,确定与所述接口对应的链表。

步骤303,通过遍历所述接口对应的链表,查找出与所述接口对应的嗅探器,以将所述数据帧的副本送至所述接口对应的嗅探器。

在本实施例中,所述若干条链表包含第一链表,所述第一链表中包含若干用于监听特定的二层接口的第一嗅探器;因此,当所述网络设备通过所述接口接收到数据帧时,将所述接口作为二层接口,并通过遍历所述第一链表,查找出监听所述二层接口的嗅探器,以将所述数据帧的副本送至查找到的嗅探器。

在本实施例中,所述若干条链表包含第二链表,所述第二链表中包含若干用于监听特定的三层接口的第二嗅探器;因此,当所述数据帧的目的设备为所述网络设备时,所述网络设备将所述接口作为三层接口,通过遍历所述第二链表,查找出监听所述三层接口的嗅探器,以将所述数据帧的副本送至查找到的嗅探器;

当所述数据帧的目的设备非所述网络设备时,直接转发所述数据帧。

在本实施例中,所述若干条链表包含第三链表,所述第三链表中包含若干用于监听所有接口的第三嗅探器,因此,当所述网络设备将所述接口作为二层接口,以及当所述网络设备将所述接口作为三层接口时,所述网络设备都需要遍历所述第三链表,以将所述数据帧的副本送至所述第三链表中所有的第三嗅探器。

由以上技术方案可见,本申请根据嗅探器监听的接口的类型,对网络设备创建的嗅探器进行分类,并按照分类的结果,将嗅探器配置到对应的链表上。当网络设备需要查找出所有与该接口对应的嗅探器时,只需要遍历与该接口的类型对应的链表即可,而不需要再去遍历其他的链表,从而大大减少了该网络设备遍历链表中的嗅探器的数量,这就极大提高了网络设备查找对应的嗅探器的效率,节省了网络设备的处理资源,进一步提高了网络设备的性能。

为了便于理解,下面结合图4-5对本申请的技术方案进行详细说明。

图4是本申请一示例性实施例的嗅探器链表的结构示意图。如图4所示,当网络设备创建嗅探器时,按照嗅探器监听的接口的类型,将嗅探器分为三类:L2嗅探器(监听特定的二层接口)、L3嗅探器(监听特定的三层接口)以及A嗅探器(监听所有的接口),并将创建的所有L2嗅探器配置在第一链表中,将创建的所有L3嗅探器配置在第二链表中,将创建的所有A嗅探器配置在第三链表中。假定第一链表中包含L2嗅探器1~L2嗅探器5,第二链表中包含L3嗅探器1~L3嗅探器5,第三链表中包含A嗅探器1~A嗅探器5。

当网络设备的某一接口接收到一数据帧时,先进入二层业务处理流程,将该接口作为二层接口,此时该网络设备可以通过遍历第一链表,来查找出所有与该二层接口对应的L2嗅探器(即监听该二层接口的L2嗅探器),并将该数据帧的副本送至所有与该二层接口对应的L2嗅探器。

在本实施例中,由于网络设备中所有的L2嗅探器都配置在第一链表中,所以该网络设备只需要遍历第一链表,查找出第一链表中所有对应的L2嗅探器,而不需要再去遍历第二链表(因为第二链表中的所有嗅探器监听的接口皆为三层接口),即可查找出网络设备中所有对应的L2嗅探器,这就极大提高了网络设备查找对应的嗅探器的效率,从而节省了网络设备的处理资源,进一步提高了网络设备的性能。

同时,由于第三链表中的嗅探器全部为A嗅探器(监听所有的接口),所以网络设备需要将数据帧的副本上送至配置在第三链表中所有的嗅探器。相比于上述相关技术中的技术方案,本申请通过将监听所有接口的A嗅探器都配置在第三链表中,从而使得网络设备可以直接将数据帧的副本上送至第三链表中所有的嗅探器,而不需要网络设备通过遍历第三链表来查找对应的嗅探器。这就提高了网络设备查找对应的嗅探器的效率,从而节省了网络设备的处理资源,进一步提高了网络设备的性能。

当该数据帧的目的设备为该网络设备时,再进入三层业务处理流程,将该接口作为三层接口,此时网络设备可以通过遍历第二链表,来查找出所有与该三层接口对应的L3嗅探器(即监听该三层接口的L3嗅探器),并将该数据帧的副本送至所有与该三层接口对应的L3嗅探器。

在本实施例中,由于网络设备中所有的L3嗅探器都配置在第二链表中,所以该网络设备只需要遍历第二链表,查找出第二链表中所有对应的L3嗅探器,而不需要再去遍历第一链表(因为第一链表中的所有嗅探器监听的接口皆为二层接口),即可查找出网络设备中所有对应的L3嗅探器,这就极大提高了网络设备查找对应的嗅探器的效率,从而节省了网络设备的处理资源,进一步提高了网络设备的性能。

同时,由于第三链表中的嗅探器全部为A嗅探器(监听所有的接口),所以网络设备需要将数据帧的副本上送至配置在第三链表中所有的嗅探器。

当该数据帧的目的设备非该网络设备时,直接转发该数据帧,不再进入三层业务处理流程。

请参见图5,网络设备将数据帧的副本送至所有对应的嗅探器的过程可以包括以下步骤:

步骤501,网络设备通过某一接口接收数据帧。

在本实施例中,当网络设备的某一接口接收到一数据帧时,先进入二层业务处理流程,将该接口作为二层接口,假定该二层接口为port2-3。

步骤502A,遍历第一链表。

在本实施例中,该网络设备遍历第一链表,将二层接口port2-3的标识,与第一链表中每一L2嗅探器监听的接口的标识逐个进行比较,以判断是否将该数据帧的副本送至第一链表中当前进行比较的L2嗅探器。

步骤502B,将数据帧的副本上送至配置在第三链表中所有的A嗅探器。

在本实施例中,由于第三链表中的嗅探器全部为A嗅探器(监听所有的接口),即第三链表中的嗅探器全部为对应的嗅探器,所以该网络设备直接将该数据帧的副本送至第三链表中所有的A嗅探器,即送至A嗅探器1~A嗅探器5。

步骤503,判断是否为对应的L2嗅探器,若为对应的L2嗅探器则转入步骤504,否则转入步骤502A。

在本实施例中,若当前进行比较的L2嗅探器监听的接口的标识与二层接口port2-3的标识相同,则判定需要将该数据帧的副本送至当前进行比较的L2嗅探器,假定L2嗅探器2和L2嗅探器5监听的二层接口为port2-3,那么,最终确定需要将该数据帧的副本分别送至L2嗅探器2和L2嗅探器5。

步骤504,将该数据帧的副本送至对应的L2嗅探器。

步骤505,判断该数据帧的目的设备是否为本设备,若该数据帧的目的设备是本设备,分别转入步骤507A和步骤507B,否则转入步骤506。

步骤506,网络设备直接转发该数据帧。

在本实施例中,当该数据帧的目的设备非该网络设备时,直接转发该数据帧,不再进入三层业务处理流程。

步骤507A,遍历第二链表。

在本实施例中,当该数据帧的目的设备为该网络设备时,再进入三层业务处理流程,将该接口作为三层接口,假定在三层业务处理流程中,该三层接口为port3-3,该网络设备遍历第二链表,将三层接口port3-3的标识,与第二链表中每一L3嗅探器监听的接口的标识逐个进行比较,以判断是否将该数据帧的副本送至第二链表中当前进行比较的L3嗅探器。

步骤507B,将数据帧的副本上送至配置在第三链表中所有的A嗅探器。

在本实施例中,由于第三链表中的嗅探器全部为A嗅探器(监听所有的接口),即第三链表中的嗅探器全部为对应的嗅探器,所以该网络设备直接将数据帧的副本送至第三链表中所有的A嗅探器,即送至A嗅探器1~A嗅探器5。

步骤508,判断是否为对应的L3嗅探器,若为对应的L3嗅探器则转入步骤509,否则转入步骤507A。

在本实施例中,若当前进行比较的L3嗅探器监听的接口的标识与三层接口port3-3的标识相同,则判定需要将该数据帧的副本送至当前进行比较的L3嗅探器,假定L3嗅探器1、L3嗅探器3以及L3嗅探器4监听的三层接口为三层接口port3-3,那么,最终确定需要将该数据帧的副本分别送至L3嗅探器1、L3嗅探器3以及L3嗅探器4。

步骤509,将该数据帧的副本送至对应的L3嗅探器。

图6示出了根据本申请的一示例性实施例的电子设备的示意结构图。请参考图6,在硬件层面,该电子设备包括处理器602、内部总线604、网络接口606、内存608以及非易失性存储器610,当然还可能包括其他业务所需要的硬件。处理器602从非易失性存储器610中读取对应的计算机程序到内存602中然后运行,在逻辑层面上形成数据帧的处理装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

请参考图7,在软件实施方式中,该数据帧的处理装置可以包括接收单元701、确定单元702、查找单元703和转发单元704。其中:

接收单元701,通过所述网络设备的接口接收数据帧;

确定单元702,在所述若干条链表中,确定与所述接口对应的链表;

查找单元703,通过遍历所述接口对应的链表,查找出与所述接口对应的嗅探器,以将所述数据帧的副本送至所述接口对应的嗅探器。

可选的,所述若干条链表包含第一链表,所述第一链表中包含若干用于监听特定的二层接口的第一嗅探器;所述查找单元703具体用于:

将所述接口作为二层接口,并通过遍历所述第一链表,查找出监听所述二层接口的嗅探器,以将所述数据帧的副本送至查找到的嗅探器。

可选的,所述若干条链表包含第二链表,所述第二链表中包含若干用于监听特定的三层接口的第二嗅探器;所述查找单元703具体用于:

当所述数据帧的目的设备为所述网络设备时,所述网络设备将所述接口作为三层接口;

通过遍历所述第二链表,查找出监听所述三层接口的嗅探器,以将所述数据帧的副本送至查找到的嗅探器。

可选的,还包括:

转发单元704,当所述数据帧的目的设备非所述网络设备时,直接转发所述数据帧。

可选的,所述若干条链表包含第三链表,所述第三链表中包含若干用于监听所有接口的第三嗅探器,所述查找单元703具体用于:

遍历所述第三链表,以将所述数据帧的副本送至所述第三链表中所有的第三嗅探器。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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