一种报文转发设备和方法、通信装置及网络系统

文档序号:1878260 发布日期:2021-11-23 浏览:26次 >En<

阅读说明:本技术 一种报文转发设备和方法、通信装置及网络系统 (Message forwarding equipment and method, communication device and network system ) 是由 任江兴 喻径舟 王临春 亚利克斯·塔尔 于 2020-05-19 设计创作,主要内容包括:本申请实施例涉及一种报文转发设备和方法、通信装置以及网络系统。报文转发设备接收的第一报文包括报文数据和标识本地设备出接口的第一标识信息。报文转发设备包括对第一报文进行上行转发处理的上行模块、根据第一标识信息对第一报文进行调度和/或交换的交换模块及根据第一报文获取封装信息的下行模块。上行模块、交换模块和下行模块中两者或三者为并行处理,第一报文经上行模块、交换模块和下行模块处理后获得第二报文。报文转发设备还包括根据封装信息编辑第二报文获得第三报文并将第三报文通过本地设备出接口发给第N跳设备的编辑和发送模块。本申请实施例的报文转发设备和方法、通信装置以及网络系统,提高了并行度,降低了时延。(The embodiment of the application relates to message forwarding equipment and method, a communication device and a network system. The first message received by the message forwarding device includes message data and first identification information for identifying the output interface of the local device. The message forwarding device comprises an uplink module for performing uplink forwarding processing on the first message, a switching module for scheduling and/or switching the first message according to the first identification information, and a downlink module for acquiring encapsulation information according to the first message. Two or three of the uplink module, the switching module and the downlink module are processed in parallel, and the first message is processed by the uplink module, the switching module and the downlink module to obtain a second message. The message forwarding equipment also comprises an editing and sending module which edits the second message according to the encapsulation information to obtain a third message and sends the third message to the Nth hop equipment through the local equipment output interface. The message forwarding equipment and method, the communication device and the network system in the embodiment of the application improve the parallelism and reduce the time delay.)

一种报文转发设备和方法、通信装置及网络系统

技术领域

本申请涉及通信技术领域,尤其涉及一种报文转发设备和方法、通信装置及网络系统。

背景技术

低时延是网络的核心诉求,数据中心网络(Data Center Network,DCN)对低时延的要求非常高,单个转发芯片的时延要求控制在设定时间以内。低时延也将成为下一代转发芯片的核心竞争力。现有技术中,转发芯片采用串行流水线的结构,时延较长,不利于提高报文传输效率。

发明内容

本申请是为了克服现有技术存在的上述问题,提供一种报文转发设备和方法、通信装置以及网络系统,提高了并行度,降低了时延。

为此,本申请的实施例采用如下技术方案:

第一方面,报文转发设备接收的第一报文包括第一标识信息和报文数据,其中,第一标识信息用于标识本地设备出接口,报文转发设备包括:上行模块,用于对第一报文进行上行转发处理;交换模块,用于根据第一标识信息对第一报文进行调度和/或交换;下行模块,用于根据第一报文查询封装信息表获取封装信息;上行模块、交换模块和下行模块中的两者或三者为并行处理,第一报文经上行模块、交换模块和下行模块处理后获得第二报文;编辑和发送模块,用于根据封装信息编辑第二报文获得第三报文,并将第三报文通过第一标识信息标识的本地设备出接口发送给第N跳设备,其中,第三报文包括报文数据,并且N为正整数,N≥1。

可选地,交换模块、下行模块以及编辑和发送模块依次串行连接,其中:上行模块与交换模块和下行模块两者并行连接,且上行模块与编辑和发送模块串行连接;或上行模块与交换模块并行连接,且上行模块与下行模块、编辑和发送模块依次串行连接;或交换模块、上行模块以及编辑和发送模块依次串行连接,上行模块与下行模块并行连接。

可选地,上行模块、下行模块以及编辑和发送模块串行连接,其中:交换模块与上行模块和下行模块并行连接,且交换模块与编辑和发送模块依次串行连接;或上行模块、交换模块以及编辑和发送模块依次串行连接,交换模块与下行模块并行连接。

可选地,上行模块、交换模块以及编辑和发送模块依次串行连接,下行模块与上行模块和交换模块两者并行连接,且下行模块与编辑和发送模块串行连接。

可选地,上行模块、下行模块以及交换模块三者并行连接,且上行模块与编辑和发送模块串行连接,下行模块与编辑和发送模块串行连接,交换模块与编辑和发送模块串行连接。

可选地,上行模块对第一报文进行上行转发处理,包括:第一报文还包括第一目的信息,上行模块根据第一目的信息查询转发信息表获取第二标识信息完成上行转发处理;编辑和发送模块根据封装信息编辑第二报文获得第三报文,包括:将第二标识信息携带在第三报文中;其中,第二标识信息用于标识第N跳设备出接口,以使第N跳设备能够将接收的第三报文编辑后从第三报文中的第二标识信息标识的第N跳设备出接口转发出去。

可选地,第一目的信息包括目的媒体访问控制MAC地址,转发信息表包括媒体访问控制MAC表;或,第一目的信息包括目的互联网协议IP地址,转发信息表包括路由表。

可选地,第一报文还包括第二目的信息,第二目的信息用于第N跳设备识别,以使第N跳设备将接收的第三报文编辑后从第二标识信息标识的第N跳设备出接口转发出去。

可选地,第二目的信息包括以下信息中的一项或多项:目的互联网协议IP地址、目的媒体访问控制MAC地址、第N跳设备的设备标识。

可选地,当N≥2时,第一报文还包括一个或多个第三标识信息,一个或多个第三标识信息用于标识本地设备与第N跳设备之间的一个或多个中间设备的出接口,第三标识信息与中间设备的出接口一一对应。

可选地,第二标识信息为一个或多个,一个或多个第二标识信息用于分别标识一个或多个第N跳设备出接口,第二标识信息与第N跳设备出接口一一对应。

可选地,封装信息表包括地址解析协议ARP表,下行模块根据第一报文的目的互联网协议IP地址和第一标识信息查询地址解析协议ARP表获取封装信息。

可选地,第一报文还包括第一索引信息,下行模块根据第一索引信息查询封装信息表获取封装信息。

可选地,上行模块对第一报文进行上行转发处理,包括:上行模块根据第一报文的第一目的信息查询转发信息表获取第二索引信息;编辑和发送模块根据封装信息编辑第二报文获得第三报文,包括:将第二索引信息携带在第三报文中;其中,第二索引信息用于第N跳设备的下行模块获取相应的封装信息,以使第N跳设备能够根据接收的第三报文中的第二索引信息查找相应的封装信息。

第二方面,本申请实施例还提供了一种网络系统,包括上述第一方面的报文转发设备和第N跳设备。

第三方面,本申请实施例还提供了一种报文转发方法,报文转发方法用于转发第一报文,第一报文包括第一标识信息和报文数据,其中,第一标识信息用于标识本地设备出接口,报文转发方法包括:对第一报文进行上行转发处理;根据第一标识信息对第一报文进行调度和/或交换;根据第一报文查询封装信息表获取封装信息;上行转发处理、调度和/或交换以及获取封装信息步骤中的两者或三者并行处理,并且将第一报文经上行转发处理、调度和/或交换以及获取封装信息的处理后获得第二报文;根据封装信息编辑第二报文获得第三报文,并将第三报文通过第一标识信息标识的本地设备出接口发送给第N跳设备,其中,第三报文包括报文数据,并且N为正整数,N≥1。

可选地,对第一报文进行上行转发处理,包括:第一报文还包括第一目的信息,根据第一目的信息查询转发信息表获取第二标识信息完成上行转发处理;根据封装信息编辑第二报文获得第三报文,包括:将第二标识信息携带在第三报文中;其中,第二标识信息用于标识第N跳设备出接口,以使第N跳设备能够将接收的第三报文编辑后从第三报文中的第二标识信息标识的第N跳设备出接口转发出去。

可选地,第一目的信息包括目的媒体访问控制MAC地址,转发信息表包括媒体访问控制MAC表;或第一目的信息包括目的互联网协议IP地址,转发信息表包括路由表。

可选地,报文转发方法包括:判断第一报文的第一目的信息是否属于本地设备,在判断结果为是的情况下,将第三报文从本地设备出接口发送给第N跳设备。

可选地,判断第一目的信息是否属于本地设备,包括:第一目的信息还包括本地设备标识,判断本地设备标识是否属于本地设备。

可选地,根据第一报文查询封装信息表获取封装信息包括:根据第一报文的目的互联网协议IP地址和第一标识信息查询地址解析协议ARP表获取封装信息;或第一报文还包括第一索引信息,根据第一索引信息查询封装信息表获取封装信息。

可选地,对第一报文进行上行转发处理,包括:根据第一报文的第一目的信息查询转发信息表获取第二索引信息;根据封装信息编辑第二报文获得第三报文,包括:将第二索引信息携带在第三报文中;其中,第二索引信息用于第N跳设备获取封装信息,以使第N跳设备能够根据接收的第三报文中的第二索引信息查找相应的封装信息。

第四方面,本申请实施例还提供了一种报文转发设备,包括处理器、存储器和收发器;收发器,用于接收信号和/或发送信号;存储器,用于存储计算机代码;处理器,用于执行计算机代码,以使报文转发设备执行上述第三方面的方法。

第五方面,本申请实施例还提供了一种通信装置,包括处理器和接口电路;接口电路,用于接收计算机执行指令并传输至处理器;处理器运行计算机执行指令以执行上述第三方面的方法。

第六方面,本申请实施例还提供了一种通信装置,包括处理器和存储器;存储器用于存储计算机执行指令;处理器用于执行存储器所存储的计算机执行指令,以使通信装置执行上述第三方面的方法。

第七方面,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质用于存储计算机执行指令,当计算机执行指令被执行时,使上述第三方面的方法被实现。

第八方面,本申请实施例还提供了一种计算机程序产品,计算机程序产品包括计算机程序,当计算机程序被执行时,使上述第三方面的方法被实现。

在上述技术方案中,由于报文转发设备接收的第一报文中包括第一标识信息和报文数据,其中,第一标识信息用于标识本地设备出接口,使得报文转发设备的上行模块对第一报文进行上行转发处理的步骤、交换模块根据该第一标识信息对第一报文进行调度和/或交换的步骤以及下行模块根据该第一报文查询封装信息表获取封装信息的步骤中的两者或三者能够并行同时处理,即能够提高并行度,从而有效降低了时延,提高了报文传输速度,并且内存冲突时延不再累加到整体时延上,所以无需进行表项复制,进而缓解了内存墙。

本发明的其他特征和优点将在随后的

具体实施方式

部分予以详细说明。

附图说明

下面对实施例或现有技术描述中所需使用的附图作简单地介绍。

图1为报文在多个报文转发设备之间进行转发的场景示意图;

图2为现有技术中报文在图1所示的场景下转发的详细过程图;

图3为现有技术的报文转发设备的结构示意图;

图4为本申请实施例中报文在图1所示的场景下转发的详细过程图;

图5为现有技术的串行处理和本申请实施例的并行处理的对比图;

图6为现有技术的串行处理和本申请实施例的并行处理的详细流程图;

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

图8为本申请第二实施例提供的报文转发方法的流程图;

图9为本申请第三实施例提供的报文转发方法的流程图;

图10为本申请第四实施例提供的报文转发方法的流程图;

图11A-11D为本申请第一实施例提供的报文转发设备的结构示意图;

图12A和12B为本申请第二实施例提供的报文转发设备的结构示意图;

图13为本申请第三实施例提供的报文转发设备的结构示意图;

图14为本申请第四实施例提供的报文转发设备的结构示意图。

具体实施方式

下面将结合附图,对本发明实施例中的技术方案进行描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。

在本说明书的描述中“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。

其中,在本说明书的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。

在本说明书的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。

交换机(又名交换式集线器),是一种用于电(光)信号转发的网络设备,它可以为接入交换机的任意两个网络节点提供独享的电信号通路。交换机的作用可以理解为将一些机器连接起来组成一个局域网。而路由器与交换机有明显区别,它的作用在于连接不同的网段并且找到网络中数据传输最合适的路径。路由器是产生于交换机之后,用以连接网络中各种不同设备,它会根据信道的情况自动选择和设定路由,以最佳路径按前后顺序发送信号。

图1为报文在多个报文转发设备之间进行转发的场景示意图。其中,报文转发设备可为路由器/交换机。如图1所示,报文在设备1、设备2、设备3之间进行转发(参见箭头所示路径)。

图2为现有技术中报文在图1所示的场景下转发的详细过程图。如图2所示,在设备1查路由表获取出接口为Port1,即设备1决策设备1的出接口为Port1,将报文通过Port1转发给设备2,在设备2查路由表获取出接口为Port1,即设备2决策设备2的出接口为Port1,将报文从Port1转发给设备3,在设备3查路由表获取出接口为Port2,即设备3决策设备3的出接口为Port2,将报文从Port2发出。报文的整个转发时延就是设备1的时延、设备2的时延和设备3的时延之和。

图3为现有技术的报文转发设备的结构示意图。如图3所示,传统交换机/路由器的转发芯片采用串行流水线的结构。具体地,报文在转发芯片内需要依次经过上行模块、交换模块、下行模块、编辑模块。其中,在上行模块,根据报文头内容查FIB(路由表)获取本地设备出接口;在交换模块,基于本地设备出接口将报文送给本地设备出接口所在路线,进行相关的调度和/或交换等操作;在下行模块,基于本地设备出接口查找报文的封装信息;在编辑模块,根据封装信息对报文进行编辑,然后将编辑后的报文从本地设备出接口转发出去。

下面结合图2和图3,对报文的转发流程进行详细说明。具体地,可包括如下步骤:

步骤一、报文进入设备2,在设备2的上行模块用IP1查设备2的路由表,参见表1,获取到出接口信息Port1。

路由前缀 出接口信息
IP1 Port1

表1.设备2的路由表

步骤二、在设备2的交换模块,根据出接口信息port1进入队列,进行调度并交换到port1对应的下行模块1;

步骤三、在设备2的下行模块1和编辑模块1,用IP1和Port1查地址解析协议ARP表,参见表2,获取到需要新封装的报文二层头,对报文进行封装并从Port1发出。

查表key 封装信息
IP1&Port1 DMAC2&SMAC2

表2.设备2的地址解析协议ARP表

此处还有另一种方式,在步骤一中的路由表中同时获取Index1,在此处直接用Index1索引到封装信息,参见表3和表4。

路由前缀 出接口信息 Index
IP1 Port1 Index1

表3.设备2的带index的路由表

序号 封装信息
Index1 DMAC2&SMAC2

表4.设备2用index索引封装信息

步骤四、在设备3中,可使用与上述步骤一、步骤二和步骤三类似的方法对报文再次进行转发,然后从设备3的出接口port2发出报文。其中,设备3的路由表参见表5,设备3的ARP表参见表6。

路由前缀 出接口信息
IP1 Port2

表5.设备3的路由表

查表key 封装信息
IP1&Port2 DMAC3&SMAC3

表6.设备3的地址解析协议ARP表

同样,设备3也可以用Index的方式来索引封装信息

在上述设备2和设备3中,上行模块、交换模块和下行模块这三个模块是有依赖关系的,是紧耦合的。具体地,交换模块和下行模块需要根据上行模块处理的结果(Port)进行下一步处理,所以这三个模块是串行执行的,这样总体时延等于这三个模块的时延之和,时延较长,不利于提高报文传输效率。

鉴于此,本申请实施例提供一种报文转发方法,可应用于如图1所示的应用场景。

图4为本申请实施例中报文在图1所示的场景下转发的详细过程图。如图4所示,设备1可根据接收的报文决策设备2的出接口例如为Port3,并将设备2的出接口信息携带在报文中转发给设备2,具体地,设备2接收的报文可包括报文头DMAC1、SMAC1、IP1和OP=Port3以及Data(报文数据)。由于设备2接收的报文包括设备2的出接口信息Port3,这样在设备2上可根据出接口信息进行交换路线和查询封装信息等处理,同时还可进行上行转发处理,即实现了并行处理,提高了并行度,从而降低了时延。

继续参考图4,设备2还可决策下游设备/第N跳设备(下N跳设备)的出接口,其中,N为正整数,N≥1,使得下游设备/第N跳设备接收该报文后可根据报文中包括的出接口信息进行交换和查询封装信息,同时可进行上行转发处理,这样下游设备/第N跳设备能够实现并行处理。例如,设备2决策设备3(第1跳设备)的出接口例如为Port6,此时设备2发出的报文可包括DMAC2、SMAC2、IP1和OP=Port6以及报文数据Data。

另外,需说明的是,由于接收报文的第一台设备(设备1)没有上游设备提供当前的出接口信息,所以第一台设备可以按照传统流程获取出接口信息。例如,在设备1中根据报文的目的互联网协议IP地址查询路由表获取当前设备的出接口信息(如Prot1),同时获取下游设备的出接口信息(如设备2的出接口Port3)。从第二台设备(设备2)开始,可执行本申请实施例的报文转发方法。

图5为现有技术的串行处理和本申请实施例的并行处理的对比图。如图5所示,串行处理时,设备1的转发和设备2的查表串行执行,设备2的转发和设备3的查表串行执行;本申请实施例并行处理时,设备1的转发和设备2的查表可在设备1内并行执行,设备2的转发和设备3的查表可在设备2内并行执行,设备3的转发和设备4的查表可在设备3内并行执行。其中,“转发”可以是指调度和/或交换以及获取封装信息等操作中的至少一者,而“查表”可以是指查表获取下游设备/第N跳设备(如第1跳设备)的出接口信息等操作。

也就是说,在本申请中,将设备内的上行处理与交换、下行处理解除依赖关系,进而可以并行处理。具体地,将上行流程的转发决策行为与交换、下行封装解耦,将转发决策(即用于决定出接口的查表操作)交由上游设备完成,决策信息随报文携带进当前设备,当前设备根据决策信息进行交换和下行封装(即转发操作),同时并行完成下游设备的转发决策(即用于决定出接口的查表操作)。

图6为现有技术的串行处理和本申请实施例的并行处理的详细流程图。如图6所示,已有串行转发架构中,先做转发决策,再做实施,入口和出口处理流程必须串行。以设备B为例进行说明,设备B在接收设备A转发的报文后,先进行其他上行处理,然后查表获取本地出接口,接着根据本地出接口进行调度、流控、交换,再进行下行封装处理等操作后,将报文转发给设备C。其中,设备A和设备C对报文的处理过程与设备B类似。而在本申请的并行转发架构中,在一个网络节点中,上行流程与排队调度、下行流程是解耦的,没有依赖关系,可以同时并行执行,以降低流水线时延。以设备B为例进行说明,设备A转发给设备B的报文包括设备B的出接口信息,报文进入设备B,携带了上游(设备A)查到的当前设备B的出接口信息。同时开始并行执行以下步骤一和步骤二:

步骤一、设备B根据报文携带的出接口信息进行入队调度、流控、交换,并查找新的封装信息;

步骤二、可进行其他上行处理和查表获取设备C的出接口;

步骤三、将上述步骤一和步骤二的处理结果进行汇聚,对报文进行修改,将步骤一查找到的新的封装信息和步骤二查找到的设备C的出接口信息封装在报文中,从当前设备B的出接口发出。

也就是说,在本申请的并行转架构中,出口决策(上游设备执行)和决策的实施(当前设备执行)分离,每个路由节点的路由表直接决策出第1跳/第N跳设备的出接口信息,并将出接口相关信息携带在报文封装头中。由于进入设备的报文已经携带了出接口信息,可以直接进入排队调度并进行出口封装,同时并行的执行查找当前设备的第1跳/第N跳设备出接口等操作。

下面参考图7-图10对本申请实施例提供的报文转发方法进行详细说明。其中,本申请实施例的报文转发方法用于转发第一报文,第一报文包括第一标识信息和报文数据,其中,第一标识信息用于标识本地设备出接口。

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

步骤S100,对第一报文进行上行转发处理。

步骤S102,根据第一标识信息对第一报文进行调度和/或交换。其中,根据第一标识信息对第一报文进行调度可包括何时将报文从本地设备出接口发走,而根据第一标识信息进行交换可包括使报文进入本地设备出接口所在路线。

步骤S104,根据第一报文查询封装信息表获取封装信息。

其中,步骤S100的上行转发处理、步骤S102的调度和/或交换以及步骤S104的获取封装信息中的两者或三者并行处理。本申请的报文转发方法还包括步骤S106,将第一报文上行转发处理、调度和/或交换以及获取封装信息的处理后可获得第二报文,根据封装信息编辑第二报文获得第三报文,并将第三报文通过第一标识信息标识的本地设备出接口发送给第N跳设备,其中,第三报文包括报文数据,并且N为正整数,N≥1。

由于本地设备直接决策出第N跳设备的出接口信息,并将出接口信息(即第N跳设备出接口)携带在第三报文的封装头中,这样当第N跳设备接收第三报文时可对第三报文进行上行转发处理,同时可根据第N跳设备出接口进行调度和/或交换,实现了转发决策和出口决策的分离处理。换句话说,相当于将第N跳设备的出接口向外传播N跳,在每个设备周围形成半径为N的虚拟路由器,上游设备的路由表可直接获取第N跳设备的出接口。

另外,需说明的是,步骤S100的上行转发处理、步骤S102的调度和/或交换以及步骤S104的获取封装信息可仅获取第一报文中的相应信息即可进行,例如,在步骤S102,获取第一报文中的第一标识信息来对第一报文进行调度和/或交换,而第一报文中的报文数据可直接进入第三报文。或者,第一报文中的报文数据可以经由步骤S100的上行转发处理、步骤S102的调度和/或交换以及步骤S104的获取封装信息步骤中的任一个后,再进入第三报文。

当第一报文包括第一目的信息时,对第一报文进行上行转发处理可包括根据第一目的信息查询转发信息表获取第二标识信息完成上行转发处理,根据封装信息编辑第二报文获得第三报文包括将第二标识信息携带在第三报文中。其中,第二标识信息用于标识第N跳设备出接口,以使第N跳设备能够将接收的第三报文编辑后从第三报文中的第二标识信息标识的第N跳设备出接口转发出去。其中,第二标识信息可为一个或多个,一个或多个第二标识信息用于分别标识一个或多个第N跳设备出接口,第二标识信息与第N跳设备出接口一一对应。另外,当N≥2时,第一报文还可包括一个或多个第三标识信息,一个或多个第三标识信息用于标识本地设备与第N跳设备之间的一个或多个中间设备的出接口,第三标识信息与中间设备的出接口一一对应。

进一步地,转发信息表可包括第二标识信息,此时根据第一目的信息可直接索引获取第二标识信息;或者,转发信息表可包括第一目的信息和第二标识信息,这样根据第一目的信息查询与第一目的信息对应的第二标识信息,即可获取第二标识信息。

并且,第一目的信息可包括目的媒体访问控制MAC地址,此时转发信息表可包括媒体访问控制MAC表,这样可根据目的媒体访问控制MAC地址查询媒体访问控制MAC表获取第二标识信息;或者,第一目的信息可包括目的互联网协议IP地址,此时转发信息表可包括路由表,这样可根据目的互联网协议IP地址查询路由表获取第二标识信息。

可选地,根据第一报文查询封装信息表获取封装信息可包括根据第一报文的目的互联网协议IP地址和第一标识信息查询地址解析协议ARP表获取封装信息。

参考图4,具体描述如下:

步骤一、报文进入设备1,用IP1查路由表获取本地出接口信息Port1和设备2的出接口信息port3。其中,设备1的路由表参见表7。

路由前缀 本地出接口信息 下游设备出接口信息
IP1 Port1 Port3

表7.设备1的路由表

步骤二,设备1将Port3封装在报文中,通过本地出接口Port1发给设备2。此时,设备2接收的第一报文可包括目的媒体访问控制MAC地址(DMAC1)、源MAC地址(SMAC1)、目的互联网协议IP地址(IP1)、用于标识本地设备出接口的第一标识信息(例如Port3)以及报文数据(Data),如表8所示。

DMAC1 SMAC1 IP1 Port3 Data

表8.设备1发给设备2的报文内容

步骤三、设备2收到第一报文,解析第一报文携带的IP1和Port3字段;同时并行执行以下步骤四和步骤五。

步骤四、设备2根据Port3进行入队调度、流控,并根据Port3查找新MAC头封装信息DMAC2、SMAC2;

查表key 封装信息
IP1&Port3 DMAC2&SMAC2

表9.设备2的MAC封装信息表

步骤五、同时,在设备2用IP1查路由表获取到第1跳设备如设备3的出接口信息Port6;

路由前缀 下游设备出接口信息
IP1 Port6

表10.设备2的路由表

步骤六、将步骤四和步骤五的处理结果进行汇聚,对报文进行修改,即将步骤四得到的DMAC2、SMAC2和步骤五得到的Port6封装在报文中,并从设备2的Port3发给设备3。具体地,设备2发给设备3的第三报文可包括封装信息DMAC2和SMAC2、目的互联网协议IP地址(IP1)、用于标识第N跳设备出接口的第二标识信息(例如Port6)以及报文数据(Data),如表11所示。

DMAC2 SMAC2 IP1 Port6 Data

表11.设备2发给设备3的报文内容

步骤七、设备3收到报文,解析报文携带的IP1和Port6,重复执行上述步骤四、步骤五和步骤六。其中,设备3的路由表可如表12所示,设备3的MAC封装信息表可如表13所示。

路由前缀 下游设备出接口信息
IP1 Port7

表12.设备3的路由表

查表key 封装信息
IP1&port6 DMAC3&SMAC3

表13.设备3的MAC封装信息表

需说明的是,以上步骤流程,只是典型流程。真实流程会包含更多操作,并行情况与典型流程相同。

上面对当前设备决定第1跳设备的出接口进行了描述。进一步地,可以将范围进行扩大,即当前设备在上行转发处理中通过查路由表可获取第N跳设备的出接口,其中,N≥2。可选地,为了使第N跳设备能够将报文从第二标识信息标识的出接口转发出去,第一报文还可包括第二目的信息,第二目的信息用于第N跳设备识别,以使第N跳设备将接收的第三报文编辑后从第二标识信息标识的第N跳设备出接口转发出去。

其中,第二目的信息可包括以下信息中的一项或多项:目的互联网协议IP地址、目的媒体访问控制MAC地址和第N跳设备的设备标识。可替代地,为了识别第N跳设备,报文中可包括类似于“Counter”字段,逐跳-1,如果该字段减少到一个第N跳设备对应的预设值,比如0,就说明是第N跳设备。或者报文也可包括“offset”字段,逐跳+1,获取offset对应的标签,标签中携带是否是第N跳的标志位。

下面以N=2且第二目的信息为设备标识如设备3为例进行说明,设备1的路由表可如表14所示。

路由前缀 本地出接口信息 下游设备出接口信息
IP1 Port1 [email protected]设备3

表14.设备1的路由表

此时,设备1在上行转发处理中通过查路由表可获取第2跳设备(设备3)的出接口信息,并将出接口信息封进报文。设备1发给设备2的报文内容如表15所示。

DMAC1 SMAC1 IP1 [email protected]设备3 Data

表15.设备1发给设备2的报文内容

设备2根据报文中携带的[email protected]设备3进行标签转发;

设备3收到报文后,可并行执行上行转发处理、调度和/或交换以及获取封装信息步骤中的两者或三者,同样在设备3中也可获取设备3的第2跳设备的出接口信息。

除了上面提到的通过目的互联网协议IP地址和第一标识信息查询地址解析协议ARP表获取封装信息的方式外,还可通过索引的方式获取封装信息,具体地,此时第一报文还可包括第一索引信息Index1,根据第一报文查询封装信息表获取封装信息可包括根据第一索引信息Index1查询封装信息表获取封装信息。

可选地,对第一报文进行上行转发处理还可包括根据第一报文的第一目的信息查询转发信息表获取第二索引信息Index2,根据封装信息编辑第二报文获得第三报文包括将第二索引信息携带在第三报文中。其中,第二索引信息Index2用于第N跳设备获取封装信息,以使第N跳设备能够根据接收的第三报文中的第二索引信息Index2查找相应的封装信息。

其中,转发信息表可包括第二索引信息Index2,这样根据第一目的信息可直接索引获取第二索引信息Index2;或者,转发信息表可包括第一目的信息和第二索引信息Index2,这样根据第一目的信息查询与第一目的信息对应的第二索引信息,即可获取第二索引信息Index2。

这样,在图4中也可以通过Index的方式直接索引到MAC封装信息,如此,需要上游设备将Index也封装在报文中进行携带。此时,设备2接收的设备1转发的第一报文可包括目的媒体访问控制MAC地址(DMAC1)、源MAC地址(SMAC1)、目的互联网协议IP地址(IP1)、用于标识本地设备出接口的第一标识信息(例如Port3)、第一索引信息Index1以及报文数据(Data),如表16所示。

DMAC1 SMAC1 IP1 Port3 Index1 Data

表16.设备2接收的设备1转发的报文内容

设备2查的路由表可如表17所示,设备2查的封装信息表可如表18所示。

路由前缀 下游设备出接口信息 下游设备的MAC封装信息Index
IP1 Port6 Index1

表17.设备2的路由表

序号 封装信息
Index1 DMAC2&SMAC2

表18.设备2的MAC封装信息表

设备2发给设备3的第三报文可包括封装信息DMAC2和SMAC2、目的互联网协议IP地址(IP1)、用于标识第N跳设备出接口的第二标识信息(例如Port6)、第二索引信息Index2以及报文数据(Data),如表19所示。

DMAC2 SMAC2 IP1 Port6 Index2 Data

表19.设备2发给设备3的报文内容

设备3查的封装信息表可如表20所示。

序号 封装信息
Index2 DMAC3&SMAC3

表20.设备3的MAC封装信息表

当网络系统中存在多个报文转发设备时,在根据第一目的信息查询转发信息表获取第二标识信息的方案中,将第三报文从第一标识信息标识的本地设备出接口发送前,可选地,报文转发方法包括判断第一报文的第一目的信息是否属于本地设备,在判断结果为是的情况下,将第三报文从本地设备出接口发送给第N跳设备。

其中,第一目的信息可为上面提到的目的媒体访问控制MAC地址或目的互联网协议IP地址。

或者,第一目的信息还可包括本地设备标识,判断第一目的信息是否属于本地设备包括判断本地设备标识是否属于本地设备。此时,图4中的设备2接收的第一报文可包括目的媒体访问控制MAC地址(DMAC)、源MAC地址(SMAC)、目的互联网协议IP地址(IP1)、用于标识本地设备出接口的第一标识信息(例如Port3)、本地设备标识(设备2)、第一索引信息Index1以及报文数据(Data),如表21所示。

DMAC1 SMAC1 IP1 [email protected]设备2 Index1 Data

表21.设备2接收的设备1转发的报文内容

相应地,第三报文也可包括第N跳设备标识(如设备3),如表22所示。这样在第N跳设备接收第三报文后,可先判断第N跳设备标识是否属于第N跳设备,若判断结果为是,则第三报文再经过第N跳设备处理和编辑后,由第N跳设备出接口转发出去。

DMAC2 SMAC2 IP1 [email protected]设备3 Index2 Data

表22.设备2发给设备3的报文内容

继续参考图7,在图7所示的第一实施例的报文转发方法中,步骤S100的上行转发处理与步骤S102的调度和/或交换及步骤S104的获取封装信息分两路进行。其中,步骤S102的调度和/或交换及步骤S104的获取封装信息串行执行。此时,步骤S100的上行转发处理可与步骤S102的调度和/或交换并行/同时进行;或者,步骤S100的上行转发处理可与步骤S104的获取封装信息并行/同时进行;或者,步骤S100的上行转发处理可与步骤S102的调度和/或交换和步骤S104的获取封装信息两者并行/同时进行。

图8是本申请第二实施例提供的报文转发方法的流程图。与图7所示的第一实施例的报文转发方法的不同之处在于,在图8所示的第二实施例的报文转发方法中,步骤S102的调度和/或交换与步骤S100的上行转发处理及步骤S104的获取封装信息分两路进行。其中,步骤S100的上行转发处理及步骤S104的获取封装信息串行执行。此时,步骤S102的调度和/或交换可与步骤S100的上行转发处理并行/同时进行;或者,步骤S102的调度和/或交换可与步骤S104的获取封装信息并行/同时进行;或者,步骤S102的调度和/或交换可与步骤S100的上行转发处理和步骤S104的获取封装信息两者并行/同时进行。

图9是本申请第三实施例提供的报文转发方法的流程图。与图7所示的第一实施例的报文转发方法和图8所示的第二实施例的报文转发方法的不同之处在于,在图9所示的第三实施例的报文转发方法中,步骤S104的获取封装信息与步骤S100的上行转发处理和步骤S102的调度和/或交换分两路进行。其中,步骤S100的上行转发处理和步骤S102的调度和/或交换串行执行。此时,步骤S104的获取封装信息可与步骤S100的上行转发处理并行/同时进行;或者,步骤S104的获取封装信息可与步骤S102的调度和/或交换并行/同时进行;或者,步骤S104的获取封装信息可与步骤S100的上行转发处理和步骤S102的调度和/或交换两者并行/同时进行。

图10是本申请第四实施例提供的报文转发方法的流程图。与图7-图9所示的本申请实施例的报文转发方法的不同之处在于,在图10所示的第四实施例的报文转发方法中,步骤S100的上行转发处理、步骤S102的调度和/或交换以及步骤S104的获取封装信息分三路并行同时处理。也就是说,由于第一报文已经携带了用于标识本地设备出接口的第一标识信息,因此可以直接进入排队调度,并可根据第一标识信息获得封装信息,同时并行地执行第N跳设备出接口的查找等上行处理。

需说明的是,在第一实施例的报文转发方法中,由于步骤S102与步骤S104串行执行,因此步骤S102可根据第一标识信息进行交换或进行交换和调度。具体地,在步骤102处先根据第一标识信息进行交换,使报文进入本地设备出接口所在的路线,然后在步骤S104处,根据第一报文查询封装信息表获取封装信息,最后在下面将介绍的步骤S106中根据封装信息编辑后由本地设备出接口转发出去。例如,第一报文中的第一标识信息标识的本地设备(如图4中的设备2)出接口为Port3,当第一报文通过其他出接口进入本地设备后,根据第一标识信息进行交换,进入Port3所在的路线,再根据第一报文查询封装信息表获取封装信息,最后在下面将介绍的步骤S106中根据封装信息进行封装后获得第三报文,并从Port3转发出去。此时,步骤S100的上行转发处理可与交换同时进行。可选地,在步骤102处还可根据第一标识信息进行调度,以决定报文何时从Port3转发出去。而在第二、第三和第四实施例的报文转发方法中,步骤S102与步骤S104的执行不存在前后关系,因此步骤S102可根据第一标识信息仅进行调度,以决定第三报文在下面将介绍的步骤S106中何时从本地设备出接口转发出去。

在本申请的上述实施例中,步骤S100的上行转发处理、步骤S102的调度和/或交换以及步骤S104的获取封装信息中的两者或三者并行处理,即将设备内的上行处理和交换、下行处理解除依赖关系,进而可以并行处理,与将步骤S100的上行转发处理、步骤S102的调度和/或交换以及步骤S104的获取封装信息三者串行执行时网络时延为三者之和的方案相比,本申请的方案能够有效降低时延,提高了报文传输效率,并且内存冲突时延不再累加到整体时延上,所以无需进行表项复制,进而缓解了内存墙。

基于与前述各个方法实施例相同的构思,本申请实施例还提供一种报文转发设备。下面参考图11A-图11D、图12A和图12B以及图13、图14进行说明。

图11A-图11D为本申请第一实施例提供的报文转发设备的结构示意图。该报文转发设备接收的第一报文包括第一标识信息和报文数据,其中,第一标识信息用于标识本地设备出接口。如图11A-图11D所示,报文转发设备包括用于对第一报文进行上行转发处理的上行模块、用于根据第一标识信息对第一报文进行调度和/或交换的交换模块以及用于根据第一报文查询封装信息表获取封装信息的下行模块。并且,上行模块、交换模块和下行模块中的两者或三者为并行处理,第一报文经上行模块、交换模块和下行模块处理后获得第二报文。报文转发设备还包括编辑和发送模块,编辑和发送模块用于根据封装信息编辑第二报文获得第三报文,并将第三报文通过第一标识信息标识的本地设备出接口发送给第N跳设备,其中,第三报文包括报文数据,并且N为正整数,N≥1。

在图11A-图11D所示的第一实施例的报文转发设备中,交换模块、下行模块以及编辑和发送模块依次串行连接,其中:上行模块与交换模块和下行模块两者并行连接,且上行模块与编辑和发送模块串行连接,如图11A和图11B所示;或者,上行模块与交换模块并行连接,且上行模块与下行模块、编辑和发送模块依次串行连接,如图11C所示;或者,交换模块、上行模块以及编辑和发送模块依次串行连接,上行模块与下行模块并行连接,如图11D所示。也就是说,下行模块串行连接在交换模块与编辑和发送模块之间,上行模块与交换模块和下行模块两者并联,此时,上行模块可与交换模块并行同时处理,或者上行模块可与下行模块并行同时处理,或者上行模块可与交换模块和下行模块两者并行同时处理。可选地,上行模块也可仅与交换模块并联,以便与交换模块并行同时处理,或者上行模块也可仅与下行模块并联,以便与下行模块并行同时处理。

另外,在上述实施例的报文转发设备中,第一报文还可包括第一目的信息,上行模块对第一报文进行上行转发处理可包括根据第一目的信息查询转发信息表获取第二标识信息,编辑和发送模块根据封装信息编辑第二报文获得第三报文包括将第二标识信息携带在第三报文中。其中,第二标识信息用于标识第N跳设备出接口,以使第N跳设备能够将接收的第三报文编辑后从第三报文中的第二标识信息标识的第N跳设备出接口转发出去。其中,第一目的信息可包括目的媒体访问控制MAC地址,此时转发信息表可包括媒体访问控制MAC表。或者,第一目的信息可包括目的互联网协议IP地址,此时,转发信息表可包括路由表。

进一步地,封装信息的获得可以有但不限于以下两种方式:1)封装信息表包括地址解析协议ARP表,下行模块根据第一报文的目的互联网协议IP地址和第一标识信息查询地址解析协议ARP表获取封装信息。或者,2)第一报文还包括第一索引信息,下行模块根据第一索引信息查询封装信息表获取封装信息。

可选地,上行模块对第一报文进行上行转发处理包括根据第一报文的第一目的信息查询转发信息表获取第二索引信息,编辑和发送模块根据封装信息编辑第二报文获得第三报文包括将第二索引信息携带在第三报文中。其中,第二索引信息用于第N跳设备的下行模块获取相应的封装信息,以使第N跳设备能够根据接收的第三报文中的第二索引信息查找相应的封装信息。

图12A和图12B为本申请第二实施例提供的报文转发设备的结构示意图。与图11A-图11D所示的第一实施例的报文转发设备的不同之处在于,在图12A和图12B所示的第二实施例的报文转发设备中,上行模块、下行模块以及编辑和发送模块串行连接,其中:交换模块与上行模块和下行模块并行连接,且交换模块与编辑和发送模块依次串行连接,如图12A所示;或者,上行模块、交换模块以及编辑和发送模块依次串行连接,交换模块与下行模块并行连接,如图12B所述。也就是说,下行模块可串行连接在上行模块与编辑和发送模块之间,交换模块可与上行模块和下行模块两者并联,此时,交换模块可与上行模块并行同时处理,或者交换模块可与下行模块并行同时处理,或者交换模块可与上行模块和下行模块两者并行同时处理。可选地,交换模块也可仅与下行模块并联,以便与下行模块并行同时处理。

图13为本申请第三实施例提供的报文转发设备的结构示意图。与图11所示的第一实施例的报文转发设备和图12A和图12B所示的第二实施例的报文转发设备的不同之处在于,在图13所示的第二实施例的报文转发设备中,上行模块、交换模块以及编辑和发送模块依次串行连接,下行模块与上行模块和交换模块两者并行连接,且下行模块与编辑和发送模块串行连接。也就是说,交换模块串行连接在上行模块与编辑和发送模块之间,下行模块与上行模块和交换模块两者并联,此时,下行模块可与上行模块并行同时处理,或者下行模块可与交换模块并行同时处理,或者下行模块可与上行模块和交换模块两者并行同时处理。

图14为本申请第四实施例提供的报文转发设备的结构示意图。如图14所示,上行模块、下行模块以及交换模块三者并行连接,且上行模块与编辑和发送模块串行连接,下行模块与编辑和发送模块串行连接,交换模块与编辑和发送模块串行连接。也就是说,上行模块、交换模块和下行模块三者并行连接并与编辑和发送模块串行连接。而前面实施例中,上行模块、交换模块和下行模块分两路并行执行。另外,在第一实施例中交换模块与下行模块是串行,在第三实施例中上行模块与交换模块是串行,其实交换模块与上行模块和下行模块之间也是无依赖的,可以进一步并行起来,如第二实施例和第四实施例的报文转发设备所示。

综上所述,现有技术的报文转发设备中,交换模块和下行模块需要用到的出接口信息是当前设备的上行模块查路由表获得的,所以交换模块/下行模块和上行模块是有依赖关系的,无法并行,导致时延比较大。在本申请的并行的查转分离转发方案中,每一个路由节点的路由表直接决策出下游设备的出接口信息,并将出接口信息携带在报文封装头中,网络设备收到上述报文后,同时并行执行以下两个步骤:1、根据报文头中的出接口信息进行入队、调度、下行封装等其他转发操作;2、用目的地址查路由表获取第1跳的出接口信息。然后对步骤1和步骤2并行执行的结果汇总,统一修改报文后发给第1跳设备。另外,报文可携带Index,用于给第1跳设备查询封装信息表。可选地,每个路由节点还可以直接决策出下面第N跳设备的出接口信息。当前设备到N跳设备之间可采用标签转发,第N跳设备按照报文携带的出接口信息进行转发,使得第N跳设备的下行的封装流程可以和入队、调度等进一步并行同时处理。

也就是说,本申请将当前设备的出接口信息交由上游设备获取,而当前设备的交换模块/下行模块的处理与上行模块查路由表获得下游设备出接口信息的处理之间并无依赖关系,可以并行进行,从而降低了时延,内存冲突时延不再累加到整体时延上,所以无需进行表项复制,进而缓解内存墙。

本申请实施例还提供了一种网络系统,包括上述实施例的报文转发设备和第N跳设备。

另外,本申请实施例还提供一种报文转发设备,该报文转发设备包括处理器、存储器和收发器。其中,收发器用于接收信号和/或发送信号,存储器用于存储计算机代码,处理器用于执行计算机代码,以使报文转发设备执行上述的报文转发方法。

并且,本申请实施例还提供一种通信装置,包括处理器和接口电路。其中,所述接口电路接收计算机执行指令并传输至所述处理器,而所述处理器运行所述计算机执行指令以执行上述的报文转发方法。

进一步地,本申请实施例还提供一种通信装置,包括处理器和存储器。其中,所述存储器存储计算机执行指令,而所述处理器用于执行所述存储器所存储的计算机执行指令,以使所述通信装置执行上述的报文转发方法。

可以理解的是,本申请的实施例中的处理器可以是中央处理单元(centralprocessing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。

本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable rom,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。

可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。

27页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种实现端口自适应的全线速分布交换装置的配置方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!