CN112243046B - 通信方法和网卡 - Google Patents
通信方法和网卡 Download PDFInfo
- Publication number
- CN112243046B CN112243046B CN201910655048.9A CN201910655048A CN112243046B CN 112243046 B CN112243046 B CN 112243046B CN 201910655048 A CN201910655048 A CN 201910655048A CN 112243046 B CN112243046 B CN 112243046B
- Authority
- CN
- China
- Prior art keywords
- rnic
- virtual
- address
- destination
- source
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/58—Association of routers
- H04L45/586—Association of routers of virtual routers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0015—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
- H04L1/0016—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy involving special memory structures, e.g. look-up tables
-
- 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
- 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/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/66—Layer 2 routing, e.g. in Ethernet based MAN's
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请提供了本申请提供一种通信方法和网卡,该方法包括:源RNIC获取源虚拟RNIC发送的待传输数据;该源RNIC获取报文转发信息和目的虚拟RNIC身份指示信息;该源RNIC对该待传输数据进行封装,得到目标报文并将该目标报文发送至目的RNIC,其中,该目的虚拟RNIC是运行在该目的RNIC上的一个虚拟RNIC。基于上述技术方案,待传输的数据可以只进行一次报文封装,因此隧道封装的开销较小。目标报文的负载中可以空余更多的空间用于传输待传输的数据,这样可以提升网络中的有效吞吐。
Description
技术领域
本申请涉及通信技术领域,更具体地,涉及一种通信方法和网卡。
背景技术
远程直接内存存取(Remote Direct Memory Access,RDMA)是为了解决网络传输中计算节点数据处理的延迟而产生的一种技术。利用RDMA技术可以将数据直接从一台计算节点的内存传输到另一台计算节点,无需对方操作***的接入。这样可以允许高吞吐、低时延的网络通信。
为了兼容以太网,业界提出了基于融合以太网的RDMA(RDMA over ConvergedEthernet,RoCE)技术。这样,RDMA技术可以应用到云计算场景或者类似的场景中。
在云计算场景或者类似的场景中,租户大多运行在虚拟机或者容器中。在此情况下,需要向虚拟机或容器提供RDMA能力。为了实现这一目的,可以利用硬件虚拟化技术实现输入输出(Input Output,IO)虚拟化。具体地,可以利用硬件虚拟化技术将一个物理网卡抽象为多个支持RDMA技术的虚拟网卡。通过在虚拟机内部部署专用的虚拟网卡的驱动,租户就可以像使用物理网卡一样使用虚拟网卡了。
当租户需要发送数据时,虚拟网卡可以直接从虚拟机内存读取数据。需要注意的是,因为数据是直接从虚拟机的内存中读取的并由虚拟网卡完成报文封装,所以此时从虚拟网卡发送出来的报文采用的虚拟网络地址进行封装的。报文头中的以太网层2协议头中的源和目的媒体访问控制(Media Access Control,MAC)地址,以及互联网协议(InternetProtocol,IP)头中的源和目的IP地址均是虚拟网卡的地址。网络设备(如路由器和交换机)并不能识别虚拟网卡的地址,所以该报文不能被正确的路由到目标节点。
因此,如何在虚拟化场景中,利用RoCE技术进行数据传输是一个亟待解决的问题。
发明内容
本申请提供一种通信方法和网卡,能够提升网络中的有效吞吐。
第一方面,本申请实施例提供一种通信方法,该方法包括:源支持远程直接内存存取的网卡RNIC获取源虚拟RNIC发送的待传输数据,其中该源虚拟RNIC是运行在该源RNIC上的一个虚拟RNIC;该源RNIC获取报文转发信息和目的虚拟RNIC身份指示信息,该报文转发信息包括该源RNIC的互联网协议IP地址、该源RNIC的媒体访问控制MAC地址、目的RNIC的IP地址、该目的RNIC的MAC地址和四层端口号;该源RNIC对该待传输数据进行封装,以得到目标报文,该目标报文包括该报文转发信息、该目的虚拟RNIC身份指示信息和该待传输数据,该目标报文不包括以下信息中的至少一个:该源虚拟RNIC的IP地址、该目的虚拟RNIC的IP地址、该源虚拟RNIC的MAC地址、该源虚拟RNIC的端口号和该目的虚拟RNIC的端口号;该源RNIC向该目的RNIC发送该目标报文,其中,该目的虚拟RNIC是运行在该目的RNIC上的一个虚拟RNIC。
可选的,该源RNIC可以是支持RDMA技术物理网卡,或者,支持RDMA技术的虚拟网卡。
可选的,该目的RNIC可以是支持RDMA技术物理网卡,或者,支持RDMA技术的虚拟网卡。
上述技术方案可以在虚拟化场景中,利用RoCE技术进行数据传输。此外,待传输的数据可以只进行一次报文封装。具体地,该源RNIC无需先进行一次封装,将源vRNIC的IP地址、MAC地址、端口号信息、目的vRNIC的IP地址和端口号信息封装到报文中,然后在进行第二次封装将源RNIC的IP地址、该源RNIC的MAC地址、目的RNIC的IP地址、该目的RNIC的MAC地址和四层端口号封装到报文中。该源RNIC可以只进行一次封装,将源RNIC的IP地址、该源RNIC的MAC地址、目的RNIC的IP地址、该目的RNIC的MAC地址和四层端口号封装到报文中。由于封装后的报文中不再包括源vRNIC的IP地址、MAC地址、端口号信息、目的vRNIC的IP地址和端口号信息,因此目标报文的负载(payload)中可以空余更多的空间用于传输待传输的数据,这样可以提升网络中的有效吞吐。此外,上述方案中,待传输数据的封装过程可以由RNIC完成。因此,无需设置额外的用于封装待传输数据的硬件。这样可以降低在以太网中应用RDMA技术的成本。该目标报文可以是基于RoCE标准格式的报文。
结合第一方面,在第一方面的一种可能的实现方式中,该源RNIC获取报文转发信息和目的虚拟RNIC身份指示信息,包括:该源RNIC根据源虚拟RNIC的标识和用于传输该待传输数据的传输模式,获取该报文转发信息和该目的虚拟RNIC身份指示信息。基于上述技术方案,该源RNIC可以根据传输模式的不同,选择不同的方式获取该报文转发信息。
结合第一方面,在第一方面的一种可能的实现方式中,该源RNIC根据该源虚拟RNIC的标识和传输模式,获取该报文转发信息和该目的虚拟RNIC身份指示信息,包括:在该传输模式为可靠连接RC或不可靠连接UC的情况下,该源RNIC根据目标队列对上下文,确定该报文转发信息和该目的虚拟RNIC身份指示信息,其中该目标队列对上下文对应于连接信息和该源虚拟RNIC的标识。基于上述技术方案,在传输模式为RC或UC情况下,该源RNIC可以直接从队列对上下文中获取该报文转发信息和该目的虚拟RNIC的身份指示信息。
结合第一方面,在第一方面的一种可能的实现方式中,该源RNIC根据该源虚拟RNIC的标识和传输模式,获取该报文转发信息和该目的虚拟RNIC身份指示信息,包括:在该传输模式为可靠连接RC或不可靠连接UC的情况下,该源RNIC从参考队列对上下文或参考WQE中确定目标虚拟网络地址,其中该目标虚拟网络地址包括该源虚拟RNIC的IP地址和该目的虚拟RNIC的IP地址中的至少一个,该参考队列对上下文与连接信息和该源虚拟RNIC的标识对应,该参考WQE与该连接信息和该源虚拟RNIC的标识对应;该源RNIC从隧道表确定该报文转发信息和该目的虚拟RNIC身份指示信息,其中该隧道表中包括至少一个隧道条目,该至少一个隧道条目中的每个隧道条目用于指示:第一虚拟RNIC的标识、第二虚拟RNIC的所属的虚拟扩展局域网网络标识VNI,虚拟网络地址、第一RNIC的地址信息和第二RNIC的地址信息,其中该第一虚拟RNIC运行在该第一RNIC中,该第二虚拟RNIC运行在该第二RNIC中,该虚拟网络地址包括该第一虚拟RNIC的IP地址和该第二虚拟RNIC的IP地址中的至少一个,该至少一个隧道条目中与该源虚拟RNIC的标识和该目标虚拟网络地址匹配的隧道条目包括该报文转发信息。基于上述技术方案,在传输模式为RC或UC情况下,该源RNIC可以从预先保存的隧道表中获取该报文转发信息和该目的虚拟RNIC的身份指示信息。
结合第一方面,在第一方面的一种可能的实现方式中,该源RNIC根据该源虚拟RNIC的标识和传输模式,获取该报文转发信息和该目的虚拟RNIC身份指示信息,包括:在该传输模式为不可靠数据包UD或可靠数据包RD的情况下,该源RNIC根据对应于该待传输数据的目标WQE和对应于该源虚拟RNIC的标识,确定目标虚拟网络地址,或者根据该目标WQE,确定该目标虚拟网络地址,其中该目标虚拟网络地址包括该源虚拟RNIC的IP地址和该目的虚拟RNIC的IP地址中的至少一个;该源RNIC从隧道表确定该报文转发信息和该目的虚拟RNIC身份指示信息,其中该隧道表中包括至少一个隧道条目,该至少一个隧道条目中的每个隧道条目用于指示:第一虚拟RNIC的标识、第二虚拟RNIC的所属的虚拟扩展局域网网络标识VNI,虚拟网络地址、第一RNIC的地址信息和第二RNIC的地址信息,其中该第一虚拟RNIC运行在该第一RNIC中,该第二虚拟RNIC运行在该第二RNIC中,该虚拟网络地址包括该第一虚拟RNIC的IP地址和该第二虚拟RNIC的IP地址中的至少一个,该至少一个隧道条目中与该源虚拟RNIC的标识和该目标虚拟网络地址匹配的隧道条目包括该报文转发信息。基于上述技术方案,在传输模式为RD或UD情况下,该源RNIC可以直接从队列对上下文中获取该报文转发信息和该目的虚拟RNIC的身份指示信息。
结合第一方面,在第一方面的一种可能的实现方式中,该源RNIC获取报文转发信息和目的虚拟RNIC身份指示信息,包括:该源RNIC向至少一个目标NIC发送请求消息,该至少一个目标NIC中的每个目标NIC运行有至少一个虚拟RNIC,该至少一个虚拟RNIC与该源虚拟RNIC属于同一VNI,该请求消息包括该源虚拟RNIC的标识和目标虚拟网络地址,其中该目标虚拟网络地址包括该源虚拟RNIC的IP地址和该目的虚拟RNIC的IP地址中的至少一个;该源RNIC接收该目的RNIC发送的反馈信息,该反馈信息中包括该目的RNIC的IP地址和该目的RNIC的MAC地址;该源RNIC根据该反馈信息确定该报文转发信息和该目的虚拟RNIC身份指示信息。基于上述技术方案,在该源RNIC中没有保存目的RNIC的IP地址和目的RNIC的MAC地址的情况下,该源RNIC可以主动获取该目的RNIC的IP地址和该目的RNIC的MAC地址。
结合第一方面,在第一方面的一种可能的实现方式中,该目标报文包括:MAC头、IP头、四层端口号头、网络虚拟化协议头和负载字段,其中,该MAC头中包括该源RNIC的MAC地址和该目的RNIC的MAC地址;该IP头中包括该源RNIC的IP地址和该目的RNIC的IP地址;该四层端口号头中包括四层端口号;该网络虚拟化头包括该目的虚拟RNIC的身份指示信息;该负载字段包括该待传输数据。上述技术方案中,目标报文的报文格式与现有的报文格式类似。因此,对现有报文格式改动较小,便于本申请技术方案的实现。
结合第一方面,在第一方面的一种可能的实现方式中,该目的虚拟RNIC的身份指示信息包括该目的虚拟RNIC所属的VNI和该目的虚拟RNIC的虚拟MAC地址。利用该目的虚拟RNIC所属的VNI和该目的虚拟RNIC的MAC地址作为该目的虚拟RNIC的身份指示信息可以避免因该目的虚拟RNIC发生迁移造成的该目的虚拟RNIC的标识发生变化导致的无法准确找到目的虚拟RNIC的情况发生。
第二方面,本申请实施例提供一种通信方法,该方法包括:目的RNIC接收源RNIC发送的报文,该报文包括报文转发信息、目的虚拟RNIC身份指示信息和数据,该报文转发信息包括该源RNIC的互联网协议IP地址、该源RNIC的媒体访问控制MAC地址、目的RNIC的IP地址、该目的RNIC的MAC地址和四层端口号,该目标报文不包括以下信息中的至少一个:源虚拟RNIC的IP地址、该目的虚拟RNIC的IP地址、源虚拟RNIC的MAC地址、该源虚拟RNIC的端口号和该目的虚拟RNIC的端口号,该源虚拟RNIC是运行在该源RNIC中的一个虚拟RNIC,该目的虚拟RNIC是运行在该目的RNIC中的一个虚拟RNIC;该目的RNIC根据该目的虚拟RNIC身份指示信息,确定该目的虚拟RNIC;该目的RNIC将该报文发送至该目的vRNIC。上述技术方案中,目的RNIC接收到的报文中不再包括源vRNIC的IP地址、MAC地址、端口号信息、目的vRNIC的IP地址和端口号信息。因此该报文的负载(payload)中可以空余更多的空间用于传输数据,这样可以提升网络中的有效吞吐。
结合第二方面,在第二方面的一种可能的实现方式中,该报文包括:MAC头、IP头、四层端口号头、网络虚拟化协议头和负载字段,其中,该MAC头中包括该源RNIC的MAC地址和该目的RNIC的MAC地址;该IP头中包括该源RNIC的IP地址和该目的RNIC的IP地址;该四层端口号头中包括四层端口号;该网络虚拟化头包括该目的虚拟RNIC的身份指示信息;该负载字段包括该数据。上述技术方案中,目标报文的报文格式与现有的报文格式类似。因此,对现有报文格式改动较小,便于本申请技术方案的实现。
结合第二方面,在第二方面的一种可能的实现方式中,该目的虚拟RNIC身份指示信息包括:该目的虚拟RNIC所属的VNI和该目的虚拟RNIC的虚拟MAC地址;该目的RNIC根据该目的虚拟RNIC身份指示信息,确定该目的虚拟RNIC,包括:该目的RNIC从虚拟设备映射表中确定该目的虚拟RNIC,其中该虚拟设备映射表中包括至少一个虚拟设备表项,该至少一个虚拟设备表项中的每个表项包括VNI、MAC地址和标识,其中该至少一个虚拟设备表项中与该目的虚拟RNIC所属的VNI和该目的虚拟RNIC的虚拟MAC地址匹配的虚拟设备表项中的标识为该目的虚拟RNIC的标识。利用该目的虚拟RNIC所属的VNI和该目的虚拟RNIC的MAC地址作为该目的虚拟RNIC的身份指示信息可以避免因该目的虚拟RNIC发生迁移造成的该目的虚拟RNIC的标识发生变化导致的无法准确找到目的虚拟RNIC的情况发生。
第三方面,本申请实施例提供一种网卡,该网卡包括用于实现第一方面或第一方面的任一种可能的实现方式的单元。该网卡支持RDMIA技术。
第四方面,本申请实施例提供一种网卡,该网卡包括用于实现第二方面或第二方面的任一种可能的实现方式的单元。该网卡支持RDMIA技术。
第五方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质存储用于实现第一方面或第一方面的任一种可能的实现方式所述的方法的指令。
第六方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质存储用于实现第二方面或第二方面的任一种可能的实现方式所述的方法的指令。
第七方面,本申请提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一种可能的实现方式所述的方法。
第八方面,本申请提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第二方面或第二方面的任一种可能的实现方式所述的方法。
第九方面,本申请提供了一种通信装置,该通信装置包括处理电路和存储介质,该存储介质存储程序代码,该处理电路用于调用该存储介质中的程序代码执行上述第一方面或第一方面的任一种可能的实现方式所述的方法。该通信装置支持RDMIA技术。
第十方面,本申请提供了一种通信装置,该通信装置包括处理电路和存储介质,该存储介质存储程序代码,该处理电路用于调用该存储介质中的程序代码执行上述第二方面或第二方面的任一种可能的实现方式所述的方法。该通信装置支持RDMIA技术。
附图说明
图1是本申请实施例提供的一种***架构的示意图。
图2是本申请实施例提供的一种***架构的示意图。
图3是根据本申请实施例提供的一种通信方法的示意性结构框图。
图4是一个目标报文的示意图。
图5是VXLAN-GPE头的示意图。
图6是一个封装好的目标报文的示意图。
图7是根据本申请实施例提供的一种网卡的示意性结构框图。
图8是根据本申请实施例提供的一种网卡的示意性结构框图。
图9是根据本申请实施例提供的网卡的结构框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
本申请实施例的技术方案可以应用于支持远程直接数据存取(remote directmemory access,RDMA)技术的网卡(network interface card,NIC)和计算节点。例如,支持RDMA技术的数据中心的网卡和计算节点,或者其他支持RDMA技术的网卡和计算节点。其中,计算节点可以与网卡连接,计算节点是指具有计算能力的电子设备,例如服务器、个人计算机(例如台式计算机设备、笔记本电脑)等。该网卡可以称为该计算节点的网卡。该网卡也可以称为网络接口卡(network interface card)、网络适配器(network adapter)、物理网络接口(physical network interface)等。本申请实施例中的网卡是可以是支持RDMA技术的网卡,因此,该网卡也可以称为RDMA网卡(RDMA network interface card,RNIC)。
可选的,在一些实施例中,计算节点的RNIC可以是内置在该计算节点内部的。例如,该计算节点的RNIC可以通过高速串行计算机扩展总线标准(Peripheral ComponentInterconnect Express,PCIe)接口、或用于加速器的缓存一致互联(cache coherentinterconnect for accelerator,CCIX)接口等接口与该计算节点的主板连接。该计算节点可以称为该RNIC的主机(host)。
可选的,在另一些实施例中,计算节点的RNIC可以是该计算节点的一个外置设备。例如,该RNIC可以通过PCIe接口、快速路径互联(Quick Path Interconnect,QPI)接口、通用串行总线(Universal Serial Bus,USB)接口等与计算节点连接。
可选的,网卡可以和CPU集成在一个SOC***内。
在本申请实施例中,计算节点包括硬件层、运行在硬件层之上的操作***层,以及运行在操作***层上的应用层。该硬件层包括中央处理器(central processing unit,CPU)、内存管理单元(memory management unit,MMU)和内存(也称为主存)等硬件。该操作***可以是任意一种或多种通过进程(process)实现业务处理的计算机操作***,例如,Linux操作***、Unix操作***、Android操作***、iOS操作***或windows操作***等。该应用层包含分布式数据库、分布式存储、分布式AI***等应用。并且,本申请实施例并未对本申请实施例提供的方法的执行主体的具体结构特别限定,只要能够通过运行记录有本申请实施例的提供的方法的代码的程序,以根据本申请实施例提供的方法进行通信即可,例如,本申请实施例提供的方法的执行主体可以是计算节点,或者,是计算节点中能够调用程序并执行程序的功能模块。
图1是本申请实施例提供的一种***架构的示意图。如图1所示的***100中包括计算节点110、RNIC 111、计算节点120和RNIC 121。
计算节点110的RNIC可以是RNIC 111,计算节点120的RNIC可以是RNIC 121。
RNCI 111与RNCI 121之间可以通过通信链路连接,该通信链路的介质可以是光纤等,本申请实施例对网络设备间的通信链路的具体介质并不限定。RNCI 111与RNCI 121之间可以包括一个或多个交换节点,也可以直接进行通信。如图1所示,计算节点110中包括一个存储装置112,该存储装置112可以用于存储计算节点110的队列信息和应用数据。计算节点120中包括一个存储装置122,该存储装置122可以用于存储计算节点120的队列信息。
作为一个可能的实施例,虽然在图1中的存储装置112在计算节点110内,存储装置122在计算节点120内,但是存储装置112也可以是外挂于计算节点110或RNCI 111的存储装置,存储装置122也可以是外挂于计算节点120或RNCI 121的存储装置。
可以理解的是,图1仅示出了两个计算节点通过网络设备的连接关系。在一些支持RDMA技术的网络(例如数据中心网络)中可以包括更多的计算节点。这样的网络中的任意两个计算节点都可以通过如图1所示的方法连接。换句话说,图1所示的***100可以是支持RDMA技术的网络中的任意两个计算节点的连接方式。
利用硬件虚拟化技术,可以将一个物理RNIC抽象为多个支持RDMA技术的虚拟RNIC。为了便于描述,以下可以将支持RDMA技术的虚拟NIC称为vRNIC(virtual RNIC,vRNIC)。除非特殊说明,本申请实施例中所称的RNIC均是指物理RNIC。
图2是本申请实施例提供的一种***架构的示意图。如图2所示的计算节点210中部署有三个虚拟机(virtual machine,VM),分别为VM 211、VM 212和VM 213。RNIC 220中部署有三个vRNIC,分别为vRNIC 221、vRNIC 222和vRNIC 223。计算节点230中部署有两个VM,分别为VM 231和VM 232。RNIC 240中部署有两个vRNIC,分别为vRNIC 241和vRNIC 242。RNIC 220是计算节点210的RNIC,RNIC 240是计算节点230的RNIC。换句话说,计算节点210是RNIC 220的主机,计算节点230是RNIC 240的主机。
部署在计算节点中的VM与RNIC中的vRNIC可以是一一对应,也可以是一个VM配置多个vRNIC。为了便于描述,图2所示的***中,部署在计算节点210中的三个VM与部署在RNIC 220中的三个vRNIC一一对应。部署在计算节点230中的两个VM与部署在RNIC 240中的两个vRNIC一一对应。这里所称的VM与vRNIC一一对应是指vRNIC是对应的VM的vRNIC。例如,VM 211的vRNIC是vRNIC 221,VM 231的vRNIC是vRNIC 241。VM 211和VM 231之间的RDMA通信可以通过vRNIC 221和vRNIC 241实现。
可以理解的是,图2所示的***是假设租户部署在VM中。因此,图2示出了VM和vRNIC的对应关系。在另一些实现方式中,租户可以部署在容器(container)中。在此情况下,每个容器有一个对应的vRNIC。容器之间的RDMA通信可以通过各自对应的vRNIC实现。
图3是根据本申请实施例提供的一种通信方法的示意性结构框图。
301,源RNIC获取源vRNIC发送的待传输数据,其中该源vRNIC是运行在该源RNIC上的一个vRNIC。
该待传输数据是该源vRNIC从该源vRNIC的主机的存储装置中获取的数据。可以理解的是,源vRNIC的主机是部署在一个计算节点中的虚拟机。因此,该源vRNIC的主机的存储装置是部署有该虚拟机的计算节点的存储装置。
302,源RNIC获取报文转发信息和目的vRNIC身份指示信息。
该报文转发信息包括该源RNIC的IP地址、该源RNIC的MAC地址、四层端口号、目的RNIC的IP地址、该目的RNIC的MAC地址。更具体地,该报文转发信息包括MAC头,IP头和四层端口号头。该MAC头中包括该源RNIC的MAC地址和该目的RNIC的MAC地址。该IP头中包括该源RNIC的IP地址和该目的RNIC的IP地址。该四层端口号头中包括该四层端口号。四层是指开放***互联(Open System Interconnection,OSI)模型中的第四层,即传输层。因此,四层端口号也可以称为传输层端口号。该四层端口号可以是用户数据报协议(User DataramProtocol,UDP)端口号,或者,传输控制协议(Transmission Control Protocol,TCP)端口号等。该四层端口号可以包括源端口号和目的端口号。
可选的,在一些实施例中,该源RNIC获取报文转发信息和目的vRNIC身份指示信息可以包括:该源RNIC获取该源vRNIC的标识;该源RNIC根据该源vRNIC的标识和该待传输数据的传输模式,获取该报文转发信息和该目的vRNIC身份指示信息。
该源RNIC可以利用门铃(doorbell)机制,获取该源vRNIC的标识。当源vRNIC需要发送数据时,该源vRNIC可以通过门铃(doorbell)机制通知源RNIC需要发送数据的vRNIC。源RNIC可以在与源vRNIC预先约定的寄存器或存储空间中存储预设格式的数据,当源RNIC检测到该预先约定的寄存器或存储空间中存储的内容发生变化时,源RNIC从该预先约定的寄存器或存储空间中读取预设格式的数据。也就是说,上述门铃机制可以利用预设寄存器或存储空间存储预设格式的数据。
例如,门铃机制由寄存器实现。源vRNIC可以该源vRNIC的标识写入到寄存器中。源RNIC在检测到该门铃后,可以读取该寄存器中的该源vRNIC的队列标识,并将读取到的该源vRNIC的标识记录下来。
可选的,在源RNIC读取到该寄存器中的该源vRNIC的标识并记录了读取到的该源vRNIC的标识后,通知源vRNIC可以将该寄存器中保存的该队列标识删除。源vRNIC在获取到该通知后,将该寄存器中保存的该队列标识删除。
可选的,该队列标识可以基于先进先出机制保存至该寄存器。这样在该队列标识被读取后,该队列标识就被从该寄存器中删除。
源vRNIC和目的vRNIC之间的数据传输是通过RDMA技术实现的。RDMA传输的传输模式可以是:可靠连接(reliable connection,RC)、可靠数据报(reliable datagram)、不可靠连接(unreliable connection,UC)和不可靠数据报(unreliable datagram,UD)中的一个。换句话说,该待传输数据的传输模式可以为RC、UC、UD或RD中的一个。
该源RNIC可以根据不同的传输模式,采取不同的策略获取该报文转发信息和该目的vRNIC身份指示信息。
可选的,在一些实施例中,在该传输模式为RC或UC的情况下,该源RNIC可以获取连接信息;该源RNIC可以确定与该连接信息和该源vRNIC的标识对应的目标队列对上下文(queue pair context,QPC);该源RNIC可以从该目标队列对上下文中确定该报文转发信息和该虚拟vRNIC身份指示信息。
该连接信息是用于指示队列的信息。例如,在一些实施例中,该连接信息可以是队列对编号(queue pair number,QPn)。又如,在另一些实施例中,该连接信息可以是其他可以指示队列对的信息。例如,不同的队列对可以对应不同的标识。该连接信息可以是队列的标识。又如,该连接信息可以是一个通信端点的标识,例如接收端的标识。该接收端可以是目的vRNIC的标识,也可以是该目的vRNIC的对应的虚拟机的标识。
该源RNIC也可以利用门铃(doorbell)机制,获取该QPn。具体实现方式与该源RNIC利用门铃机制获取该源vRNIC的标识的方式相同,为了简洁,在此就不再赘述。
如上所述,源RNIC中可能运行有多个vRNIC。该源vRNIC只是该多个vRNIC中的一个。不同的vRNIC中可能存在相同的QPn。但是,不同的vRNIC的标识不同。因此,根据QPn和源vRNIC的标识,就可以确定一个唯一的QPC,即该目标QPC。
可选的,在一些实施例中,该目标QPC中可以包括该报文转发信息。换句话说,该源RNIC可以直接从该目标QPC中获取该报文转发信息。
可选的,在另一些实施例中,该目标QPC中可以包括该报文转发信息的地址。该源RNIC可以根据该报文转发信息的地址,获取该报文转发信息。
可选的,在另一些实施例中,该目标QPC中可以包括该报文转发信息的部分信息以及该报文转发信息的另一部分信息的地址。这样,该源RNIC可以直接从该目标QPC中获取一部分报文转发信息,然后根据该目标QPC中的地址获取另一部分报文转发信息。
可选的,在一些实施例中,在该传输模式为RC或UC的情况下,该源RNIC可以获取连接信息;该源RNIC可以确定与该连接信息和该源vRNIC标识对应的参考QPC或者参考工作队列元素(work queue element,WQE)。该源RNIC可以从该参考QPC或者该参考WQE中,确定目标虚拟网络地址,该目标虚拟网络地址可以包括该源vRNIC的IP地址和该目的vRNIC的IP地址中的至少一个;该源RNIC从隧道表确定该报文转发信息和该目的虚拟RNIC身份指示信息,其中该隧道表中包括至少一个隧道条目,该至少一个隧道条目中的每个隧道条目用于指示:第一虚拟RNIC的标识、第二虚拟RNIC的所属的虚拟扩展局域网网络标识VNI,虚拟网络地址、第一RNIC的地址信息和第二RNIC的地址信息,其中该第一虚拟RNIC运行在该第一RNIC中,该第二虚拟RNIC运行在该第二RNIC中,该虚拟网络地址包括该第一虚拟RNIC的IP地址和该第二虚拟RNIC的IP地址中的至少一个,该至少一个隧道条目中与该源虚拟RNIC的标识和该目标虚拟网络地址匹配的隧道条目包括该报文转发信息。
如上所述,源RNIC中可能运行有多个vRNIC。该源vRNIC只是该多个vRNIC中的一个。不同的vRNIC中可能存在相同的QPn。但是,不同的vRNIC的标识不同。因此,根据QPn和源vRNIC的标识,就可以确定一个唯一的QPC,即该参考QPC。类似的,该源RNIC可以确定唯一个WQE,即该参考WQE。
可选的,在一些实施例中,在该传输模式为UD或RD的情况下,该源RNIC根据对应于该待传输数据的目标WQE和对应于该源虚拟RNIC的标识,确定目标虚拟网络地址,或者根据该目标WQE,确定该目标虚拟网络地址,其中该目标虚拟网络地址包括该源虚拟RNIC的IP地址和该目的虚拟RNIC的IP地址中的至少一个;该源RNIC从隧道表确定该报文转发信息和该目的虚拟RNIC身份指示信息,其中该隧道表中包括至少一个隧道条目,该至少一个隧道条目中的每个隧道条目用于指示:第一虚拟RNIC的标识、第二虚拟RNIC的所属的虚拟扩展局域网网络标识VNI,虚拟网络地址、第一RNIC的地址信息和第二RNIC的地址信息,其中该第一虚拟RNIC运行在该第一RNIC中,该第二虚拟RNIC运行在该第二RNIC中,该虚拟网络地址包括该第一虚拟RNIC的IP地址和该第二虚拟RNIC的IP地址中的至少一个,该至少一个隧道条目中与该源虚拟RNIC的标识和该目标虚拟网络地址匹配的隧道条目包括该报文转发信息。
可选的,在一些实施例中,隧道条目用于指示第一vRNIC的标识、第二vRNIC所属的VNI,虚拟网络地址、第一RNIC的地址信息和第二RNIC的地址信息可以是:隧道条目包括第一vRNIC的标识、第二vRNIC所属的VNI,虚拟网络地址、第一RNIC的地址信息和第二RNIC的地址信息。
可选的,在另一些实施例中,第一vRNIC的标识、第二vRNIC所属的VNI,虚拟网络地址、第一RNIC的地址信息和第二RNIC的地址信息可以是:隧道条目包括一个位置指示信息(也可以称为指针),该位置指示信息用于指示第一vRNIC的标识、第二vRNIC所属的VNI,虚拟网络地址、第一RNIC的地址信息和第二RNIC的地址信息在存储装置中的位置和长度。可以从该位置指示信息所指示的位置中,读取相应第一vRNIC的标识、第二vRNIC所属的VNI,虚拟网络地址、第一RNIC的地址信息和第二RNIC的地址信息。
为便于描述,以下以用于指示以下隧道条目包括第一vRNIC的标识、第二vRNIC所属的VNI,虚拟网络地址、第一RNIC的地址信息和第二RNIC的地址信息为例进行描述。
可选的,在一些实施例中,WQE中可以携带数据。在此情况下,该目标WQE可以是携带有该待传输数据的WQE。
可选的,在另一些实施例中,WQE中可以携带位置指示信息。该位置指示信息用于指示数据在主机中的存储位置和长度。在此情况下,该目标WQE可以是携带有指示该待传输数据的存储位置的位置指示信息的WQE。
可见,在传输模式为RC、UC、UD或RD的情况下,该源RNIC都可以利用隧道表确定报文封装信息中的报文转发信息和目的vRNIC身份指示信息。
隧道表中每个隧道条目中的第一RNIC的地址信息可以包括该第一RNIC的IP地址和MAC地址。该第二和NIC的地址信息可以包括该第二NIC的IP地址和MAC地址。该虚拟网络地址可以包括该第一vRNIC的IP地址和该第二vRNIC的IP地址中的至少一个。
如上所述,每个隧道条目中都包括的第一vRNIC的相关信息(即第一vNIC的标识、第一vNIC的IP地址)和第二vRNIC的相关信息(即第二vRNIC所属的VNI、第二vNIC的IP地址)。但是这里的“第一”和“第二”只是为了区分每个隧道条目包括两个不同的vRNIC的相关信息,并不是限定分别属于该隧道表中任意两个隧道条目的两个第一vRNIC的相关信息都是同一个vRNIC的相关信息,以及分别属于该任意两个隧道条目包括的两个第二vRNIC的相关信息是同一个vRNIC的相关信息。分别属于该隧道表中的任意两个隧道条目的两个第一vRNIC的相关信息可以是同一个vRNIC的相关信息,也可以是不同的vRNIC的相关信息。分别属于该隧道表中的任意两个隧道条目的两个第二vRNIC的相关信息可以是同一个vRNIC的相关信息,也可以是不同的vRNIC的相关信息。
类似的,每个隧道条目中还包括第一RNIC的相关信息(即第一RNIC的地址信息)以及第二RNIC的相关信息(即第二RNIC的地址信息)中的“第一”和“第二”也是为了区分每个隧道条目包括两个不同的RNIC的相关信息,并不是限定分别属于该隧道表中任意两个隧道条目的两个第一RNIC的相关信息都是同一个RNIC的相关信息,以及分别属于该任意两个隧道条目包括的两个第二RNIC的相关信息是同一个RNIC的相关信息。分别属于该隧道表中的任意两个隧道条目的两个第一RNIC的相关信息可以是同一个RNIC的相关信息,也可以是不同的RNIC的相关信息。分别属于该隧道表中的任意两个隧道条目的两个第二NIC的相关信息可以是同一个RNIC的相关信息,也可以是不同的RNIC的相关信息。
隧道表中的至少一个隧道条目中与该源vRNIC的标识和该目标虚拟网络地址匹配的隧道条目可以称为目标隧道条目。对于该目标隧道条目而言,该目标隧道条目的第一vRNIC为该源vRNIC,该目标隧道条目的第二vRNIC为该目的vRNIC,该目标隧道条目的第一RNIC为该源RNIC,该目标隧道条目的第二RNIC为该目的RNIC。因此,该目标隧道条目中的第一vRNIC的标识为该源vRNIC的标识,该目标隧道条目中的第二vRNIC所属的VNI为该目的vRNIC所属的VNI,该目标隧道条目中的虚拟网络地址为该目标虚拟网络地址,该目标隧道条目中的第一RNIC的地址信息包括该源RNIC的IP地址和MAC地址,该目标隧道条目中的第二RNIC的地址信息包括该目的NIC的IP地址和MAC地址。
可选的,在一些实施例中,该第一RNIC的地址信息还可以包括该第一RNIC的端口号,该第二RNIC的地址信息还可以包括该第二RNIC的端口号。
表1是一个隧道表的示意。
表1
如表1所示的隧道表中包括五个隧道条目。假设该源vRNIC的标识为vNIC 1,该源vRNIC的IP地址为10.1.1.1,该目的vRNIC的IP地址为10.1.1.11。在此情况下,如表1所示的五个隧道条目的第一个隧道条目是与该源vRNIC的标识、该源vRNIC的IP地址和该目的vRNIC的IP地址匹配的目标隧道条目。根据该目标隧道条目,可以确定该目的vRNIC所属的VNI,该源NIC的IP地址为192.100.1.1,该源NIC的MAC地址为X:Y:Z:M:N:11,该目的NIC的IP地址为192.100.2.2,该目的NIC的MAC地址为M:N:X:Y:Z:22。该目的vRNIC所属的虚拟扩展局域网(Virtual eXtensible Local Area Network,VXLAN)网络标识(VXLAN NetworkIdentifier,VNI)为1001。
可选的,在一些实施例中,该隧道表可以保存在该源RNIC的处理电路的缓存中。
可选的,在另一些实施例中,该隧道表可以保存在该源RNIC的内存中。
可选的,在另一些实施例中,该隧道表可以保存在安装有该源RNIC的主机的存储装置中。
可选的,在另一些实施例中,该隧道表可以分为三部分,第一部分可以保存在该源RNIC的处理器的缓存中,第二部分可以保存在该源RNIC的内存中,第三部分可以保存在该源RNIC的主机的存储装置中。在此情况下,该源RNIC可以先检查第一部分隧道表是否包括目标隧道条目;若该第一部分隧道表不包括该目标隧道条目,可以检查第二部分隧道表是否包括该目标隧道条目;若该第二部分隧道表不包括该目标隧道条目,可以检查第三部分隧道表是否包括该目标隧道条目。该第一部分隧道表、该第二部分隧道表和该第三部分隧道表中的任意两部分隧道表可以由交集,也可以没有交集。例如,假设该隧道表共包括100个隧道条目,该第一部分隧道表可以包括100个隧道条目中的第1至第10个隧道条目,第二部分隧道表可以包括100个隧道条目中的第11至第40个隧道条目,第三部分隧道表可以包括100个隧道条目中的第41至第100个隧道条目。又如,第一部分隧道表可以是第二部分隧道表和/或第三部分隧道表的子集,和/或,第二部分隧道表可以是第三部分隧道表的子集。例如,还假设该隧道表共包括100个隧道条目,该第一部分隧道表可以包括100个隧道条目中的第1至第10个隧道条目,第二部分隧道表可以包括100个隧道条目中的第1至第40个隧道条目,第三部分隧道表可以包括100个隧道条目中的第1至第100个隧道条目。
可选的,在另一些实施例中,该隧道表可以分为两部分,这两部分隧道表可以保存在该源RNIC的处理器的缓存、该源RNIC的内存和该源RNIC的主机的存储装置中的任意两个中。类似的,若该两部分隧道表分别保存在该源RNIC的处理器的缓存和该源RNIC的内存中,则该源RNIC可以先检查保存在该源RNIC的处理器的缓存中隧道表是否包括目标隧道条目;若保存在该源RNIC的处理器的缓存中的隧道表不包括该目标隧道条目,可以检查保存在该源RNIC的内存中的隧道表是否包括该目标隧道条目。若该两部分隧道表分别保存在该源RNIC的内存和该源RNIC的主机的存储装置中,则该源RNIC可以先检查保存在该源RNIC的内存中隧道表是否包括目标隧道条目;若保存在该源RNIC的内存中的隧道表不包括该目标隧道条目,可以检查保存在该源RNIC的主机的存储装置中的隧道表是否包括该目标隧道条目。类似的,该两部分隧道表可以有交集也可以没有交集。
可选的,在一些实施例中,该源RNIC可以确定对应于该源vRNIC的标识的目标配置条目,根据该目标配置条目和对应于该待传输数据的目标WQE,确定该目标虚拟网络地址。可选的,该源RNIC可以从该目标WQE中确定该目的vRNIC的IP地址,从该目标配置条目中确定该源vRNIC的IP地址。
可选的,在一些实施例中,该目标WQE中可以包括该目的vRNIC的IP地址。这样,该源RNIC可以直接从该目标WQE中获取该目的vRNIC的IP地址。在另一些实施例中,该目标WQE中可以包括目的vRNIC IP地址指示信息,该目的vRNIC IP地址指示信息用于指示保存该目的vRNIC的IP地址的位置。该源RNIC可以根据该目的vRNIC IP地址指示信息所指示的位置中获取该目的vRNIC的IP地址。
该目标配置条目是配置表中的一个条目。配置表用于保存vRNIC标识和该vRNIC的IP地址的对应关系。该配置表可以包括至少一个配置条目,该至少一个配置条目中的每个配置条目包括vRNIC的标识和该vRNIC的IP地址。该源RNIC可以利用该源vRNIC的标识,从该配置表中查找到与该源vRNIC标识对应的目标配置条目。该目标配置条目中的vRNIC的标识为该源vRNIC的标识,该目标配置条目中的IP地址为该源vRNIC的IP地址。
该配置表保存的位置可以与该隧道表保存的位置类似。换句话说,该配置表可以保存在该源RNIC的处理器的缓存、在该源RNIC的内存,和该源RNIC的主机的存储装置中的任意一个或者多个中。该配置表的具体保存方式以及该源RNIC查找该配置表的方式可以参考上述隧道表的保存方式以及该源RNIC查找隧道表的方式,为了简洁,在此就不再赘述。
如上所述,在该传输模式为UD或RD的情况下,该源RNIC可以根据该目标WQE,确定目标虚拟网络地址。
可选的,在一些实施例中,该目标WQE中可以包括该源vRNIC的IP地址和该目的vRNIC的IP地址。这样,该源RNIC可以直接从该目标WQE中获取该源vRNIC的IP地址和该目的vRNIC的IP地址。在另一些实施例中,该目标WQE中可以包括虚拟地址指示信息,该虚拟地址指示信息用于指示保存该源vRNIC的IP地址的位置和保存该目的vRNIC的IP地址的位置。该源RNIC可以根据该虚拟地址指示信息所指示的位置中获取该源vRNIC的IP地址和该目的vRNIC的IP地址。
为了便于描述,以下将利用QPC确定出报文转发信息的方式简称为QPC缓存模式,将利用隧道表确定出报文转发信息的方式可以称为查表模式。
可以看出,根据传输模式,该源vRNIC可以从不同的地方确定该报文转发信息。
可选的,在一些实施例中,该源RNIC可能无法利用QPC缓存模式或者查表模式确定该报文转发信息和该目的vRNIC身份指示信息。换句话说,该源RNIC可能确定没有与该连接信息和该源vRNIC的标识对应的目标队列对上下文,或者,确定没有与该源vRNIC的标识和该目标虚拟网络地址匹配的目标隧道条目。如上所述,报文转发信息中包括该源RNIC的IP地址、该源RNIC的MAC地址、四层端口号、目的RNIC的IP地址、该目的RNIC的MAC地址。该源RNIC的IP地址、该源RNIC的MAC地址和该四层端口号都可以保存在该源RNIC的存储装置中。因此该源RNIC可以直接获取这些信息。因此,该源RNIC或者该源RNIC的主机中未保存目的RNIC的IP地址和该目的RNIC的MAC地址。在此情况下,该源RNIC可以利用慢处理流程获取该目的RNIC的IP地址和该目的RNIC的MAC地址。为了便于描述,可以将该目的RNIC的IP地址和该目的RNIC的MAC地址称为目的RNIC的地址信息,将该源RNIC的IP地址和该源RNIC的MAC地址称为源RNIC的地址信息。
可选的,在一些实施例中,该源RNIC可以获取该源vRNIC的标识以及对应于该源vRNIC的标识的VNI。该源RNIC可以向至少一个目标NIC发送请求消息,该至少一个目标NIC中的每个目标NIC运行有属于该VNI的至少一个vRNIC,该请求消息包括该源vRNIC的标识和目标虚拟网络地址,其中该目标虚拟网络地址包括该源vRNIC的IP地址和该目的vRNIC的IP地址中的至少一个。该源RNIC接收该目的RNIC发送的反馈信息,该反馈信息中包括该目的RNIC的地址信息。
可选的,在一些实施例中,该源RNIC或者该RNIC的主机的存储装置中可以保存有该目的RNIC的IP地址和该目的RNIC的端口号,但是未保存该目的RNIC的MAC地址。在此情况下,该源RNIC可以只需要获取该目的RNIC的MAC地址。在此情况下,该源RNIC可以利用地址解析协议(Address Resolution Protocol,ARP)获取该目的RNIC的MAC地址。该源RNIC可以获取对应于该源vRNIC的标识的VNI,并向属于该VNI的所有vRNIC广播ARP请求并接收该目的vRNIC发送的ARP响应。该ARP响应中包括该目的vRNIC的MAC地址。
该源RNIC在获取了该目的RNIC的地址信息后,可以根据该目的RNIC的地址信息和该源RNIC的地址信息,封装该待传输数据。此外,该源RNIC在获取了该目的RNIC的地址信息和源RNIC的地址信息后,在隧道表中添加对应的隧道条目。
该源RNIC还可以维护该隧道表。例如,该源RNIC可以设置一个超时时间,并在一个隧道条目写入到隧道表的后开始启动计时器。该隧道条目每次命中后,重新启动该计时器。若该计时器超过该超时时间且该隧道条目还未命中,则删除该隧道条目。
该目的vRNIC身份指示信息用于指示该目的vRNIC的身份。
可选的,在一些实施例中,该目的vRNIC身份指示信息可以包括该目的vRNIC所属的VNI和该目的vRNIC的虚拟MAC地址。
该目的vRNIC所属的VNI可以从目标QPC中或者目标隧道条目中获取。换句话说,若报文转发信息是采用QPC缓存模式确定的,则该源RNIC还可以从该目标QPC中确定该目的vRNIC所属的VNI;若报文转发信息是采用查表模式确定的,则该源RNIC还可以从该目标隧道条目中确定该目的vRNIC所属的VNI。
目的vRNIC的IP地址可以从源RNIC保存的vRNIC的IP地址和MAC地址的对应关系表中获取。源RNIC可以保存一个IP地址和MAC地址的对应关系表,该对应关系表中包括多个表项,每个表项包括一个IP地址和一个MAC地址。该源RNIC可以根据从目标QPC或目标隧道条目中获取的该目的vRNIC的IP地址,查询该对应关系表,确定该对应关系表中的匹配表项(即IP地址为该目的vRNIC的表项)中的MAC地址为该目的vRNIC的MAC地址。
可选的,在一些实施例中,该对应关系表的每个表项中还可以包括vRNIC所属的VNI。换句话说,该源RNIC可以利用该对应关系表,根据该目的vRNIC的IP地址,确定该目的vRNIC的MAC地址和VNI。
可选的,在另一些实施例中,该目的vRNIC身份指示信息可以包括该目的vRNIC的标识。目的vRNIC的身份指示信息可以从源RNIC保存的vRNIC的IP地址和标识的对应关系表中获取。源RNIC可以保存一个IP地址和标识的对应关系表,该对应关系表中包括多个表项,每个表项包括一个IP地址和一个标识。该源RNIC可以根据从目标QPC或目标隧道条目中获取的该目的vRNIC的IP地址,查询该对应关系表,确定该对应关系表中的匹配表项(即IP地址为该目的vRNIC的表项)中的标识为该目的vRNIC的标识。可选的,在一些实施例中,该对应关系表的每个表项中还可以包括vRNIC所属的VNI。换句话说,该源RNIC可以利用该对应关系表,根据该目的vRNIC的IP地址,确定该目的vRNIC的标识和VNI。
303,源RNIC对该待传输数据进行封装,得到目标报文。
该目标报文包括该报文封装信息和该待传输数据。该报文封装信息包括报文转发信息,目的vRNIC的身份指示信息。该报文转发信息和该目的vRNIC的身份指示信息是步骤302中获取到的。换句话说,该源RNIC可以利用获取到的报文转发信息和目的vRNIC身份指示信息对该待传输数据进行封装,得到该目标报文。
该报文封装信息还可以包括无线带宽(InfiniBand,IB)信息。
图4是一个目标报文的示意图。如图4所示的目标报文包括:MAC头(也可以称为“外层MAC头”)、IP头(也可以称为“外层IP头”)、UDP头、VXLAN头、IB报文头和负载。
如图4所示,MAC头中包括源MAC地址和目的MAC地址,该源MAC地址是该源RNIC的MAC地址,该目的MAC地址是该目的RNIC的MAC地址。IP头中包括源IP地址和目的IP地址,该源IP地址是该源RNIC的IP地址,该目的IP地址是该目的RNIC的IP地址。图4中的四层端口号头为UDP头,该UDP头中包括UDP源端口号和目的端口号,且该目的端口号为VXLAN端口号。UDP源端口号可以是根据哈希算法计算得到的值。UDP源端口号的确定方式与现有的UDP源端口号的确定方式相同,在此就不必赘述。该VXLAN头中包括该目的vRNIC的身份指示信息。该IB头中包括该IB信息。该IB信息可以是IB基本传输头(Base Transport Header,BTH)。可以理解的是,该目标报文还可以包括校验位,例如帧校验序列(Frame Check Sequence,FCS)(图中未示出)。
MAC头、IP头和UDP头中除了图4所示的内容外,还包括其他内容。本申请实施例对这些内容并未进行改进。因此,MAC头、IP头和UDP头的具体格式和内容可以参考现有协议,为了简洁,在此就不必赘述。
本申请技术方案并未对IB头中所传输的信息进行改进。因此IB头中所传输的具体信息可以参考现有RoCE协议所规定的IB头,为了简洁,在此就不必赘述。
此外,该目标报文中除了如图4的各个字段外还可以包括校验字段(图中未示出)。该校验字段的确定方式和具体内容与RoCE标准报文中的校验字段的确定方式和具体内容相同,为了简洁,在此就不再赘述。
该目标报文可以是基于RoCE标准报文的报文。
例如,如图4所示的目标报文是基于RoCE第二版(version 2,v2)标准报文的报文。可以看出,图4所示的目标报文只比RoCEv2的标准报文多了一个网络虚拟化协议头(即图4中的VXLAN头)。又如,该目标报文也可以是基于RoCE第一版(verision 1,v1)标准报文的报文。在此情况下,目标报文可以比RoCEv1标准报文多一个网络虚拟化协议头。
可选的,在一些实施例中,该目标报文中不包括以下信息中的至少一个:该源vRNIC的IP地址、该目的vRNIC的IP地址、该源vRNIC的MAC地址、该源vRINC的端口号和该目的vRNIC的端口号。
可选的,在一些实施例中,该目标报文中不包括该源vRNIC的IP地址、该目的vRNIC的IP地址、该源vRNIC的MAC地址、该源vRINC的端口号和该目的vRNIC的端口号。
如果该目标报文包括上述信息,则该源RNIC还需要将上述信息作为内层报文头封装到该目标报文中。这样就增加了一次报文封装。此外,上述信息还占用了该目标报文的容量。换句话说,如果目标报文中还需要包括上述信息中的一个或多个,则该目标报文中用于承载待传输数据的字段就会减小。换句话说,目标报文的负载的容量就会减小。相同大小的待传输数据可能需要两个报文才能完成传输。这样增加了网络中传输的报文数量。
该源RNIC可以从QPC或者WQE中获取该IB信息。具体地,在传输模式为RC/UC的情况下,该源RNIC可以从目标QPC中获取该IB信息。在传输模式为UD/RD的情况下,该源RNIC可以从参考WQE中获取该IB信息。该源RNIC获取该IB信息的具体实现方式与现有的获取IB信息的具体实现方式相同,为了简洁,在此就不必赘述。
304,该源RNIC将该目标报文发送至该目的RNIC,其中,该目的vRNIC是运行在该目的RNIC上的一个vRNC。相应的,该目的RNIC接收该目标报文。
305,该目的RNIC根据该目标报文中的目的vRNIC身份指示信息,确定该目的vRNIC。
该目标报文中的目的vRNIC身份指示信息可以由网路虚拟化协议头携带。
可选的,在一些实施例中,该目的vRNIC的身份指示信息可以包括该目的vRNIC所属的VNI和该目的vRNIC的虚拟MAC地址。该网络虚拟化协议头中可以携带该目的vRNIC所属的VNI和该目的vRNIC的虚拟MAC地址。
可选的,在一些实施例中,该网络虚拟化协议头可以是VXLAN头(例如图4)、VXLAN-通用协议扩展(Generic Protocol Extension,GPE)头、网络服务头(Network ServiceHeader)和通用网络虚拟化封装(Generic Network Virtualization Encapsulation,Geneve)头中的一个。
图5是以VXLAN-GPE头为例介绍如何利用VXLAN-GPE头携带该目的vRNIC所属的VNI和该目的vRNIC的虚拟MAC地址。
如图5所示的VXLAN-GPE头包括标志(Flags)字段、保留字段、VNI字段、下一协议(Next Protocol,NP)字段和保留字段。
如图5所示的标志字段为RRLLIRRR,其中R表示该位为保留位,L表示该位是用于指示该VXLAN-GPE格式的指示位,I表示已经被VXLAN-GPE占用的位。可以理解的是,如图5所示的标志字段占用了高2、3位作为该VXLAN-GPE格式的指示位。在另一些实施例中,也可以使用该标志字段的其他保留位作为该VXLAN-GPE格式的指示位。可选的,在一些实施例中,如果LL位的值为01,则表示该VXLAN-GPE头中包括该目的vRNIC的身份指示信息。该VXLAN-GPE头中的VNI字段可以携带该目的vRNIC所属的VNI。该VXLAN-GPE头的第二个保留字段可以携带该目的vRNIC的MAC地址。
假设该VXLAN-GPE头中的标志字段中的高2、3位(即图4中的LL位)的值为01,则该目的NIC在接收到该目标报文后,可以根据该VXLAN-GPE头中的标志字段中的高2、3位确定该VXLAN-GPE头中携带目的vRNIC的身份指示信息,并从该VXLAN-GPE头中的VNI字段和第二个保留字段中分别获取该目的vRNIC所属的VNI以及该目的vRNIC的MAC地址。
可选的,该目的RNIC确定该目的vRNIC可以是确定该目的vRNIC的标识。
该目的RNIC可以根据获取到的VNI和MAC地址,确定该目的vRNIC的标识。vRNIC的标识是该vRNIC所在的RNIC分配的。该vRNIC迁移到其他RNIC后,该vRNIC的标识会发生改变,该vRNIC所属的VNI和该vRNIC的MAC地址不会发生变化。因此,利用该目的vRNIC所属的VNI和该目的vRNIC的MAC地址作为该目的vRNIC的身份指示信息可以避免因该目的vRNIC发生迁移造成的该目的vRNIC的标识发生变化导致的无法准确找到目的vRNIC的情况发生。
该目的RNIC可以通过查找虚拟设备映射表来确定该目的vRNIC的标识。该虚拟设备映射表中包括至少一个虚拟设备表项,每个表项包括VNI、MAC地址和标识。该目的RNIC可以从该虚拟设备映射表中确定与获取到的VNI和MAC地址匹配的目标虚拟设备表项,该目标虚拟设备表项中的VNI为该目的RNIC获取到的该目的vRNIC所属的VNI,该目标虚拟表项中的MAC地址为该目的RNIC获取到的该目的vRNI的MAC地址。相应的,该目标虚拟表项中的标识就是该目的vRNIC的标识。
该目的RNIC可以维护该虚拟设备映射表。具体地,在该目的RNIC中创建了一个vRNIC的情况下,该目的RNIC可以在该虚拟设备映射表中创建与该vRNIC对应的虚拟设备表项,该虚拟设备表项中的VNI为该vRNIC所属的VNI,该虚拟设备表项中的MAC地址为该vRNIC的MAC地址,该虚拟设备表项中的标识为该vRNIC的标识。该目的RNIC还可以在该vRNIC销毁(例如迁移到其他RNIC或者从该目的RNIC删除)后,将与该vRNIC对应的虚拟设备表项删除。
可选的,在另一些实施例中,该目的vRNIC的身份指示信息可以是该目的vRNIC的标识。类似的,该目的vRNIC的标识也可以利用该网络虚拟化协议头携带。还以如图4所示的VXLAN-GPE头。该VXLAN-GPE头中的第二个保留字段可以携带该目的vRNIC的标识。该VXLAN-GPE头的标志字段中的高2、3位也可以用于指示该VXLAN-GPE头中携带目的vRNIC的身份指示信息。这样,该目的RNIC可以直接从该VXLAN-GPE头中确定该目的vRNIC的标识。
306,该目的RNIC将该目标报文发送至该目的vRNIC。该目的vRNIC对接收到的该目标报文进行处理。
具体地,该目的vRNIC可以剥离该目标报文中的报文转发信息,目的vRNIC的身份指示信息和IB信息,对该目标报文中的负载部分中的数据(即由该源vRNIC发送的待传输数据)进行处理。该目的vRNIC对该待传输数据进行处理的具体过程与现有的vRNIC对利用RDMA技术传输的数据的处理过程相同,为了简洁,在此就不必赘述
根据图3所示的方法,待传输的数据可以只进行一次报文封装,因此隧道封装的开销较小。封装后的报文中无需包括源vRNIC的IP地址、MAC地址和端口号信息,也无需包括目的vRNIC的IP地址和端口号信息。目的RNIC和目的vRNIC在处理目标报文的过程中不需要获取上述信息。因此,目标报文的负载中可以不需要携带这些冗余信息。在此情况下,目标报文的负载(payload)中可以空余更多的空间用于传输待传输的数据,这样可以提升网络中的有效吞吐。此外,上述方案中,待传输数据的封装过程可以由RNIC完整。因此,无需设置额外的用于封装待传输数据的硬件。这样可以降低在以太网中应用RDMA技术的成本。
可以理解的是,VXLAN隧道端点(VXLAN Tunnel End Point,VTEP)可以是物理设备也可以是虚拟设备。图3所示的方法中的以RNIC作为VTEP。换句话说,图3所示方法中的源RNIC也可以称为源VTEP,目的RNIC也可以称为目的VTEP。相应的,源RNIC的IP地址也可以称为源VTEP的IP地址,源RNIC的MAC地址也可以称为源VTEP的MAC地址。目的RNIC的IP地址也可以称为目的VTEP的IP地址,目的RNIC的MAC地址也可以称为目的VTEP的MAC地址。如上所述,RNIC是物理网卡。因此图3所示的实施例是以物理网卡作为VTEP描述的。在另一些实施例中,VTEP也可以通过虚拟设备实现。换句话说,图3所示方法中的RNIC也可以被理解为是一种vRNIC。通过虚拟设备实现本申请提供的通信方法的具体实现流程与物理设备实现本申请提供的通信方法的具体实现流程相同,为了简洁,在此就不必赘述。
为了便于本领域技术人员更好地理解本申请的技术方案,下面将结合图2和图3,对本申请的技术方案进行进一步描述。
假设通信双方分别为VM 211和VM 231。待传输数据是保存在VM 211的存储装置中,该待传输数据需要发送至VM 231的存储装置中。假设该待传输数据为“你好”。在此情况下,源vRNIC为VM 211对应的vRNIC,即vRNIC 221,目的vRNIC为VM 231对应的vRNIC,即vRNIC 241,源VTEP为RNIC 220,目的VTEP为RNIC 240。
假设vRNIC 211的IP地址为192.168.0.1,vRNIC 241的IP地址为192.168.0.2,vRNIC的MAC地址为1:2:3:4:5:6,RNIC 220的IP地址为10.0.0.1,RNIC 220的MAC地址为A:B:C:D:E:F,RNIC 240的IP地址为10.0.0.2,RNIC 240的MAC地址为X:Y:Z:M:N:O,VNI为xxx。
在RC/UC模式下,该源VTEP可以从QPC缓存中获取目标QPC,该目标QPC中保存有目的VTEP的IP地址和MAC地址,目的vRNIC的MAC地址和VNI(或者指向上述信息指针)。
在RC/UC或者UD/RD模式下,该源VTEP可以从隧道表中获取目标隧道条目,该目标隧道条目中保存有VNI、目的VTEP的IP地址和MAC地址,目的vRNIC的MAC地址和VNI(或者指向上述信息指针)。
源VTEP可以根据获取到的目的VTEP的IP地址和MAC地址,目的vRNIC的MAC地址和VNI以及源VTEP的IP地址和MAC地址,对待传输数据进行封装。图6是一个封装好的目标报文。图6所示的目标报文是根据上述内容进行封装的。可以理解的是,图6中仅示出了该目标报文中的一些关键信息。
目的VTEP在接收到该目标报文后,可以根据UDP头中的端口号判定当前报文是采用VXLAN封装的虚拟报文。根据VXLAN头的定义,目的VTEP发现标志(Flags)字段的高2,3位使能,因此,可以确定该报文是本申请实施例所定义的R_VXLAN协议。进而,可以确定第二个保留字段中携带的内容是vRNIC的MAC地址。目的VTEP可以根据VXLAN头中获取到的VNI和vRNIC的MAC地址,确定目的vRNIC为vRNIC 241。目的VTEP将该目标报文发送至vRNIC 241。vRNIC 241剥离外层报文头,将IB头传递给VM 231的RDMA引擎处理。
图7是根据本申请实施例提供的一种网卡的示意性结构框图。如图7所示的网卡700包括:处理单元701和发送单元702。网卡700是支持RDMIA技术的网卡。
获取单元701,用于获取源vRNIC发送的待传输数据,其中该源vRNIC是运行在网卡700上的一个vRNIC。
处理单元701,还用于获取报文转发信息和目的vRNIC身份指示信息,该报文转发信息包括网卡700的IP地址,网卡700的MAC地址,目的RNIC的IP地址,目的RNIC的MAC地址和四层端口号。
处理单元701,还用于对该待传输数据进行封装,得到目标报文,该目标报文包括该报文转发信息、该目的虚拟RNIC身份指示信息和该待传输数据,该目标报文不包括以下信息中的至少一个:该源vRNIC的IP地址、该目的vRNIC的IP地址、该源vRNIC的MAC地址、该源vRNIC的端口号和该目的虚拟RNIC的端口号。
发送单元702,用于将该目标报文发送至该目的RNIC,其中,该目的vRNIC是运行在该目的RNIC上的一个vRNIC。
网卡700可以是上述实施例中的源RNIC。处理单元701可以由处理器实现,发送单元702可以由发送器实现。处理单元701和发送单元702的具体功能和有益效果,可以参见上述实施例的描述。
图8是根据本申请实施例提供的一种网卡的示意性结构框图。如图8所示的网卡800包括:接收单元801和处理单元802。网卡800是支持RDMIA技术的网卡。
获取单元801,用于接收源RNIC发送的报文,该报文包括报文转发信息、目的虚拟RNIC身份指示信息和数据,该报文转发信息包括该源RNIC的互联网协议IP地址、该源RNIC的媒体访问控制MAC地址、该源RNIC的端口号、该网卡的IP地址、该网卡的MAC地址和四层端口号,该目标报文不包括以下信息中的至少一个:源虚拟RNIC的IP地址、该目的虚拟RNIC的IP地址、源虚拟RNIC的MAC地址、该源虚拟RNIC的端口号和该目的虚拟RNIC的端口号,该源虚拟RNIC是运行在该源RNIC中的一个虚拟RNIC,该目的虚拟RNIC是运行在该网卡中的一个虚拟RNIC。
处理单元802,用于根据该目的虚拟RNIC身份指示信息,确定该目的虚拟RNIC。
处理单元802,用于将该报文发送至所述目的vRNIC。
网卡800可以是上述实施例中的目的RNIC。接收单元801可以由接收器实现,处理单元802可以由处理器实现。接收单元801和处理单元802的具体功能和有益效果,可以参见上述实施例的描述。
图9是根据本申请实施例提供的网卡的结构框图。图9所示的网卡900包括:处理器901、存储器902和收发器903。网卡900是支持RDMIA技术的网卡。
处理器901、存储器902和收发器903之间通过内部连接通路互相通信,传递控制和/或数据信号。
上述本申请实施例揭示的方法可以应用于处理器901中,或者由处理器901实现。处理器901可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器901中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器901可以是通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器902,处理器901读取存储器902中的指令,结合其硬件完成上述方法的步骤。存储器902可以独立于处理器901存在,此时,存储器902可以通过连接通路与处理器901相连接。又一种可能的设计中,存储器902也可以和处理器901集成在一起,本申请实施例对此不作限定。
可选的,在一些实施例中,存储器902可以存储用于执行如图3所示方法中源RNIC执行的方法的指令。处理器901可以执行存储器902中存储的指令结合其他硬件(例如收发器903)完成如图3所示方法中源RNIC的步骤,具体工作过程和有益效果可以参见图3所示实施例中的描述。
可选的,在一些实施例中,存储器902可以存储用于执行如图3所示方法中目的RNIC执行的方法的指令。处理器901可以执行存储器902中存储的指令结合其他硬件(例如收发器903)完成如图3所示方法中目的RNIC的步骤,具体工作过程和有益效果可以参见图3所示实施例中的描述
本申请实施例还提供一种芯片,该芯片包括收发单元和处理单元。其中,收发单元可以是输入输出电路、通信接口;处理单元为该芯片上集成的处理器或者微处理器或者集成电路。该芯片可以执行上述方法实施例中源RNIC的方法。
本申请实施例还提供一种芯片,该芯片包括收发单元和处理单元。其中,收发单元可以是输入输出电路、通信接口;处理单元为该芯片上集成的处理器或者微处理器或者集成电路。该芯片可以执行上述实施例中目的RNIC执行的方法。
本申请实施例还提供一种计算机可读存储介质,其上存储有指令,该指令被执行时执行上述方法实施例中源RNIC的方法。
作为本实施例的另一种形式,提供一种计算机可读存储介质,其上存储有指令,该指令被执行时执行上述方法实施例中目的RNIC的方法。
本申请实施例还提供一种包含指令的计算机程序产品,该指令被执行时执行上述方法实施例中源RNIC的方法。
作为本实施例的另一种形式,提供一种包含指令的计算机程序产品,该指令被执行时执行上述方法实施例中目的的方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (26)
1.一种通信方法,其特征在于,所述方法包括:
源支持远程直接内存存取的网卡RNIC获取源虚拟RNIC发送的待传输数据,其中所述源虚拟RNIC是运行在所述源RNIC上的一个虚拟RNIC;
所述源RNIC获取报文转发信息和目的虚拟RNIC身份指示信息,所述报文转发信息包括所述源RNIC的互联网协议IP地址、所述源RNIC的媒体访问控制MAC地址、目的RNIC的IP地址、所述目的RNIC的MAC地址和四层端口号;
所述源RNIC对所述待传输数据进行封装,以得到目标报文,所述目标报文包括所述报文转发信息、所述目的虚拟RNIC身份指示信息和所述待传输数据,所述目标报文不包括以下信息中的至少一个:所述源虚拟RNIC的IP地址、所述目的虚拟RNIC的IP地址、所述源虚拟RNIC的MAC地址、所述源虚拟RNIC的端口号和所述目的虚拟RNIC的端口号;
所述源RNIC向所述目的RNIC发送所述目标报文,其中,所述目的虚拟RNIC是运行在所述目的RNIC上的一个虚拟RNIC。
2.如权利要求1所述的方法,其特征在于,所述源RNIC获取报文转发信息和目的虚拟RNIC身份指示信息,包括:
所述源RNIC根据源虚拟RNIC的标识和用于传输所述待传输数据的传输模式,获取所述报文转发信息和所述目的虚拟RNIC身份指示信息。
3.如权利要求2所述的方法,其特征在于,所述源RNIC根据所述源虚拟RNIC的标识和传输模式,获取所述报文转发信息和所述目的虚拟RNIC身份指示信息,包括:
在所述传输模式为可靠连接RC或不可靠连接UC的情况下,所述源RNIC根据目标队列对上下文,确定所述报文转发信息和所述目的虚拟RNIC身份指示信息,其中所述目标队列对上下文对应于连接信息和所述源虚拟RNIC的标识。
4.如权利要求2所述的方法,其特征在于,所述源RNIC根据所述源虚拟RNIC的标识和传输模式,获取所述报文转发信息和所述目的虚拟RNIC身份指示信息,包括:
在所述传输模式为可靠连接RC或不可靠连接UC的情况下,所述源RNIC从参考队列对上下文或参考WQE中确定目标虚拟网络地址,其中所述目标虚拟网络地址包括所述源虚拟RNIC的IP地址和所述目的虚拟RNIC的IP地址中的至少一个,所述参考队列对上下文与连接信息和所述源虚拟RNIC的标识对应,所述参考WQE与所述连接信息和所述源虚拟RNIC的标识对应;
所述源RNIC从隧道表确定所述报文转发信息和所述目的虚拟RNIC身份指示信息,其中所述隧道表中包括至少一个隧道条目,所述至少一个隧道条目中的每个隧道条目用于指示:第一虚拟RNIC的标识、第二虚拟RNIC的所属的虚拟扩展局域网网络标识VNI,虚拟网络地址、第一RNIC的地址信息和第二RNIC的地址信息,其中所述第一虚拟RNIC运行在所述第一RNIC中,所述第二虚拟RNIC运行在所述第二RNIC中,所述虚拟网络地址包括所述第一虚拟RNIC的IP地址和所述第二虚拟RNIC的IP地址中的至少一个,所述至少一个隧道条目中与所述源虚拟RNIC的标识和所述目标虚拟网络地址匹配的隧道条目包括所述报文转发信息。
5.如权利要求2所述的方法,其特征在于,所述源RNIC根据所述源虚拟RNIC的标识和传输模式,获取所述报文转发信息和所述目的虚拟RNIC身份指示信息,包括:
在所述传输模式为不可靠数据包UD或可靠数据包RD的情况下,所述源RNIC根据对应于所述待传输数据的目标WQE和对应于所述源虚拟RNIC的标识,确定目标虚拟网络地址,或者根据所述目标WQE,确定所述目标虚拟网络地址,其中所述目标虚拟网络地址包括所述源虚拟RNIC的IP地址和所述目的虚拟RNIC的IP地址中的至少一个;
所述源RNIC从隧道表确定所述报文转发信息和所述目的虚拟RNIC身份指示信息,其中所述隧道表中包括至少一个隧道条目,所述至少一个隧道条目中的每个隧道条目用于指示:第一虚拟RNIC的标识、第二虚拟RNIC的所属的虚拟扩展局域网网络标识VNI,虚拟网络地址、第一RNIC的地址信息和第二RNIC的地址信息,其中所述第一虚拟RNIC运行在所述第一RNIC中,所述第二虚拟RNIC运行在所述第二RNIC中,所述虚拟网络地址包括所述第一虚拟RNIC的IP地址和所述第二虚拟RNIC的IP地址中的至少一个,所述至少一个隧道条目中与所述源虚拟RNIC的标识和所述目标虚拟网络地址匹配的隧道条目包括所述报文转发信息。
6.如权利要求1所述的方法,其特征在于,所述源RNIC获取报文转发信息和目的虚拟RNIC身份指示信息,包括:
所述源RNIC向至少一个目标NIC发送请求消息,所述至少一个目标NIC中的每个目标NIC运行有至少一个虚拟RNIC,所述至少一个虚拟RNIC与所述源虚拟RNIC属于同一VNI,所述请求消息包括所述源虚拟RNIC的标识和目标虚拟网络地址,其中所述目标虚拟网络地址包括所述源虚拟RNIC的IP地址和所述目的虚拟RNIC的IP地址中的至少一个;
所述源RNIC接收所述目的RNIC发送的反馈信息,所述反馈信息中包括所述目的RNIC的IP地址和所述目的RNIC的MAC地址;
所述源RNIC根据所述反馈信息确定所述报文转发信息和所述目的虚拟RNIC身份指示信息。
7.如权利要求1至6中任一项所述的方法,其特征在于,所述目标报文包括:MAC头、IP头、四层端口号头、网络虚拟化协议头和负载字段,其中,
所述MAC头中包括所述源RNIC的MAC地址和所述目的RNIC的MAC地址;
所述IP头中包括所述源RNIC的IP地址和所述目的RNIC的IP地址;
所述四层端口号头中包括四层端口号;
所述网络虚拟化协议头包括所述目的虚拟RNIC的身份指示信息;
所述负载字段包括所述待传输数据。
8.如权利要求1至6中任一项所述的方法,其特征在于,所述目的虚拟RNIC的身份指示信息包括所述目的虚拟RNIC所属的VNI和所述目的虚拟RNIC的虚拟MAC地址。
9.一种通信方法,其特征在于,所述方法包括:
目的RNIC接收源RNIC发送的报文,所述报文包括报文转发信息、目的虚拟RNIC身份指示信息和数据,所述报文转发信息包括所述源RNIC的互联网协议IP地址、所述源RNIC的媒体访问控制MAC地址、目的RNIC的IP地址、所述目的RNIC的MAC地址和四层端口号,所述报文不包括以下信息中的至少一个:源虚拟RNIC的IP地址、所述目的虚拟RNIC的IP地址、源虚拟RNIC的MAC地址、所述源虚拟RNIC的端口号和所述目的虚拟RNIC的端口号,所述源虚拟RNIC是运行在所述源RNIC中的一个虚拟RNIC,所述目的虚拟RNIC是运行在所述目的RNIC中的一个虚拟RNIC;
所述目的RNIC根据所述目的虚拟RNIC身份指示信息,确定所述目的虚拟RNIC;
所述目的RNIC将所述报文发送至所述目的虚拟RNIC。
10.如权利要求9所述的方法,其特征在于,所述报文包括:MAC头、IP头、四层端口号头、网络虚拟化协议头和负载字段,其中,
所述MAC头中包括所述源RNIC的MAC地址和所述目的RNIC的MAC地址;
所述IP头中包括所述源RNIC的IP地址和所述目的RNIC的IP地址;
所述四层端口号头中包括四层端口号;
所述网络虚拟化协议头包括所述目的虚拟RNIC的身份指示信息;
所述负载字段包括所述数据。
11.如权利要求9或10所述的方法,其特征在于,所述目的虚拟RNIC身份指示信息包括:所述目的虚拟RNIC所属的VNI和所述目的虚拟RNIC的虚拟MAC地址;
所述目的RNIC根据所述目的虚拟RNIC身份指示信息,确定所述目的虚拟RNIC,包括:
所述目的RNIC从虚拟设备映射表中确定所述目的虚拟RNIC,其中所述虚拟设备映射表中包括至少一个虚拟设备表项,所述至少一个虚拟设备表项中的每个表项包括VNI、MAC地址和标识,其中所述至少一个虚拟设备表项中与所述目的虚拟RNIC所属的VNI和所述目的虚拟RNIC的虚拟MAC地址匹配的虚拟设备表项中的标识为所述目的虚拟RNIC的标识。
12.一种网卡,其特征在于,所述网卡支持远程直接内存存取技术,所述网卡包括:
处理单元,用于获取源虚拟RNIC发送的待传输数据,其中所述源虚拟RNIC是运行在所述网卡上的一个虚拟RNIC;
所述处理单元,还用于获取报文转发信息和目的虚拟RNIC身份指示信息,所述报文转发信息包括所述网卡的互联网协议IP地址、所述网卡的媒体访问控制MAC地址、目的RNIC的IP地址、所述目的RNIC的MAC地址和四层端口号;
所述处理单元,还用于对所述待传输数据进行封装,以得到目标报文,所述目标报文包括所述报文转发信息、所述目的虚拟RNIC身份指示信息和所述待传输数据,所述目标报文不包括以下信息中的至少一个:所述源虚拟RNIC的IP地址、所述目的虚拟RNIC的IP地址、所述源虚拟RNIC的MAC地址、所述源虚拟RNIC的端口号和所述目的虚拟RNIC的端口号;
发送单元,用于向所述目的RNIC发送所述目标报文,其中,所述目的虚拟RNIC是运行在所述目的RNIC上的一个虚拟RNIC。
13.如权利要求12所述的网卡,其特征在于,所述处理单元,具体用于根据源虚拟RNIC的标识和用于传输所述待传输数据的传输模式,获取所述报文转发信息和所述目的虚拟RNIC身份指示信息。
14.如权利要求13所述的网卡,其特征在于,所述处理单元,具体用于在所述传输模式为可靠连接RC或不可靠连接UC的情况下,根据目标队列对上下文,确定所述报文转发信息和所述目的虚拟RNIC身份指示信息,其中所述目标队列对上下文对应于连接信息和所述源虚拟RNIC的标识。
15.如权利要求13所述的网卡,其特征在于,所述处理单元,具体用于在所述传输模式为可靠连接RC或不可靠连接UC的情况下,从参考队列对上下文或参考WQE中确定目标虚拟网络地址,其中所述目标虚拟网络地址包括所述源虚拟RNIC的IP地址和所述目的虚拟RNIC的IP地址中的至少一个,所述参考队列对上下文与连接信息和所述源虚拟RNIC的标识对应,所述参考WQE与所述连接信息和所述源虚拟RNIC的标识对应;
从隧道表确定所述报文转发信息和所述目的虚拟RNIC身份指示信息,其中所述隧道表中包括至少一个隧道条目,所述至少一个隧道条目中的每个隧道条目用于指示:第一虚拟RNIC的标识、第二虚拟RNIC的所属的虚拟扩展局域网网络标识VNI,虚拟网络地址、第一RNIC的地址信息和第二RNIC的地址信息,其中所述第一虚拟RNIC运行在所述第一RNIC中,所述第二虚拟RNIC运行在所述第二RNIC中,所述虚拟网络地址包括所述第一虚拟RNIC的IP地址和所述第二虚拟RNIC的IP地址中的至少一个,所述至少一个隧道条目中与所述源虚拟RNIC的标识和所述目标虚拟网络地址匹配的隧道条目包括所述报文转发信息。
16.如权利要求13所述的网卡,其特征在于,所述处理单元,具体用于在所述传输模式为不可靠数据包UD或可靠数据包RD的情况下,根据对应于所述待传输数据的目标WQE和对应于所述源虚拟RNIC的标识,确定目标虚拟网络地址,或者根据所述目标WQE,确定所述目标虚拟网络地址,其中所述目标虚拟网络地址包括所述源虚拟RNIC的IP地址和所述目的虚拟RNIC的IP地址中的至少一个;
从隧道表确定所述报文转发信息和所述目的虚拟RNIC身份指示信息,其中所述隧道表中包括至少一个隧道条目,所述至少一个隧道条目中的每个隧道条目用于指示:第一虚拟RNIC的标识、第二虚拟RNIC的所属的虚拟扩展局域网网络标识VNI,虚拟网络地址、第一RNIC的地址信息和第二RNIC的地址信息,其中所述第一虚拟RNIC运行在所述第一RNIC中,所述第二虚拟RNIC运行在所述第二RNIC中,所述虚拟网络地址包括所述第一虚拟RNIC的IP地址和所述第二虚拟RNIC的IP地址中的至少一个,所述至少一个隧道条目中与所述源虚拟RNIC的标识和所述目标虚拟网络地址匹配的隧道条目包括所述报文转发信息。
17.如权利要求12所述的网卡,其特征在于,所述发送单元,还用于向至少一个目标NIC发送请求消息,所述至少一个目标NIC中的每个目标NIC运行有至少一个虚拟RNIC,所述至少一个虚拟RNIC与所述源虚拟RNIC属于同一VNI,所述请求消息包括所述源虚拟RNIC的标识和目标虚拟网络地址,其中所述目标虚拟网络地址包括所述源虚拟RNIC的IP地址和所述目的虚拟RNIC的IP地址中的至少一个;
所述网卡还包括:接收单元,用于接收所述目的RNIC发送的反馈信息,所述反馈信息中包括所述目的RNIC的IP地址和所述目的RNIC的MAC地址;
所述处理单元,具体用于根据所述反馈信息确定所述报文转发信息和所述目的虚拟RNIC身份指示信息。
18.如权利要求12至17中任一项所述的网卡,其特征在于,所述目标报文包括:MAC头、IP头、四层端口号头、网络虚拟化协议头和负载字段,其中,
所述MAC头中包括所述网卡的MAC地址和所述目的RNIC的MAC地址;
所述IP头中包括所述网卡的IP地址和所述目的RNIC的IP地址;
所述四层端口号头中包括四层端口号;
所述网络虚拟化协议头包括所述目的虚拟RNIC的身份指示信息;
所述负载字段包括所述待传输数据。
19.如权利要求12至17中任一项所述的网卡,其特征在于,所述目的虚拟RNIC的身份指示信息包括所述目的虚拟RNIC所属的VNI和所述目的虚拟RNIC的虚拟MAC地址。
20.一种网卡,其特征在于,所述网卡支持远程直接内存存取技术,所述网卡包括:
接收单元,用于接收源RNIC发送的报文,所述报文包括报文转发信息、目的虚拟RNIC身份指示信息和数据,所述报文转发信息包括所述源RNIC的互联网协议IP地址、所述源RNIC的媒体访问控制MAC地址、所述源RNIC的端口号、所述网卡的IP地址、所述网卡的MAC地址和四层端口号,所述报文不包括以下信息中的至少一个:源虚拟RNIC的IP地址、所述目的虚拟RNIC的IP地址、源虚拟RNIC的MAC地址、所述源虚拟RNIC的端口号和所述目的虚拟RNIC的端口号,所述源虚拟RNIC是运行在所述源RNIC中的一个虚拟RNIC,所述目的虚拟RNIC是运行在所述网卡中的一个虚拟RNIC;
处理单元,用于根据所述目的虚拟RNIC身份指示信息,确定所述目的虚拟RNIC;
所述处理单元,还用于将所述报文发送至所述目的虚拟RNIC。
21.如权利要求20所述的网卡,其特征在于,所述报文包括:MAC头、IP头、四层端口号头、网络虚拟化协议头和负载字段,其中,
所述MAC头中包括所述源RNIC的MAC地址和所述网卡的MAC地址;
所述IP头中包括所述源RNIC的IP地址和所述网卡的IP地址;
所述四层端口号头中包括四层端口号;
所述网络虚拟化协议头包括所述目的虚拟RNIC的身份指示信息;
所述负载字段包括所述数据。
22.如权利要求20或21所述的网卡,其特征在于,所述目的虚拟RNIC身份指示信息包括:所述目的虚拟RNIC所属的VNI和所述目的虚拟RNIC的虚拟MAC地址;
处理单元,具体用于从虚拟设备映射表中确定所述目的虚拟RNIC,其中所述虚拟设备映射表中包括至少一个虚拟设备表项,所述至少一个虚拟设备表项中的每个表项包括VNI、MAC地址和标识,其中所述至少一个虚拟设备表项中与所述目的虚拟RNIC所属的VNI和所述目的虚拟RNIC的虚拟MAC地址匹配的虚拟设备表项中的标识为所述目的虚拟RNIC的标识。
23.一种通信装置,其特征在于,所述通信装置包括处理电路和存储介质,所述存储介质存储程序代码,所述处理电路用于调用所述存储介质中的程序代码执行如权利要求1至8中任一项所述的方法。
24.一种通信装置,其特征在于,所述通信装置包括处理电路和存储介质,所述存储介质存储程序代码,所述处理电路用于调用所述存储介质中的程序代码执行如权利要求权利要求9至10中任一项所述的方法。
25.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述方法的步骤。
26.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求9至10中任一项所述方法的步骤。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910655048.9A CN112243046B (zh) | 2019-07-19 | 2019-07-19 | 通信方法和网卡 |
EP20844079.2A EP3828709A4 (en) | 2019-07-19 | 2020-07-16 | COMMUNICATION PROCESS AND NETWORK CARD |
PCT/CN2020/102466 WO2021013046A1 (zh) | 2019-07-19 | 2020-07-16 | 通信方法和网卡 |
US17/201,833 US11431624B2 (en) | 2019-07-19 | 2021-03-15 | Communication method and network interface card |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910655048.9A CN112243046B (zh) | 2019-07-19 | 2019-07-19 | 通信方法和网卡 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112243046A CN112243046A (zh) | 2021-01-19 |
CN112243046B true CN112243046B (zh) | 2021-12-14 |
Family
ID=74167436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910655048.9A Active CN112243046B (zh) | 2019-07-19 | 2019-07-19 | 通信方法和网卡 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11431624B2 (zh) |
EP (1) | EP3828709A4 (zh) |
CN (1) | CN112243046B (zh) |
WO (1) | WO2021013046A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11895092B2 (en) * | 2019-03-04 | 2024-02-06 | Appgate Cybersecurity, Inc. | Network access controller operation |
US11652666B2 (en) * | 2019-07-30 | 2023-05-16 | Vmware, Inc. | Methods for identifying a source location in a service chaining topology |
US11444790B1 (en) * | 2021-07-09 | 2022-09-13 | International Business Machines Corporation | Dynamic exclusion of RDMA-based shared memory communication based on performance-related data |
CN113556265B (zh) * | 2021-07-14 | 2024-02-20 | 国家计算机网络与信息安全管理中心 | 数据处理方法、计算机设备及可读存储介质 |
CN113312155B (zh) * | 2021-07-29 | 2022-02-01 | 阿里云计算有限公司 | 虚拟机创建方法、装置、设备、***及计算机程序产品 |
CN113326101B (zh) * | 2021-08-02 | 2022-04-12 | 阿里云计算有限公司 | 基于远程直接数据存储的热迁移方法、装置及设备 |
CN113824622B (zh) * | 2021-09-13 | 2023-06-27 | 京东科技信息技术有限公司 | 容器之间的通信控制方法、装置、计算机设备及存储介质 |
CN117675258A (zh) * | 2022-09-06 | 2024-03-08 | 华为技术有限公司 | 网络隔离方法、***及相关设备 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7551614B2 (en) * | 2004-12-14 | 2009-06-23 | Hewlett-Packard Development Company, L.P. | Aggregation over multiple processing nodes of network resources each providing offloaded connections between applications over a network |
US9331963B2 (en) | 2010-09-24 | 2016-05-03 | Oracle International Corporation | Wireless host I/O using virtualized I/O controllers |
CA2951970C (en) | 2011-03-30 | 2018-02-13 | Amazon Technologies, Inc. | Frameworks and interfaces for offload device-based packet processing |
US20130107889A1 (en) * | 2011-11-02 | 2013-05-02 | International Business Machines Corporation | Distributed Address Resolution Service for Virtualized Networks |
US20150012606A1 (en) * | 2013-07-02 | 2015-01-08 | Dell Products, Lp | System and Method to Trap Virtual Functions of a Network Interface Device for Remote Direct Memory Access |
US9348649B2 (en) * | 2013-07-22 | 2016-05-24 | International Business Machines Corporation | Network resource management system utilizing physical network identification for converging operations |
US9306916B2 (en) * | 2013-12-25 | 2016-04-05 | Cavium, Inc. | System and a method for a remote direct memory access over converged ethernet |
CN103763173B (zh) * | 2013-12-31 | 2017-08-25 | 华为技术有限公司 | 数据传输方法和计算节点 |
US10635316B2 (en) * | 2014-03-08 | 2020-04-28 | Diamanti, Inc. | Methods and systems for data storage using solid state drives |
CN105227464B (zh) | 2014-06-23 | 2019-01-18 | 新华三技术有限公司 | Vcf***中的报文转发方法及装置 |
US20160026605A1 (en) | 2014-07-28 | 2016-01-28 | Emulex Corporation | Registrationless transmit onload rdma |
US9747249B2 (en) * | 2014-12-29 | 2017-08-29 | Nicira, Inc. | Methods and systems to achieve multi-tenancy in RDMA over converged Ethernet |
CN105472023B (zh) | 2014-12-31 | 2018-11-20 | 华为技术有限公司 | 一种远程直接存储器存取的方法及装置 |
CN104636185B (zh) * | 2015-01-27 | 2018-03-02 | 华为技术有限公司 | 业务上下文管理方法、物理主机、pcie设备及迁移管理设备 |
CN105404542A (zh) * | 2015-08-14 | 2016-03-16 | 国家超级计算深圳中心(深圳云计算中心) | 云计算***及在其上运行高性能计算的方法 |
US10333865B2 (en) * | 2015-08-21 | 2019-06-25 | Cisco Technology, Inc. | Transformation of peripheral component interconnect express compliant virtual devices in a network environment |
US11507404B2 (en) | 2016-12-28 | 2022-11-22 | Intel Corporation | Virtualized remote direct memory access |
US10367733B2 (en) * | 2017-03-30 | 2019-07-30 | Nicira, Inc. | Identifier-based virtual networking |
CN106953797B (zh) * | 2017-04-05 | 2020-05-26 | 苏州浪潮智能科技有限公司 | 一种基于动态连接的rdma数据传输的方法与装置 |
US10614356B2 (en) * | 2017-04-24 | 2020-04-07 | International Business Machines Corporation | Local multicast in single-host multi-GPU machine for distributed deep learning systems |
CN109213702B (zh) * | 2017-06-30 | 2022-08-30 | 伊姆西Ip控股有限责任公司 | 虚拟机环境中的虚拟双控制模块之间的通信 |
CN107357660A (zh) * | 2017-07-06 | 2017-11-17 | 华为技术有限公司 | 一种虚拟资源的分配方法及装置 |
CN107508828B (zh) | 2017-09-18 | 2019-10-18 | 南京斯坦德云科技股份有限公司 | 一种超远程数据交互***及方法 |
CN107766261A (zh) * | 2017-09-22 | 2018-03-06 | 华为技术有限公司 | 数据校验的方法、装置以及网卡 |
US10992590B2 (en) * | 2018-04-09 | 2021-04-27 | Nicira, Inc. | Path maximum transmission unit (PMTU) discovery in software-defined networking (SDN) environments |
CN109491809A (zh) * | 2018-11-12 | 2019-03-19 | 西安微电子技术研究所 | 一种降低高速总线延迟的通信方法 |
US11184295B2 (en) * | 2018-12-28 | 2021-11-23 | Vmware, Inc. | Port mirroring based on remote direct memory access (RDMA) in software-defined networking (SDN) environments |
-
2019
- 2019-07-19 CN CN201910655048.9A patent/CN112243046B/zh active Active
-
2020
- 2020-07-16 WO PCT/CN2020/102466 patent/WO2021013046A1/zh unknown
- 2020-07-16 EP EP20844079.2A patent/EP3828709A4/en active Pending
-
2021
- 2021-03-15 US US17/201,833 patent/US11431624B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11431624B2 (en) | 2022-08-30 |
EP3828709A4 (en) | 2021-11-17 |
CN112243046A (zh) | 2021-01-19 |
WO2021013046A1 (zh) | 2021-01-28 |
US20210226892A1 (en) | 2021-07-22 |
EP3828709A1 (en) | 2021-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112243046B (zh) | 通信方法和网卡 | |
CN112422393B (zh) | 可扩展虚拟局域网报文发送方法、计算机设备和可读介质 | |
CN113326228B (zh) | 基于远程直接数据存储的报文转发方法、装置及设备 | |
US8447909B2 (en) | Register access in distributed virtual bridge environment | |
US9774532B2 (en) | Information processing system, information processing apparatus and control method of information processing system | |
US10461958B2 (en) | Packet transmission method and apparatus | |
US10057162B1 (en) | Extending Virtual Routing and Forwarding at edge of VRF-aware network | |
US10616105B1 (en) | Extending virtual routing and forwarding using source identifiers | |
WO2016191990A1 (zh) | 一种报文转换方法及装置 | |
US20120163374A1 (en) | Methods and apparatus for providing unique mac address to individual node for fibre channel over ethernet (fcoe) traffic | |
WO2021135397A1 (zh) | 一种报文传输方法及相关设备 | |
CN112866206A (zh) | 一种单向数据传输方法及装置 | |
CN105052106A (zh) | 用于接收和传输互联网协议(ip)数据包的方法和*** | |
CN108881247B (zh) | 报文转换方法、装置、网关设备及存储介质 | |
US12003417B2 (en) | Communication method and apparatus | |
CN114050998A (zh) | 实现远程直接内存访问的方法、装置、电子设备及介质 | |
CN109698845B (zh) | 数据传输的方法、服务器、卸载卡及存储介质 | |
US10185675B1 (en) | Device with multiple interrupt reporting modes | |
US10877911B1 (en) | Pattern generation using a direct memory access engine | |
CN112532540A (zh) | 接口管理方法、装置和*** | |
US10623315B1 (en) | Extending virtual routing and forwarding | |
CN113098780B (zh) | 虚拟网络的报文处理方法、电子设备及存储介质 | |
CN111865801B (zh) | 一种基于Virtio端口传输数据的方法和*** | |
CN106330787B (zh) | 一种数据包传输方法、设备及*** | |
WO2024001549A1 (zh) | 地址配置方法和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |