Network system, communication method, network node, and storage medium
By including the identifier of the virtualized node in the physical network IP protocol header after the RDMA connection is established, the number of data encapsulation layers between virtualized nodes is reduced, solving the problem of excessive RDMA transmission overhead and improving network performance.
Patent Information
- Application Number
- CN202310530889.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-05-11
- Publication Date
- 2025-12-09
- Estimated Expiration
- 2043-05-11
AI Technical Summary
Existing network virtualization and isolation technologies introduce excessive data encapsulation in Remote Direct Data Access (RDMA) between virtualized nodes, resulting in excessive transmission overhead and affecting network performance.
After the RDMA connection is established, the number of data encapsulation layers between virtualized nodes is reduced. By carrying the identifier of the virtualized node in the physical network IP protocol header, the additional virtual network and virtualization protocol headers are reduced, and only the RDMA protocol header and the physical network IP protocol header are retained.
It effectively reduces the encapsulation and transmission overhead of RDMA data packets, thereby improving the performance of the network system.
Smart Images

Figure CN116566763B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of network, and more particularly, to a network system, a communication method, a network node and a storage medium. BACKGROUND
[0002] Common virtualization technologies include Virtual Machine (VM) and Container, etc. A virtualization technology is used to create virtualization nodes, such as VM nodes and / or container nodes, on physical network nodes of a network system, and the virtualization nodes can communicate with each other based on a virtual network and a physical network.
[0003] In a scenario where data transmission is performed between virtualization nodes in a Remote Direct Memory Access (RDMA) mode, existing network virtualization and isolation technologies excessively introduce additional encapsulation of data, resulting in excessive transmission overhead. SUMMARY
[0004] The present application provides a network system, a communication method, a network node and a storage medium to reduce the transmission overhead of data in the network system.
[0005] In a first aspect, the present application provides a network system, comprising: a plurality of network nodes, each network node comprising one or more virtualization nodes, the virtualization nodes comprising container nodes and / or virtual machine nodes, and two virtualization nodes communicating with each other in an RDMA mode; wherein,
[0006] An RDMA signaling packet between the two virtualization nodes is used to establish an RDMA connection between the two virtualization nodes, and the encapsulation of the RDMA signaling packet comprises an RDMA protocol header, a virtual network IP protocol header, a virtualization protocol header and a physical network IP protocol header, and the virtualization protocol header of the RDMA signaling packet comprises a virtualization identifier of a virtualization node sending the RDMA signaling packet, and different virtualization identifiers are used to identify different virtual networks.
[0007] An RDMA data packet between the two virtualization nodes is used to perform data transmission after the RDMA connection is established, and the encapsulation of the RDMA data packet comprises an RDMA protocol header and a physical network IP protocol header, and the physical network IP protocol header of the RDMA data packet comprises a virtualization identifier of a virtualization node sending the RDMA data packet.
[0008] In an implementation manner, the virtualization identifier is a Virtual Extended Local Area Network Network Identifier (VNI).
[0009] In an implementation, the virtual network IP protocol header is an IPv4 protocol header or an IPv6 protocol header, and the physical network IP protocol header is an IPv4 protocol header or an IPv6 protocol header.
[0010] In an implementation, the physical network IP protocol header is an IPv6 protocol header, and the virtualization identifier in the physical network IP protocol header of the RDMA packet is encoded in a physical network card IPv6 address of the network node.
[0011] In an implementation, the network node triggers a gateway device in the network system to resolve the physical network card IPv6 address of the network node to obtain a forwarding table entry corresponding to the network node through a neighbor discovery (ND) protocol packet.
[0012] In an implementation, the physical network IP protocol header of the RDMA packet includes flow control information of a virtualization node sending the RDMA packet and / or a network node where the virtualization node is located.
[0013] In an implementation, the RDMA protocol header is generated based on an RDMA network identifier of the virtualization node, and the RDMA network identifier of the virtualization node is generated based on a virtual network identifier of the virtualization node and a physical network card IP address of a network node where the virtualization node is located.
[0014] In a second aspect, the present application provides a communication method applied to a network system, the network system including a plurality of network nodes, each network node including one or more virtualization nodes, the virtualization nodes including virtualization nodes and / or virtual machine nodes, two virtualization nodes communicating with each other based on remote direct data access (RDMA), and the method including:
[0015] The two virtualization nodes establish an RDMA connection through an RDMA signaling packet, the encapsulation of the RDMA signaling packet including an RDMA protocol header, a virtual network IP protocol header, a virtualization protocol header, and a physical network IP protocol header, the virtualization protocol header of the RDMA signaling packet including a virtualization identifier of a virtualization node sending the RDMA signaling packet, and different virtualization identifiers being used to identify different virtual networks.
[0016] The two virtualization nodes perform data transmission through an RDMA data packet after establishing the RDMA connection, the encapsulation of the RDMA data packet including an RDMA protocol header and a physical network IP protocol header, and the physical network IP protocol header of the RDMA data packet including a virtualization identifier of a virtualization node sending the RDMA data packet.
[0017] In a third aspect, the present application provides a communication method applied to a first virtualization node on a first network node in a network system, the network system comprising a plurality of network nodes, each network node comprising one or more virtualization nodes, the virtualization nodes comprising container nodes and / or virtual machine nodes, two virtualization nodes communicating based on remote direct data access (RDMA), the method comprising:
[0018] establishing an RDMA connection with a second virtualization node through an RDMA signaling packet, the RDMA signaling packet comprising an RDMA protocol header, a virtual network IP protocol header, a virtualization protocol header and a physical network IP protocol header in encapsulation, the virtualization protocol header of the RDMA signaling packet comprising a virtualization identifier of the first virtualization node, different virtualization identifiers being used to identify different virtual networks;
[0019] after the RDMA connection is established with the second virtualization node, sending data to the second virtualization node through an RDMA data packet, the RDMA data packet comprising an RDMA protocol header and a physical network IP protocol header in encapsulation, the physical network IP protocol header of the RDMA data packet comprising the virtualization identifier of the first virtualization node.
[0020] In a fourth aspect, the present application provides a network node, comprising: a memory and a processor;
[0021] the memory is configured to store a computer program;
[0022] the processor is configured to execute the computer program stored in the memory, the computer program running to cause the processor to execute the method of the third aspect.
[0023] In a fifth aspect, the present application provides a computer readable storage medium, the computer readable storage medium storing a computer program, the computer program being executed by a processor to cause the processor to execute the method of the third aspect.
[0024] In the network system, the communication method, the network node and the storage medium provided by the present application, in the network system, the virtualization node on the network node communicates based on RDMA, wherein the encapsulation of the RDMA signaling packet for establishing the RDMA connection comprises an RDMA protocol header, a virtual network IP protocol header, a virtualization protocol header and a physical network IP protocol header, the virtualization protocol header comprises a virtualization identifier of the virtualization node sending the RDMA signaling packet, and different virtualization identifiers are used to identify different virtual networks, and for the RDMA data packet transmitted between the virtualization nodes after the RDMA connection is established, the encapsulation comprises an RDMA protocol header and a physical network IP protocol header, and in order to ensure the virtual network isolation of the virtualization nodes, the virtualization identifier of the virtualization node is carried in the IP protocol header of the physical network of the RDMA data packet, so that the transmission overhead occupied by the encapsulation of the RDMA data packet is reduced while the RDMA data transmission is realized, and the network performance is improved. BRIEF DESCRIPTION OF DRAWINGS
[0025] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the drawings needed to be used in the embodiments or prior art description will be briefly introduced. Obviously, the drawings in the following description are some embodiments of the present application, and other drawings can be obtained by those skilled in the art without creative labor.
[0026] Figure 1 is a schematic diagram of a network system provided by an embodiment of the present application;
[0027] Figure 2 is a schematic diagram of a virtualization node of a network system provided by an embodiment of the present application;
[0028] Figure 3 is a schematic diagram of encapsulation of an RDMA signaling packet and an RDMA data packet provided by an embodiment of the present application;
[0029] Figure 4 is a flowchart of a communication method provided by an embodiment of the present application Figure 1 ;
[0030] Figure 5 is a flowchart of a communication method provided by an embodiment of the present application Figure 2 ;
[0031] Figure 6 is a schematic diagram of the structure of a network node provided by an embodiment of the present application;
[0032] Figure 7 is a schematic block diagram of a network node provided by an embodiment of the present application. DETAILED DESCRIPTION
[0033] The technical solutions and advantages of the embodiments of the present application will be more apparent from the following description of the embodiments of the present application in conjunction with the accompanying drawings. Obviously, the described embodiments are only some of the embodiments of the present application, rather than all the embodiments of the present application. Based on the embodiments of the present application, all other embodiments obtained by those skilled in the art without creative work fall within the scope of protection of the present application.
[0034] There are various implementation schemes of network virtualization. Taking an Overlay network as an example, the Overlay network and an Underlay network are a set of relative concepts. The Overlay network is a logical network, that is, a virtual network, built on the Underlay network. The Underlay network is a bottom-layer physical basis, that is, a physical network formed by interconnection of multiple types of devices, responsible for data packet transmission between devices. A virtual Overlay network is created on the Underlay network by using network virtualization technology. In the Overlay network, virtualization nodes can be interconnected to form an Overlay topology according to requirements through logical links. Tunnels are established between the interconnected virtualization nodes in the Overlay network, and data is encapsulated with an inner-layer Overlay network IP protocol header, a tunnel header, and an outer-layer Underlay network IP protocol header during transmission.
[0035] The Overlay network has various network protocols and standards. Taking a Virtual eXtensible Local Area Network (VXLAN) protocol as an example, a VXLAN tunnel is established between virtualization nodes, and data is encapsulated with an inner-layer Overlay network IP protocol header, a VXLAN protocol header, and an outer-layer Underlay network IP protocol header during transmission. The VXLAN header includes a VXLAN Network Identifier (VNI), that is, a virtualization identifier. Different VNIs represent different virtual networks, and the isolation of the Overlay network of the virtualization nodes is achieved through the virtualization identifier. That is, in the network virtualization scenario, the data of the virtualization nodes is encapsulated with a virtual network IP protocol header, a virtualization protocol header, and a physical network IP protocol header. The virtualization protocol header is the aforementioned tunnel header, such as a VXLAN protocol header.
[0036] Under the premise of the above network virtualization, the data transmission between the virtualized nodes can also adopt the RDMA mode, that is, the data transmission between the virtualized nodes is performed by establishing an RDMA connection. RDMA means Remote Direct Memory Access, which can realize zero-copy, kernel bypass and CPU offload. The zero-copy means that the data does not need to be copied back and forth between the user space and the kernel space, the kernel bypass means that the data read-write process can bypass the kernel, that is, the data can be prepared in the user layer and the hardware is notified to prepare for sending and receiving, and the CPU offload means that the memory can be read and written without the participation of the CPU of the remote node. The RDMA protocol has multiple specific implementation manners. In actual use, the data needs to be encapsulated according to the RDMA protocol first, and then the encapsulation of the virtual network IP protocol header, the virtualization protocol header and the physical network IP protocol header is performed. As can be seen, the data between the virtualized nodes needs to be encapsulated layer by layer, which leads to a large data transmission overhead and affects the performance of the network system.
[0037] Therefore, in the embodiments of the present application, a network system is provided. Each network node in the network system includes one or more virtualized nodes. The virtualized nodes in the network system communicate based on RDMA, that is, the virtualized nodes form an RDMA network through an RDMA connection. The virtualized nodes first establish the RDMA connection based on the TCP / IP connection of the virtual network, and then transmit data based on the RDMA connection. Since the establishment of the RDMA connection depends on the TCP / IP connection of the virtual network, the encapsulation of the RDMA signaling for establishing the RDMA connection still needs to be performed after the RDMA protocol encapsulation, and then the encapsulation of the IP header of the virtual network, the virtualization protocol header and the physical network IP protocol header is performed. For the RDMA data transmitted after the establishment of the RDMA connection, in order to avoid additional encapsulation, the IP protocol header encapsulation of the physical network is directly performed on the RDMA data after the RDMA protocol encapsulation of the RDMA data is performed. At the same time, in order to ensure the isolation of the virtual network, the virtualization identifier of the virtualized node is carried in the physical network IP protocol header, so that the RDMA data transmission is realized while the transmission overhead occupied by the encapsulation of the RDMA data packet is reduced. The following will be described through specific embodiments.
[0038] Figure 1 is a schematic diagram of a network system provided by the embodiments of the present application. As shown in Figure 1 , the network system includes a plurality of network nodes, each network node including one or more virtualized nodes. The virtualized nodes include container nodes and / or virtual machine nodes, and the virtualized nodes communicate based on RDMA. Among them,
[0039] The RDMA signaling packet between the two virtualization nodes is used to establish an RDMA connection between the two virtualization nodes, and the encapsulation of the RDMA signaling packet includes an RDMA protocol header, a virtual network IP protocol header, a virtualization protocol header and a physical network IP protocol header, the virtualization protocol header of the RDMA signaling packet includes a virtualization identifier of a virtualization node sending the RDMA signaling packet, and different virtualization identifiers are used to identify different virtual networks.
[0040] The RDMA data packet between the two virtualization nodes is used for data transmission after the RDMA connection is established, and the encapsulation of the RDMA data packet includes an RDMA protocol header and a physical network IP protocol header, and the physical network IP protocol header of the RDMA data packet includes a virtualization identifier of a virtualization node sending the RDMA data packet.
[0041] In the embodiment of the application, the virtualization nodes on the network nodes establish RDMA connections according to communication requirements to form an RDMA network. The RDMA signaling and the RDMA data transmitted between the virtualization nodes in the network system adopt different encapsulations, the RDMA signaling is encapsulated as an RDMA signaling packet, and the RDMA data is encapsulated as an RDMA data packet.
[0042] The virtualization nodes in the RDMA network have RDMA network identifiers, and an RDMA connection between the virtualization nodes can be identified by the RDMA network identifiers. The RDMA network identifiers can be generated or allocated when the RDMA connection is established. The RDMA protocol header is generated based on the RDMA network identifier of the virtualization node. It should be noted that the RDMA protocol header can be generated based on the RDMA network identifier of the virtualization node and other information. The RDMA network identifier of the virtualization node can be generated based on the virtualization identifier of the virtualization node and the physical network card IP address of the network node where the virtualization node is located. It should be noted that the RDMA network identifier can be generated based on the virtualization identifier, the physical network card IP address and other information.
[0043] Since the establishment of the RDMA connection depends on the TCP / IP connection of the virtual network, the encapsulation of the RDMA signaling packet for establishing the RDMA connection includes the RDMA protocol header, the virtual network IP protocol header, the virtualization protocol header and the physical network IP protocol header. In the implementation mode of the virtual network using Overlay network and VXLAN, the encapsulation of the RDMA signaling packet includes the RDMA protocol header, the Overlay network IP protocol header, the VXLAN protocol header and the Underlay network IP protocol header. The VXLAN protocol header includes the virtualization identifier of the virtualization node, and the virtualization identifier is VNI.
[0044] Compared with the RDMA signaling packet, the encapsulation of the RDMA data packet in the embodiment of the present application reduces the virtual network IP protocol header and the virtualization protocol header, and carries the virtualization identifier of the virtualization node in the IP header of the physical network. The encapsulation of the RDMA data packet includes the RDMA protocol header and the physical network IP protocol header carrying the virtualization identifier. In this way, the number of encapsulation layers of the RDMA data packet is reduced under the premise of ensuring the virtual network isolation of the virtualization node, thereby reducing the transmission overhead and improving the network performance.
[0045] In the embodiment of the present application, the IP protocols adopted by the physical network and the virtual network in the network system are not limited, and the IP protocols adopted by the physical network and the virtual network can be consistent or inconsistent, that is, the physical network and the virtual network can both select to adopt the IPv4 protocol or the IPv6 protocol according to the application needs, and there is no association between the two. For example, in the case that the physical network adopts the IPv4 protocol, the virtual network can adopt the IPv4 protocol or the IPv6 protocol; similarly, in the case that the physical network adopts the IPv6 protocol, the virtual network can adopt the IPv4 protocol or the IPv6 protocol. Based on the IP protocols adopted by the physical network and the virtual network, the virtual network IP protocol header in the foregoing embodiment can be an IPv4 protocol header or an IPv6 protocol header, and the physical network IP protocol header can be an IPv4 protocol header or an IPv6 protocol header.
[0046] For the RDMA data packet, the virtualization identifier of the virtualization node contained therein is carried in the physical network IP protocol header. Optionally, in the case where the physical network IP protocol header is an IPv6 protocol header, the physical network IP protocol header includes the physical network card IPv6 address of the network node where the virtualization node is located. The virtualization identifier in the physical network IP protocol header of the RDMA data packet can be encoded in the physical network card IPv6 address of the network node, that is, the space in the physical network card IPv6 address of the network node, for example, 24 bits thereof, can be used as the encoding space of the virtualization identifier. By encoding the virtualization identifier in the physical network card IPv6 address of the network node, the virtualization identifier of the virtualization node is carried in the physical network IP protocol header. Optionally, in the case where the physical network IP protocol header is an IPv6 protocol header, the virtualization identifier of the virtualization node can also be carried in other fields in the IPv6 protocol header, for example, a reserved field or a specific identifier field, or an extension header of the IPv6 protocol. In the case where the physical network IP protocol header is an IPv4 protocol header, the virtualization identifier of the virtualization node can also be carried in a reserved field or a specific identifier field in the IPv4 protocol header.
[0047] The present application does not limit the specific field occupied by the virtualization identifier in the physical network IP protocol header of the RDMA data packet or the encoding mode of the virtualization identifier in the embodiments of the present application, as long as the virtualization identifier of the virtualization node is carried in the physical network IP protocol header.
[0048] It should be noted that in the scenario where the virtualization identifier of the virtualization node is encoded in the physical network card IPv6 address of the network node where the virtualization node is located, the network node triggers the gateway device, for example, a switch or a router, in the network system through a neighbor discovery (ND) protocol packet to parse the physical network card IPv6 address of the network node to obtain a forwarding table entry corresponding to the network node, so as to realize correct transmission of the RDMA data packet with the encoded IPv6 address.
[0049] Optionally, in order to improve the performance of the network system, the physical network IP protocol header of the RDMA data packet in the embodiments of the present application can further include flow control information of the virtualization node sending the RDMA data packet and / or the network node where the virtualization node is located, and the flow control information is used to realize flow control of the RDMA data packet. Optionally, the flow control information can be used to indicate the transmission priority of the RDMA data packet.
[0050] Figure 2 is an implementation schematic diagram of a virtualization node of a network system provided by the present application.Figure 2 The Pod in the figure is a container node, and the figure illustrates an example in which an Artificial Intelligence (AI) application is running in a container. Eth0 is an IP network card of a virtual network of the container node, which is assigned a corresponding IP address. The physical function (PF), virtual function (VF), and virtual switch illustrated in the physical network card are only used to illustrate an implementation manner, and are not used to limit the physical network card.
[0051] In the embodiments of the present application, the network type of the container node is configured as RDMA. Optionally, the network type can be further divided based on different RDMA protocols. For example, the RDMA protocol is RDMA over Converged Ethernet (RoCE) protocol, and the corresponding network type is RDMA-RoCE. For another example, the RDMA protocol is Solar-RDMA protocol, and the corresponding network type is RDMA-solar. An RDMA connection is established based on the RDMA over TCP / IP, an RDMA network identifier of the container node is allocated, for example, a queue pair context (QPC) or a connection identifier (Conn-id), and data packets are encapsulated based on the RDMA connection for data transmission in the RDMA data network.
[0052] For the container node, a new RDMA network card is defined in the embodiments of the present application, and rd0 is taken as an example in the figure, which is inserted into the Pod namespace.
[0053] The container network management system synchronizes the address information of the same container node in the virtual network to the address management function component, including the IP network address information and the RDMA network address information. The container network management system associates and stores the virtualization identifier of the container node and the IP address of the physical network card of the network node where the container node is located in the RDMA flow table, and proxies the interaction between the ND protocol and the gateway device for the physical network card IP address embedded with the virtualization identifier.
[0054] The RDMA driver obtains the virtualization identifier of the container node and the physical network card IP address of the network node where the container node is located from the container network management system, and provides the virtualization identifier and the physical network card IP address to the user-side RDMA software stack, so as to be used for RDMA connection establishment. After the connection is established, the RDMA network identifier is sent to the RDMA flow table in the cache of the physical network card. The RDMA network identifier can include the RDMA network address. The physical network card encapsulates the RDMA data packet and transmits the packet. Figure 3 The encapsulation of the RDMA signaling packet and the RDMA data packet is illustrated.
[0055] Figure 4 is a flow diagram of a communication method provided by an embodiment of the present application Figure 1 . The method is applied to a network system, the network system including a plurality of network nodes, each network node including one or more virtualization nodes, the virtualization nodes including virtualization nodes and / or virtual machine nodes, and two virtualization nodes communicating based on remote direct data access (RDMA). As shown in Figure 4 , the method includes the following steps.
[0056] S401, establishing an RDMA connection between two virtualization nodes through an RDMA signaling packet, the encapsulation of the RDMA signaling packet including an RDMA protocol header, a virtual network IP protocol header, a virtualization protocol header, and a physical network IP protocol header, the virtualization protocol header of the RDMA signaling packet including a virtualization identifier of a virtualization node sending the RDMA signaling packet, and different virtualization identifiers being used to identify different virtual networks.
[0057] S402, after the RDMA connection is established, performing data transmission through an RDMA data packet, the encapsulation of the RDMA data packet including an RDMA protocol header and a physical network IP protocol header, and the physical network IP protocol header of the RDMA data packet including a virtualization identifier of a virtualization node sending the RDMA data packet.
[0058] The method of the embodiment of the present application is applied to the network system in the foregoing embodiment, and the implementation principle and technical effects are described in the foregoing embodiment, which will not be described here.
[0059] Figure 5 is a flow diagram of a communication method provided by an embodiment of the present application Figure 2 . The method is applied to a first virtualization node on a first network node in a network system, the network system including a plurality of network nodes, each network node including one or more virtualization nodes, the virtualization nodes including container nodes and / or virtual machine nodes, and two virtualization nodes communicating based on remote direct data access (RDMA). As shown in Figure 5 , the method includes the following steps.
[0060] S501, establish an RDMA connection with the second virtualization node through an RDMA signaling packet, the encapsulation of the RDMA signaling packet comprising an RDMA protocol header, a virtual network IP protocol header, a virtualization protocol header and a physical network IP protocol header, the virtualization protocol header of the RDMA signaling packet comprising a virtualization identifier of the first virtualization node, and different virtualization identifiers being used to identify different virtual networks.
[0061] S502, after the RDMA connection is established with the second virtualization node, send data to the second virtualization node through an RDMA data packet, the encapsulation of the RDMA data packet comprising an RDMA protocol header and a physical network IP protocol header, and the physical network IP protocol header of the RDMA data packet comprising the virtualization identifier of the first virtualization node.
[0062] The method of the embodiment of the application is applied to the virtualization node in the network system in the foregoing embodiment, and the implementation principle and technical effects are described in the foregoing embodiment, which will not be described here.
[0063] Figure 6 is a structural schematic diagram of a network node provided by the embodiment of the application. As shown in the figure, Figure 6 the network node 600 comprises:
[0064] The connection module 601 establishes an RDMA connection with the second virtualization node through an RDMA signaling packet, the encapsulation of the RDMA signaling packet comprising an RDMA protocol header, a virtual network IP protocol header, a virtualization protocol header and a physical network IP protocol header, the virtualization protocol header of the RDMA signaling packet comprising a virtualization identifier of the first virtualization node, and different virtualization identifiers being used to identify different virtual networks.
[0065] The transmission module 602 is configured to, after the RDMA connection is established with the second virtualization node, send data to the second virtualization node through an RDMA data packet, the encapsulation of the RDMA data packet comprising an RDMA protocol header and a physical network IP protocol header, and the physical network IP protocol header of the RDMA data packet comprising the virtualization identifier of the first virtualization node.
[0066] In an implementation manner, the virtualization identifier is a virtual extended local area network network identifier VNI.
[0067] In an implementation manner, the virtual network IP protocol header is an IPv4 protocol header or an IPv6 protocol header, and the physical network IP protocol header is an IPv4 protocol header or an IPv6 protocol header.
[0068] In an implementation, the physical network IP protocol header is an IPv6 protocol header, and the virtualization identifier in the physical network IP protocol header of the RDMA packet is encoded in the physical network card IPv6 address of the network node.
[0069] In an implementation, the network node 600 comprises a discovery module configured to trigger a gateway device in the network system to resolve the physical network card IPv6 address of the network node to obtain a forwarding table entry corresponding to the network node through a neighbor discovery (ND) protocol packet.
[0070] In an implementation, the physical network IP protocol header of the RDMA packet comprises flow control information of a virtualization node sending the RDMA packet and / or a network in which the virtualization node is located.
[0071] In an implementation, the RDMA protocol header is generated based on an RDMA network identifier of the virtualization node, and the RDMA network identifier of the virtualization node is generated based on a virtualization identifier of the virtualization node and a physical network card IP address of a network node in which the virtualization node is located.
[0072] The apparatus of the embodiments of the present application is used to implement the method of the network node in the foregoing embodiments, and has similar implementation principles and technical effects, which will not be described herein again.
[0073] Figure 7 is a schematic block diagram of the network node provided by the embodiments of the present application. As shown in Figure 7 The network node 700 can comprise at least one processor 701 configured to implement a communication method provided by the embodiments of the present application.
[0074] Optionally, the network node 700 further comprises at least one memory 702 configured to store program instructions and / or data. The memory 702 and the processor 701 are coupled. The coupling in the embodiments of the present application is indirect coupling or communication connection between the apparatuses, units or modules, which can be electrical, mechanical or other forms, and is used for information interaction between the apparatuses, units or modules. The processor 701 can operate in cooperation with the memory 702. The processor 701 can execute the program instructions stored in the memory 702. At least one of the at least one memory can be included in the processor.
[0075] Optionally, the network node 700 further comprises a communication interface 703 configured to communicate with other devices through a transmission medium, so that the distributed system node 700 can communicate with other devices. The communication interface 703 can be, for example, a transceiver, an interface, a bus, a circuit or an apparatus capable of realizing the transceiving function. The processor 701 can utilize the communication interface 703 to transceive data and / or information, and is used to implement the method provided by the embodiments of the present application. For details, refer to the detailed description in the foregoing embodiments, which will not be described herein again.
[0076] The specific connection medium between the processor 701, the memory 702 and the communication interface 703 is not limited in the embodiments of the present application. In the embodiments of the present application, the processor 701, the memory 702 and the communication interface 703 are connected through the bus 704. Figure 7 The bus 704 is represented by a thick line in the embodiments of the present application, and the connection mode between other components is only schematically illustrated and is not limited. The bus can be divided into an address bus, a data bus, a control bus and the like. For convenience, only one thick line is used to represent the bus in the embodiments of the present application, but it does not mean that there is only one bus or only one type of bus. Figure 7 The bus 704 is represented by a thick line in the embodiments of the present application, and the connection mode between other components is only schematically illustrated and is not limited. The bus can be divided into an address bus, a data bus, a control bus and the like. For convenience, only one thick line is used to represent the bus in the embodiments of the present application, but it does not mean that there is only one bus or only one type of bus. Figure 7
[0077] It should be understood that the processor in the embodiments of the present application can be an integrated circuit chip with signal processing capability. In the implementation process, each step of the above method embodiments can be completed by integrated logic circuits or instruction forms of software in the processor. The processor can be a general processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components. Each method, step and logic block diagram disclosed in the embodiments of the present application can be implemented or executed. The general processor can be a microprocessor or the processor can be any conventional processor. The steps of the method disclosed in combination with the embodiments of the present application can be directly embodied as a hardware code processor for execution, or a combination of hardware and software modules in the code processor for execution. The software module can be located in a random access memory, a flash memory, a read only memory, a programmable read only memory or an electrically erasable programmable memory, a register or other mature storage medium in the art. The storage medium is located in the memory, and the processor reads the information in the memory and combines the hardware to complete the steps of the above method.
[0078] It should also be appreciated that the memory in the embodiments of the present application can be a volatile memory or a nonvolatile memory, or can include both volatile and nonvolatile memory. Among them, the nonvolatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically EPROM (EEPROM), or a flash memory. The volatile memory can be a random access memory (RAM) used as an external cache. By way of example, and not limitation, many forms of RAM can be used, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous dynamic RAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchlink DRAM (SLDRAM), and direct Rambus RAM (DR RAM). It should be noted that the memory of the system and method described herein is intended to include, but not be limited to, these and any other suitable types of memory.
[0079] The present application also provides a computer readable storage medium, which stores a computer program (also referred to as code or instructions). When the computer program is executed, it makes the computer execute the method in any of the foregoing embodiments.
[0080] The terms "unit", "module" and the like used in the specification can be used to represent a computer-related entity, hardware, firmware, a combination of hardware and software, software, or software in execution.
[0081] Those of skill would further appreciate that the various illustrative logical blocks, modules, circuits, and steps described in connection with the embodiments disclosed herein can be implemented as electronic hardware, computer software, or combinations of both. The choice of hardware or software, or combinations of both, would be dependent on the specific application and design constraints imposed on the overall system. Skilled artisans can implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application. In several embodiments provided in the present application, it will be apparent that the disclosed devices, apparatuses, and methods can be implemented in other ways. For example, the division of the units described above is merely illustrative, and for example, the division of the units is merely a logical function division, and actual implementation can have another division, for example, a plurality of units or components can be combined or integrated into another system, or some features can be omitted or not implemented. In addition, the coupling or direct coupling or communication connection between the units shown or discussed can be indirect coupling or communication connection through some interfaces, devices or units, and can be electrical, mechanical or other forms.
[0082] The units described as separate components can or can not be physically separate, and the components shown as units can or can not be physical units, i.e. can be located in one place, or can be distributed on a plurality of network units. Part or all of the units can be selected according to actual needs to achieve the purpose of the embodiments.
[0083] In addition, the functional units in each of the embodiments of the present application can be integrated in one processing unit, or each unit can be physically present separately, or two or more units can be integrated in one unit.
[0084] In the above embodiments, the functions of the various functional units can be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented by software, the software can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions (programs). When the computer program instructions (programs) are loaded and executed on a computer, the whole or part of the flow or function according to the embodiments of the present application is generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions can be stored in a computer-readable storage medium or transferred from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions can be transferred from one website, computer, server or data center to another website, computer, server or data center through wired (such as coaxial cable, optical fiber, digital subscriber line (DSL) or wireless (such as infrared, wireless, microwave, etc.)) way. The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. that includes one or more available media sets. The available medium can be a magnetic medium (for example, floppy disk, hard disk, magnetic tape), optical medium (for example, digital video disc (DVD)), or semiconductor medium (for example, solid state disk (SSD)) and the like.
[0085] If the function is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solutions of the present application essentially or the part that contributes to the prior art or part of the technical solutions can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes a number of instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods of the various embodiments of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, ROM, RAM, magnetic disk or optical disk, and various media that can store program codes.
[0086] The user information (including but not limited to user equipment information, user personal information, etc.) and data (including but not limited to data for analysis, stored data, displayed data, etc.) involved in the present application are all information and data authorized by the user or authorized by all parties, and the collection, use and processing of related data need to comply with relevant laws, regulations and standards of relevant countries and regions, and provide corresponding operation portal for user to choose authorization or refusal.
[0087] The above merely provides the specific implementation of the present application, but the protection scope of the present application is not limited to this. Any person skilled in the art can easily think of the changes or replacements within the technical range disclosed by the present application, which should be covered in the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.
Claims
1. A network system, characterized in that, include: Multiple network nodes, each including one or more virtualized nodes, wherein the virtualized nodes include container nodes and / or virtual machine nodes, and the virtualized nodes communicate with each other based on Remote Direct Data Access (RDMA); wherein, The RDMA signaling packet between two virtualized nodes is used to establish an RDMA connection between the two virtualized nodes. The encapsulation of the RDMA signaling packet includes an RDMA protocol header, a virtual network IP protocol header, a virtualization protocol header, and a physical network IP protocol header. The virtualization protocol header of the RDMA signaling packet includes a virtualization identifier of the virtualized node that sent the RDMA signaling packet. Different virtualization identifiers are used to identify different virtual networks. The RDMA data packets between the two virtualization nodes are used for data transmission after the RDMA connection is established. The encapsulation of the RDMA data packets includes an RDMA protocol header and a physical network IP protocol header. The physical network IP protocol header of the RDMA data packets includes the virtualization identifier of the virtualization node that sent the RDMA data packets.
2. The network system according to claim 1, characterized in that, The virtualization identifier is the Virtual Extended Local Area Network Identifier (VNI).
3. The network system according to claim 1, characterized in that, The virtual network IP protocol header is an IPv4 protocol header or an IPv6 protocol header, and the physical network IP protocol header is an IPv4 protocol header or an IPv6 protocol header.
4. The network system according to claim 3, characterized in that, The physical network IP protocol header is an IPv6 protocol header, and the virtualization identifier in the physical network IP protocol header of the RDMA data packet is encoded in the physical network card IPv6 address of the network node.
5. The network system according to claim 4, characterized in that, The network node discovers ND protocol messages through neighbors, triggering the gateway device in the network system to resolve the IPv6 address of the network node's physical network card to obtain the forwarding table entry corresponding to the network node.
6. The network system according to claim 1, characterized in that, The physical network IP header of the RDMA data packet includes flow control information of the virtualization node that sent the RDMA data packet and / or the network node where the virtualization node is located.
7. The network system according to claim 1, characterized in that, The RDMA protocol header is generated based on the RDMA network identifier of the virtualized node, which is generated based on the virtualization identifier of the virtualized node and the physical network card IP address of the network node where the virtualized node is located.
8. A communication method, characterized in that, Applied to a network system, the network system includes multiple network nodes, each network node including one or more virtualized nodes, the virtualized nodes including container nodes and / or virtual machine nodes, and two virtualized nodes communicate based on Remote Direct Data Access (RDMA), the method including: An RDMA connection is established between two virtualized nodes via RDMA signaling packets. The encapsulation of the RDMA signaling packets includes an RDMA protocol header, a virtual network IP protocol header, a virtualization protocol header, and a physical network IP protocol header. The virtualization protocol header of the RDMA signaling packets includes a virtualization identifier of the virtualized node that sent the RDMA signaling packets. Different virtualization identifiers are used to identify different virtual networks. After establishing an RDMA connection, the two virtualized nodes transmit data via RDMA packets. The RDMA packets are encapsulated with an RDMA protocol header and a physical network IP protocol header. The physical network IP protocol header of the RDMA packets includes the virtualization identifier of the virtualized node that sent the RDMA packets.
9. A communication method, characterized in that, A first virtualized node is applied on a first network node in a network system, the network system including multiple network nodes, each network node including one or more virtualized nodes, the virtualized nodes including container nodes and / or virtual machine nodes, and two virtualized nodes communicating based on Remote Direct Data Access (RDMA), the method including: An RDMA connection is established with the second virtualization node through an RDMA signaling packet. The encapsulation of the RDMA signaling packet includes an RDMA protocol header, a virtual network IP protocol header, a virtualization protocol header, and a physical network IP protocol header. The virtualization protocol header of the RDMA signaling packet includes the virtualization identifier of the first virtualization node. Different virtualization identifiers are used to identify different virtual networks. After establishing an RDMA connection with the second virtualization node, data is sent to the second virtualization node via RDMA data packets. The encapsulation of the RDMA data packets includes an RDMA protocol header and a physical network IP protocol header. The physical network IP protocol header of the RDMA data packets includes the virtualization identifier of the first virtualization node.
10. A network node, characterized in that, include: Memory and processor; The memory is used to store computer programs; The processor is configured to execute a computer program stored in the memory, which, when executed, causes the processor to perform the method of claim 9.
11. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, causes the processor to perform the method as described in claim 9.
Citation Information
Patent Citations
Message processing method and system and related equipment
CN112702252A
Data transmission method and device, computing equipment and storage medium
CN113497767A