报文的处理方法、装置、设备及可读存储介质与流程

文档序号:17125632发布日期:2019-03-16 00:23阅读:215来源:国知局
报文的处理方法、装置、设备及可读存储介质与流程

本申请涉及通讯技术领域,特别涉及一种报文的处理方法、装置、设备及可读存储介质。



背景技术:

为了提高网络设备对报文的转发效率,通常通过快速转发功能来满足人们在短时间内快速转发报文的需求。快速转发技术的核心在于通过一次性完成选路及业务处理,减少网络设备内部任务间切换和报文缓存管理等引起的资源消耗,从而缩短报文转发的时间,提高报文转发效率。

相关技术中,快速转发主要是通过会话表项得到快速转发表项,当会话表项处于稳定状态时,利用可用的快速转发表项中记录的业务标记完成业务处理,将报文转发出去;当会话表项处于非稳定状态时,需要将报文转入全流程处理,在全流程中对报文进行状态检测,最后对报文进行业务处理。

当大量异常报文进入网络设备时,由于快速转发过程不支持状态检测,会使异常报文全部进入全流程处理,造成网络设备cpu资源被大量异常报文占用,网络设备转发处理正常报文的时间延迟增大,进而影响网络设备对报文的转发效率。



技术实现要素:

有鉴于此,本申请提供一种报文的处理方法、装置、设备及可读存储介质,用以解决现有技术中网络设备转发报文的时间延迟大,报文转发效率低的问题。

具体地,本申请是通过如下技术方案实现的:

第一方面,提供了一种报文的处理方法,所述方法包括:

接收报文;

判断本地是否已记录了与所述报文匹配的快速转发表项;

当本地记录了所述快速转发表项时,所述快速转发表项中包含会话信息,则确定所述会话信息对应的会话是否满足从当前状态切换至所述报文匹配的会话状态的条件;

如果是,则转发所述报文。

第二方面,提供了一种报文的处理装置,所述装置包括:

接收单元,用于接收报文;

第一判断单元,用于判断本地是否已记录了与所述报文匹配的快速转发表项;

第二判断单元,用于当本地记录了所述快速转发表项时,所述快速转发表项中包含会话信息,则确定所述会话信息对应的会话是否满足从当前状态切换至所述报文匹配的会话状态的条件;

第一执行单元,用于如果所述会话信息对应的会话满足从当前状态切换至所述报文匹配的会话状态的条件,则转发所述报文。

第三方面,提供了一种报文处理设备,所述设备包括:内部总线,以及通过内部总线连接的存储器、处理器和外部接口;其中,

所述存储器,用于存储报文处理对应的机器可读指令;

所述处理器,用于读取所述存储器上的所述机器可读指令,并执行所述指令以实现如下操作:

接收报文;

判断本地是否已记录了与所述报文匹配的快速转发表项;

当本地记录了所述快速转发表项时,所述快速转发表项中包含会话信息,则确定所述会话信息对应的会话是否满足从当前状态切换至所述报文匹配的会话状态的条件;

如果是,则转发所述报文。

第四方面,提供了一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时进行如下处理:

接收报文;

判断本地是否已记录了与所述报文匹配的快速转发表项;

当本地记录了所述快速转发表项时,所述快速转发表项中包含会话信息,则确定所述会话信息对应的会话是否满足从当前状态切换至所述报文匹配的会话状态的条件;

如果是,则转发所述报文。

由以上技术方案可知,本申请实施例中,通过接收报文,判断本地是否已记录了与所述报文匹配的快速转发表项,当本地记录了所述快速转发表项(快速转发表项中包含会话信息)时,则确定所述会话信息对应的会话是否满足从当前状态切换至所述报文匹配的会话状态的条件,如果是,则转发所述报文。本申请通过在快速转发流程上增加状态检测功能,减少状态检测不通过的报文进入全流程处理,节省cpu资源的占用,进而减小快速转发过程中报文转发时间的延时,提高网络设备对报文转发的效率。

附图说明

图1是本申请报文的处理方法的一个实施例流程图;

图2是本申请报文的处理方法的另一个实施例流程图;

图3是本申请报文的处理装置的一个实施例框图;

图4是本申请网络设备的一种硬件结构示意图。

具体实施方式

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

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

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

为了使本技术领域的人员更好的理解本申请实施例中的技术方案,下面结合附图对本申请实施例中的技术方案作进一步详细的说明。

参见图1,图1为本申请报文的处理方法的一个实施例流程图,该实施例可以包括以下步骤:

步骤101,接收报文。

在一种可选的实现方式中,当网络设备接收到报文时,根据接收到的报文,解析出报文的信息,所述信息可以包括mac地址、ip地址、协议号和端口信息、以及报文的四层头部与报文状态相关的信息,如tcp协议报文的flag,icmp协议报文的type等信息,所述解析出的报文信息可以用于在后续转发流程中查询快速转发表项。

步骤102,判断本地是否已记录了与所述报文匹配的快速转发表项。

在一种可选的实现方式中,根据解析出的报文的信息,可以查询在本地是否已经存在与所述报文匹配的快速转发表项,若查询结果为是,则执行步骤103;若查询结果为否,则可以根据解析出的报文信息,判断网络设备接收的报文能否转入全流程处理。若不能转入全流程处理,则可以对所述报文直接丢包;若能转入全流程处理,则可以将所述报文送入对应的cpu队列进行全流程处理。

步骤103,当本地记录了所述快速转发表项时,所述快速转发表项中包含会话信息,则确定所述会话信息对应的会话是否满足从当前状态切换至所述报文匹配的会话状态的条件。

在一种可选的实现方式中,当本地记录了所述快速转发表项时,所述的快速转发表项中可以包含会话的相关信息,可以根据所述报文匹配的会话状态确定所述会话信息对应的会话是否满足从当前状态切换至所述报文匹配的会话状态的条件。

步骤104,如果是,则转发所述报文。

如果所述会话信息对应的会话满足从当前状态切换至所述报文匹配的会话状态的条件,则可以将所接收的报文按照本地记录的快速转发表项转发出去。

由上述实施例可知,通过接收报文,判断本地是否已记录了与所述报文匹配的快速转发表项,当本地记录了所述快速转发表项(快速转发表项中包含会话信息)时,则确定所述会话信息对应的会话是否满足从当前状态切换至所述报文匹配的会话状态的条件,如果是,则转发所述报文。本申请通过在快速转发流程上增加状态检测功能,减少状态检测不通过的报文进入全流程处理,节省cpu资源的占用,进而减小快速转发过程中报文转发时间的延时,提高网络设备对报文转发的效率。

参见图2,图2为本申请报文的处理方法的另一个实施例流程图,该实施例可以包括以下步骤:

步骤201,接收报文。

步骤202,判断本地是否已记录了与所述报文匹配的快速转发表项,若是,则执行步骤203,若否,则执行步骤205。

步骤203,确定所述会话信息对应的会话是否满足从当前状态切换至所述报文匹配的会话状态的条件,若是,则执行步骤204,若否,则执行步骤210。

在一种可选的实现方式中,当本地记录了所述快速转发表项时,所述的快速转发表项中可以包含会话的相关信息,根据所述报文匹配的会话状态确定所述会话信息对应的会话是否满足从当前状态切换至所述报文匹配的会话状态的条件。例如,对于同一协议报文,如传输控制协议tcp报文,当网络设备发送syn报文给服务器端,会话状态进入syn_sent状态时,如果网络设备收到服务器端回应的报文flag为ack,即需要进入到established状态,说明此时会话的状态不可以正常切换至所述报文匹配的会话状态;如果会话信息对应的会话不满足从当前状态syn_sent切换至所述报文匹配的会话状态established状态,可以将所接收的tcp报文丢包处理。当服务器向网络设备发送syn报文,会话状态进入syn_rcv状态时,如果网络设备收到的报文flag中为ack,即进入到established状态,说明此时会话的状态可以正常切换至所述报文匹配的会话状态。本申请中所描述的报文并不限定于tcp报文,在本申请中仅仅是示例性的。

步骤204,更新所述报文对应所述快速转发表项中会话信息的状态,然后执行步骤209。

如果会话信息对应的会话满足从当前状态切换至所述报文匹配的会话状态的条件,也就是说如果会话信息对应的会话满足从当前状态syn_rcv切换至所述报文匹配的会话状态established状态,那么可以将所述报文对应所述快速转发表项中的会话状态更新为established状态,并将所接收的报文按照本地记录的快速转发表项转发出去。

步骤205,判断所述报文是否可进入全流程处理,若是,则执行步骤206;若否,则执行步骤210。

在一种可选的实现方式中,如果在本地没有记录与所述报文匹配的快速转发表项,可以根据对接收的报文解析出的报文信息,判断所述接收的报文是否可以进入到全流程处理,如果满足全流程处理,但没有可用的快速转发表项时,可以根据所述报文的ip地址、协议号以及端口信息哈希出所述报文对应的cpu队列,将所述报文送入到对应的cpu队列进行全流程处理;如果不满足全流程处理,则将所述报文进行丢包处理。

步骤206,创建会话。

如果报文进入全流程处理,则需要创建一个新的会话,随着会话的建立,相应的快速转发表项也就建立了,但该快速转发表项中没有可用的业务信息和转发信息,仍然处于不可用状态。

步骤207,将报文的转发信息和业务信息填入快速转发表项。

将报文转发信息和业务信息写入快速转发表项,在会话状态达到稳定的情况下,可以根据会话流程确保快速转发表项中已经记录各项业务标记。

步骤208,将快速转发表项置为可用状态。

当快速转发表项中已经记录各项业务标记后,可以清除快速转发表项中不可用标记,并将快速转发表项更新为可用状态。

步骤209,按照快速转发表项,将报文转发出去,结束该流程。

根据建立的会话得到快速转发表项,将快速转发表项更新为可用的状态,将报文按照可用的快速转发表项中记录的各项业务处理后,将报文转发出去。

步骤210,直接丢包。

前述步骤201和步骤202与图1实施例中的步骤101和步骤102相一致,在此不再赘述。

由上述实施例可知,通过接收报文,判断本地是否已记录了与所述报文匹配的快速转发表项,当本地记录了所述快速转发表项时,则确定所述会话信息对应的会话是否满足从当前状态切换至所述报文匹配的会话状态的条件,如果满足条件,则转发所述报文。本申请通过在快速转发流程上增加状态检测功能,减少状态检测不通过的报文进入全流程处理,节省cpu资源的占用,进而减小快速转发过程中报文转发时间的延时,提高报文的转发效率。

与前述一种报文的处理方法的实施例相对应,本申请还提供了一种报文的处理装置的实施例。请参照图3,本申请一种报文的处理装置的一个实施例框图,所述装置包括:接收单元301,第一判断单元302,第二判断单元303,第一执行单元304。

接收单元301,用于接收报文;

第一判断单元302,用于判断本地是否已记录了与所述报文匹配的快速转发表项;

第二判断单元303,用于当本地记录了所述快速转发表项时,所述快速转发表项中包含会话信息,则确定所述会话信息对应的会话是否满足从当前状态切换至所述报文匹配的会话状态的条件;

第一执行单元304,用于如果所述会话信息对应的会话满足从当前状态切换至所述报文匹配的会话状态的条件,则转发所述报文。

在一个可选的例子中,所述装置还可以包括(图3中未示出):第三判断单元,全流程处理单元。其中,

第三判断单元,用于判断所述报文是否可进入全流程处理;

全流程处理单元,用于若能进入全流程,则进入全流程处理,所述全流程处理单元至少包括:创建会话,并生成所述报文匹配的快速转发表项。

在另一个可选的例子中,当会话信息对应的会话不满足从当前状态切换至所述报文匹配的会话状态的条件时,所述装置还可以包括(图3中未示出):

第一丢包单元,用于对所述接收的报文进行丢包处理。

在另一个可选的例子中,当会话信息对应的会话满足从当前状态切换至所述报文匹配的会话状态的条件时,所述装置还包括:

第一更新单元,用于更新所述报文对应所述快速转发表项中会话信息的状态。

由上述实施例可知,通过接收报文,判断本地是否已记录了与所述报文匹配的快速转发表项,当本地记录了所述快速转发表项时,则确定所述会话信息对应的会话是否满足从当前状态切换至所述报文匹配的会话状态的条件,如果是,则转发所述报文。本申请通过在快速转发流程上增加状态检测功能,减少状态检测不通过的报文进入全流程处理,节省cpu资源的占用,进而减小快速转发过程中报文转发时间的延时,提高网络设备对报文转发的效率。

与前述一种报文的处理方法的实施例相对应,本申请还提供了一种报文处理设备的实施例。

请参照图4,为本申请报文处理设备的一个硬件结构图。所述终端设备包括:内部总线401,以及通过内部总线连接的存储器402,处理器403和外部接口404;其中,

所述存储器402,用于存储报文处理对应的机器可读指令;

所述处理器403,用于读取所述存储器上的所述机器可读指令,并执行所述指令以实现如下操作:

接收报文;

判断本地是否已记录了与所述报文匹配的快速转发表项;

当本地记录了所述快速转发表项时,所述快速转发表项中包含会话信息,则确定所述会话信息对应的会话是否满足从当前状态切换至所述报文匹配的会话状态的条件;

如果是,则转发所述报文。

与前述一种报文的处理方法的实施例相对应,本申请还提供了一种机器可读存储介质,包括:所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时进行如下处理:

接收报文;

判断本地是否已记录了与所述报文匹配的快速转发表项;

当本地记录了所述快速转发表项时,所述快速转发表项中包含会话信息,则确定所述会话信息对应的会话是否满足从当前状态切换至所述报文匹配的会话状态的条件;

如果是,则转发所述报文。

上述装置、设备、机器可读取介质中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

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

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。

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

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