CN113497767A - 传输数据的方法、装置、计算设备及存储介质 - Google Patents
传输数据的方法、装置、计算设备及存储介质 Download PDFInfo
- Publication number
- CN113497767A CN113497767A CN202010203724.1A CN202010203724A CN113497767A CN 113497767 A CN113497767 A CN 113497767A CN 202010203724 A CN202010203724 A CN 202010203724A CN 113497767 A CN113497767 A CN 113497767A
- Authority
- CN
- China
- Prior art keywords
- tunnel
- message
- address
- roce
- destination
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/825—Involving tunnels, e.g. MPLS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种传输数据的方法、装置、计算设备及存储介质,属于网络通信技术领域。该方法包括:获取第一RoCE报文,其中,第一RoCE报文包括目的端的地址信息,将第一RoCE报文,转换为使用目标封装格式进行封装的报文,获得第一隧道传输报文,其中,目标封装格式为数据中心内与数据中心外建立的隧道对应的封装格式,第一隧道传输报文为通过映射转换机制使用目标封装格式对第一RoCE报文的载荷进行封装的报文,通过隧道,向外发送第一隧道传输报文,以使隧道的对端网络设备根据目的端的地址信息将第一隧道传输报文的载荷发送至目的端。采用本申请,可以较简单且高效的在以太网中支持RDMA技术。
Description
技术领域
本申请涉及网络通信技术领域,特别涉及一种输数据的方法、装置、计算设备及存储介质。
背景技术
随着计算机技术的发展,可以以低成本构成出功能强大的高性能计算(HighPerformance Computing,HPC)集群,以得到更高的计算性能,更快的进行大规模科学问题的计算和海量数据的处理。因此高通量、低延迟的网络通信就成为构建HPC集群的重要因素。为了实现低延迟和高通量,通常将HPC集群部署在无线带宽(InfiniBand,IB)网络,且采用远程直接数据存取(Remote Direct Memory Access,RDMA)技术(RDMA技术是为了解决网络传输中服务器端数据处理的延迟而产生的技术)。
而且随着云技术的发展,HPC集群也云化,其是采用了云计算灵活的弹性应用模式解决高性能计算平台自身的***管理问题。在用户使用HPC集群处理高性能计算问题时,会出现HPC跨云部署,即本地HPC集群能力不足,需要向HPC云弹性扩容资源(此处可以理解为数据中心外的HPC集群能力不足,需要向数据中心内的HPC弹性扩容资源),这样需要统一调度HPC云上资源和用户本地的HPC集群。
相关技术中,在以太网中,在实现统一调度HPC云上资源和本地HPC集群,且采用RDMA技术时,一般是更换以太网架构下的网络设备为支持IB网络的硬件设备(如交换机、网卡等)。
由于以太网架构下的网络设备比较多,所以更改以太网架构下的网络设备的实现较复杂。
发明内容
为了解决以太网实现RDMA技术通信较复杂的问题,本申请实施例提供了一种输数据的方法、装置、计算设备及存储介质。该技术方案如下:
第一方面,提供了一种传输数据的方法,该方法包括:获取第一RoCE报文,其中,第一RoCE报文包括目的端的地址信息。将第一RoCE报文,使用目标封装格式进行封装,获得第一隧道传输报文,其中,目标封装格式为数据中心内与数据中心外建立的隧道对应的封装格式,第一隧道传输报文为通过映射转换机制使用目标封装格式对第一RoCE报文的载荷进行封装的报文。通过隧道,向外发送第一隧道传输报文,以使隧道的对端网络设备根据目的端的地址信息将第一隧道传输报文的载荷发送至目的端。
本申请所示的方案中,该方法的执行主体可以是数据中心内源端所属的隧道端点,简称为数据中心内的隧道端点,数据中心内的源端要向数据中心外的目的端发送报文时,数据中心内的源端的支持RDMA的网卡(RDMA network interface card,RNIC)可以生成第一RoCE报文。具体的,第一RoCE报文的内容为帧校验字段、冗余检测字段、载荷(即IB负载)、IB基本传输头(Base Transport Header,BTH)、用户数据包协议(User DatagramProtocol,UDP)报头、网络互联协议(Internet Protocol,IP)报头和以太网报头。第一RoCE报文的IP报头包括数据中心外的目的端的地址信息和源端的地址信息。第一RoCE报文的以太网报头包括源端的MAC地址和目的端的MAC地址。第一RoCE报文的UDP报头的目的端口为预设端口号(如4791),该UDP报头的源端口的端口号为源端中发送报文的应用的端口号。数据中心内的源端的RNIC将第一RoCE报文传输至数据中心内的隧道端点所属设备。这样,数据中心内的隧道端点所属设备可以获取到第一RoCE报文。数据中心内的隧道端点所属设备可以基于目标封装格式对第一RoCE报文的载荷和IB BTH进行重新封装,获得第一隧道传输报文,也即第一隧道传输报文为通过映射转换机制使用目标封装格式对第一RoCE报文的载荷进行封装的报文。数据中心内的隧道端点所属设备将第一RoCE报文转换为第一隧道传输报文后,可以通过该隧道端点所属的隧道向外发送该第一隧道传输报文。这样,通过报文封装的转换使以太网支持RDMA技术,在以太网中实现数据中心外与数据中心内进行RDMA通信,实现过程较为简单。
在一种可能的实现方式中,隧道为虚拟局域扩展网(Virtual Extensible LAN,Vxlan)隧道。使用目标封装格式进行封装,包括:在第一RoCE报文中添加Vxlan报头,将第一RoCE报文的网络互联协议(Internet Protocol,IP)报头的源IP地址和目的IP地址分别修改为隧道的本端隧道端点IP地址和隧道的对端隧道端点IP地址,将第一RoCE报文的以太网报头的源媒体控制协议(Media Access Control,MAC)地址和目的MAC地址分别修改为隧道的本端隧道端点MAC地址、下一跳设备的MAC地址。
本申请所示的方案中,数据中心内的隧道端点在第一RoCE报文的IB BTH和UDP报头之间添加Vxlan报头,Vxlan报头包括标识(flags)、保留字段和VNI等。其中,VNI为源端口、源IP地址对应的当前隧道端点所属隧道的VNI(即数据中内的隧道端点的VNI)。数据中心内的隧道端点在路由表中查找目的端的MAC地址和该VNI对应的隧道的对端隧道端点IP地址。数据中心内的隧道端点将第一RoCE报文的IP报头的源IP地址修改为隧道的数据中心内的隧道端点IP地址,并将目的IP地址修改为隧道的对端隧道端点IP地址。数据中心内的隧道端点将第一RoCE报文的以太网报头的源MAC地址修改为数据中心内的隧道端点的MAC地址,并将第一RoCE报文的以太网报头的目的MAC地址修改为下一跳设备的MAC地址(下一跳设备的MAC地址可以使用对端隧道端点IP地址在路由表中查找获得)。这样,可以将第一RoCE报文转换为第一隧道传输报文。
在一种可能的实现方式中,使用目标封装格式进行封装,还包括:将第一RoCE报文的冗余检测字段和帧校验字段删除。
本申请所示的方案,数据中心内的隧道端点可以将第一RoCE报文的冗余检测字段和帧校验字段删除。这样,可以使第一RoCE报文的长度与第一隧道传输报文的长度更接近。
在一种可能的实现方式中,使用目标封装格式进行封装,还包括:将第一RoCE报文的UDP报头的目的端口设置为Vxlan对应的端口号。
这样,可以指示报文是Vxlan报文,
在一种可能的实现方式中,生成第一RoCE报文的源端为虚拟机,目的端为虚拟机;该使用目标封装格式进行封装,还包括:在第一RoCE报文中添加可选字段,其中,可选字段包括目的端的IP地址和源端的IP地址。
本申请所示的方案,数据中心内的虚拟机与数据中心外的虚拟机进行通信,数据中心内的隧道端点可以在第一RoCE报文中添加可选字段,该可选字段中包括目的端的IP地址和源端的IP地址。这样,可以使数据中心外的隧道端点知晓要所要发往的目的端和源端。
在一种可能的实现方式中,生成第一RoCE报文的源端为裸机节点,目的端为虚拟机或裸机节点;使用目标封装格式进行封装,还包括:在第一RoCE报文中添加可选字段,其中,可选字段包括目的端的IP地址。
本申请所示的方案,数据中心内的裸机节点与数据中心外的虚拟机或裸机节点进行通信,数据中心内的隧道端点可以在第一RoCE报文中添加可选字段,该可选字段中包括目的端的IP地址。这样,可以使数据中心外的隧道端点知晓要所要发往的目的端。
在一种可能的实现方式中,方法还包括:接收第二隧道传输报文,第二隧道传输报文为通过映射转换机制使用目标封装格式对第三RoCE报文的载荷进行封装的报文,第三RoCE报文是在虚拟局域网(Virtual Local Area Network,Vlan)格式的RoCE报文中删除以太网报头的Vlan号的报文;基于目标封装格式,对第二隧道传输报文进行逆转换,获得包括第二隧道传输报文的载荷的第四RoCE报文;根据第四RoCE报文的目的端的地址信息,将第四RoCE报文发送至目的端。
本申请所示的方案,数据中心内的隧道端点还可以接收第二隧道传输报文,第二隧道传输报文为通过映射转换机制使用目标封装格式对第三RoCE报文的载荷进行封装的报文,第三RoCE报文是在Vlan格式的RoCE报文中删除以太网报头的Vlan号的报文。数据中心内的隧道端点可以基于目标封装格式,对第二隧道传输报文进行逆转换(逆转换为获得第一隧道传输报文的逆过程),获得第二隧道传输报文的载荷的第四RoCE报文。处理为:将第二隧道传输报文中的Vxlan报头删除,将UDP报头的目的端口修改为预设端口号(如4791)。将第二隧道传输报文的IP报头的源IP地址修改为数据中心外发送第三RoCE报文的设备,将第二隧道传输报文的IP报头的目的IP地址修改为数据中心内的目的端的IP地址,将以太网报头的源MAC地址修改为数据中心内的隧道端点的MAC地址,将以太网报头的目的MAC地址修改为目的端的MAC地址,然后对经过这些处理后的报文添加冗余检测字段和真校验字段,即获得第四RoCE报文。然后数据中心内的隧道端点可以使用第四RoCE报文的目的端的地址信息,将第四RoCE报文发送至目的端。这样,可以实现数据中心外的源端与数据中心内的目的端进行通信。
第二方面,提供了一种传输数据的方法,该方法包括:通过隧道接收第一隧道传输报文,第一隧道传输报文为通过映射转换机制使用目标封装格式对第一RoCE报文的载荷进行封装的报文,目标封装格式为数据中心内与数据中心外建立的隧道对应的封装格式。基于目标封装格式,对第一隧道传输报文进行逆转换,获得包括第一隧道传输报文的载荷的第二RoCE报文。根据第二RoCE报文的目的端的地址信息,将第二RoCE报文发送至目的端。
本申请所示的方案,该方法的执行主体可以是数据中心外目的端所属的隧道端点,简称为数据中心外的隧道端点,数据中心外的隧道端点通过隧道接收第一隧道传输报文。数据中心外的隧道端点在接收到第一隧道传输报文后,可以基于隧道对应的目标封装格式,对第一隧道传输报文进行逆转换,获得包括第一隧道传输报文的载荷的第二RoCE报文。数据中心外的隧道端点可以基于第二RoCE报文的目的IP地址(即目的端的IP地址),将第二RoCE报文发送至目的端。这样,通过报文封装的转换使以太网支持RDMA技术,在以太网中实现数据中心外与数据中心内进行RDMA通信,实现过程较为简单。
在一种可能的实现方式中,隧道为Vxlan隧道;隧道的本端隧道端点与目的端之间的网络为Vlan网络;基于目标封装格式,对第一隧道传输报文进行逆转换,包括:删除第一隧道传输报文的Vxlan报头;将删除Vxlan报头的第一隧道传输报文的互联网络协议IP报头的源IP地址和目的IP地址分别修改为源端的IP地址和目的端的IP地址;根据存储的Vxlan的VNI与Vlan号的映射关系,将Vxlan报头的VNI对应的Vlan号添加至删除Vxlan报头的第一隧道传输报文的以太网报头;将删除Vxlan报头的第一隧道传输报文中的UDP的目的端口的端口号修改为预设端口号;将以太网报头的源MAC地址修改为本端隧道端点的MAC地址,将以太网报头的目的MAC地址修改为下一跳设备的MAC地址。
本申请所示的方案,数据中心外的隧道端点对第一隧道传输报文的以太网报头解封装,在以太网报头中,确定目的MAC地址为自身的MAC地址。数据中心外的隧道端点可以删除第一隧道传输报文的Vxlan报头,并在该Vxlan报头中获取VNI。数据中心外的隧道端点获取源端的IP地址和目的端的IP地址,将删除Vxlan报头的第一隧道传输报文的IP报头的源IP地址,修改为源端的IP地址,将该IP报头的目的IP地址修改为目的端的IP地址。
数据中心外的隧道端点将删除Vxlan报头的第一隧道传输报文的UDP报头的目的端口号从4789修改预设端口号,如4791。
数据中心外的隧道端点在存储的Vxlan的VNI与Vlan号的映射关系中,获取第一隧道传输报文的Vxlan报头的VNI对应的Vlan号,将该Vlan号添加至以太网报头中。并且数据中心外的隧道端点将删除Vxlan报头的第一隧道传输报文的以太网报头的源MAC地址修改为数据中心外的隧道端点所属设备的MAC地址,将该以太网报头的目的MAC地址,修改为下一跳设备的MAC地址,获得第二RoCE报文。这样,数据中心外的隧道端点将第一隧道传输报文转换为包括第一隧道传输的载荷的第二RoCE报文。
在一种可能的实现方式中,基于目标封装格式,对第一隧道传输报文进行逆转换,还包括:为删除Vxlan报头的第一隧道传输报文添加冗余检测字段和帧校验字段。
本申请所示的方案,数据中心外的隧道端点为第二RoCE报文,生成冗余检测字段和帧校验字段。数据中心外的隧道端点将该冗余检测字段和帧校验字段,添加至第二RoCE报文中,获取到完整的第二RoCE报文。这样,可以使目的端对接收到的报文进行校验。
在一种可能的实现方式中,生成第一RoCE报文的源端为虚拟机,目的端为虚拟机;基于目标封装格式,对第一隧道传输报文进行逆转换,还包括:在第一隧道传输报文的可选字段中获取源端的IP地址和目的端的IP地址,删除第一隧道传输报文中的可选字段。
本申请所示的方案,数据中心内的虚拟机与数据中心外的虚拟机进行通信,数据中心外的隧道端点在第一隧道传输报文的可选字段中获取源端的IP地址和目的端的IP地址,然后将可选字段删除。这样可以使数据中心外的隧道端点获取到源端的IP地址和目的端的IP地址。
在一种可能的实现方式中,生成第一RoCE报文的源端为裸机节点,目的端为虚拟机或裸机节点;基于目标封装格式,对第一隧道传输报文进行逆转换,还包括:在第一隧道传输报文的可选字段中获取目的端的IP地址,删除第一隧道传输报文中的可选字段;根据存储的VNI、隧道端点IP地址、目的端的IP地址和源端的IP地址的对应关系,确定Vxlan报头的VNI、IP报头的源IP地址和可选字段中的目的端的IP地址对应的源端的IP地址。
本申请所示的方案,数据中心内的裸机节点与数据中心外的虚拟机或裸机节点进行通信,数据中心外的隧道端点可以在第一隧道传输报文的可选字段中获取到目的端的IP地址,然后删除第一隧道传输报文中的可选字段。然后数据中心外的隧道端点可以在存储的VNI、隧道端点IP地址、目的端的IP地址和源端的IP地址的对应关系,确定Vxlan报头的VNI、IP报头的源IP地址和目的端的IP地址对应的源端的IP地址。这样,即可获取到进行通信双方的源端的IP地址和目的端的IP地址。
在一种可能的实现方式中,方法还包括:通过隧道接收地址解析协议(AddressResolution Protocol,ARP)请求,其中,ARP请求包括目的端的IP地址、源端的IP地址、VNI和源端接入的隧道的隧道端点IP地址;存储VNI、隧道端点IP地址、源端的IP地址和目的端的IP地址的对应关系。
本申请所示的方案,数据中心内的源端第一次与数据中心外的目的端通信时,由于数据中心内的源端的本端隧道端点(即数据中心内的隧道端点)上并没有数据中心外的目的端的MAC地址,所以会广播ARP请求,ARP请求包括VNI、源端的IP地址、目的端的IP地址和源端所属的隧道端点IP地址。该ARP请求为Vxlan报文,该本端隧道端点通过发送该ARP请求至对端隧道端点(即数据中心外的隧道端点),对端隧道端点将ARP请求发送至目的端。目的端向对端隧道端点反馈响应报文,响应报文包括VNI、目的端的IP地址、源端的IP地址、目的端所属的隧道端点IP地址和目的端的MAC地址。对端隧道端点解析ARP请求的Vxlan报文,获得源端的MAC地址、VNI与源端所属隧道端点的IP地址的对应关系、以及VNI、源端所属隧道端点的IP地址、目的端的IP地址和源端的IP地址的对应关系。对端隧道端点将ARP报文的响应报文发送至源端的本端隧道端点后,该本端隧道端点解析响应报文,获得目的端的MAC地址、VNI与目的端所属隧道端点的IP地址的对应关系、以及VNI、目的端所属隧道端点的IP地址、目的端的IP地址和源端的IP地址的对应关系。这样,可以建立起VNI、隧道端点IP地址、源端的IP地址和目的端的IP地址的对应关系。
在一种可能的实现方式中,该方法还包括:接收Vlan格式的RoCE报文;将Vlan格式的RoCE报文中以太网报头的Vlan号删除,获得第三RoCE报文;将第三RoCE报文,通过映射转换机制转换为使用目标封装格式进行封装的报文,获得第二隧道传输报文,其中,第二隧道传输报文为通过映射转换机制使用目标封装格式对第三RoCE报文的载荷进行封装的报文。通过隧道,向外发送第二隧道传输报文,以使隧道的对端网络设备将第二隧道传输报文的载荷发送至第三RoCE报文中的目的地址信息所指示的目的端。
本申请所示的方案,数据中心外的源端向数据中心内的目的端发送报文时,数据中心外的源端可以生成Vlan格式的RoCE报文,发送至数据中心外的隧道端点。数据中心外的隧道端点可以将Vlan格式的RoCE报文中以太网报头的Vlan号删除,获得第三RoCE报文。数据中心外的隧道端点可以使用目标封装格式将第三RoCE报文转换为第二隧道传输报文,处理为数据中心外的隧道端点在第三RoCE报文中添加Vxlan报头,并且将IP报头中的源IP地址修改为数据中心外的隧道端点的IP地址,目的地址修改为数据中心内的目的端所属的隧道端点的IP地址;数据中心外的隧道端点在第三RoCE报文中将以太网报头的源MAC地址修改为数据中心外的隧道端点的MAC地址,将以太网报头的目的MAC地址修改为下一跳设备的MAC地址;将UDP报头中的目的端口号修改为Vxlan报文的端口号;删除第三RoCE报文的冗余检测字段和帧校验字段删除,通过这些处理数据中心外的隧道端点获得第二隧道传输报文。然后数据中心外的隧道端点通过隧道传输第二隧道传输报文至数据中心内的隧道端点。这样,可以通过隧道将RoCE报文传输至数据中心内的隧道端点。
第三方面,提供了一种传输数据的装置,该装置包括多个模块,通过该多个模块通过执行指令来执行上述第一方面所述的方法。
第四方面,提供了一种传输数据的装置,该装置包括多个模块,通过该多个模块通过执行指令来执行上述第二方面所述的方法。
第五方面,本申请提供了一种计算设备,所述计算设备包括存储器和处理器,所述处理器执行所述存储器存储的计算机指令,使得所述计算设备执行上述第一方面所述的方法,或者使得计算设备实现第三方面所述的装置的功能。
第六方面,本申请提供了一种计算设备,所述计算设备包括存储器和处理器,所述处理器执行所述存储器存储的计算机指令,使得所述计算设备执行上述第一方面所述的方法,或者使得计算设备实现第四方面所述的装置的功能。
第七方面,本申请提供了一种非易失性可读计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序在被计算设备执行时实现上述第一方面所述的方法,或者使得计算设备实现第三方面所述的装置的功能。
第八方面,本申请提供了一种非易失性可读计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序在被计算设备执行时实现上述第一方面所述的方法,或者使得计算设备实现第三方面所述的装置的功能。
第九方面,本申请提供了一种计算机程序产品,所述计算机程序产品包括计算机指令,当所述计算机指令被计算设备执行时,所述计算设备执行上述第一方面所述的方法。
第十方面,本申请提供了一种计算机程序产品,所述计算机程序产品包括计算机指令,当所述计算机指令被计算设备执行时,所述计算设备执行上述第一方面所述的方法。
第十一方法,本申请提供了一种传输数据的***,该***包括第一网络设备和第二网络设备,第一网络设备如上述第三方面所述的装置,第二网络设备如上述第四方面所述的装置。
附图说明
图1是本申请实施例提供的一种传输数据的场景示意图;
图2是本申请实施例提供的一种传输数据的场景示意图;
图3是本申请实施例提供的一种计算设备的结构示意图;
图4是本申请实施例提供的一种传输数据的方法的流程示意图;
图5是本申请实施例提供的一种传输数据的方法的流程示意图;
图6是本申请实施例提供的一种RoCE报文与Vxlan报文转换的示意图;
图7是本申请实施例提供的一种Vxlan报文与RoCE报文转换的示意图;
图8是本申请实施例提供的一种传输数据的装置的结构示意图;
图9是本申请实施例提供的一种传输数据的装置的结构示意图;
图10是本申请实施例提供的一种传输数据的装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
为了便于对本申请实施例的理解,下面首先介绍所涉及到的名词的概念:
RDMA技术,是将数据从一个***移动至远程***存储器中,而不对***的操作***造成任何影响的技术,解放了内存带宽和中央处理器(Central Processing Unit,CPU)周期,不仅节省了大量的CPU资源,同样也降低了***的网络通信延迟。
基于融合以太网的RDMA(RDMA over Converged Ethernet,RoCE),是一种允许以太网使用RDMA的网络协议。
支持RDMA的网卡,用于实现RoCE报文封装,即HPC集群中的虚拟机的以太网网卡。该RNIC可以是普通网卡中引入RoCE软件的网卡,也可以是直接设计的RNIC网卡。在RoCE的第二版本(在RoCEv2)协议栈中,IB BTH、UDP、IP以及以太网层全是由RNIC实现层层封装。
本申请适用于以太网场景,用于数据中心外与数据中心内的HPC集群的高效互通,支持对数据中心内与数据中心外使用RoCE的HPC集群进行统一管理。数据中心外与数据中心内建立有隧道,该隧道可以是采用Vxlan技术的隧道(简称为Vxlan隧道),也可以是采用通用网络虚拟化封装(Generic Network Virtualization Encapsulation,GENEVE)技术的隧道,还可以是采用通用路由封装的网络虚拟化(Network Virtualization UsingGeneric Routing Encapsulation,NVGRE)技术的隧道,还可以是采用无状态传输隧道协议(Stateless Transport Tunneling,STT)技术的隧道等。
进一步的,数据中心外与数据中心内建立的隧道可以是数据中心外的HPC集群的计算节点(计算节点上部署有虚拟机)与数据中心内的HPC集群的计算节点之间建立的隧道,也可以是数据中心内的HPC集群中的计算节点与数据中心外的网关设备之间建立的隧道,还可以是数据中心内的网关设备与数据中心外的网关设备之间建立的隧道。
本申请以数据中心内的HPC集群中的计算节点与数据中心外的网关设备之间建立的隧道为例,且建立的隧道为Vxlan隧道为例进行说明,网络架构图可以包括图1所示的网络架构和图2所示的网络架构。在图1中,数据中心外的HPC集群与数据中心内的HPC集群均部署在以太网中,在数据中心外的HPC集群中包括多个计算节点,每个计算节点可以设置多个虚拟机,在数据中心内的HPC集群中也包括多个计算节点,每个计算节点可以设置多个虚拟机。数据中心外与数据中心内处于一个核心网中。在图2中,数据中心外的HPC集群与数据中心内的HPC集群均部署在以太网中,在数据中心外的HPC集群中包括多个裸机节点(指作为一个节点使用的计算节点,其上未部署有虚拟机),在数据中心内的HPC集群中也包括多个计算节点,每个计算节点未部署虚拟机(可以称为是裸机节点)或者部署有虚拟机。在图1和图2中,数据中心内的每个计算节点与数据中心外的网关设备(如L2网桥(Layer2Bridge,L2BR)、L3网关(Layer 3Gateway,L3GW)等)之间建立有Vxlan隧道。这样,数据中心内的计算节点与数据中心外的网关设备之间使用隧道进行报文传输。
本申请为了实现数据中心外与数据中心内的HPC集群的高效互通,提供了一种传输数据的方法,该方法可以由网关设备或计算节点执行。该网关设备与计算节点可以是硬件设备,如基于硬件实现的路由器或交换机,该网关设备与计算节点也可以是软件设备,如安装于计算设备的软件等。该计算设备为硬件设备,如服务器等。
图3示例性的提供了本申请的计算设备的一种可能的架构图。计算设备可以包括处理器301、存储器302、通信接口303和总线304。在计算设备中,处理器301的数量可以是一个或多个,图3仅示意了其中一个处理器301。可选的,处理器301可以是CPU。若计算设备具有多个处理器301,多个处理器301的类型可以不同,或者可以相同。可选的,计算设备的多个处理器还可以集成为多核处理器。
存储器302存储计算机指令和数据,存储器302可以存储实现本申请提供的传输数据的方法所需的计算机指令和数据。存储器302可以是以下存储介质的任一种或任一种组合:非易失性存储器(如只读存储器(Read-Only Memory,ROM)、固态硬盘(Solid StateDisk,SSD)、硬盘(Hard Disk Drive,HDD)、光盘等)、易失性存储器。
通信接口303可以是以下器件的任一种或任一种组合:网络接口(如以太网接口)、无线网卡等具有网络接入功能的器件。
通信接口303用于计算设备与其他节点或者终端设备进行数据通信。
图3还示例性地绘制出总线304。总线304可以将处理器301与存储器302、通信接口303连接。这样,通过总线304,处理器301可以访问存储器302,还可以利用通信接口303与其它计算设备或者终端设备进行数据交互。
在本申请中,计算设备执行存储器302中的计算机指令,使用计算设备实现本申请提供的传输数据的方法。例如,使得计算设备执行上述为传输数据的方法中封装模块执行的步骤。
下面将结合具体实施方式,对图4所示的处理流程进行详细的说明,内容可以如下:
步骤401,数据中心内的隧道端点所属设备获取第一RoCE报文,其中,第一RoCE报文包括目的端的地址信息。
其中,数据中心内的隧道端点所属设备可以是数据中心内的网关设备、数据中心内的计算节点等。
在本实施例中,数据中心内的源端要向数据中心外的目的端发送报文时,数据中心内的源端的RNIC可以生成第一RoCE报文。具体的,第一RoCE报文的内容为帧校验字段、冗余检测字段、载荷(即IB负载)、IB BTH、UDP报头、IP报头和以太网报头。第一RoCE报文的IP报头包括数据中心外的目的端的地址信息和源端的地址信息。第一RoCE报文的以太网报头包括源端的MAC地址和目的端的MAC地址。第一RoCE报文的UDP报头的目的端口为预设端口号(如4791),该UDP报头的源端口为源端中发送报文的应用的端口号。数据中心内的源端的RNIC将第一RoCE报文传输至数据中心内的隧道端点所属设备。这样,数据中心内的隧道端点所属设备可以获取到第一RoCE报文。
步骤402,数据中心内的隧道端点所属设备将第一RoCE报文,转换为使用目标封装格式进行封装的报文,获得第一隧道传输报文,目标封装格式为数据中心内与数据中心外建立的隧道对应的封装格式,第一隧道传输报文为通过映射转换机制使用目标封装格式对第一RoCE报文的载荷进行封装的报文。
在本实施例中,数据中心内的隧道端点所属设备可以基于目标封装格式对第一RoCE报文的载荷和IB BTH进行重新封装,获得第一隧道传输报文,也即第一隧道传输报文为通过映射转换机制使用目标封装格式对第一RoCE报文的载荷进行封装的报文。
步骤403,数据中心内的隧道端点所属设备通过隧道,向外发送第一隧道传输报文。
在本实施例中,数据中心内的隧道端点所属设备将第一RoCE报文转换为第一隧道传输报文后,可以通过该隧道端点所属的隧道向外发送该第一隧道传输报文。
步骤404,数据中心外的隧道端点所属设备通过隧道接收第一隧道传输报文。
步骤405,数据中心外的隧道端点所属设备基于目标封装格式,对第一隧道传输报文进行逆转换,获得包括第一隧道传输报文的载荷的第二RoCE报文。
在本实施例中,数据中心外的隧道端点所属设备在接收到第一隧道传输报文后,可以基于隧道对应的目标封装格式,对第一隧道传输报文进行逆转换,获得包括第一隧道传输报文的载荷的第二RoCE报文。
步骤406,数据中心外的隧道端点所属设备将第二RoCE报文发送至目的端。
在本实施例中,数据中心外的隧道端点所属设备可以基于第二RoCE报文的目的IP地址(即目的端的IP地址),将第二RoCE报文发送至目的端。
这样,通过上述方式,即使不更换以太网中的硬件设备,也可以在以太网中实现数据中心外与数据中心内进行RDMA通信,实现过程较为简单。而且本实施例中,是将第一RoCE报文转换为第一隧道传输报文进行传输,而不是直接在第一RoCE报文的外层再使用目标封装格式进行封装,所以即使第一隧道传输报文的报头的长度大于第一RoCE报文的报头的长度,也不会使原来第一RoCE报文的长度增加特别多。
RDMA技术中,可以包括读数据过程和写数据过程。在本实施例中,数据中心内的HPC集群中的计算节点与数据中心外的网关设备之间建立隧道,且建立的隧道为Vxlan隧道。下面流程中为数据中心外的虚拟机B向数据中心内的虚拟机A写数据的过程(即图1的网络架构下)为例进行方案的说明。如图5所示,执行流程可以如下:
步骤501,数据中心内的虚拟机A的应用生成RDMA请求,传输至虚拟机A的RNIC,虚拟机A的RNIC生成第一RoCE报文。虚拟机A的RNIC向虚拟机A所属的计算节点的隧道端点发送第一RoCE报文。
其中,虚拟机A部署在数据中心内的计算节点,虚拟机B部署在数据中心外的计算节点。
在本实施例中,数据中心内的虚拟机A的应用A要向数据中心外的虚拟机B的应用B发送报文时,虚拟机A的该应用A生成RDMA请求。在不需要任何内核内存参与的条件下,该应用A将该RDMA请求传输至虚拟机A的RNIC。虚拟机A的RNIC从应用A读取内存钥匙和存储地址信息,内存钥匙用于虚拟机B访问该存储地址信息时,进行鉴权处理。虚拟机A的RNIC将该内存钥匙和存储地址信息打包成IB负载,在IB负载上依次添加IB BTH、UDP报头、IP报头和以太网报头,并且生成冗余检测字段和帧校验字段,获得第一RoCE报文。第一RoCE报文的字段从开始至末尾依次包括以太网报头、IP报头、UDP报头、IB BTH、IB负载、冗余检测字段和帧校验字段。在该IP报头包括数据中心外的虚拟机B的地址信息(即目的虚拟机的IP地址)和虚拟机A的地址信息(即源虚拟机的IP地址)。在该以太网报头包括源虚拟机的MAC地址(即虚拟机A的MAC地址)和目的虚拟机的MAC地址(即虚拟机B的MAC地址)。在该UDP报头中,目标端口的端口号为4791(4791为RoCE报文使用的端口号),源端口的端口号为应用A的端口号。虚拟机A的RNIC将第一RoCE报文传输至虚拟机A所属的计算节点的隧道端点。
步骤502,虚拟机A所属的计算节点的隧道端点对第一RoCE报文进行以下过程,获得第一隧道传输报文:a)在第一RoCE报文中添加Vxlan报头,其中,Vxlan报头的VNI为第一RoCE报文的源IP地址和源端口对应的VNI;b)将第一RoCE报文的IP报头的源IP地址修改为隧道的本端隧道端点IP地址,将第一RoCE报文的IP报头的目的IP地址修改为隧道的对端隧道端点IP地址;c)将第一RoCE报文的以太网报头的源MAC地址和目的MAC地址分别修改为隧道的本端隧道端点MAC地址、下一跳设备的MAC地址;d)将第一RoCE报文的冗余检测字段和帧校验字段删除;e)在第一RoCE报文中添加虚拟机B的IP地址和虚拟机A的IP地址。
其中,隧道为Vxlan隧道。
在本实施例中,虚拟机A所属的计算节点的隧道端点在步骤502中简称为本端隧道端点。本端隧道端点在第一RoCE报文的IB BTH和UDP报头之间添加Vxlan报头,Vxlan报头包括标识(flags)、保留字段和VNI等。其中,VNI为源端口、源IP地址对应的当前隧道端点所属隧道的VNI(即本端隧道端点的VNI)。本端隧道端点在路由表中查找虚拟机B的MAC地址和该VNI对应的隧道的对端隧道端点IP地址。本端隧道端点将第一RoCE报文的IP报头的源IP地址修改为隧道的本端隧道端点IP地址,并将目的IP地址修改为隧道的对端隧道端点IP地址。本端隧道端点将第一RoCE报文的以太网报头的源MAC地址修改为本端隧道端点的MAC地址,并将第一RoCE报文的以太网报头的目的MAC地址修改为下一跳设备的MAC地址(下一跳设备的MAC地址可以使用对端隧道端点IP地址在路由表中查找获得)。本端隧道端点将第一RoCE报文的冗余检测字段和帧校验字段删除。本端隧道端点在第一RoCE报文的IB BTH字段与Vxlan报头之间虚拟机A的IP地址和虚拟机B的IP地址(添加的内容的字段名称可以称为是可选字段),这两个IP地址可以从第一RoCE报文的IP报头中获取。本端隧道端点对第一RoCE报文执行完上述处理后获得第一隧道传输报文,即第一RoCE报文被转换为第一隧道传输报文。这样,由于冗余检测字段和帧校验字段的长度等于Vxlan报头,所以第一隧道传输报文的长度相比第一RoCE报文的长度仅是增加了可选字段的长度。
另外,本端隧道端点将第一隧道传输报文的UDP报头的目的端口设置为Vxlan对应的端口号,以标识第一隧道传输报文是Vxlan报文,其中,Vxlan对应的端口号为4789。
如图6所示,本实施例还给出了第一RoCE报文与第一隧道传输报文的区别。第一RoCE报文的内容从开始至末尾依次包括以太网报头、IP报头、UDP报头、可选字段、IB BTH、IB负载、冗余检测字段和帧校验字段。第一隧道传输报文的内容从开始至末尾依次包括以太网报头、IP报头、UDP报头、Vxlan报头、可选字段、IB BTH、IB负载。虽然第一RoCE报文与第一隧道传输报文均包括以太网报头、UDP报头和IP报头,但是他们二者的以太网报头的源MAC地址和目的MAC地址不相同、UDP报头的目的端口不相同、IP报头的源IP地址和目的IP地址不相同。此处需要说明的是,图6仅示意出了修改的部分,其余未修改的部分未示出。
步骤503,本端隧道端点将第一隧道传输报文传输至隧道的对端隧道端点所属网络设备。
在本实施例中,隧道的对端隧道端点所属网络设备为数据中心外的网关设备,如L2BR等。
本端隧道端点将第一隧道传输报文发送至下一跳设备,直至发送至隧道的对端隧道端点。
步骤504,隧道的对端隧道端点所属网络设备通过隧道接收第一隧道传输报文。
步骤505,隧道的对端隧道端点所属网络设备对第一隧道传输报文执行以下过程,获得包括第一隧道传输报文的载荷的第二RoCE报文:a)删除第一隧道传输报文的Vxlan报头;b)将第一隧道传输报文的IP报头的源IP地址从隧道端点IP地址修改为源虚拟机IP地址,并将IP报头的目的IP地址修改为目的虚拟机IP地址;c)将删除Vxlan报头的第一隧道传输报文中的用户数据包协议UDP的目的端口的端口号修改为预设端口号;d)根据存储的Vxlan的VNI与Vlan号的映射关系,将Vxlan报头的VNI对应的Vlan号添加至第一隧道传输报文的以太网报头,将以太网报头的源MAC地址修改为本端隧道端点的MAC地址,将以太网报头的目的MAC地址修改为下一跳设备的MAC地址,e)为第一隧道传输报文添加冗余检测字段和帧校验字段;f)删除第一隧道传输报文中的可选字段。
其中,在本实施例中,隧道的对端隧道端点所属网络设备为数据中心外的网关设备。
在本实施例中,隧道的对端隧道端点所属网络设备,接收到第一隧道传输报文后,对第一隧道传输报文的以太网报头解封装,在以太网报头中,确定目的MAC地址为自身的MAC地址。该网络设备可以删除第一隧道传输报文的Vxlan报头和可选字段,并在该Vxlan报头中获取VNI。该网络设备在第一隧道传输报文的可选字段中获取源端的IP地址(虚拟机A的IP地址)和目的端的IP地址(虚拟机B的IP地址),将删除Vxlan报头的第一隧道传输报文的IP报头的源IP地址,修改为虚拟机A的IP地址,将该IP报头的目的IP地址修改为虚拟机B的IP地址。
隧道的对端隧道端点所属网络设备将删除Vxlan报头的第一隧道传输报文的UDP报头的目的端口号从4789修改4791。
隧道的对端隧道端点所属网络设备在存储的Vxlan的VNI与Vlan号的映射关系中,获取第一隧道传输报文的Vxlan报头的VNI对应的Vlan号,将该Vlan号添加至以太网报头中。并且该网络设备将删除Vxlan报头的第一隧道传输报文的以太网报头的源MAC地址修改为该网络设备的MAC地址,将该以太网报头的目的MAC地址,修改为下一跳设备的MAC地址,获得第二RoCE报文。这样,隧道的对端隧道端点所属网络设备将第一隧道传输报文转换为包括第一隧道传输的载荷的第二RoCE报文。
然后隧道的对端隧道端点所属网络设备为第二RoCE报文,生成冗余检测字段和帧校验字段。该网络设备将该冗余检测字段和帧校验字段,添加至第二RoCE报文中,获取到完整的第二RoCE报文。
另外,还需要说明的是,隧道有两个隧道端点,本端隧道端点和对端隧道端点为相互对应的,如果当前隧道端点是发送报文至另一个隧道端点,则当前隧道端点为本端隧道端点,该另一个隧道端点相对于当前隧道端点为对端隧道端点。
如图7所示,本实施例还给出了第一隧道传输报文与经过隧道对端隧道端点处理的第二RoCE报文的区别。第一隧道传输报文的内容从开始至末尾依次包括以太网报头、IP报头、UDP报头、Vxlan报头、可选字段、IB BTH、IB负载。第二RoCE报文的内容从开始至末尾依次包括以太网报头、IP报头、UDP报头、IB BTH、IB负载、冗余检测字段和帧校验字段。虽然第二RoCE报文与第一隧道传输报文均包括以太网报头和IP报头,但是他们二者的以太网报头的源MAC地址和目的MAC地址不相同、IP报头的源IP地址和目的IP地址不相同,并且第二RoCE报文还包括Vlan号。此处需要说明的是,图7仅示意出了修改的部分,其余未修改的部分未示出。
步骤506,隧道的对端隧道端点所属网络设备将第二RoCE报文发送至虚拟机B。
在本实施例中,隧道的对端隧道端点基于RoCE报文的目的IP地址(即虚拟机B的IP地址),将第二RoCE报文发送至目的虚拟机(即虚拟机B)的RNIC。
步骤507,虚拟机B向数据中心内的虚拟机A发送RoCE报文的写请求。
在本实施例中,虚拟机B的RNIC在接收到第二RoCE报文后,虚拟机B的RNIC可以对第二RoCE报文解封装,获得IB负载。虚拟机B的RNIC可以在IB负载中获取到虚拟机A中的应用A提供的内存钥匙和存储地址信息。然后虚拟机B的RNIC从待发送数据所属应用B,获取虚拟机B的待发送数据的存储地址信息。虚拟机B的RNIC将从IB负载中获取到的内存钥匙和存储地址信息、待发送数据的存储地址信息打包成IB负载。然后虚拟机B的RNIC在该IB负载的外层依次添加IB BTH、UDP报头、IP报头和以太网报头,获得RoCE报文的写请求。另外该RoCE报文中还包括冗余检测字段和帧校验字段。该RoCE报文中,IP报头的源IP地址为虚拟机B的IP地址,目的IP地址为虚拟机A的IP地址;以太网报头的源MAC地址为虚拟机B所属计算节点的MAC地址,目的MAC地址为下一跳设备的MAC地址;UDP报头的源端口的端口号为应用B的端口号,UDP报头的目的端口采用预设的端口号(如4791)。
然后虚拟机B将该RoCE报文的写请求通过与数据中心外的网络设备之间的链路,发送至数据中心外的网络设备。该网络设备将该RoCE报文转换为第二隧道传输报文,发送至数据中心内的虚拟机A(详细过程在后文中描述)。
步骤508,虚拟机B向数据中心内的源虚拟机发送RoCE报文的待发送数据。
在本实施例中,虚拟机B在将RoCE报文的写请求发送至虚拟机A的RNIC后,虚拟机B的RNIC可以将待发送数据作为IB负载,生成RoCE报文,基于RoCE报文向虚拟机A的RNIC发送待发送数据。
步骤509,虚拟机B向数据中心内的源虚拟机发送RoCE报文的发送完成消息。
在本实施例中,虚拟机B的RNIC在将待发送数据全部发送至虚拟机A的RNIC后,虚拟机B的RNIC可以生成RoCE报文的发送完成消息。然后虚拟机B的RNIC向虚拟机A的RNIC发送该发送完成消息。该发送完成消息用于指示虚拟机B向虚拟机A发送的待发送数据已发送完毕。
虚拟机A的RNIC接收到虚拟机B发送的发送完成消息后,虚拟机A的RNIC可以将接收自虚拟机B的待发送数据,写入接收待发送数据的应用A的缓存区(即应用A提供的存储地址信息所指示的缓存区)。
另外,在本实施例中,还提供了数据中心外的网络设备(即当前为本端隧道端点所属网络设备)接收数据中心内的虚拟机B发送的Vlan格式的RoCE报文后的处理过程:
数据中心外的网络设备将Vlan格式的RoCE报文的以太网报头的Vlan号删除,获得第三RoCE报文。该数据中心外的网络设备建立第三RoCE报文中的UDP报头的源端口、源IP地址和当前隧道端点所属隧道的VNI的对应关系。然后数据中心外的网络设备在第三RoCE报文的IB BTH和UDP报头之间添加Vxlan报头,该Vxlan报头包括标识、保留字段和VNI等。其中,VNI为数据中心外的隧道端点的VNI。数据中心外的网络设备在第三RoCE报文的IB BTH和Vxlan报头之间添加可选字段,可选字段包括目的虚拟机的地址信息(即虚拟机A的IP地址)和源虚拟机的地址信息(即虚拟机B的IP地址),数据中心外的网络设备将第三RoCE报文的IP报头的源IP地址修改为数据中心外的网络设备IP地址,并将目的IP地址修改为数据中心内的对端隧道端点IP地址。数据中心外的网络设备将第三RoCE报文的以太网报头的源MAC地址修改为数据中心外的网络设备的MAC地址,并将第三RoCE报文的以太网报头的目的MAC地址修改为下一跳设备的MAC地址(该MAC地址是根据数据中心内的对端隧道端点IP地址,在路由表中确定的)。数据中心外的网络设备将第三RoCE报文的冗余检测字段和帧校验字段删除。通过这些处理数据中心外的网络设备获得第二隧道传输报文。这样,由于冗余检测字段和帧校验字段的长度等于Vxlan报头,所以第二隧道传输报文的长度相比第三RoCE报文的长度仅增加了可选字段的长度。
另外,数据中心外的网络设备将第二隧道传输报文的UDP报头的目的端口设置为Vxlan对应的端口以标识是Vxlan报文,其中,Vxlan对应的端口号为4789。
然后数据中心外的网络设备将第二隧道传输报文发送至数据中心内的对端隧道端点,数据中心内的对端隧道端点对第二隧道传输报文的以太网报头解封装,在以太网报头中,确定目的MAC地址为自身的MAC地址。然后数据中心内的对端隧道端点可以删除第二隧道传输报文的Vxlan报头,并且删除可选字段。然后数据中心内的对端隧道端点在可选字段中获取源虚拟机IP地址(即虚拟机B的IP地址)以及目的虚拟机IP地址(即虚拟机A的IP地址),将删除Vxlan报头的第二隧道传输报文的IP报头的源IP地址修改为虚拟机B的IP地址,并将该IP报头的目的IP地址修改为虚拟机A的IP地址。数据中心内的对端隧道端点将删除Vxlan报头的第二隧道传输报文的UDP报头的目的端口号修改为4791。数据中心内的对端隧道端点将以太网报头的源MAC地址修改为该对端隧道端点的MAC地址,将该以太网报头的目的MAC地址修改为虚拟机A的MAC地址,获得第四RoCE报文。这样,数据中心内的对端隧道端点所属网络设备将第二隧道传输报文转换为第四RoCE报文。然后数据中心内的隧道端点为第四RoCE报文,生成冗余检测字段和帧校验字段,将该冗余检测字段和帧校验字段,添加至第四RoCE报文中,获取到完整的第四RoCE报文。数据中心内的对端隧道端点将完整的第四RoCE报文发送给虚拟机A的RNIC。虚拟机A的RNIC可以对RNIC解封装,获得虚拟机B发送的内存钥匙和存储地址信息(虚拟机A发送给虚拟机B的内存钥匙和存储地址信息)、待发送数据的存储地址信息。
后续虚拟机B将待发送数据封装为RoCE报文发送给虚拟机A,具体发送形式与发送RoCE报文的写请求的形式相同,此处不再赘述。
通过上述实施例,可以在以太网架构下,实现RoCE报文和Vxlan报文的转换映射机制,使用数据中心内与数据中心外的Vxlan隧道通信来传输RoCE报文。另外,在数据中心外的网络为Vlan网络时,数据中心外的网关设备将Vxlan报文转换为Vlan格式的RoCE报文,通过传统的Vlan网络将Vlan格式的RoCE报文传输至数据中心外的目的虚拟机。
在图2的网络架构下,为了实现高性能的计算,数据中心内中包括裸机节点(即未部署虚拟机的计算节点),数据中心外的计算节点部署有虚拟机或者未部署有虚拟机(未部署有虚拟机的计算节点可以称为是裸机节点)。图2的网络架构下的RoCE报文的发送过程可以与图1的网络架构下的RoCE报文的发送过程完全相同,当然为了节约发送报文的报头中占用的字节数,可以采用如下方式:
与图1的网络架构下的区别仅在于:(1)数据中心内的裸机节点向数据中心外的目的端发送报文时,可选字段中不包括源端的IP地址,可以仅包括目的端的IP地址。这样,数据中心外的网关设备在确定目的端的IP地址时,是在可选字段中获取的,数据中心外的网关设备在确定源端的IP地址时,是在存储的VNI、隧道端点IP地址、目的端的IP地址和源端的IP地址的对应关系中(该隧道端点为源端所属的隧道端点),确定Vxlan报头的VNI、IP报头的源IP地址和可选字段中的目的端的IP地址对应的源端的IP地址。
(2)数据中心外的源端向数据中心内的目的端发送报文时,可选字段中不包括目的端的IP地址,而仅包括源端的IP地址(即数据中心外的源端的IP地址)。这样,数据中心内的裸机节点在确定源端的IP地址时,是在可选字段中获取的,数据中心内的裸机节点在确定目的端的IP地址时,是在存储的VNI、隧道端点IP地址、目的端的IP地址和源端的IP地址的对应关系中(该隧道端点为源端所属的隧道端点),确定Vxlan报头的VNI、IP报头的目的IP地址和可选字段中的源端的IP地址对应的目的端的IP地址。
在(1)和(2)中可选字段中包括的IP地址实际上都是数据中心内的裸机节点的IP地址。
另外,本实施例中,还提供了建立VNI、隧道端点IP地址、目的端的IP地址和源端的IP地址的对应关系的过程:
在数据中心内的裸机节点(源端)第一次与数据中心外的目的端通信时,由于数据中心内的裸机节点的本端隧道端点上并没有数据中心外的目的端的MAC地址,所以会广播ARP请求,ARP请求包括VNI、源端的IP地址、目的端的IP地址和源端所属的隧道端点IP地址。该ARP请求为Vxlan报文,该本端隧道端点通过发送该ARP请求至对端隧道端点,对端隧道端点将ARP请求发送至目的端。目的端向对端隧道端点反馈响应报文,响应报文包括VNI、目的端的IP地址、源端的IP地址、目的端所属的隧道端点IP地址和目的端的MAC地址。对端隧道端点解析ARP请求的Vxlan报文,获得源端的MAC地址、VNI与源端所属隧道端点的IP地址的对应关系、以及VNI、源端所属隧道端点的IP地址、目的端的IP地址和源端的IP地址的对应关系。对端隧道端点将ARP报文的响应报文发送至源端的本端隧道端点后,该本端隧道端点解析响应报文,获得目的端的MAC地址、VNI与目的端所属隧道端点的IP地址的对应关系、以及VNI、目的端所属隧道端点的IP地址、目的端的IP地址和源端的IP地址的对应关系。
当然如果是在数据中心内的裸机节点与数据中心外的裸机节点建立Vxlan隧道,则传输的Vxlan报文中可以不包括可选字段。
当然如果是在数据中心内的网关设备与数据中心外的网关设备建立Vxlan隧道,则传输的Vxlan报文中的可选字段包括源端的IP地址和目的端的IP地址。
需要说明的是,上述是以数据中心内与数据中心外建立的Vxlan隧道为例进行说明,当然也可以是数据中心内与数据中心外建立采用GENEVE技术的隧道,还可以是采用NVGRE技术的隧道,还可以是采用STT技术的隧道等,在这些隧道的隧道端点将第一RoCE报文转换为第一隧道传输报文时,与Vxlan隧道的区别为:在Vxlan隧道端点,直接修改第一RoCE报文的某些内容即可,而对于采用GENEVE技术的隧道的隧道端点、采用NVGRE技术的隧道的隧道端点和采用STT技术的隧道的隧道端点,是将RoCE报文的以太网报头、UDP报头、IP报头都剥去,然后添加当前隧道的封装,获得第一隧道传输报文。
另外,本实施例中,RoCE协议是支持以太网场景RDMA技术的RoCEv2协议为例进行说明,当然RoCE协议也可以应用于支持以太网场景RDMA技术的RoCEv1协议,只不过RoCEv1需要交换机支持优先级流量控制(Priority-based Flow Control,PFC)等流控技术,只要以太网中的交换机支持PFC等流控技术,即可实现上述实施例的流程传输RoCE报文。
另外,本实施例中,支持Vxlan报文和RoCE报文的高效映射转换机制,无需多余的报文封装嵌套,减少由于多层嵌套封装造成的报文的负载空间损失,尽可能的保证了转发性能。
另外,本实施例中,仅是描述了虚拟机A向虚拟机B请求数据,虚拟机B向虚拟机A写数据的过程,虚拟机B从虚拟机A读数据的过程与上述过程类似,都是基于上述原理实现虚拟机B与虚拟机A之间的通信,只不过在RoCE报文的IB负载中的内容不相同。
图8是本申请实施例提供的传输数据的装置的结构图。该装置可以通过软件、硬件或者两者的结合实现成为装置中的部分或者全部。本申请实施例提供的装置可以实现本申请实施例图4、图5所述的流程,该装置包括:获取模块810、封装模块820和发送模块830,其中:
获取模块810,用于获取第一基于融合以太网的远程直接数据存取RoCE报文,其中,所述第一RoCE报文包括目的端的地址信息,具体可以用于实现步骤401的获取功能以及步骤401包含的隐含步骤;
封装模块820,用于将所述第一RoCE报文,使用目标封装格式进行封装,获得第一隧道传输报文,其中,所述目标封装格式为数据中心内与数据中心外建立的隧道对应的封装格式,所述第一隧道传输报文为通过映射转换机制使用目标封装格式对所述第一RoCE报文的载荷进行封装的报文,具体可以用于实现步骤402的封装功能以及步骤402包含的隐含步骤;
发送模块830,用于通过所述隧道,向外发送所述第一隧道传输报文,以使所述隧道的对端网络设备根据所述目的端的地址信息将所述第一隧道传输报文的载荷发送至所述目的端,具体可以用于实现步骤403的发送功能以及步骤403包含的隐含步骤。
在一种可能的实施方式中,所述隧道为Vxlan隧道;
所述封装模块820,用于:
在所述第一RoCE报文中添加Vxlan报头,将所述第一RoCE报文的网络互联协议IP报头的源IP地址和目的IP地址分别修改为所述隧道的本端隧道端点IP地址和所述隧道的对端隧道端点IP地址,将所述第一RoCE报文的以太网报头的源媒体控制协议MAC地址和目的MAC地址分别修改为所述隧道的本端隧道端点MAC地址、下一跳设备的MAC地址。
在一种可能的实施方式中,所述封装模块820,还用于:
将所述第一RoCE报文的冗余检测字段和帧校验字段删除。
在一种可能的实施方式中,所述封装模块820,还用于:
将所述第一隧道传输报文的用户数据包协议UDP报头的目的端口设置为Vxlan对应的端口号。
在一种可能的实施方式中,生成所述第一RoCE报文的源端为虚拟机,所述目的端为虚拟机;
所述封装模块820,还用于:
在所述第一RoCE报文中添加可选字段,其中,所述可选字段包括所述目的端的IP地址和所述源端的IP地址。
在一种可能的实施方式中,生成所述第一RoCE报文的源端为裸机节点,所述目的端为虚拟机或裸机节点;
所述封装模块820,还用于:
在所述第一RoCE报文中添加可选字段,其中,所述可选字段包括所述目的端的IP地址。
在一种可能的实施方式中,所述获取模块810,还用于接收第二隧道传输报文,所述第二隧道传输报文为通过映射转换机制使用目标封装格式对第三RoCE报文的载荷进行封装的报文,所述第三RoCE报文是在虚拟局域网Vlan格式的RoCE报文中删除以太网报头的Vlan号的报文;
所述封装模块820,还用于基于所述目标封装格式,对所述第二隧道传输报文进行逆转换,获得包括所述第二隧道传输报文的载荷的第四RoCE报文;
所述发送模块830,还用于根据所述第四RoCE报文的目的端的地址信息,将所述第四RoCE报文发送至所述目的端。
本申请实施例中,即使不更换以太网中的硬件设备,也可以在以太网中实现数据中心外与数据中心内进行RDMA通信,实现过程较为简单。
上述本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时也可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成为一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
图9是本申请实施例提供的传输数据的装置的结构图。该装置可以通过软件、硬件或者两者的结合实现成为装置中的部分或者全部。本申请实施例提供的装置可以实现本申请实施例图4、图5所述的流程,该装置包括:接收模块910、封装模块920和发送模块930,其中:
接收模块910,用于通过隧道接收第一隧道传输报文,所述第一隧道传输报文为通过映射转换机制使用目标封装格式对第一基于融合以太网的远程直接数据存取RoCE报文的载荷进行封装的报文,所述目标封装格式为数据中心内与数据中心外建立的隧道对应的封装格式,具体可以用于实现步骤404的接收功能以及步骤404包含的隐含步骤;
封装模块920,用于基于所述目标封装格式,对所述第一隧道传输报文进行逆转换,获得包括所述第一隧道传输报文的载荷的第二RoCE报文,具体可以用于实现步骤405的封装功能以及步骤405包含的隐含步骤;
发送模块930,用于根据所述第二RoCE报文的目的端的地址信息,将所述第二RoCE报文发送至所述目的端,具体可以用于实现步骤406的发送功能以及步骤406包含的隐含步骤。
在一种可能的实施方式中,所述隧道为Vxlan隧道;所述隧道的本端隧道端点与所述目的端之间的网络为Vlan网络,
所述封装模块820,用于:
删除所述第一隧道传输报文的Vxlan报头;
将删除所述Vxlan报头的第一隧道传输报文的互联网络协议IP报头的源IP地址和目的IP地址分别修改为所述源端的IP地址和所述目的端的IP地址;根据存储的Vxlan的虚拟局域扩展网网络标识VNI与Vlan号的映射关系,将所述Vxlan报头的VNI对应的Vlan号添加至所述删除所述Vxlan报头的第一隧道传输报文的以太网报头;将删除所述Vxlan报头的第一隧道传输报文中的用户数据包协议UDP的目的端口的端口号修改为预设端口号;将所述以太网报头的源媒体控制协议MAC地址修改为所述本端隧道端点的MAC地址,将所述以太网报头的目的MAC地址修改为下一跳设备的MAC地址。
在一种可能的实施方式中,所述封装模块920,还用于:
为所述删除所述Vxlan报头的第一隧道传输报文添加冗余检测字段和帧校验字段。
在一种可能的实施方式中,生成所述第一RoCE报文的源端为虚拟机,所述目的端为虚拟机;
所述封装模块920,还用于:
在所述第一隧道传输报文的可选字段中获取所述源端的IP地址和所述目的端的IP地址,删除所述第一隧道传输报文中的所述可选字段。
在一种可能的实施方式中,生成所述第一RoCE报文的源端为裸机节点,所述目的端为虚拟机或裸机节点;
所述封装模块920,还用于:
在所述第一隧道传输报文的可选字段中获取所述目的端的IP地址,删除所述第一隧道传输报文中的所述可选字段;
根据存储的VNI、隧道端点IP地址、目的端的IP地址和源端的IP地址的对应关系,确定所述Vxlan报头的VNI、所述IP报头的源IP地址和所述可选字段中的目的端的IP地址对应的源端的IP地址。
在一种可能的实施方式中,所述接收模块910,还用于通过隧道接收地址解析协议ARP请求,其中,所述ARP请求包括目的端的IP地址、源端的IP地址、VNI和所述源端接入的隧道的隧道端点IP地址;
如图10所示,所述装置还包括:
存储模块940,用于存储VNI、隧道端点IP地址、源端的IP地址和目的端的IP地址的对应关系。
在一种可能的实施方式中,所述接收模块910,还用于接收Vlan格式的RoCE报文;
所述封装模块920,还用于将所述Vlan格式的RoCE报文中以太网报头的Vlan号删除,获得第三RoCE报文;将所述第三RoCE报文,通过映射转换机制转换为使用所述目标封装格式进行封装的报文,获得第二隧道传输报文,所述第二隧道传输报文为通过映射转换机制使用目标封装格式对所述第三RoCE报文的载荷进行封装的报文;
所述发送模块930,还用于通过所述隧道,向外发送所述第二隧道传输报文,以使所述隧道的对端网络设备将所述第二隧道传输报文的载荷发送至所述第三RoCE报文中的目的地址信息所指示的目的端。
本申请实施例中,即使不更换以太网中的硬件设备,也可以在以太网中实现数据中心外与数据中心内进行RDMA通信,实现过程较为简单。
上述本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时也可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成为一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
需要说明的是:上述实施例提供的传输数据的装置在传输数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的传输数据的装置与传输数据的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令,在服务器或终端上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴光缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是服务器或终端能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(如软盘、硬盘和磁带等),也可以是光介质(如数字视盘(Digital Video Disk,DVD)等),或者半导体介质(如固态硬盘等)。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (32)
1.一种传输数据的方法,其特征在于,所述方法包括:
获取第一基于融合以太网的远程直接数据存取RoCE报文,其中,所述第一RoCE报文包括目的端的地址信息;
将所述第一RoCE报文,使用目标封装格式进行封装,获得第一隧道传输报文,其中,所述目标封装格式为数据中心内与数据中心外建立的隧道对应的封装格式,所述第一隧道传输报文为通过映射转换机制使用目标封装格式对所述第一RoCE报文的载荷进行封装的报文;
通过所述隧道,向外发送所述第一隧道传输报文,以使所述隧道的对端网络设备根据所述目的端的地址信息将所述第一隧道传输报文的载荷发送至所述目的端。
2.根据权利要求1所述的方法,其特征在于,所述隧道为虚拟局域扩展网Vxlan隧道;
所述使用目标封装格式进行封装,包括:
在所述第一RoCE报文中添加Vxlan报头,将所述第一RoCE报文的网络互联协议IP报头的源IP地址和目的IP地址分别修改为所述隧道的本端隧道端点IP地址和所述隧道的对端隧道端点IP地址,将所述第一RoCE报文的以太网报头的源媒体控制协议MAC地址和目的MAC地址分别修改为所述隧道的本端隧道端点MAC地址、下一跳设备的MAC地址。
3.根据权利要求2所述的方法,其特征在于,所述使用目标封装格式进行封装,还包括:
将所述第一RoCE报文的冗余检测字段和帧校验字段删除。
4.根据权利要求2或3所述的方法,其特征在于,所述使用目标封装格式进行封装,还包括:
将所述第一RoCE报文的用户数据包协议UDP报头的目的端口设置为Vxlan对应的端口号。
5.根据权利要求2至4任一项所述的方法,其特征在于,生成所述第一RoCE报文的源端为虚拟机,所述目的端为虚拟机;
所述使用目标封装格式进行封装,还包括:
在所述第一RoCE报文中添加可选字段,其中,所述可选字段包括所述目的端的IP地址和所述源端的IP地址。
6.根据权利要求2至4任一项所述的方法,其特征在于,生成所述第一RoCE报文的源端为裸机节点,所述目的端为虚拟机或裸机节点;
所述使用目标封装格式进行封装,还包括:
在所述第一RoCE报文中添加可选字段,其中,所述可选字段包括所述目的端的IP地址。
7.根据权利要求2至6任一所述的方法,其特征在于,所述方法还包括:
接收第二隧道传输报文,其中,所述第二隧道传输报文为通过映射转换机制使用目标封装格式对第三RoCE报文的载荷进行封装的报文,所述第三RoCE报文是在虚拟局域网Vlan格式的RoCE报文中删除以太网报头的Vlan号的报文;
基于所述目标封装格式,对所述第二隧道传输报文进行逆转换,获得包括所述第二隧道传输报文的载荷的第四RoCE报文;
根据所述第四RoCE报文的目的端的地址信息,将所述第四RoCE报文发送至所述目的端。
8.一种传输数据的方法,其特征在于,所述方法包括:
通过隧道接收第一隧道传输报文,其中,所述第一隧道传输报文为通过映射转换机制使用目标封装格式对第一基于融合以太网的远程直接数据存取RoCE报文的载荷进行封装的报文,所述目标封装格式为数据中心内与数据中心外建立的隧道对应的封装格式;
基于所述目标封装格式,对所述第一隧道传输报文进行逆转换,获得包括所述第一隧道传输报文的载荷的第二RoCE报文;
根据所述第二RoCE报文的目的端的地址信息,将所述第二RoCE报文发送至所述目的端。
9.根据权利要求8所述的方法,其特征在于,所述隧道为虚拟局域扩展网Vxlan隧道;所述隧道的本端隧道端点与所述目的端之间的网络为虚拟局域网Vlan网络;
所述基于所述目标封装格式,对所述第一隧道传输报文进行逆转换,包括:
删除所述第一隧道传输报文的Vxlan报头;
将删除所述Vxlan报头的第一隧道传输报文的互联网络协议IP报头的源IP地址和目的IP地址分别修改为所述源端的IP地址和所述目的端的IP地址;根据存储的Vxlan的虚拟局域扩展网网络标识VNI与Vlan号的映射关系,将所述Vxlan报头的VNI对应的Vlan号添加至所述删除所述Vxlan报头的第一隧道传输报文的以太网报头;将删除所述Vxlan报头的第一隧道传输报文中的用户数据包协议UDP的目的端口的端口号修改为预设端口号;将所述以太网报头的源媒体控制协议MAC地址修改为所述本端隧道端点的MAC地址,将所述以太网报头的目的MAC地址修改为下一跳设备的MAC地址。
10.根据权利要求9所述的方法,其特征在于,所述基于所述目标封装格式,对所述第一隧道传输报文进行逆转换,还包括:
为所述删除所述Vxlan报头的第一隧道传输报文添加冗余检测字段和帧校验字段。
11.根据权利要求9或10所述的方法,其特征在于,生成所述第一RoCE报文的源端为虚拟机,所述目的端为虚拟机;
所述基于所述目标封装格式,对所述第一隧道传输报文进行逆转换,还包括:
在所述第一隧道传输报文的可选字段中获取所述源端的IP地址和所述目的端的IP地址,删除所述第一隧道传输报文中的所述可选字段。
12.根据权利要求9或10所述的方法,其特征在于,生成所述第一RoCE报文的源端为裸机节点,所述目的端为虚拟机或裸机节点;
所述基于所述目标封装格式,对所述第一隧道传输报文进行逆转换,还包括:
在所述第一隧道传输报文的可选字段中获取所述目的端的IP地址,删除所述第一隧道传输报文中的所述可选字段;
根据存储的VNI、隧道端点IP地址、目的端的IP地址和源端的IP地址的对应关系,确定所述Vxlan报头的VNI、所述IP报头的源IP地址和所述可选字段中的目的端的IP地址对应的源端的IP地址。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
通过隧道接收地址解析协议ARP请求,其中,所述ARP请求包括目的端的IP地址、源端的IP地址、VNI和所述源端接入的隧道的隧道端点IP地址;
存储VNI、隧道端点IP地址、源端的IP地址和目的端的IP地址的对应关系。
14.根据权利要求9至13任一项所述的方法,其特征在于,所述方法还包括:
接收Vlan格式的RoCE报文;
将所述Vlan格式的RoCE报文中以太网报头的Vlan号删除,获得第三RoCE报文;
将所述第三RoCE报文,通过映射转换机制转换为使用所述目标封装格式进行封装的报文,获得第二隧道传输报文,其中,所述第二隧道传输报文为通过映射转换机制使用目标封装格式对所述第三RoCE报文的载荷进行封装的报文;
通过所述隧道,向外发送所述第二隧道传输报文,以使所述隧道的对端网络设备将所述第二隧道传输报文的载荷发送至所述第三RoCE报文中的目的地址信息所指示的目的端。
15.一种传输数据的装置,其特征在于,所述装置包括:
获取模块,用于获取第一基于融合以太网的远程直接数据存取RoCE报文,其中,所述第一RoCE报文包括目的端的地址信息;
封装模块,用于将所述第一RoCE报文,使用目标封装格式进行封装,获得第一隧道传输报文,其中,所述目标封装格式为数据中心内与数据中心外建立的隧道对应的封装格式,所述第一隧道传输报文为通过映射转换机制使用目标封装格式对所述第一RoCE报文的载荷进行封装的报文;
发送模块,用于通过所述隧道,向外发送所述第一隧道传输报文,以使所述隧道的对端网络设备根据所述目的端的地址信息将所述第一隧道传输报文的载荷发送至所述目的端。
16.根据权利要求15所述的装置,其特征在于,所述隧道为虚拟局域扩展网Vxlan隧道;
所述封装模块,用于:
在所述第一RoCE报文中添加Vxlan报头,将所述第一RoCE报文的网络互联协议IP报头的源IP地址和目的IP地址分别修改为所述隧道的本端隧道端点IP地址和所述隧道的对端隧道端点IP地址,将所述第一RoCE报文的以太网报头的源媒体控制协议MAC地址和目的MAC地址分别修改为所述隧道的本端隧道端点MAC地址、下一跳设备的MAC地址。
17.根据权利要求16所述的装置,其特征在于,所述封装模块,还用于:
将所述第一RoCE报文的冗余检测字段和帧校验字段删除。
18.根据权利要求16或17所述的装置,其特征在于,所述封装模块,还用于:
将所述第一RoCE报文的用户数据包协议UDP报头的目的端口设置为Vxlan对应的端口号。
19.根据权利要求16至18任一项所述的装置,其特征在于,生成所述第一RoCE报文的源端为虚拟机,所述目的端为虚拟机;
所述封装模块,还用于:
在所述第一RoCE报文中添加可选字段,其中,所述可选字段包括所述目的端的IP地址和所述源端的IP地址。
20.根据权利要求16至18任一项所述的装置,其特征在于,生成所述第一RoCE报文的源端为裸机节点,所述目的端为虚拟机或裸机节点;
所述封装模块,还用于:
在所述第一RoCE报文中添加可选字段,其中,所述可选字段包括所述目的端的IP地址。
21.根据权利要求16至20任一项所述的装置,其特征在于,所述获取模块,还用于接收第二隧道传输报文,其中,所述第二隧道传输报文为通过映射转换机制使用目标封装格式对第三RoCE报文的载荷进行封装的报文,所述第三RoCE报文是在虚拟局域网Vlan格式的RoCE报文中删除以太网报头的Vlan号的报文;
所述封装模块,还用于基于所述目标封装格式,对所述第二隧道传输报文进行逆转换,获得包括所述第二隧道传输报文的载荷的第四RoCE报文;
所述发送模块,还用于根据所述第四RoCE报文的目的端的地址信息,将所述第四RoCE报文发送至所述目的端。
22.一种传输数据的装置,其特征在于,所述装置包括:
接收模块,用于通过隧道接收第一隧道传输报文,其中,所述第一隧道传输报文为通过映射转换机制使用目标封装格式对第一基于融合以太网的远程直接数据存取RoCE报文的载荷进行封装的报文,所述目标封装格式为数据中心内与数据中心外建立的隧道对应的封装格式;
封装模块,用于基于所述目标封装格式,对所述第一隧道传输报文进行逆转换,获得包括所述第一隧道传输报文的载荷的第二RoCE报文;
发送模块,用于根据所述第二RoCE报文的目的端的地址信息,将所述第二RoCE报文发送至所述目的端。
23.根据权利要求22所述的装置,其特征在于,所述隧道为虚拟局域扩展网Vxlan隧道;所述隧道的本端隧道端点与所述目的端之间的网络为虚拟局域网Vlan网络;
所述封装模块,用于:
删除所述第一隧道传输报文的Vxlan报头;
将删除所述Vxlan报头的第一隧道传输报文的互联网络协议IP报头的源IP地址和目的IP地址分别修改为所述源端的IP地址和所述目的端的IP地址;根据存储的Vxlan的虚拟局域扩展网网络标识VNI与Vlan号的映射关系,将所述Vxlan报头的VNI对应的Vlan号添加至所述删除所述Vxlan报头的第一隧道传输报文的以太网报头,将所述以太网报头的源媒体控制协议MAC地址修改为所述本端隧道端点的MAC地址,将所述以太网报头的目的MAC地址修改为下一跳设备的MAC地址。
24.根据权利要求23所述的装置,其特征在于,所述封装模块,还用于:
为所述删除所述Vxlan报头的第一隧道传输报文添加冗余检测字段和帧校验字段。
25.根据权利要求23或24所述的装置,其特征在于,生成所述第一RoCE报文的源端为虚拟机,所述目的端为虚拟机;
所述封装模块,还用于:
在所述第一隧道传输报文的可选字段中获取所述源端的IP地址和所述目的端的IP地址,删除所述第一隧道传输报文中的所述可选字段。
26.根据权利要求23或24所述的装置,其特征在于,生成所述第一RoCE报文的源端为裸机节点,所述目的端为虚拟机或裸机节点;
所述封装模块,还用于:
在所述第一隧道传输报文的可选字段中获取所述目的端的IP地址,删除所述第一隧道传输报文中的所述可选字段;
根据存储的VNI、隧道端点IP地址、目的端的IP地址和源端的IP地址的对应关系,确定所述Vxlan报头的VNI、所述IP报头的源IP地址和所述可选字段中的目的端的IP地址对应的源端的IP地址。
27.根据权利要求26所述的装置,其特征在于,所述接收模块,还用于通过隧道接收地址解析协议ARP请求,其中,所述ARP请求包括目的端的IP地址、源端的IP地址、VNI和所述源端接入的隧道的隧道端点IP地址;
所述装置还包括:
存储模块,用于存储VNI、隧道端点IP地址、源端的IP地址和目的端的IP地址的对应关系。
28.根据权利要求28或29所述的装置,其特征在于,所述接收模块,还用于接收Vlan格式的RoCE报文;
所述封装模块,还用于将所述Vlan格式的RoCE报文中以太网报头的Vlan号删除,获得第三RoCE报文;将所述第三RoCE报文,通过映射转换机制转换为使用所述目标封装格式进行封装的报文,获得第二隧道传输报文,其中,所述第二隧道传输报文为通过映射转换机制使用目标封装格式对所述第三RoCE报文的载荷进行封装的报文;
所述发送模块,还用于通过所述隧道,向外发送所述第二隧道传输报文,以使所述隧道的对端网络设备将所述第二隧道传输报文的载荷发送至所述第三RoCE报文中的目的地址信息所指示的目的端。
29.一种传输数据的计算设备,其特征在于,所述计算设备包括处理器和存储器,其中:
所述存储器中存储有计算机指令;
所述处理器执行所述计算机指令,使得计算设备实现所述权利要求1至7任一项权利要求所述的方法,或者使得所述计算设备实现所述权利要求15至21任一项权利要求所述的装置的功能。
30.一种传输数据的计算设备,其特征在于,所述计算设备包括处理器和存储器,其中:
所述存储器中存储有计算机指令;
所述处理器执行所述计算机指令,使得计算设备实现所述权利要求8至14任一项权利要求所述的方法,或者使得所述计算设备实现所述权利要求22至18任一项权利要求所述的装置的功能。
31.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令指示所述计算设备执行所述权利要求1至7任一项权利要求所述的方法,或者所述计算机指令指示所述计算设备部署所述权利要求15至21任一项权利要求所述的装置。
32.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令指示所述计算设备执行所述权利要求8至14任一项权利要求所述的方法,或者所述计算机指令指示所述计算设备部署所述权利要求22至18任一项权利要求所述的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010203724.1A CN113497767A (zh) | 2020-03-20 | 2020-03-20 | 传输数据的方法、装置、计算设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010203724.1A CN113497767A (zh) | 2020-03-20 | 2020-03-20 | 传输数据的方法、装置、计算设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113497767A true CN113497767A (zh) | 2021-10-12 |
Family
ID=77993157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010203724.1A Pending CN113497767A (zh) | 2020-03-20 | 2020-03-20 | 传输数据的方法、装置、计算设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113497767A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114050998A (zh) * | 2022-01-07 | 2022-02-15 | 阿里巴巴(中国)有限公司 | 实现远程直接内存访问的方法、装置、电子设备及介质 |
-
2020
- 2020-03-20 CN CN202010203724.1A patent/CN113497767A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114050998A (zh) * | 2022-01-07 | 2022-02-15 | 阿里巴巴(中国)有限公司 | 实现远程直接内存访问的方法、装置、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190245809A1 (en) | System and method for message handling in a network device | |
CN110022264B (zh) | 控制网络拥塞的方法、接入设备和计算机可读存储介质 | |
US11172054B2 (en) | Cross-device segmentation offload | |
CN110505244B (zh) | 远程隧道访问技术网关以及服务器 | |
WO2022001835A1 (zh) | 发送报文的方法、装置、网络设备、***及存储介质 | |
JP5994190B2 (ja) | パケット転送方法およびシステム | |
WO2020063298A1 (zh) | 处理tcp报文的方法、toe组件以及网络设备 | |
US20220255772A1 (en) | Packet sending method, apparatus, and system | |
CN113326228A (zh) | 基于远程直接数据存储的报文转发方法、装置及设备 | |
CN111480320A (zh) | 具有用户空间隧道的无线网状接入点 | |
CN109936492A (zh) | 一种通过隧道传输报文的方法、装置和*** | |
WO2021139568A1 (zh) | 发送应答报文的方法、装置、计算设备和存储介质 | |
US20140156954A1 (en) | System and method for achieving enhanced performance with multiple networking central processing unit (cpu) cores | |
JP2024504466A (ja) | パケット転送方法、パケット処理方法、およびデバイス | |
WO2023186109A1 (zh) | 节点访问方法以及数据传输*** | |
WO2020187124A1 (zh) | 数据处理方法及装置 | |
CN113497767A (zh) | 传输数据的方法、装置、计算设备及存储介质 | |
CN111130978B (zh) | 网络流量转发方法、装置、电子设备及机器可读存储介质 | |
WO2018121443A1 (zh) | 报文传输方法及装置 | |
CN114157684B (zh) | 一种报文处理的方法、设备以及存储介质 | |
CN115460303A (zh) | 一种数据处理方法、装置、终端及存储介质 | |
CN114221895A (zh) | 传输数据的方法、装置及网络设备 | |
WO2024001701A1 (zh) | 数据处理方法、装置及*** | |
WO2024130615A1 (zh) | 一种数据传输方法及相关装置 | |
WO2023185297A1 (zh) | 数据包传输方法、装置、设备、存储介质及程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220217 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |