一种报文转发方法及装置与流程

文档序号:15818177发布日期:2018-11-02 22:50阅读:196来源:国知局
一种报文转发方法及装置与流程

本发明涉及通信技术领域,尤其涉及一种报文转发方法及装置。

背景技术

gre(genericroutingencapsulation,通用路由封装)协议用来对某种协议(如ip、mpls、以太网)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络(如ip)中传输。封装前后数据报文的网络层协议可以相同,也可以不同。封装后的数据报文在网络中传输的路径,称为gre隧道。gre隧道是一个虚拟的点到点的连接,其两端的网络设备分别对数据报文进行封装及解封装。通过gre封装可以将内层流变为另一个流的业务,通常会是将多条内层业务流,通过gre封装变为同一条外层流。

目前的软件转发逻辑一般都是按流转发的,即同一条流会分配到同一转发核,以保证按序转发。但是对于gre封装来讲,在加封装时转入的是多条内层流,这些多条内层流是通过多个转发核转入的,但是对不同的内层流加了外层封装后得到相同的外层流,而对该外层流解封装时只能交给同一转发核处理,因此导致上述多条内层流的解封装转发操作均是由同一个转发核来进行处理,从而使网络设备的吞吐性能被限制成某一转发核的吞吐性能,造成网络设备的吞吐性能瓶颈。



技术实现要素:

有鉴于此,本发明提供一种报文转发方法及装置,来避免网络设备吞吐性能瓶颈的问题。

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

本发明提供一种报文转发方法,所述方法应用于网络设备,所述方法包括:

当网卡接收到转发核上送的第一报文携带第一特征时,对所述第一报文进行隧道封装;

网卡将封装后的第一报文通过所述隧道封装对应的隧道转发至目的设备。

本发明还提供另一种报文转发方法,所述方法应用于网络设备,所述方法包括:

当网卡收到的第二报文携带第二特征时,获取所述第二报文的内层流信息;

网卡根据所述内层流信息的特征将所述第二报文分配至对应的转发核,以使不同内层流信息的特征的报文被分配至不同的转发核,以使所述转发核对所述第二报文进行解隧道封装,并将解封装后的第二报文转发至目的设备。

基于相同的构思,本发明提供一种报文转发装置,所述装置应用于网络设备,所述装置包括:

第一接收单元,用于当网卡接收到转发核上送的第一报文携带第一特征时,对所述第一报文进行隧道封装;

第一转发单元,用于网卡将封装后的第一报文通过所述隧道封装对应的隧道转发至目的设备。

本发明还提供另一种报文转发装置,所述装置应用于网络设备,所述装置包括:

第二接收单元,用于当网卡收到的第二报文携带第二特征时,获取所述第二报文的内层流信息;

第二转发单元,用于网卡根据所述内层流信息的特征将所述第二报文分配至对应的转发核,以使不同内层流信息的特征的报文被分配至不同的转发核,以使所述转发核对所述第二报文进行解隧道封装,并将解封装后的第二报文转发至目的设备。

由此可见,本发明可以使网卡接收到转发核上送的第一报文携带第一特征时,对所述第一报文进行隧道封装;网卡将封装后的第一报文通过所述隧道封装对应的隧道转发至目的设备,因此明可以通过网卡实现对报文的加封装过程,避免了转发重入动作,优化了报文转发速率。本发明还可以当网卡收到的第二报文携带第二特征时,获取所述第二报文的内层流信息;网卡根据所述内层流信息的特征将所述第二报文分配至对应的转发核,以使不同内层流信息的特征的报文被分配至不同的转发核,以使所述转发核对所述第二报文进行解隧道封装,并将解封装后的第二报文转发至目的设备。本发明可以通过网卡在报文解封装前识别报文的内层流信息从而根据不同的内层流信息的特征分配不同的转发核,从而可以减少转发核的处理负担,避免了转发重入动作,并提升了网络设备的吞吐量,优化了报文转发速率。

附图说明

图1是本发明一种示例性实施方式中的gre业务典型组网示意图;

图2是本发明一种示例性实施方式中的一种报文转发方法的处理流程图;

图3a是现有技术中的报文加封装的处理流程图;

图3b是本发明的报文加封装的处理流程图;

图4是本发明一种示例性实施方式中的另一种报文转发方法的处理流程图;

图5a是现有技术中的报文解封装的处理流程图;

图5b是本发明的报文解封装的处理流程图;

图6a本发明一种示例性实施方式中的一种报文转发装置所在网络设备的硬件结构图;

图6b本发明一种示例性实施方式中的一种报文转发装置的逻辑结构图;

图7a本发明一种示例性实施方式中的另一种报文转发装置所在网络设备的硬件结构图;

图7b本发明一种示例性实施方式中的另一种报文转发装置的逻辑结构图。

具体实施方式

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

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

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

请参考图1,是本发明实施例中的gre业务典型组网示意图,其中内网网段是10.1.1.1/24→10.1.3.1/24,外层gre隧道的是1.1.1.1→2.2.2.2。以解封装业务为例,交换机b收到交换机a发送的业务报文,该报文的源地址为1.1.1.1,目的地址为2.2.2.2,对于该报文要先进行隧道解封装,解出内层流即,源地址为10.1.1.1/24,目的地址为10.1.3.1/24的报文,然后才能将该内层流在内网进行转发。

由于解封装前后的报文的源、目的地址完全不一致,路由信息以及要做的转发业务也不一致,所以需要在解封装后将内层流重入ip转发流程,重新匹配转发业务。经实际测试分析发现,解封装前的数据报文只能分配给同一数据核处理。从而导致单条gre隧道的整机性能变成了单数据核处理的性能。另外,重入转发流程这一动作对gre的吞吐性能影响也很大。

为了解决现有技术存在的问题,本发明提供一种报文转发方法及装置,本发明可以使网卡接收到转发核上送的第一报文携带第一特征时,对所述第一报文进行隧道封装;网卡将封装后的第一报文通过所述隧道封装对应的隧道转发至目的设备,因此明可以通过网卡实现对报文的加封装过程,避免了转发重入动作,优化了报文转发速率。本发明还可以当网卡收到的第二报文携带第二特征时,获取所述第二报文的内层流信息;网卡根据所述内层流信息的特征将所述第二报文分配至对应的转发核,以使不同内层流信息的特征的报文被分配至不同的转发核,以使所述转发核对所述第二报文进行解隧道封装,并将解封装后的第二报文转发至目的设备。本发明可以通过网卡在报文解封装前识别报文的内层流信息从而根据不同的内层流信息的特征分配不同的转发核,从而可以减少转发核的处理负担,避免了转发重入动作,并提升了网络设备的吞吐量,优化了报文转发速率。

请参考图2,是本发明一种示例性实施方式中的一种报文转发方法的处理流程图,所述方法可以应用于网络设备,所述方法包括:

步骤201、当网卡接收到转发核上送的第一报文携带第一特征时,对所述第一报文进行隧道封装;

在本实施例中,当转发核收到携带第一特征的第一报文时,可以将该第一报文上送到网卡,以使网卡对该第一报文添加隧道封装,所谓的第一特征是指第一报文的出端口是隧道的端口。具体来讲,当转发核确定收到的报文为第一报文时,先会进行查表转发,即根据该第一报文的目的地址查找该第一报文对应的出端口,当查到该第一报文的出端口是隧道的端口时,说明该第一报文需要进行隧道封装,从而可以确定该第一报文携带第一特征,从而转发核将携带第一特征的第一报文转发至网卡。

步骤202、对所述第一报文进行gre封装,将封装后的第一报文发送至转发核,以使转发核将所述封装后的第一报文通过gre隧道转发至外网;

在本实施例中,网卡收到携带第一特征的第一报文时,确定第一报文需要进行隧道封装,因此网卡可以根据该第一报文出端口的隧道类型对该第一报文进行相应的隧道封装,并将封装后的第一报文通过对应的隧道转发至目的设备。

由于现有技术中,是通过转发核经过查表转发后获知该报文需要加封装,在对报文加封装后由于报文的外层信息发生变化,因此需要将封装后的报文再次进行查表转发获取封装后的报文的隧道出端口,然后将封装后的报文发送给网卡,使网卡根据该隧道出端口进行转发,因此现有技术中报文会在转发核上经过两次查表转发;在本发明中由网卡对报文进行封装,从而可以获知报文的出端口,因此网卡转发封装后的报文时可以直接将封装后的报文转发到出端口,而不需要再次查表转发,因此本发明可以避免转发重入流程,进而节约了报文的转发时间,提升了转发效率。

为使本发明的目的、技术方案及优点更加清楚明白,下面对本发明的方案作进一步地详细说明。在本发明中,隧道封装类型可以包括多种类型,在本实施例中以gre类型为例进行说明。

以图1所示的gre组网为例,假设10.1.1.1/24→10.1.3.1/24的报文进入交换机a需要进行gre加封装业务,则现有技术和本发明的具体转发方法分别如图3a、图3b所示:

请参见图3a,为现有技术中报文加封装的处理流程图,现有技术中报文的加封装过程包括两次查表转发流程,其中:

交换机a的转发核在收到10.1.1.1/24→10.1.3.1/24的报文时,通过查表转发可确定该报文的出端口为gre端口,因此该报文进行加封装处理,得到1.1.1.1→2.2.2.2的报文,由于报文重新封装后的信息发生变化,因此转发核会将加封装后的1.1.1.1→2.2.2.2报文再次进行查表转发,之后经过网卡转发到gre隧道。

请参见图3b,为本发明的报文加封装的处理流程图,本发明的报文加封装过程只有一次查表转发流程,本实施例中,为了使本发明的改进与现有技术的区分更加明显,将网卡中改进的功能作为一个模块单独说明,该模块为图3b中的业务模块,其中:

交换机a的转发核在收到10.1.1.1/24→10.1.3.1/24的报文时,通过查表转发可确定该报文的出端口为gre端口,因此可以确定该报文携带第一特征,需要将该报文上送至业务模块,业务模块对该报文进行加封装处理,得到1.1.1.1→2.2.2.2的报文,然后由网卡将加封装后的1.1.1.1→2.2.2.2报文直接转发到gre隧道。

从gre加封装业务看,本发明用单独的gre业务模块替代了原来性能耗费较大的转发重入流程,从而节省了报文处理时间,提升了报文转发效率。

请参考图4,是本发明一种示例性实施方式中的另一种报文转发方法的处理流程图,所述方法可以应用于网络设备,所述方法包括:

步骤401、当网卡收到的第二报文携带第二特征时,获取所述第二报文的内层流信息;

在本实施例中,当网卡收到第二报文时,可以判断该第二报是否携带第二特征。具体来讲,网卡收到第二报文时,会识别该第二报文的协议类是否为隧道封装对应的协议类型,如果是,说明该第二报文需要解隧道封装,则确定该第二报文携带第二特征。在确定第二报文携带第二特征后,网卡可以获取所述第二报文的内层流信息,该内层流信息可以为第二报文的内层报文的部分或全部信息,内层流信息可以包括内层报文的源ip地址、目的ip地址,或者源mac地址、目的mac地址或者协议类型等信息。

步骤402、网卡根据所述内层流信息的特征将所述第二报文分配至对应的转发核,以使不同内层流信息的特征的报文被分配至不同的转发核,以使所述转发核对所述第二报文进行解隧道封装,并将解封装后的第二报文转发至目的设备。

在本实施例中,网卡可以根据所述内层流信息的特征将所述第二报文分配至对应的转发核,以使不同内层流信息的特征的报文被分配至不同的转发核。

需要说明的是,内层流信息的特征是根据预定的划分方法对不同类型的内层流划分的标识,例如,若按照源ip地址对内层流进行划分,则源ip地址是内层流信息的特征;若按照源mac地址对内层流进行划分,则源mac地址是内层流信息的特征;若按照hash算法对内层流进行划分,则报文的hash值则为内层流信息的特征;若按照协议类型对内层流进行划分,则报文的协议类型为内层流信息的特性,以上仅为示例性说明,具体实现方法可以根据实际需要而定,本发明不做限定。

网卡可以根据不同的内层流信息的特征将封装着不同内层报文的第二报文分配给不同的转发核处理,以使所述转发核对所述第二报文进行解隧道封装,并将解封装后的第二报文转发至目的设备。

因此,本发明可以使所述多个转发核将不同的内层流并行解封装及转发,相比于现有技术,本发明可以在未解封装之前对报文进行按流分配转发核,从而达到相同隧道的报文分配给多个转发核并发处理的效果,提升了吞吐性能。并且减少了转发重入动作,也提升了转发效率。

此外,网卡还可以根据内层流信息或者报文的封装信息计算所述隧道封装的偏移量;然后将所述偏移量发送至所述转发核,以使转发核根据所述偏移量直接对所述第二报文进行解隧道封装,从而可以避免转发核再进行偏移量的计算,而使用网卡提供的偏移量进行解封装,因此提高了转发核的解封装速率。

为使本发明的目的、技术方案及优点更加清楚明白,下面对本发明的方案作进一步地详细说明。在本发明中,隧道封装类型可以包括多种类型,在本实施例中以gre类型为例进行说明。

以图1所示的gre组网为例,假设1.1.1.1→2.2.2.2的报文进入交换机b需要进行gre解封装业务,则现有技术和本发明的具体转发方法分别如图5a、图5b所示:

请参见图5a,为现有技术中报文解封装的处理流程图,现有技术中报文的解封装包括两次查表转发流程其中:

第一次转发过程:交换机b收到1.1.1.1→2.2.2.2的报文时,网卡可以将收到的1.1.1.1→2.2.2.2报文进行按流分配到转发核,由于当前该报文未解封装,因此该类报文为一条流,因此该类报文分配一个转发核,即转发核1。转发核1可以先对该报文进行解封装处理,得到内层报文,本实施例中以解封装得到的内层报文为10.1.1.1/24→10.1.3.1/24的多个报文,然后由于该解封装后的内层报文的源和目的地址不再是1.1.1.1→2.2.2.2,即源和目的地址发生改变了,因此转发核1还要将10.1.1.1/24→10.1.3.1/24的报文再次执行查表转发处理。

第二次转发过程:转发核1再次将10.1.1.1/24→10.1.3.1/24内层报文进行查表转发至内层报文的目的ip地址所对应的网络设备。

请参见图5b,为本发明的报文解封装的处理流程图,本发明的报文解封装过程只有一次转发流程,本实施例中,为了使本发明的改进与现有技术的区分更加明显,将网卡中改进的功能作为一个模块单独说明,该模块为图5b中的业务模块,其中:

交换机b收到1.1.1.1→2.2.2.2的报文时,网卡可以识别收到的1.1.1.1→2.2.2.2报文的协议类型,由于该报文的协议类型为gre类型,因此可以获取该报文的内层流信息;网卡驱动将该1.1.1.1→2.2.2.2的报文以及该报文的内层流信息转发至业务模块,业务模块根据识别内层流信息的特征将不同特征的报文分配给不同的转发核,例如业务模块识别出n条内层流信息的特征,则将第一个特征对应的第一个报文分配至转发核1处理;第二个特征对应的第二个报文分配至转发核2处理;第n个特征对应的第n个报文分配至转发核n处理,并且业务模块可以根据每个报文的内层流信息计算出偏移量,在一种可选的实施方式中,可以将偏移量随报文转发到对应的转发核,当然,也可以将偏移量携带在转发核与网卡之间的控制报文,将偏移量发送至对应的转发核,以使转发核收到报文和偏移量后,根据偏移量直接对报文进行解隧道封装,之后不同的转发核将解封装后的内层报文查表转发至内层报文的目的ip地址所对应的网络设备。

在解封装处理流程中,本发明可以在解封装的过程中就通过内层流信息的特征确定出内层报文对应的各个转发核,以使不同类型的内层报文发送至不同的转发核进行解封装并转发,从而达到相同gre隧道的流程分配给多个转发核并发处理的效果。因此减少了转发重入动作,通过并发处理达到提升吞吐性能的效果。

基于相同的构思,本发明还提供一种报文转发装置,该装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,本发明的报文转发装置作为一个逻辑意义上的装置,是通过其所在装置的cpu将存储器中对应的计算机程序指令读取后运行而成。

请参考图6a,是本发明一种示例性实施方式中的一种报文转发装置600,所述装置应用于网络设备,该装置基本运行环境包括处理器,存储器、网卡以及其他硬件,从逻辑层面上来看,该装置600的逻辑结构如图6b所示,其中包括:

第一接收单元601,用于当网卡接收到转发核上送的第一报文携带第一特征时,对所述第一报文进行隧道封装;

第一转发单元602,用于网卡将封装后的第一报文通过所述隧道封装对应的隧道转发至目的设备。

作为一个实施例,所述第一特征具体为所述第一报文的目的出端口是所述隧道的端口。

请参考图7a,是本发明一种示例性实施方式中的另一种报文转发装置700,所述装置应用于网络设备,该装置基本运行环境包括处理器,存储器、网卡以及其他硬件,从逻辑层面上来看,该装置700的逻辑结构如图7b所示,其中包括:

第二接收单元701,用于当网卡收到的第二报文携带第二特征时,获取所述第二报文的内层流信息;

第二转发单元702,用于网卡根据所述内层流信息的特征将所述第二报文分配至对应的转发核,以使不同内层流信息的特征的报文被分配至不同的转发核,以使所述转发核对所述第二报文进行解隧道封装,并将解封装后的第二报文转发至目的设备。

作为一个实施例,所述第二特征具体为所述第二报文的协议类型为隧道封装对应的协议类型。

作为一个实施例,所述装置还包括:

计算单元703,用于计算所述隧道封装的偏移量;将所述偏移量发送至所述转发核,以使转发核根据所述偏移量对所述第二报文进行解隧道封装。

综上所述,本发明可以使网卡接收到转发核上送的第一报文携带第一特征时,对所述第一报文进行隧道封装;网卡将封装后的第一报文通过所述隧道封装对应的隧道转发至目的设备,因此明可以通过网卡实现对报文的加封装过程,避免了转发重入动作,优化了报文转发速率。本发明还可以当网卡收到的第二报文携带第二特征时,获取所述第二报文的内层流信息;网卡根据所述内层流信息的特征将所述第二报文分配至对应的转发核,以使不同内层流信息的特征的报文被分配至不同的转发核,以使所述转发核对所述第二报文进行解隧道封装,并将解封装后的第二报文转发至目的设备。本发明可以通过网卡在报文解封装前识别报文的内层流信息从而根据不同的内层流信息的特征分配不同的转发核,从而可以减少转发核的处理负担,避免了转发重入动作,并提升了网络设备的吞吐量,优化了报文转发速率。

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

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

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

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