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

文档序号:17474921发布日期:2019-04-20 06:03阅读:108来源:国知局
一种数据处理的方法和装置与流程

本申请涉及计算机网络领域,具体涉及数据处理的方法和装置。



背景技术:

随着互联网应用类型的不断增加及应用形式的不断变化,层出不穷的安全威胁时刻发生在我们身边。在这种情况下,网络安全设备被大量应用于实际环境中,为了适配当前需求的变化,网络安全产品架构也发生了很大变化,从传统的单一中央多核处理器(简称cpu)处理,进化为多个cpu并行处理,极大地提高了网络安全设备转发数据的性能。其中,cpu0维护完整的连接表,用于实现策略匹配、新建连接等;数据核匹配快速连接表,用于实现报文的快速转发,快速连接表是完整连接表的一部分,由cpu0统一维护管理。

数据报文由网卡收到后,先送到数据核,查找数据核快速连接表,如果匹配,则由数据核直接快速转发;如果不匹配则继续上送至cpu0,cpu0进行整机连接表匹配。cpu0整机连接表中存在对应连接表则匹配转发,不存在则进入新建连接流程处理。

cpu0处理首包新建连接、策略匹配时间比较长,导致连接写入数据核快速连接表之前,有部分报文继续上送cpu0处理,而连接写入数据核连接表后,又存在cpu0和数据核并行处理数据的情况。由于数据核转发路径短,后收到的报文通过数据核转发可能会比稍早通过cpu0转发的报文更快的被转发出去,造成少量报文乱序。

随着高性能网络安全设备越来越普遍,应用越来越广,这种问题越来越突出,而且难以解决。这会导致对于报文乱序敏感的业务通信严重受到影响。



技术实现要素:

本申请提供一种数据处理的方法,一种数据处理的装置;以解决数据传送过程中乱序的问题。

为了解决上述技术问题,本申请实施例提供了如下的技术方案:

本申请提供了一种数据处理的方法,包括:

获取第一信息;

判断所述第一信息是否满足预设处理条件;

若是,则利用第一连接根据队列顺序发送第一队列中保存的报文,其中,所述第一连接由多核处理器的第一核建立的连接,所述第一队列为先进先出队列。

优选的,所述获取第一信息,包括:

从与所述多核处理器的第二核共享的第一存储地址中读取所述第一信息。

优选的,所述利用第一连接根据队列顺序发送第一队列中保存的报文,包括:

获取第一队列中的第一条报文;

从所述报文中提起第一特征信息;

根据队列顺序发送所述第一队列中与所述第一特征信息相关联的报文。

优选的,在所述利用第一连接根据队列顺序发送第一队列中保存的报文后,还包括:

向所述多核处理器的第一核发送的第二信息,所述第二信息满足预设处理结束条件。

本申请提供了一种数据处理的装置,包括:

第一获取单元,用于获取第一信息;

判断单元,用于判断所述第一信息是否满足预设处理条件;

第一发送单元,用于若所述判断单元的输出结果为“是”,则利用第一连接根据队列顺序发送第一队列中保存的报文,其中,所述第一连接为多核处理器的第一核建立的连接,所述第一队列为先进先出队列。

本申请提供了一种数据处理的方法,包括:

获取第一队列中的第一条报文,其中,所述第一队列为先进先出队列;

根据所述报文建立第一连接并向多核处理器的第二核发送第一信息。

优选的,所述根据所述报文建立第一连接,包括:

从所述报文中提取第一特征信息;

根据所述第一特征信息建立第一连接。

优选的,所述向多核处理器的第二核发送第一信息,包括:

将所述第一信息保存在与所述多核处理器的第二核共享的第一存储地址中。

优选的,所述方法还包括:

获取所述多核处理器的第二核发送的第二信息;

判断所述第二信息是否满足预设处理结束条件;

若是,则将与所述第一连接相关联的信息保存在连接信息数据集中。

本申请提供了一种数据处理的装置,包括:

第二获取单元,用于获取第一队列中的第一条报文,其中,所述第一队列为先进先出队列;

第二发送单元,用于根据所述报文建立第一连接并向多核处理器的第二核发送第一信息。

基于上述实施例的公开可以获知,本申请实施例具备如下的有益效果:

本申请提供了一种数据处理的方法和装置,所述方法包括:获取第一信息;判断所述第一信息是否满足预设处理条件;若是,则利用第一连接根据队列顺序发送第一队列中保存的报文,其中,所述第一连接由多核处理器的第一核建立的连接,所述第一队列为先进先出队列。本申请在多核转发架构下,解决了新建乱序的问题,保证了网关设备的转发性能不受影响。提高了网关设备在数据传送业务(比如,音视频数据传送业务、文件传送业务)运行的稳定性,保证数据报文按照顺序发送。

附图说明

图1为本申请实施例提供的一种数据处理的方法的流程图;

图2为本申请实施例提供的一种数据处理的装置的单元框图;

图3为本申请实施例提供的又一种数据处理的方法的流程图;

图4为本申请实施例提供的又一种数据处理的装置的单元框图。

具体实施方式

下面,结合附图对本申请的具体实施例进行详细的描述,但不作为本申请的限定。

应理解的是,可以对此处公开的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本申请的范围和精神内的其他修改。

包含在说明书中并构成说明书的一部分的附图示出了本申请的实施例,并且与上面给出的对本申请的大致描述以及下面给出的对实施例的详细描述一起用于解释本申请的原理。

通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本申请的这些和其它特性将会变得显而易见。

还应当理解,尽管已经参照一些具体实例对本申请进行了描述,但本领域技术人员能够确定地实现本申请的很多其它等效形式,它们具有如权利要求所述的特征并因此都位于借此所限定的保护范围内。

当结合附图时,鉴于以下详细说明,本申请的上述和其他方面、特征和优势将变得更为显而易见。

此后参照附图描述本申请的具体实施例;然而,应当理解,所公开的实施例仅仅是本申请的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本申请模糊不清。因此,本文所公开的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本申请。

本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本申请的相同或不同实施例中的一个或多个。

数据报文由网卡收到后,先送到数据核,查找数据核快速连接表,如果匹配,则由数据核直接快速转发;如果不匹配则继续上送至cpu0,cpu0进行整机连接表匹配。cpu0整机连接表中存在对应连接表则匹配转发,不存在则进入新建连接流程处理。

cpu0处理首包新建连接、策略匹配时间比较长,导致连接写入数据核快速连接表之前,有部分报文继续上送cpu0处理,而连接写入数据核连接表后,又存在cpu0和数据核并行处理数据的情况。由于数据核转发路径短,后收到的报文通过数据核转发可能会比稍早通过cpu0转发的报文更快的被转发出去,造成少量报文乱序。

乱序的具体情况描述如下:

1、数据核从网卡收到报文1后,查找数据核快速连接表,如果不能从所述快速连接表中获得链接信息,则将报文1保存在预设由cpu0处理的报文慢速队列。

2、cpu0轮询所述报文慢速队列,处理报文1,查找策略、新建连接,然后将所述新建连接的信息下发到数据核的快速连接表中。

3、当报文1还未建起连接或者下发快速连接表的情况下,数据核收到报文2和报文3,由于查找数据核快速连接表不匹配,则将所述报文2和报文3保存在所述报文慢速队列中。

4、报文1新建连接,并且下发数据核快速连接表后,此时数据核收到报文4和报文5,匹配快速连接表,可以快速转发。

由于数据核处理路径短,可能存在数据核处理报文4和报文5比cpu0处理报文2和报文3快,由此,导致到达目的端的报文顺序为报文1、报文4、报文5、报文2和报文3,造成报文乱序。

本申请提供的具体实施例就是要解决数据传送过程中乱序的问题。

本申请提供一种数据处理的方法;本申请还提供一种数据处理的装置;本申请还提供又一种数据处理的方法;本申请还提供又一种数据处理的装置。在下面的实施例中逐一进行详细说明。

对本申请提供的第一实施例,即一种数据处理的方法的实施例。

下面结合图1对本实施例进行详细说明,其中,图1为本申请实施例提供的数据处理的方法的流程图。

本实施例主要以多核架构中预设处理所述报文快速队列的cpu核作为主要实施例对象。例如,cpu1。

下述所述的多核处理器的第一核,也就是预设处理所述报文慢速队列的cpu核,例如,cpu0。

报文,是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。

报文也是网络传输的单位,传输过程中按照预设结构封装成分组、包、帧进行传输。

步骤s101,获取第一信息。

所述第一信息,是由多核架构中多核处理器中处理所述报文慢速队列的cpu核发送。例如,所述cpu0向所述cpu1发送第一信息,所述第一信息可以是消息或数据包或cpu0与cpu1共享的变量;对于共享的变量,cpu1按照预设时间间隔查询该变量。

优选的,所述获取第一信息,包括:从与所述多核处理器的第二核共享的第一存储地址中读取所述第一信息。

所述第一存储地址,可以是一个寄存器地址,也可以是一个变量的地址。例如,cpu1定时读取所述第一存储地址的信息,以获取第一信息。

步骤s102,判断所述第一信息是否满足预设处理条件。

所述预设处理条件,也就是由处理所述报文快速队列的核处理所述报文慢速队列的条件。

例如,在现有技术中,通常由cpu0处理所述报文慢速队列,cpu1处理所述报文快速队列。当cpu1接收到的报文无法从快速连接表中获得相应的连接信息,则将该报文放在慢速队列,由cpu0处理该报文,从而可能引发乱序。

本实施例,为了防止多核处理给报文传输带来的混乱,当出现上述情况时,仅由一个多核处理器的核发送相应的报文,当处理结束后,在转换到多核处理,以避免报文传输混乱。

所述第一信息作为一个标志信息,所述预设处理条件也就是一个判断标志信息的条件。例如,预设处理条件:当保存在所述第一存储地址中的信息为1时,表示由cpu1处理所述报文慢速队列;预设非处理条件:当保存在所述第一存储地址中的信息为0,表示由cpu0处理所述报文慢速队列。

步骤s103,若是,则利用第一连接根据队列顺序发送第一队列中保存的报文,其中,所述第一连接由多核处理器的第一核建立的连接,所述第一队列为先进先出队列。

所述多核处理器,指在一枚处理器中集成两个或多个完整的计算引擎(内核),此时处理器能支持系统总线上的多个处理器,由总线控制器提供所有总线控制信号和命令信号。例如,所述多核处理器的第一核为cpu0;所述第一连接由多核处理器的第一核建立的连接,cpu0建立连接后,就停止处理所述报文慢速队列。

报文发送端与目标端初次建立连接需要耗费很长时间,为了节省后续连接的时间,通常的处理方法是将初次建立的连接保存在内存中,这样可以减少每次连接所耗费的时间。

队列,是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

所述第一队列采用先进先出的方式,可以保证报文按照先到先发的顺序传送,避免乱序的发生。

所述第一队列,也就是前面所述的所述报文慢速队列。

所述队列顺序,也就是先进先出的顺序。

所述利用第一连接根据队列顺序发送第一队列中保存的报文,包括:

步骤s103-1,获取第一队列中的第一条报文。

步骤s103-2,从所述报文中提起第一特征信息。

同一数据源发送的一条数据通常具有相同的特征信息。所述特征信息,也就是网络信息五元组,包括:源地址信息、目的地址信息、协议信息、源端口信息和目的端口信息。网络设备通过所述特征信息区分报文。

所述第一特征信息也包括网络信息五元组。

所述从所述报文中提起第一特征信息,也就是从第一队列中的第一条报文中提起网络信息五元组。

步骤s103-3,根据队列顺序发送所述第一队列中与所述第一特征信息相关联的报文。

在所述利用第一连接根据队列顺序发送第一队列中保存的报文后,还包括:

向所述多核处理器的第一核发送的第二信息,所述第二信息满足预设处理结束条件。

也就是向所述多核处理器的第一核(比如,cpu0)发送所述报文慢速队列中的报文处理结束。以便所述第一核将建立的第一连接保存到连接信息数据集(比如,快速连接表)中。

优选的,所述第二信息,是保存在与所述多核处理器的第一核共享的存储地址中的信息。

同时,将保存在所述第一存储地址中的信息变更为符合预设非处理条件。

例如,预设处理条件:当保存在所述第一存储地址中的信息为1时,表示由cpu1处理所述报文慢速队列;预设非处理条件:当保存在所述第一存储地址中的信息为0时,表示由cpu0处理所述报文慢速队列。

优选的,所述第二信息是保存在所述第一存储地址中的信息。也就是所述第一信息和所述第二信息均保存在所述第一存储地址中。例如,当所述第一存储地址保存的值为1时,表示由所述多核处理器中预设处理所述报文快速队列的cpu核处理所述报文慢速队列中的报文;当所述第一存储地址保存的值为0时,表示由所述多核处理器中预设处理所述报文慢速队列的cpu核处理所述报文慢速队列中的报文。

在上述处理过程中,所述预设处理所述报文快速队列的cpu核(比如,cpu1)并行处理所述报文快速队列。

本实施例在多核转发架构下,解决了新建乱序的问题,保证了网关设备的转发性能不受影响。提高了网关设备在数据传送业务(比如,音视频数据传送业务、文件传送业务)运行的稳定性,保证数据报文按照顺序发送。

与本申请提供的第一实施例相对应,本申请还提供了第二实施例,即一种数据处理的装置。由于第二实施例基本相似于第一实施例,所以描述得比较简单,相关的部分请参见第一实施例的对应说明即可。下述描述的装置实施例仅仅是示意性的。

图2示出了本申请提供的一种数据处理的装置的实施例。图2为本申请实施例提供的一种数据处理的装置的单元框图。

本实施例主要以多核架构中预设处理所述报文快速队列的cpu核作为主要实施例对象。例如,cpu1。

下述所述的多核处理器的第一核,也就是预设处理所述报文慢速队列的cpu核,例如,cpu0。

请参见2所示,本申请提供一种数据处理的装置,包括:第一获取单元201,判断单元202,第一发送单元203。

第一获取单元201,用于获取第一信息;

判断单元202,用于判断所述第一信息是否满足预设处理条件;

第一发送单元203,用于若所述判断单元的输出结果为“是”,则利用第一连接根据队列顺序发送第一队列中保存的报文,其中,所述第一连接为多核处理器的第一核建立的连接,所述第一队列为先进先出队列。

在所述第一获取单元201中,包括:

第一获取子单元,用于从与所述多核处理器的第二核共享第一存储地址中读取所述第一信息。

在所述第一发送单元203中,包括:

获取第一条报文子单元,用于获取第一队列中的第一条报文。

提起特征信息子单元,用于从所述报文中提起第一特征信息。

发送子单元,用于根据队列顺序发送所述第一队列中与所述第一特征信息相关联的报文。

在所述第一发送单元203后,还包括:

发送第二信息单元,用于向所述多核处理器的第一核发送的第二信息,所述第二信息满足预设处理结束条件。

本实施例在多核转发架构下,解决了新建乱序的问题,保证了网关设备的转发性能不受影响。提高了网关设备在数据传送业务(比如,音视频数据传送业务、文件传送业务)运行的稳定性,保证数据报文按照顺序发送。

与本申请提供的第一实施例相对应,本申请还提供了第三实施例,即一种一种数据处理的方法。由于第三实施例基本相似于第一实施例,所以描述得比较简单,相关的部分请参见第一实施例的对应说明即可。下述描述的装置实施例仅仅是示意性的。

图3示出了本申请提供的一种数据处理的方法的实施例。图3为本申请实施例提供的又一种数据处理的方法的流程图。

本实施例主要以多核架构中预设处理所述报文慢速队列的cpu核作为主要实施例对象。例如,cpu0。

下述所述的多核处理器的第二核,也就是预设处理所述报文快速队列的cpu核,例如,cpu1。

请参见3所示,本实施例提供一种数据处理的方法。

步骤s301,获取第一队列中的第一条报文,其中,所述第一队列为先进先出队列。

步骤s302,根据所述报文建立第一连接并向多核处理器的第二核发送第一信息。

所述第一信息可以是消息或数据包或多核架构处理器多核共享的变量。例如,对于共享的变量,cpu1按照预设时间间隔查询该变量。

优选的,所述向多核处理器的第一核发送第一信息,包括:

将所述第一信息保存在与所述多核处理器的第二核共享的第一存储地址中。

所述根据所述报文建立第一连接,包括:

步骤s302-1,从所述报文中提取第一特征信息。

同一数据源发送的一条数据通常具有相同的特征信息。所述特征信息,也就是网络信息五元组,包括:源地址信息、目的地址信息、协议信息、源端口信息和目的端口信息。网络设备通过所述特征信息区分报文。

所述第一特征信息也包括网络信息五元组。

所述从所述报文中提起第一特征信息,也就是从第一队列中的第一条报文中提起网络信息五元组。

步骤s302-2,根据所述第一特征信息建立第一连接。

报文发送端与目标端初次建立连接需要耗费很长时间,为了节省后续连接的时间,通常的处理方法是将初次建立的连接保存在内存中,这样可以减少每次连接所耗费的时间。

所述建立第一连接,就是在内存中保存与目标端相关联的信息,其中,包括路由信息。以便向目标端再次发送报文时,通过已经建立起来的连接信息,可以直接到达目标端。

进一步的,所述根据所述第一特征信息建立第一连接,包括以下步骤:

步骤s302-2-1,向与所述第一特征信息相关联的目标端发送建立连接的请求信息。

所述目标端,也就是最终接收报文的目的地。

所述第一特征信息相关联的目标端,也就是第一特征信息的五元组中目的地址信息和目的端口信息记载的目的地。

所述请求信息,是通讯信息传送中发送端向目标端发送的一种信息。通常,请求信息中包含请求的特定信息。例如,所述建立连接的请求信息中包括特定信息为1;目标端接收到该请求信息后,便可知道发送端的请求信息为建立连接;如果目标端同意建立连接,则向发送端发送返回信息,该返回信息中包括特定信息为2,表示同意建立连接。

步骤s302-2-2,获取与所述请求信息相关联的返回信息。

步骤s302-2-3,判断所述返回信息是否满足预设连接条件。

步骤s302-2-4,若是,则与所述目标端建立第一连接。

在建立第一连接后,所述多核架构中预设处理所述报文慢速队列的cpu核将处于等待状态。

当所述多核架构中预设处理所述报文快速队列的cpu核(比如,cpu1)处理完所述报文慢速队列中的报文后,向所述多核架构中预设处理所述报文慢速队列的cpu核(比如,cpu0)发送一处理结束的信息。

本实施例所述方法还包括:

步骤s303,获取所述多核处理器的第二核发送的第二信息。

优选的,所述第二信息,是保存在与所述多核处理器的第一核共享的存储地址中的信息。

同时,将保存在所述第一存储地址中的信息变更为符合预设非处理条件。

例如,预设处理条件:当保存在所述第一存储地址中的信息为1时,表示由cpu1处理所述报文慢速队列;预设非处理条件:当保存在所述第一存储地址中的信息为0时,表示由cpu0处理所述报文慢速队列。

优选的,所述第二信息是保存在所述第一存储地址中的信息。也就是所述第一信息和所述第二信息均保存在所述第一存储地址中。例如,当所述第一存储地址保存的值为1时,表示由所述多核处理器中预设处理所述报文快速队列的cpu核处理所述报文慢速队列中的报文;当所述第一存储地址保存的值为0时,表示由所述多核处理器中预设处理所述报文慢速队列的cpu核处理所述报文慢速队列中的报文。

所述多核处理器的第二核,也就是所述多核架构中预设处理所述报文快速队列的cpu核,例如,cpu1。

步骤s304,判断所述第二信息是否满足预设处理结束条件。

步骤s305,若是,则将与所述第一连接相关联的信息保存在连接信息数据集中。

所述连接信息数据集,保存着所有已建立的连接信息。例如,快速连接表。

所述数据集,可以是数据库文件、注册表文件、配置文件或文本文件。

当使用时,将连接信息数据集中的连接信息保存在内存中,获取报文后,将所述报文与内存中的连接信息匹配,这样可减少建立连接所耗费的时间。

本实施例在多核转发架构下,解决了新建乱序的问题,保证了网关设备的转发性能不受影响。提高了网关设备在数据传送业务(比如,音视频数据传送业务、文件传送业务)运行的稳定性,保证数据报文按照顺序发送。

与本申请提供的第三实施例相对应,本申请还提供了第四实施例,即一种数据处理的装置。由于第四实施例基本相似于第三实施例,所以描述得比较简单,相关的部分请参见第三实施例的对应说明即可。下述描述的装置实施例仅仅是示意性的。

图4示出了本申请提供的一种数据处理的装置的实施例。图4为本申请实施例提供的又一种数据处理的装置的单元框图。

本实施例主要以多核架构中预设处理所述报文慢速队列的cpu核作为主要实施例对象。例如,cpu0。

下述所述的多核处理器的第二核,也就是预设处理所述报文快速队列的cpu核,例如,cpu1。

请参见4所示,本实施例提供一种数据处理的装置,包括:第二获取单元401,第二发送单元402。

第二获取单元401,用于获取第一队列中的第一条报文,其中,所述第一队列为先进先出队列。

第二发送单元402,用于根据所述报文建立第一连接并向多核处理器的第二核发送第一信息。

在所述第二发送单元402中,包括:

提取特征信息子单元,用于从所述报文中提取第一特征信息。

建立连接子单元,用于根据所述第一特征信息建立第一连接。

在所述建立连接子单元中,包括:

请求子单元,用于向与所述第一特征信息相关联的目标端发送建立连接的请求信息。

获取返回信息子单元,用于获取与所述请求信息相关联的返回信息。

判断返回信息子单元,用于判断所述返回信息是否满足预设连接条件。

建立第一连接子单元,用于若所述判断返回信息的输出结果为“是”,则与所述目标端建立第一连接。

在所述第二发送单元402中,还包括:

保存子单元,用于将所述第一信息保存在与所述多核处理器的第二核共享的第一存储地址中。

所述装置还包括:

获取第二信息单元,用于获取所述多核处理器的第二核发送的第二信息。

判断第二信息单元,用于判断所述第二信息是否满足预设处理结束条件。

保存连接信息单元,用于若所述判断第二信息单元的输出结果为“是”,则将与所述第一连接相关联的信息保存在连接信息数据集中。

本实施例在多核转发架构下,解决了新建乱序的问题,保证了网关设备的转发性能不受影响。提高了网关设备在数据传送业务(比如,音视频数据传送业务、文件传送业务)运行的稳定性,保证数据报文按照顺序发送。

以上实施例仅为本申请的示例性实施例,不用于限制本申请,本申请的保护范围由权利要求书限定。本领域技术人员可以在本申请的实质和保护范围内,对本申请做出各种修改或等同替换,这种修改或等同替换也应视为落在本申请的保护范围内。

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