一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种报文传输方法及相关装置与流程

2023-02-18 18:35:57 来源:中国专利 TAG:


1.本技术涉及通信技术领域,尤其涉及一种报文传输方法及相关装置。


背景技术:

2.目前,高性能计算以及大数据分析等领域的应用不断快速发展,这些应用往往具有高并发、低时延的存储输入输出(input/output,io)要求。现有的传输控制协议/网际协议(transmission control protocol/internet protocol,tcp/ip)越来越不能满足这些应用的需求。这主要体现在tcp/ip需要基于cpu来实现数据的传输,处理延时过大,导致数据传输之间具有较大的延时。
3.远端直接内存访问(remote direct memory access,rdma)技术的出现很好地满足了上述应用高并发、低时延的存储io要求。rdma能够通过网络将数据从一个系统快速移动到远程系统的存储器中,而不对操作系统造成任何影响。rdma消除了外部存储器复制和文本交换操作,因而能解放内存带宽和cpu周期,提高数据传输的效率。目前,高性能计算以及人工智能等领域的应用都在广泛使用rdma传输协议来实现数据的传输。
4.然而,目前rdma数据的传输是承载在应用所建立的连接之上,一旦应用在两个设备之间建立了连接,这两个设备之间的rdma数据都会基于相同的转发路径在网络中传输,容易造成网络负载不均,限制了网络带宽资源的合理利用。


技术实现要素:

5.本技术提供了一种报文传输方法,通过在报文中携带传输标识来标记需要按序传输的报文,且网络设备基于报文中的传输标识来选择报文的转发路径。在保证了需要按序传输的报文能够通过相同的转发路径被转发的同时,使得具有不同传输标识的报文能够通过不同的转发路径被转发,实现网络负载均衡,提高了网络带宽资源的利用率。
6.本技术第一方面提供一种报文传输方法。第一网络设备获取rdma报文,所述rdma报文包括传输标识,其中,具有相同传输标识的rdma报文需要按序传输。第一网络设备获取到的rdma报文是用于传输rdma数据的报文,且所述rdma报文中包括传输标识以及rdma数据。其中,rdma数据是源服务器需要向目的服务器发送的数据。
7.然后,所述第一网络设备根据所述传输标识以及所述rdma报文的目的地址确定目标转发路径。其中,所述rdma报文的目的地址用于确定能够用于转发所述rdma报文的转发路径,所述rdma报文中的传输标识则用于在多条能够用于转发所述rdma报文的转发路径中选择目标转发路径。
8.最后,所述第一网络设备通过所述目标转发路径转发所述rdma报文。
9.本技术中,通过在rdma报文中携带传输标识来标记需要按序传输的报文,且网络设备基于rdma报文中的传输标识来选择rdma报文的转发路径。在保证了需要按序传输的rdma报文能够通过相同的转发路径被转发的同时,使得具有不同传输标识的rdma报文能够通过不同的转发路径被转发,实现网络负载均衡,提高了网络带宽资源的利用率。
10.可选的,所述第一网络设备根据所述rdma报文的目的地址,确定能够用于转发所述rdma报文的多条转发路径;所述第一网络设备根据所述传输标识,从所述多条转发路径中确定所述目标转发路径。
11.其中,所述多条转发路径中的每一条转发路径均通过所述第一网络设备中的一个出端口来标识。所述第一网络设备可以根据rdma报文的目的地址查找路由表,从而确定能够用于转发所述rdma报文的多个出端口,所述多个出端口分别与所述多条转发路径对应。所述第一网络设备可以根据所述传输标识,从多个出端口中选择目标出端口,并通过目标出端口转发所述rdma报文。
12.可选的,所述第一网络设备根据所述传输标识,以及所述rdma报文的源地址、目的地址、源端口号、目的端口号和协议号中的一种或多种,从所述多条转发路径中确定所述目标转发路径。
13.也就是说,所述第一网络设备可以是将所述传输标识以及所述rdma报文的源地址、目的地址、源端口号、目的端口号和协议号中的一种或多种共同作为哈希因子,计算该多个哈希因子的哈希值,从而根据计算得到的哈希值从所述多条转发路径中确定所述目标转发路径。
14.可选的,所述第一网络设备依次获取多个rdma报文,所述多个rdma报文均包括所述传输标识,且所述多个rdma报文的目的地址相同;所述第一网络设备通过所述目标转发路径,依次转发所述多个rdma报文。
15.可选的,所述传输标识位于所述rdma报文的rdma头中。所述rdma头可以是指所述rdma报文的标准报文头,例如所述rdma报文的基本传输头(base transport header,bth)。
16.可选的,所述传输标识位于所述rdma头中的一个或多个预留字段中。在标准协议中,所述rdma头中包括一个或多个预留字段,所述传输标识可以通过所述一个或多个预留字段中的值来表示。
17.通过所述rdma头中的一个或多个预留字段来表示传输标识,能够减少对现有技术的改动,提高方案的可实现性。
18.可选的,所述传输标识位于所述rdma头中的扩展字段中。
19.可选的,所述rdma报文包括基于融合以太网的rdma roce报文、iwarp报文或无限带宽infiniband报文。
20.可选的,当获取远程内存直接访问rdma报文时,所述第一网络设备获取应用层发送的消息;所述第一网络设备根据所述消息生成至少一个rdma报文,所述至少一个rdma报文包括相同的传输标识。
21.可选的,所述第一网络设备接收第二网络设备发送的所述rdma报文,所述第二网络设备为第一网络设备的上游设备。
22.本技术第二方面提供一种网络设备,包括:获取单元、处理单元和发送单元;所述获取单元,用于获取rdma报文,所述rdma报文包括传输标识,其中,具有相同传输标识的rdma报文需要按序传输;所述处理单元,用于根据所述传输标识以及所述rdma报文的目的地址确定目标转发路径;所述发送单元,用于通过所述目标转发路径转发所述rdma报文。
23.可选的,所述处理单元,还用于:根据所述rdma报文的目的地址,确定能够用于转发所述rdma报文的多条转发路径;根据所述传输标识,从所述多条转发路径中确定所述目
标转发路径。
24.可选的,所述处理单元,具体用于根据所述传输标识,以及所述rdma报文的源地址、目的地址、源端口号、目的端口号和协议号中的一种或多种,从所述多条转发路径中确定所述目标转发路径。
25.可选的,所述获取单元,还用于依次获取多个rdma报文,所述多个rdma报文均包括所述传输标识,且所述多个rdma报文的目的地址相同;所述处理单元,还用于通过所述目标转发路径,依次转发所述多个rdma报文。
26.可选的,所述传输标识位于所述rdma报文的rdma头中。
27.可选的,所述传输标识位于所述rdma头中的一个或多个预留字段中。
28.可选的,所述传输标识位于所述rdma头中的扩展字段中。
29.可选的,所述rdma报文包括基于融合以太网的rdmaroce报文、iwarp报文或无限带宽infiniband报文。
30.可选的,所述获取单元,用于获取应用层发送的消息;所述处理单元,用于根据所述消息生成至少一个rdma报文,所述至少一个rdma报文包括相同的传输标识。
31.可选的,所述获取单元,用于接收第二网络设备发送的所述rdma报文,所述第二网络设备为第一网络设备的上游设备。
32.本技术第三方面提供一种网络设备,该网络设备包括:处理器,用于使得网络设备实现如前述第一方面或第一方面的任一可能的实现方式中描述的方法。该设备还可以包括存储器,存储器与处理器耦合,处理器执行存储器中存储的指令时,可以使得网络设备实现前述第一方面任一种可能的实现方式描述的方法。该设备还可以包括通信接口,通信接口用于该装置与其它设备通信,示例性的,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口。
33.本技术中存储器中的指令可以预先存储也可以在使用该网络设备时从互联网下载后存储,本技术对于存储器中指令的来源不进行具体限定。本技术中的耦合是装置、单元或模块之间的间接耦合或连接,其可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。
34.本技术第四方面提供一种计算机存储介质,该计算机存储介质可以是非易失性的;该计算机存储介质中存储有计算机可读指令,当该计算机可读指令被处理器执行时实现第一方面或第一方面的任一可能的实现方式中描述的方法。
35.本技术第五方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如第一方面或第一方面的任一可能的实现方式中描述的方法。
36.本技术第六方面提供了一种网络系统,该网络系统包括多个如上述第二方面或第三方面的网络设备。
37.上述第二方面至第六方面提供的方案,用于实现或配合实现上述第一方面提供的方法,因此可以与第一方面达到相同或相应的有益效果,此处不再进行赘述。
附图说明
38.图1为本技术实施例提供的报文传输方法的应用架构示意图;
39.图2为本技术实施例提供的一种报文传输方法200的流程示意图;
40.图3为本技术实施例提供的一种rdma报文的格式示意图;
41.图4为本技术实施例提供的一种rdma头的格式示意图;
42.图5为本技术实施例提供的源网络设备根据消息生成报文的示意图;
43.图6为本技术实施例提供的一种报文传输过程的示意图;
44.图7为本技术实施例提供的另一种报文传输过程的示意图;
45.图8为本技术实施例提供的一种网络设备800的结构示意图;
46.图9为本技术实施例提供的一种网络设备900的结构示意图;
47.图10为本技术实施例提供的一种网络设备1000的结构示意图。
具体实施方式
48.为了使本技术的目的、技术方案及优点更加清楚明白,下面结合附图,对本技术的实施例进行描述。显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着新应用场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
49.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的描述在适当情况下可以互换,以便使实施例能够以除了在本技术图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本技术中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行顺序,只要能达到相同或者相类似的技术效果即可。本技术中所出现的单元的划分,是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个单元可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元之间的间接耦合或通信连接可以是电性或其他类似的形式,本技术中均不作限定。并且,作为分离部件说明的单元或子单元可以是也可以不是物理上的分离,可以是也可以不是物理单元,或者可以分布到多个电路单元中,可以根据实际的需要选择其中的部分或全部单元来实现本技术方案的目的。
50.rdma能够通过网络将数据从一个系统快速移动到远程系统的存储器中,而不对操作系统造成任何影响。rdma消除了外部存储器复制和文本交换操作,因而能解放内存带宽和cpu周期,提高数据传输的效率。目前,高性能计算以及人工智能等领域的应用都在广泛使用rdma传输协议来实现数据的传输。
51.然而,目前rdma数据的传输是承载在应用所建立的连接之上,一旦应用在两个设备之间建立了连接,这两个设备之间的rdma数据都会基于相同的转发路径在网络中传输,容易造成网络负载不均,限制了网络带宽资源的合理利用。
52.有鉴于此,本技术实施例提供一种报文传输方法,通过在报文中携带传输标识来标记需要按序传输的报文,且网络设备基于报文中的传输标识来选择报文的转发路径。在
保证了需要按序传输的报文能够通过相同的转发路径被转发的同时,使得具有不同传输标识的报文能够通过不同的转发路径被转发,实现网络负载均衡,提高了网络带宽资源的利用率。
53.可以参阅图1,图1为本技术实施例提供的报文传输方法的应用架构示意图。如图1所示,该应用架构包括源网络设备,中间网络设备1-中间网络设备4,以及目的网络设备。源网络设备和目的网络设备可以为服务器,中间网络设备1-中间网络设备4则可以为路由器、交换机或网关等物理设备。
54.其中,源网络设备需要向目的网络设备发送rdma报文,该rdma报文经过源网络设备和目的网络设备之间的中间网络设备。在rdma报文从源网络设备传输到目的网络设备的过程中,负责转发rdma报文的网络设备基于rdma报文中的传输标识来选择该rdma报文的转发路径,从而实现基于同一条转发路径来转发具有相同传输标识的rdma报文。
55.可以参阅图2,图2为本技术实施例提供的一种报文传输方法200的流程示意图。如图2所示,该报文传输方法200包括以下的步骤201-203。
56.步骤201,第一网络设备获取rdma报文,所述rdma报文包括传输标识,其中,具有相同传输标识的rdma报文需要按序传输。
57.本实施例中,第一网络设备所获取到的rdma报文是用于传输rdma数据的报文,且所述rdma报文中包括传输标识以及rdma数据。其中,rdma数据是源服务器需要向目的服务器发送的数据。当目的服务器通过rdma技术访问源服务器上的数据时,源服务器则向目的服务器发送目的服务器请求访问的rdma数据。所述传输标识也可以称为事务(transaction)标识。
58.在一种可能的实现方式中,第一网络设备例如可以为服务器。
59.示例性地,在所述第一网络设备为源服务器的情况下,所述第一网络设备中的应用层向第一网络设备中的传输层发送消息(message),所述消息包括需要向目的服务器发送的rdma数据。所述第一网络设备在获取到应用层发送的消息之后,根据所述消息生成至少一个rdma报文,所述至少一个rdma报文包括相同的传输标识。
60.由于rdma数据在网络中传输时通常会受到最大传输单元(maximum transmission unit,mtu)的限制,因此应用层所发送的同一个消息中的rdma数据可能会被第一网络设备切分成一个或多个rdma报文来进行传输。其中,mtu是指网络中所能通过的最大的数据报文的大小。当第一网络设备获取到的消息的数据量大于mtu时,第一网络设备则根据所述消息生成多个rdma报文,该多个rdma报文分别携带所述消息中的部分rdma数据;当第一网络设备获取到的消息的数据量小于或等于mtu时,第一网络设备则根据所述消息生成一个rdma报文,该rdma报文携带了所述消息中所有的rdma数据。
61.在第一网络设备根据应用层所发送的一个消息生成多个rdma报文的情况下,第一网络设备为所述多个rdma报文添加相同的传输标识。由于第一网络设备所生成的多个rdma报文中所包括的rdma数据是属于同一个消息的,所述多个rdma报文需要按序传输才能保证目的服务器能够接收到该消息中完整的rdma数据,因此第一网络设备为所述多个rdma报文添加相同的传输标识,以保证所述多个rdma报文能够按序传输。示例性地,第一网络设备可以为所述消息分配一个传输标识,第一网络设备基于所述消息所生成的多个rdma均包括所述消息对应的传输标识,从而保证所述消息对应的多个rdma报文包括相同的传输标识。
62.在第一网络设备获取到应用层所发送的多个消息,且所述多个消息被指示为需要按序传输时的情况下,第一网络设备为所述多个消息分配同一个传输标识。这样,第一网络设备在根据所述多个消息生成多个rdma报文时,第一网络设备所生成的与所述多个消息对应的多个rdma报文包括同一个传输标识。例如,在应用层向所述第一网络设备发送多个消息,且所述多个消息中的rdma数据是相互关联的情况下,应用层指示所述多个消息需要按序传输。
63.在另一种可能的实现方式中,第一网络设备例如可以为路由器、交换机或网关等物理设备,也可以是支持报文转发的虚拟设备等。
64.具体地,所述第一网络设备获取rdma报文的方式可以是:所述第一网络设备接收第二网络设备发送的所述rdma报文,所述第二网络设备为第一网络设备的上游设备。其中,第二网络设备例如可以为源服务器、路由器、交换机或网关等物理设备,也可以是支持报文转发的虚拟设备等。简单来说,第一网络设备和第二网络设备均为所述rdma报文转发路径上的网络设备,所述第二网络设备将所述rdma报文转发给所述第一网络设备,由第一网络设备继续将所述rdma报文转发给所述第一网络设备的下一跳设备。
65.可选的,本实施例中所述的rdma报文可以包括基于融合以太网的rdma(rdma over converged ethernet,roce)报文、iwarp报文或无限带宽(infiniband)报文。其中,roce报文是基于roce协议来传输的报文;iwarp报文是基于iwarp协议来传输的报文;infiniband报文则是基于infiniband协议来传输的报文。其中,roce协议是一种允许通过以太网执行rdma的网络协议;iwarp协议是一种允许通过传输控制协议(transmission control protocol,tcp)执行rdma的网络协议,iwarp协议实际上是一种互联网广域rdma协议;infiniband协议是支持rdma的新一代网络协议。
66.需要说明的是,本实施例中所述的rdma报文也可以是基于其他的协议来传输的报文,本实施例并不限定rdma报文的具体形式。
67.步骤202,所述第一网络设备根据所述传输标识以及所述rdma报文的目的地址确定目标转发路径。
68.本实施例中,在所述第一网络设备转发所述rdma报文的过程中,所述第一网络设备基于所述rdma报文中的传输标识以及目的地址确定所述rdma报文的目标转发路径。其中,所述rdma报文的目的地址用于确定能够用于转发所述rdma报文的转发路径,所述rdma报文中的传输标识则用于在多条能够用于转发所述rdma报文的转发路径中选择目标转发路径。
69.示例性地,所述第一网络设备可以根据所述rdma报文的目的地址,确定能够用于转发所述rdma报文的多条转发路径。其中,所述多条转发路径中的每一条转发路径均通过所述第一网络设备中的一个出端口来标识。所述第一网络设备可以根据rdma报文的目的地址查找路由表,从而确定能够用于转发所述rdma报文的多个出端口,所述多个出端口分别与所述多条转发路径对应。然后,所述第一网络设备根据所述传输标识,从所述多条转发路径中确定所述目标转发路径。即,所述第一网络设备根据所述传输标识,从多个出端口中选择目标出端口,并通过目标出端口转发所述rdma报文。
70.可选的,所述第一网络设备可以是将所述传输标识作为哈希因子,计算所述传输标识的哈希值,并根据所述传输标识的哈希值从所述多条转发路径中确定所述目标转发路
径。
71.可选的,所述第一网络设备可以是将所述传输标识以及所述rdma报文的源地址、目的地址、源端口号、目的端口号和协议号中的一种或多种共同作为哈希因子,计算该多个哈希因子的哈希值,从而根据计算得到的哈希值从所述多条转发路径中确定所述目标转发路径。例如,所述第一网络设备可以是将所述传输标识以及所述rdma报文的源地址和目的地址作为哈希因子,计算这三个哈希因子的哈希值,从而根据计算得到的哈希值确定目标转发路径。又例如,所述第一网络设备可以将所述传输标识以及所述rdma报文的源地址、目的地址、源端口号、目的端口号和协议号均作为哈希因子,计算这六个哈希因子的哈希值,从而根据计算得到的哈希值确定目标转发路径。
72.步骤203,所述第一网络设备通过所述目标转发路径转发所述rdma报文。
73.在所述第一网络设备确定目标转发路径之后,所述第一网络设备根据所确定的目标转发路径转发所述rdma报文。示例性地,在所述目标转发路径通过目标出端口来标识的情况下,所述第一网络设备通过所述目标出端口来转发所述rdma报文,从而将所述rdma报文转发至所述第一网络设备的下一跳设备。
74.本实施例中,通过在rdma报文中携带传输标识来标记需要按序传输的rdma报文,且网络设备基于rdma报文中的传输标识来选择rdma报文的转发路径。在保证了需要按序传输的rdma报文能够通过相同的转发路径被转发的同时,使得具有不同传输标识的rdma报文能够通过不同的转发路径被转发,实现网络负载均衡,提高了网络带宽资源的利用率。由于需要按序传输的rdma报文携带了相同的传输标识,因此这些需要按序传输的rdma报文都能够通过相同的转发路径被转发,从而保证rdma报文是按序传输的。
75.在一个可能的实施例中,所述第一网络设备可以是依次获取多个rdma报文,所述多个rdma报文均包括所述传输标识,且所述多个rdma报文的目的地址相同。由于所述多个rdma报文的目的地址以及所包括的传输标识均相同,所述第一网络设备则在多条转发路径中确定同一条目标转发路径。并且,所述第一网络设备通过所述目标转发路径,依次转发所述多个rdma报文。
76.本实施例中,第一网络设备基于rdma报文中的传输标识来选择rdma报文的转发路径,可以使得第一网络设备能够基于相同的转发路径依次转发需要按序传输的多个rdma报文,保证了rdma报文的按序传输。
77.以上介绍了网络设备基于rdma报文中的传输标识来转发rdma报文的过程,以下将介绍rdma报文携带传输标识的方式。
78.在一个可能的实施例中,rdma报文中的传输标识位于所述rdma报文的rdma头中。所述rdma头可以是指所述rdma报文的报文头,例如所述rdma报文的基本传输头(base transport header,bth)。示例性地,可以参阅图3,图3为本技术实施例提供的一种rdma报文的格式示意图。如图3所示,rdma报文中分别包括以太头(eth header)、互联网协议头(internet protocol header,ip header)、用户数据报协议头(user datagram protocol header,udp header)、bth以及有效载荷(payload)。rdma报文中的传输标识则可以位于rdma报文的bth中。
79.可选的,所述传输标识位于所述rdma头中的一个或多个预留字段中。在标准协议中,所述rdma头中包括一个或多个预留字段,所述传输标识则可以通过所述一个或多个预
留字段中的值来表示。示例性地,可以参阅图4,图4为本技术实施例提供的一种rdma头的格式示意图。如图4所示,rdma头中包括多个预留字段。其中,填充计数(pad count)字段(2比特)、第一个reserved字段(8比特)以及第二个reserved字段(7比特)均为rdma头中的预留字段,所述传输标识可以通过这多个预留字段中的值来表示。例如,所述传输标识通过上述的三个预留字段来表示的情况下,所述传输标识的长度为17比特;又例如,所述传输标识通过第一个reserved字段和第二个reserved字段来表示的情况下,所述传输标识的长度则为15比特。
80.可选的,所述传输标识位于所述rdma头中的扩展字段中。具体地,在实际应用中,可以对标准协议中的rdma头进行扩展,以使得rdma头中包括新扩展的扩展字段。其中,所述rdma头中的扩展字段的大小可以根据实际应用来确定,例如所述rdma头中的扩展字段的长度可以为10比特或15比特。此外,所述扩展字段在所述rdma头中的位置也可以是根据实际应用来确定,例如所述扩展字段在所述rdma头的结尾位置或任意一个中间位置。本技术实施例并不对所述rdma头中的扩展字段的大小以及位置做具体限定。
81.为了便于理解本技术实施例所提供的报文传输方法,以下将结合具体例子详细描述本技术实施例提供的报文传输方法。
82.以图1所示的系统架构为例,源网络设备获取到应用层所发送的消息之后,生成rdma报文,该rdma报文包括需要传输给目的网络设备的rdma数据以及传输标识。源网络设备在生成rdma报文之后,通过源网络设备与目的网络设备之间的中间网络设备传输rdma报文,以使得rdma报文能够由中间网络设备转发至目的网络设备。
83.可以参阅图5,图5为本技术实施例提供的源网络设备根据消息生成报文的示意图。如图5所示,源网络设备接收到应用层所发送的消息1、消息2、消息3和消息4,其中消息2和消息3为需要按序传输的消息。然后,源网络设备基于mtu,根据消息1、消息2、消息3和消息4生成相应的报文。
84.具体地,由于消息1的数据量小于mtu,因此源网络设备可以根据消息1生成报文1,报文1包括消息1中的rdma数据以及传输标识1。
85.由于消息2的数据量大于mtu,因此源网络设备根据消息2生成报文2a和报文2b,报文2a和报文2b分别携带消息2中的部分rdma数据。通过报文2a和报文2b,源网络设备可以传输消息2中所有rdma数据。此外,由于消息3的数据量小于mtu,因此源网络设备可以根据消息3生成报文3。基于消息2和消息3是按序传输的,源网络设备可以给消息2和消息3分配同一个传输标识,即传输标识2。这样,在源网络设备所生成的报文2a、报文2b和报文3中,均包括传输标识2。
86.由于消息4的数据量大于mtu,因此源网络设备根据消息4生成报文4a和报文4b,报文4a和报文4b分别携带消息4中的部分rdma数据。并且,报文4a和报文4b中包括相同的传输标识,即传输标识3。
87.可以参阅图6,图6为本技术实施例提供的一种报文传输的示意图。如图6所示,源网络设备生成了报文1、报文2a、报文2b、报文3、报文4a和报文4b,并将上述的多个报文依次发送给中间网络设备1。
88.中间网络设备1在发送上述的报文时,根据报文的目的地址确定转发路径1和转发路径2。其中,转发路径1是通过中间网络设备2前往目的网络设备的路径,转发路径1可以用
中间网络设备1中与中间网络设备2连接的出端口标识;转发路径2是通过中间网络设备3前往目的网络设备的路径,转发路径2可以用中间网络设备1中与中间网络设备3连接的出端口标识。
89.具体地,在转发报文1时,中间网络设备1根据报文1中的传输标识1选择了转发路径1,从而向中间网络设备2发送报文1。
90.在转发报文2a、报文2b和报文3时,中间网络设备1根据报文2a、报文2b以及报文3中的传输标识2选择了转发路径2,从而依次向中间网络设备3发送报文2a、报文2b以及报文3。
91.在转发报文4a和报文4b时,中间网络设备1根据报文4a和报文4b中的传输标识3选择了转发路径1,从而依次向中间网络设备2发送报文4a和报文4b。
92.最后,中间网络设备2依次向中间网络设备4发送报文1、报文4a和报文4b,中间网络设备3则依次向中间网络设备4发送报文2a、报文2b以及报文3。中间网络设备4在依次接收到报文1、报文4a和报文4b之后,依次向目的网络设备发送报文1、报文4a和报文4b;并且,中间网络设备4在依次接收到报文2a、报文2b以及报文3之后,依次向目的网络设备发送报文2a、报文2b以及报文3。
93.由图6可以看出,对于源网络设备生成的六个报文(即报文1、报文2a、报文2b、报文3、报文4a和报文4b),报文1、报文4a和报文4b通过转发路径1进行转发,报文2a、报文2b和报文3则通过转发路径2进行转发,从而实现了网络的负载均衡,提高了网络带宽资源的利用率。
94.上述图6介绍的是中间网络设备根据报文中的传输标识从多条转发路径中选择目标转发路径的过程。在实际应用中,源网络设备通常也可能会双归接入多个中间网络设备,因此源网络设备也可以根据报文中的传输标识从多条转发路径中选择目标转发路径。例如,在数据中心的场景中,源服务器双归接入两个交换机,并通过两个交换机实现数据的转发。
95.可以参阅图7,图7为本技术实施例提供的另一种报文传输的示意图。相较于图6,源网络设备还接入了中间网络设备1’,即源网络设备双归接入中间网络设备1和中间网络设备1’。并且,中间网络设备1分别与中间网络设备2和中间网络设备3连接,中间网络设备1’也分别与中间网络设备2和中间网络设备3连接。
96.源网络设备在生成报文1、报文2a、报文2b、报文3、报文4a和报文4b之后,将根据上述报文中的传输标识来转发报文。
97.具体地,在转发报文1时,源网络设备根据报文1中的传输标识1选择了经过中间网络设备1的转发路径,从而向中间网络设备1发送报文1。中间网络设备1则根据报文1中的传输标识1选择了经过中间网络设备2的转发路径,从而向中间网络设备2发送报文1。
98.在转发报文2a、报文2b和报文3时,源网络设备根据报文2a、报文2b以及报文3中的传输标识2选择了经过中间网络设备1’的转发路径,从而依次向中间网络设备1’发送报文2a、报文2b以及报文3。中间网络设备1’则根据传输标识2选择经过中间网络设备3的转发路径,从而向中间网络设备3发送报文2a、报文2b以及报文3。
99.在转发报文4a和报文4b时,源网络设备根据报文4a和报文4b中的传输标识3选择了经过中间网络设备1的转发路径,从而依次向中间网络设备1发送报文4a和报文4b。中间
网络设备1则根据传输标识3选择了经过中间网络设备2的转发路径,从而向中间网络设备2发送报文4a和报文4b。
100.由图7可以看出,在源网络设备双归接入中间网络设备的情况下,源网络设备同样可以基于报文中的传输标识从多条转发路径选择相应的转发路径来进行报文的转发,从而实现网络的负载均衡,提高了网络带宽资源的利用率。
101.为了实现上述实施例,本技术还提供了一种网络设备。可以参阅图8,图8为本技术实施例提供的一种网络设备800的结构示意图。
102.如图8所示,该网络设备800,包括:获取单元801、处理单元802和发送单元803;所述获取单元801,用于获取rdma报文,所述rdma报文包括传输标识,其中,具有相同传输标识的rdma报文需要按序传输;所述处理单元802,用于根据所述传输标识以及所述rdma报文的目的地址确定目标转发路径;所述发送单元803,用于通过所述目标转发路径转发所述rdma报文。
103.可选的,所述处理单元802,还用于:根据所述rdma报文的目的地址,确定能够用于转发所述rdma报文的多条转发路径;根据所述传输标识,从所述多条转发路径中确定所述目标转发路径。
104.可选的,所述处理单元802,具体用于根据所述传输标识,以及所述rdma报文的源地址、目的地址、源端口号、目的端口号和协议号中的一种或多种,从所述多条转发路径中确定所述目标转发路径。
105.可选的,所述获取单元801,还用于依次获取多个rdma报文,所述多个rdma报文均包括所述传输标识,且所述多个rdma报文的目的地址相同;所述处理单元802,还用于通过所述目标转发路径,依次转发所述多个rdma报文。
106.可选的,所述传输标识位于所述rdma报文的rdma头中。
107.可选的,所述传输标识位于所述rdma头中的一个或多个预留字段中。
108.可选的,所述传输标识位于所述rdma头中的扩展字段中。
109.可选的,所述rdma报文包括基于融合以太网的rdmaroce报文、iwarp报文或无限带宽infiniband报文。
110.可选的,所述获取单元801,用于获取应用层发送的消息;所述处理单元802,用于根据所述消息生成至少一个rdma报文,所述至少一个rdma报文包括相同的传输标识。
111.可选的,所述获取单元801,用于接收第二网络设备发送的所述rdma报文,所述第二网络设备为第一网络设备的上游设备。
112.可以参阅图9,图9为本技术实施例提供的一种网络设备900的结构示意图。图9所示的网络设备900尽管示出了某些特定特征,但是本领域的技术人员将从本技术实施例中意识到,为了简洁起见,图9未示出各种其他特征,以免混淆本技术实施例所公开的实施方式的更多相关方面。为此,作为示例,在一些实现方式中,网络设备900包括一个或多个处理单元(如,cpu)901、网络接口902、编程接口903、存储器904和一个或多个通信总线905,用于将各种组件互连。在另一些实现方式中,网络设备900也可以在上述示例基础上省略或增加部分功能部件或单元。
113.在一些实现方式中,网络接口902用于在网络系统中和一个或多个其他的网络设备/服务器连接。在一些实现方式中,通信总线905包括互连和控制系统组件之间的通信的
电路。存储器904可以包括非易失性存储器,例如,只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。存储器904也可以包括易失性存储器,易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。
114.在一些实现中,存储器904或存储器904的非暂时性计算机可读存储介质存储以下程序、模块和数据结构,或其子集,例如包括获取单元(图中未示出)、发送单元(图中未示出)和处理单元9041。
115.在一个可能的实施例中,该网络设备900可以具有上述图2对应的方法实施例中的第一网络设备中的任意功能。
116.应理解,网络设备900对应于上述方法实施例中的第一网络设备,网络设备900中的各模块和上述其他操作和/或功能分别为了实现上述方法实施例中的第一网络设备所实施的各种步骤和方法,具体细节可参见上述图2对应的方法实施例,为了简洁,在此不再赘述。
117.应理解,本技术可以是由网络设备900上的网络接口902来完成数据的收发操作,也可以是由处理器调用存储器中的程序代码,并在需要时配合网络接口902来实现收发单元的功能。
118.在各种实现中,网络设备900用于执行本技术实施例提供的报文传输方法,例如是执行上述图2所示的实施例所对应的报文传输方法。
119.本技术图9所述的网络设备具体结构可以为图10所示。
120.图10为本技术实施例提供的一种网络设备1000的结构示意图,网络设备1000包括:主控板1010和接口板1030。
121.主控板1010也称为主处理单元(main processing unit,mpu)或路由处理器(route processor),主控板1010用于对网络设备1000中各个组件的控制和管理,包括路由计算、设备管理、设备维护、协议处理功能。主控板1010包括:中央处理器1011和存储器1012。
122.接口板1030也称为线路处理单元(line processing unit,lpu)、线卡(line card)或业务板。接口板1030用于提供各种业务接口并实现数据包的转发。业务接口包括但不限于以太网接口、pos(packet over sonet/sdh)接口等。接口板1030包括:中央处理器1031、网络处理器1032、转发表项存储器1034和物理接口卡(physical interface card,pic)1033。
123.接口板1030上的中央处理器1031用于对接口板1030进行控制管理并与主控板1010上的中央处理器1011通信。
124.网络处理器1032用于实现报文的转发处理。网络处理器1032的形态可以是转发芯片。
125.物理接口卡1033用于实现物理层的对接功能,原始的流量由此进入接口板1030,以及处理后的报文从该物理接口卡1033发出。物理接口卡1033包括至少一个物理接口,物理接口也称物理口,物理接口可以为灵活以太(flexible ethernet,flexe)物理接口。物理接口卡1033也称为子卡,可安装在接口板1030上,负责将光电信号转换为报文并对报文进
行合法性检查后转发给网络处理器1032处理。在一些实施例中,接口板1030的中央处理器1031也可执行网络处理器1032的功能,比如基于通用cpu实现软件转发,从而接口板1030中不需要网络处理器1032。
126.可选的,网络设备1000包括多个接口板,例如网络设备1000还包括接口板1040,接口板1040包括:中央处理器1041、网络处理器1042、转发表项存储器1044和物理接口卡1043。
127.可选的,网络设备1000还包括交换网板1020。交换网板1020也可以称为交换网板单元(switch fabric unit,sfu)。在网络设备有多个接口板1030的情况下,交换网板1020用于完成各接口板之间的数据交换。例如,接口板1030和接口板1040之间可以通过交换网板1020通信。
128.主控板1010和接口板耦合。例如,主控板1010、接口板1030和接口板1040,以及交换网板1020之间通过系统总线和/或系统背板相连实现互通。在一种可能的实现方式中,主控板1010和接口板1030之间建立进程间通信协议(inter-process communication,ipc)通道,主控板1010和接口板1030之间通过ipc通道进行通信。
129.在逻辑上,网络设备1000包括控制面和转发面,控制面包括主控板1010和中央处理器1031,转发面包括执行转发的各个组件,比如转发表项存储器1034、物理接口卡1033和网络处理器1032。控制面执行发布路由、生成转发表、处理信令和协议报文、配置与维护设备的状态等功能,控制面将生成的转发表下发给转发面,在转发面,网络处理器1032基于控制面下发的转发表对物理接口卡1033收到的报文查表转发。控制面下发的转发表可以保存在转发表项存储器1034中。在有些实施例中,控制面和转发面可以完全分离,不在同一设备上。
130.应理解,网络设备800中的获取单元801和发送单元803可以相当于网络设备1000中的物理接口卡1033或物理接口卡1043;网络设备800中的处理单元802可以相当于网络设备1000中的中央处理器1011或中央处理器1031,也可以相当于存储器1012中存储的程序代码或指令。
131.应理解,本技术实施例中接口板1040上的操作与接口板1030的操作一致,为了简洁,不再赘述。应理解,本实施例的网络设备1000可对应于上述各个方法实施例中的第一网络设备,该网络设备1000中的主控板1010、接口板1030和/或接口板1040可以实现上述各个方法实施例中的第一网络设备所具有的功能和/或所实施的各种步骤,为了简洁,在此不再赘述。
132.值得说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。可选的,网络设备的形态也可以是只有一块板卡,即没有交换网板,接口板和主控板的功能集成在该一块板卡上,此时接口板上的中央处理器和主控板上的中央处理器在该一块板卡上可以合并为一个中央处理器,执行两者叠加后的功能。具体
采用哪种架构,取决于具体的组网部署场景,此处不做唯一限定。
133.在一些可能的实施例中,上述第一网络设备可以实现为虚拟化设备。虚拟化设备可以是运行有用于发送报文功能的程序的虚拟机(virtual machine,vm),虚拟路由器或虚拟交换机。虚拟化设备部署在硬件设备上(例如,物理服务器)。例如,可以基于通用的物理服务器结合网络功能虚拟化(network functions virtualization,nfv)技术来实现第一网络设备。
134.应理解,上述各种产品形态的网络设备,分别具有上述方法实施例中第一网络设备的任意功能,此处不再赘述。
135.进一步地,本技术实施例还提供了一种计算机程序产品,当该计算机程序产品在网络设备上运行时,使得网络设备执行上述图2对应的方法实施例中第一网络设备执行的方法。
136.本技术实施例还提供了一种芯片系统,包括处理器和接口电路,接口电路,用于接收指令并传输至处理器。其中,所述处理器用于实现上述任一方法实施例中的方法。
137.可选的,该芯片系统还包括存储器,该芯片系统中的处理器可以为一个或多个。该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现上述任一方法实施例中的方法。
138.可选的,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本技术并不限定。示例性的,存储器可以是非瞬时性处理器,例如只读存储器rom,其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本技术对存储器的类型,以及存储器与处理器的设置方式不作具体限定。
139.以上对本技术实施例进行了详细介绍,本技术实施例方法中的步骤可以根据实际需要进行顺序调度、合并或删减;本技术实施例装置中的模块可以根据实际需要进行划分、合并或删减。
140.应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
141.本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
142.应理解,在本技术实施例中,“与a相应的b”表示b与a相关联,根据a可以确定b。但还应理解,根据a确定b并不意味着仅仅根据a确定b,还可以根据a和/或其它信息确定b。
143.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
144.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,
仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
145.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
146.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献