一种报文转发方法及网络设备与流程

文档序号:15979492发布日期:2018-11-17 00:09阅读:207来源:国知局

本申请涉及通信技术领域,特别是涉及一种报文转发方法及网络设备。

背景技术

多核处理器架构的防火墙设备系统包括多核cpu(centralprocessingunit,中央处理器)和转发芯片,多核cpu和转发芯片之间有多个通道,报文在转发芯片和多核cpu之间进行传输。

转发芯片从端口接收到报文后,采用分流算法从多个通道中选择一条通道作为上行通道,并将报文通过该上行通道发送至多核cpu,多核cpu在对报文进行处理之后,再通过分流算法选择一条通道作为下行通道,并将报文通过该下行通道发送至转发芯片。无论是上行通道还是下行通道的选择,现有的分流算法均是在理想条件下,例如采用轮询方式。这样,每一个通道均可以被使用到,并且各通道被使用的次数基本相等,进而使得各通道负载均衡。

然而,各硬件通道的设备水平存在差异导致各硬件通道工作效率存在差异,进一步地导致各通道在传输报文的速度上存在差异。这样,对于属于同一报文流的各报文来说,若在先报文在工作效率较低的通道上进行传输,而在后报文在工作效率较高的通道上进行传输,则会出现在后报文与在先报文次序混乱,进而导致属于同一报文流的报文在转发过程中乱序的问题。



技术实现要素:

本申请实施例的目的在于提供一种报文转发方法及网络设备,以解决同一报文流中的报文转发过程中乱序的问题。具体技术方案如下:

第一方面,本申请实施例提供了一种报文转发方法,所述方法应用于网络设备,所述网络设备包括多核处理器和转发芯片,所述方法包括:

所述转发芯片通过第一上行通道将报文发送至所述多核处理器,其中,所述第一上行通道为:所述转发芯片根据所述报文的五元组信息所确定的通道;

所述多核处理器接收到所述报文后,通过对所述报文的五元组信息进行哈希计算,确定所述五元组信息对应的第一下行通道;

所述多核处理器通过所述第一下行通道,将经过处理的所述报文发送至所述转发芯片。

第二方面,本申请实施例提供了一种网络设备,所述网络设备包括多核处理器和转发芯片;

所述转发芯片,用于通过第一上行通道将报文发送至所述多核处理器,其中,所述第一上行通道为:所述转发芯片根据所述报文的五元组信息所确定的通道;

所述多核处理器,用于接收到所述报文后,通过对所述报文的五元组信息进行哈希计算,确定所述五元组信息对应的第一下行通道,通过所述第一下行通道,将经过处理的所述报文发送至所述转发芯片。

第三方面,本申请实施例提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现上述任一所述的一种报文转发方法步骤。

本申请实施例提供的技术方案中,网络设备中的多核处理器接收转发芯片通过第一上行通道发送的报文,并通过对报文的五元组信息进行哈希计算,确定五元组信息对应的第一下行通道;通过第一下行通道,将经过处理的报文转发至转发芯片。对于五元组信息相同的报文,通过同一上行通道传输至多核处理器,再通过同一下行通道传输至转发芯片,这样,属于同一报文流中的各报文按照转发芯片接收到各报文的顺序依次被转发,进而解决同一报文流中的报文转发过程中乱序的问题。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的报文转发方法的一种流程图;

图2为本申请实施例提供的一种网络设备的一种结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

为了解决同一报文流中的报文转发过程中乱序的问题,本申请实施例提供了一种报文转发方法及网络设备,其中,该报文转发方法应用于网络设备,该网络设备包括多核处理器和转发芯片,该方法包括:

转发芯片通过第一上行通道将报文发送至多核处理器,其中,第一上行通道为:转发芯片根据报文的五元组信息所确定的通道;

多核处理器接收到报文后,通过对报文的五元组信息进行哈希计算,确定五元组信息对应的第一下行通道;

多核处理器通过第一下行通道,将经过处理的报文发送至转发芯片。

本申请实施例提供的技术方案中,网络设备中的多核处理器接收转发芯片通过第一上行通道发送的报文,并通过对报文的五元组信息进行哈希计算,确定五元组信息对应的第一下行通道;通过第一下行通道,将经过处理的报文转发至转发芯片。对于五元组信息相同的报文,通过同一上行通道传输至多核处理器,再通过同一下行通道传输至转发芯片,这样,属于同一报文流中的各报文按照转发芯片接收到各报文的顺序依次被转发,进而解决同一报文流中的报文转发过程中乱序的问题。

下面首先对本申请实施例提供的一种报文转发方法进行介绍,该报文转发方法应用于网络设备,该网络设备可以是基于mips(microprocessorwithoutinterlockedpipedstages,无内部互锁流水级的微处理器)架构的设备。

网络设备包括多核处理器和转发芯片,其中,多核处理器可以是cpu、dsp(digitalsignalprocessor,数字信号处理器)、mcu(microcontrollerunit,微控制单元)、mpu(microprocessorunit,微处理器)等处理器中的至少一种。

如图1所示的本申请实施例提供的报文转发方法的一种流程图,包括如下步骤。

s101,转发芯片通过第一上行通道将报文发送至多核处理器。

其中,第一上行通道为:转发芯片根据报文的五元组信息所确定的通道。通道连接多核处理器和转发芯片,多核处理器和转发芯片之间的通道可以有多个,多核处理器和转发芯片之间可以通过通道进行通信。

五元组信息包括源地址、目的地址、源端口号、目的端口号和协议号。通过五元组信息,可以区分不同的报文流,也就是说,五元组信息相同的报文属于同一报文流,五元组信息不同的报文分别属于不同的报文流。

根据五元组信息确定通道,也就是说,五元组信息相同的报文所确定的通道相同,那么,五元组信息相同的报文通过同一通道由转发芯片发送至多核处理器。

例如,报文1、报文2和报文3属于同一报文流,由报文1的五元组信息所确定的通道1作为第一上行通道,那么,报文2和报文3的五元组信息所确定的通道均为通道1,转发芯片通过通道1分别将报文1、报文2和报文3发送至多核处理器。

s102,多核处理器接收到报文后,通过对该报文的五元组信息进行哈希计算,确定五元组信息对应的第一下行通道。

多核处理器在接收到转发芯片发送的报文之后,提取报文的五元组信息,包括:源地址、目的地址、源端口号、目的端口号和协议号,其中,源地址为转发芯片的地址,目的地址为多核处理器的地址,源端口号为转发芯片中发送报文的端口的端口号,目的端口号为多核处理器中接收报文的端口的端口号,协议号为转发芯片和多核处理器之间所采用的协议。

例如,多核处理器在接收到报文1后从报文1所提取到的五元组信息为:192.168.1.110000tcp121.14.88.7680,其中,源地址为192.168.1.1,源端口号为10000,目的地址为121.14.88.76,目的端口号为80,协议号为tcp协议。该五元组信息所表示的意义为:ip地址为192.168.1.1的转发芯片通过端口10000,利用tcp协议,和ip地址为121.14.88.76、端口为80的多核处理器连接。

多核处理器对五元组信息进行哈希计算可以采用crc-16、crc-20、crc-32等中的任一种,在此不做限定。

对于属于同一报文流的各个报文,通过对各个报文的五元组信息进行哈希计算,所得到的哈希值是相同的,再根据所得到的哈希值从多个通道中确定一个通道作为第一下行通道。其中,所确定出的第一下行通道为:多核处理器将包含该五元组信息的报文发送至转发芯片的通道。

例如,报文1、报文2和报文3属于同一报文流,多核处理器在对报文1的五元组信息进行哈希计算所得到的哈希值为2,哈希值2所对应的通道为通道1,则多核处理器将通道1确定为第一下行通道,该第一下行通道也是报文2和报文3所对应的通道。

s103,多核处理器通过第一下行通道,将经过处理的报文转发至转发芯片。

多核处理器在接收到报文后,可以对报文进行相应的处理,处理可以是防火墙状态检测处理、防火墙状态设置处理等。

多核处理器在对报文进行处理之后,将处理后的报文通过第一下行通道发送至转发芯片,由转发芯片再转发至对应的终端。

一种实施方式中,多核处理器接收到报文后,通过对该报文的五元组信息进行哈希计算,确定五元组信息对应的第一下行通道(s102)的步骤,可以包括如下步骤。

多核处理器在提取到五元组信息之后,首先,对该五元组信息进行哈希计算,可以得到该五元组信息对应的哈希值,并作为目标哈希值。

具体地,对五元组信息进行初始化处理,利用预设的计算方式进行哈希计算,得到计算值。对于该计算值,可以将该计算值的预设位数的数值作为哈希值。

例如,对五元组信息进行初始化处理之后,利用crc-16的多项式对该五元组信息进行计算:

f(x)=x16+x15+x2+1

其中,f(x)为五元组信息经过crc-16计算后得到的计算值。在得到计算值f(x)后,将f(x)的后10位作为该五元组信息的哈希值。

在得到该五元组信息的目标哈希值后,根据预设的哈希值与内核标识的对应关系,确定目标哈希值对应的内核,作为目标内核。

其中,多核处理器包含多个内核,每一个内核预设一个对应的内核标识。预设的哈希值与内核标识的对应关系可以是一对一的关系,即每一个哈希值对应一个内核标识;还可以是多对一的关系,即多个哈希值对应一个内核标识。在此不做限定。

在确定出的目标内核之后,多核处理器将报文提交给目标内核,由目标内核对该报文进行处理。

在确定出的目标内核之后,多核处理器还可以根据目标内核的内核标识,确定该目标内核对应的通道,即第一下行通道。

一种实现方式中,可以预设内核标识与通道标识的对应关系,其中,内核标识与通道标识的对应关系可以是一对一的关系,即一个内核标识对应一个通道标识;还可以是多对一的关系,即多个内核标识对应一个通道标识。在此不做限定。

根据预设的内核标识与通道标识的对应关系,可以确定目标内核的内核标识所对应的通道标识,所确定的通道标识即为第一下行通道的通道标识。

例如,内核1的内核标识为1,内核2的内核标识为2,内核3的内核标识为3,通道1的通道标识为a,通道2的通道标识为b,预设的内核标识与通道标识的对应关系为:1对应a、2对应b、3对应b,那么,当目标内核为内核2时,则确定通道2作为第一下行通道。

另一种实现方式中,利用以下公式计算目标内核对应的通道标识:

f(n)=cn%n+h

其中,f(n)为计算得到的通道标识,通道标识为预设的每一个通道所对应的标识。cn为目标内核的内核标识,n为通道的总数量。h为可以自定义的常数,比如h可以为1。

上述公式计算出通道标识f(n),将该通道标识对应的通道确定为第一下行通道。

例如,多核处理器与转发芯片之间的通道总数量为4个,h为1,目标内核的内核标识为10,则依据上式,可以计算得到通道标识为:

f(n)=cn%n+h=10%4+1=3

则将通道标识为3的通道确定为第一下行通道。

一种实施方式中,转发芯片可以采用如下步骤根据报文的五元组信息确定第一上行通道。

转发芯片在从报文提取到五元组信息之后,对五元组信息进行哈希计算,得到五元组信息对应的哈希值,作为目标哈希值。对五元组信息进行哈希计算的具体方式可以参考上述实施方式,在此不再赘述。

在得到该五元组信息的目标哈希值后,转发芯片根据预设的哈希值与通道标识的对应关系,确定目标哈希值对应的通道,作为第一上行通道。

其中,哈希值与通道标识的对应关系可以是一对一的关系,即每一个哈希值对应一个通道标识;还可以是多对一的关系,即多个哈希值对应一个通道标识。在此不做限定。

这样,对于目标哈希值,可以从哈希值与通道标识的对应关系中,确定一个通道标识,该通道标识对应的通道即为第一上行通道。

对于转发芯片来说,通过上述步骤,属于同一报文流的报文通过第一上行通道由转发芯片发送至多核处理器,进而保证了在上行传输的过程中同一报文流的报文的顺序。

本申请实施例提供的技术方案中,网络设备中的多核处理器接收转发芯片通过第一上行通道发送的报文,并通过对报文的五元组信息进行哈希计算,确定五元组信息对应的第一下行通道;通过第一下行通道,将经过处理的报文转发至转发芯片。对于五元组信息相同的报文,通过同一上行通道传输至多核处理器,再通过同一下行通道传输至转发芯片,这样,属于同一报文流中的各报文按照转发芯片接收到各报文的顺序依次被转发,进而解决同一报文流中的报文转发过程中乱序的问题。

相应于上述报文转发方法实施例,本申请实施例还提供一种网络设备,如图2所示,该网络设备包括多核处理器210和转发芯片220;

转发芯片220,用于通过第一上行通道将报文发送至多核处理器210,其中,第一上行通道为:转发芯片根据报文的五元组信息所确定的通道;

多核处理器210,用于接收到报文后,通过对报文的五元组信息进行哈希计算,确定五元组信息对应的第一下行通道,通过第一下行通道,将经过处理的报文发送至转发芯片220。

可选地,多核处理器210具体用于:

对报文的五元组信息进行哈希计算,得到五元组信息对应的哈希值,作为目标哈希值;

根据预设的哈希值与内核标识的对应关系,确定目标哈希值对应的内核,作为目标内核,利用目标内核对报文进行处理;

确定目标内核对应的通道,作为第一下行通道。

可选地,多核处理器210具体用于:

利用以下公式计算目标内核对应的通道标识:

f(n)=cn%n+h

其中,f(n)为计算得到的通道标识,cn为目标内核的内核标识,n为通道的总数量,h为常数;

将通道标识对应的通道确定为第一下行通道。

可选地,多核处理器210具体用于:

根据预设的内核标识与通道标识的对应关系,确定目标内核的内核标识对应的通道标识,作为目标通道标识;

将目标通道标识的通道确定为第一下行通道。

可选地,转发芯片220采用如下步骤根据报文的五元组信息确定第一上行通道:

转发芯片220对五元组信息进行哈希计算,得到五元组信息对应的哈希值,作为目标哈希值;

转发芯片220根据预设的哈希值与通道标识的对应关系,确定目标哈希值对应的通道,作为第一上行通道。

本申请实施例提供的技术方案中,网络设备中的多核处理器接收转发芯片通过第一上行通道发送的报文,并通过对报文的五元组信息进行哈希计算,确定五元组信息对应的第一下行通道;通过第一下行通道,将经过处理的报文转发至转发芯片。对于五元组信息相同的报文,通过同一上行通道传输至多核处理器,再通过同一下行通道传输至转发芯片,这样,属于同一报文流中的各报文按照转发芯片接收到各报文的顺序依次被转发,进而解决同一报文流中的报文转发过程中乱序的问题。

相应于上述报文转发方法的实施例,本申请实施例还提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,机器可执行指令促使处理器实现上述应用于转发芯片的报文转发方法。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于网络设备的实施例而言,由于其基本相似于报文转发方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

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

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