WO2015000302A1 - Data transmission method, device, and system - Google Patents
Data transmission method, device, and system Download PDFInfo
- Publication number
- WO2015000302A1 WO2015000302A1 PCT/CN2014/072209 CN2014072209W WO2015000302A1 WO 2015000302 A1 WO2015000302 A1 WO 2015000302A1 CN 2014072209 W CN2014072209 W CN 2014072209W WO 2015000302 A1 WO2015000302 A1 WO 2015000302A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- transmitted
- data packet
- pcie
- address
- transmission
- Prior art date
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 207
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000012546 transfer Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 abstract description 21
- 238000012545 processing Methods 0.000 abstract description 14
- 238000005516 engineering process Methods 0.000 abstract description 9
- 230000001934 delay Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000013507 mapping Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000032683 aging Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
Definitions
- the present invention relates to the field of communications technologies, and in particular, to a data transmission method, device, and system. Background technique
- PCIe Peripheral Component Interconnect Express
- PCIe switch PCIe switch
- the address information is used for addressing, so as to achieve the purpose of transmitting the data packet, that is, when the CPU initializes the PCIe peripheral, the peripheral information is allocated to the peripheral, and the peripheral information is accessed through the address information, and the PCIe switch performs the data packet according to the address information. routing.
- NTB Non-Transparent Bridge
- the NTB technology converts the address information of the data packet sent by the source node to the destination node according to the preset address conversion rule, so as to ensure that the translated address information and the address information in the destination node are not duplicated, thereby realizing at least two nodes. Inter-PCIe data transmission.
- TCP/IP Transmission Control Protocol/Internet Protocol
- IPoPCIe Transmission Control Protocol/Internet Protocol
- the PCIe driver inside each node simulates a network device called a Virtual Network Interface Card (VNIC).
- VNIC Virtual Network Interface Card
- vNIC and common Ethernet devices have no difference, but also There are functions such as configuring ip address, mac address, mtu, etc., but the vNIC driver (PCIe vNIC driver) can be used as a link layer interface to receive packets sent by the upper layer application (ie, APP in Figure 1) through the TCP/IP stack, and other The packets transmitted by the node are sent to the upper application through the TCP/IP stack. Since the upper interface of the upper application is the TCP/IP stack, the upper layer application does not care about the content of the link layer. Therefore, the upper application in one node can transparently use IPoPCIe to transmit to the upper application in another node. data pack.
- the data packets sent by the upper-layer application in the source node pass through the TCP/IP layer to the link layer, and the PCIe vNIC driver transmits the data packet to the destination node through the PCIe Switch, and then enters the upper-layer application of the destination node through the inverse process with the source node.
- the data packet is transmitted by copy when it is transmitted between layers.
- the embodiments of the present invention provide a data transmission method, device, and system, which are used to solve the problem of communication delay and low transmission efficiency when transmitting data packets between nodes in the prior art through IPoPCIe.
- a data transmission method includes:
- the source node determines transmission information required when the data packet to be transmitted is transmitted in the component fast interconnect local bus PCIe, and the transmission information includes a transmission window address and a reception window address;
- the source node transmits the to-be-transmitted data packet to the destination node through the PCIe switch according to the transmission information.
- the method further includes: determining, by the source node, a transmission mode of the data packet to be transmitted according to a preset configuration file. Transmission Control Protocol/Internet Protocol TCP/IP transmission mode or kernel bypass Kernel bypass transmission mode;
- the source node transmits the to-be-transmitted data packet to the destination node according to the transmission information, which specifically includes:
- the source node stores the to-be-transmitted data packet into a buffer in its own kernel space; the source node converts the sending window address and the receiving window address into a physical address in a PCIe global space;
- the source node transmits the to-be-transmitted data packet stored in the buffer from the physical address of the transmission window to the physical address of the receiving window, and is stored in a buffer in the kernel space of the destination node.
- the source node transmits the to-be-transmitted data packet to the destination node according to the transmission information, which specifically includes:
- the source node converts a virtual address of an application that generates the data packet to be transmitted into a physical address and maps to a PCIe global space, and converts the sending window address and the receiving window address into a physical address in a PCIe global space.
- the source node acquires the to-be-transmitted data packet from a physical address mapped by the application to the PCIe global space, and transmits the to-be-transmitted data packet from a physical address of the sending window to a physical address of the receiving window, and stores Direct memory access DMA transfers within the PCIe global space are implemented in the buffer of the destination node in kernel space.
- a second aspect provides a node device, where the node device includes: a socket management module, configured to determine transmission information required when the data packet to be transmitted is transmitted in the PCIe, where the transmission information includes a sending window address and a receiving window address;
- a PCIe transmission module configured to transmit the to-be-transmitted data packet to another node by using a PCIe switch according to the transmission information determined by the socket management module.
- the method further includes:
- a mode selection module configured to determine, according to a preset configuration file, whether a transmission mode of the to-be-transmitted data packet is a TCP/IP transmission mode or a Kernel bypass transmission mode, and determining that a transmission mode of the to-be-transmitted data packet is a Kernel bypass transmission In the mode, the socket management module is triggered.
- the PCIe transmission module is specifically configured to store the to-be-transmitted data packet into a buffer in its own kernel space, and convert the sending window address and the receiving window address into a physical address in a PCIe global space. And transmitting the to-be-transmitted data packet stored in the buffer from a physical address of the sending window to a physical address of the receiving window, and storing in a buffer in the kernel space of the other node.
- the PCIe transmission module is specifically configured to convert a virtual address of an application that generates the data packet to be transmitted into a physical address and map to a PCIe global space, and convert the sending window address and the receiving window address into a PCIe global space. a physical address within, and obtaining the data packet to be transmitted from a physical address mapped by the application to the PCIe global space, and transmitting the data packet to be transmitted from a physical address of the transmission window to a physical address of the receiving window Stored in the buffer of the other nodes in the kernel space to implement direct memory access DMA transfer in the PCIe global space.
- a data transmission system comprising:
- a source node configured to determine transmission information required for a data packet to be transmitted to be transmitted in the PCIe, And transmitting, according to the transmission information, the data packet to be transmitted to the destination node by using a PCIe switch, where the transmission information includes a sending window address and a receiving window address;
- the destination node is configured to receive a data packet from the source node by using a PCIe switch.
- the source node is further configured to determine, according to a preset configuration file, whether a transmission mode of the to-be-transmitted data packet is a TCP/IP transmission mode or a Kernel bypass transmission. And determining, when determining that the transmission mode of the data packet to be transmitted is a Kernel bypass transmission mode, determining the transmission information required when the data packet to be transmitted is transmitted in the PCIe.
- the source node is specifically configured to store the to-be-transmitted data packet into a buffer in its own kernel space, and convert the sending window address and the receiving window address into a physical address in a PCIe global space. And transmitting the to-be-transmitted data packet stored in the buffer from the physical address of the sending window to the physical address of the receiving window, and storing in the buffer in the kernel space of the destination node.
- the source node is specifically configured to convert a virtual address of an application that generates the data packet to be transmitted into a physical address and map to a PCIe global space, and convert the sending window address and the receiving window address into a PCIe global space.
- Physical address, and obtaining the data packet to be transmitted from a physical address mapped by the application to the PCIe global space, and transmitting the data packet to be transmitted from a physical address of the sending window to a physical address of the receiving window Stored in the buffer of the destination node in the kernel space to implement direct memory access DMA transfer in the PCIe global space.
- the kernel bypass technology is applied in the data transmission scheme of the IPoPCIe, and the data packet sent by the source node can reach the PCIe Switch and enter the destination node directly through the kernel bypass without going through the traditional TCP/IP protocol stack. Since the data packet is transmitted between two nodes without going through the multi-step protocol processing flow and data copy between the layers, the communication delay can be effectively reduced, and the communication is improved. effectiveness.
- FIG. 1 is a schematic diagram of an architecture of an IPoPCIe in the background art
- FIG. 2 is a schematic diagram of steps of a data transmission method according to Embodiment 1 of the present invention.
- FIG. 3(a) and 3(b) are schematic diagrams showing the structure of a data transmission system according to Embodiment 2 of the present invention
- FIG. 4 is a schematic diagram showing the working steps of the data transmission system according to Embodiment 2 of the present invention.
- FIG. 5 is a schematic diagram of B-Copy transmission of a data packet according to Embodiment 2 of the present invention.
- FIG. 6 is a schematic diagram of Z-Copy transmission of a data packet in Embodiment 2 of the present invention.
- FIG. 7 is a schematic structural diagram of a node device according to Embodiment 3 of the present invention.
- the embodiment of the present invention provides a data transmission scheme for applying the Kernel bypass technology to the IPoPCIe.
- the data packet sent by the source node may not pass the traditional TCP.
- the /IP protocol stack and directly enters the PCIe Switch through the Kernel bypass and enters the destination node. Since the data packet is transmitted between the two nodes, it does not need to go through the multi-step protocol processing flow and data copy between the layers, which can be effectively reduced. Less communication delay and improve communication efficiency.
- Embodiment 1 is a diagrammatic representation of Embodiment 1:
- the embodiment of the present invention describes a data transmission method. As shown in FIG. 2, the method includes the following steps: Step 101: The source node determines, according to a preset configuration file, whether a transmission mode of a data packet to be transmitted is a TCP/IP transmission mode or a Kernel bypass. Transmission mode, if it is TCP/IP transmission mode, the data packet is transmitted according to the existing scheme; if it is the Kernel bypass transmission mode, the execution step is disordered.
- This step 101 is a preferred step for achieving the object of the present invention.
- the source node is not limited to directly adopting the Kernel bypass transmission mode for data packet transmission.
- Step 102 The source node determines the transmission information required when the data packet to be transmitted is transmitted in the PCIe.
- the transmission information involved in this step 102 refers to: the address information of the source node transmitting the data to be transmitted and the address information of the destination node receiving the data to be transmitted, such as the transmission window address information and the reception window address information.
- Step 103 The source node passes the to-be-transmitted data packet according to the transmission information, and adopts PCIe.
- the Switch transmits to the destination node to implement data packet transmission.
- Embodiment 2 is a diagrammatic representation of Embodiment 1:
- the method described in the first embodiment can be implemented by the data transmission system shown in FIG. 3( a ), and the data transmission system adds a mode selection module to each node on the basis of the IPoPCIe shown in FIG. 1 . 11 and the core bypass communication module 12.
- the data transmission system shown in FIG. 3( a ) is taken as an example to further describe the solution of the first embodiment.
- Figure 3 (a) shows the working steps of the data transmission system as shown in Figure 4, with node A as the source node, node B as the destination node, and node A sending data packets to node B as an example.
- the data transmission process includes the following: Steps:
- Step 201 The socket application in node A generates a data packet to be transmitted.
- the socket application is an application in an upper layer application (ie, APP in FIG. 2) in node A. Program.
- the socket application When the socket application generates a socket packet, it also creates corresponding socket state information for the socket packet, and the socket state information indicates the transmission request for transmitting the socket packet.
- Response time limit information indicating the time limit for the response message to be returned after the socket data packet is transmitted to the destination node.
- the packet size information indicates the size of the socket packet, and is used to determine the buffer size that needs to be requested for the socket packet when transmitting and receiving the socket packet.
- the upper application in node A can contain multiple socket applications, and each socket application generates a socket packet with its corresponding socket status information.
- Step 202 The mode selection module 11 in node A is called by the socket application.
- the socket interface in the C library can be called, and the mode selection module 11 is triggered.
- Step 203 The mode selection module 11 in the node A determines, according to the preset configuration file, whether the transmission mode of the to-be-transmitted data packet is a TCP/IP transmission mode or a Kernel bypass transmission mode. If the TCP/IP transmission mode is performed, the step is performed. 204. If the mode is the Kernel bypass transmission mode, go to step 205.
- the mode selection module 11 may preset a configuration file in which the selection condition of each transmission mode is recorded.
- the time-sensitive packet configures the Kernel bypass transmission mode
- the time-sensitive packet configures the TCP/IP transmission mode. That is, the timeliness of the data packet is divided into multiple grades, and the timeliness is higher than the set grade (including the set grade).
- the data packet is configured with the Kernel bypass transmission mode, and the timeliness is lower than the set grade (excluding The data packet of the setting profile is configured with a TCP/IP transmission mode.
- the mode selection module 11 When the mode selection module 11 is called by the socket application module, according to the aging requirement of the data packet to be transmitted, an appropriate transmission mode is selected for the data packet to be transmitted, and TCP/IP transmission is realized. Mode switching in mode and Kernel bypass transmission mode.
- Step 204 The node A transmits the to-be-transmitted data packet to the node B via the TCP/IP protocol stack, and ends the current data transmission process.
- the socket data packet to be transmitted is transmitted from the TCP/IP NET CORE (network core) to the link layer PCIe vNIC driver, and finally the PCIe vNIC driver transmits the socket data packet to be transmitted to the node B through the PCIe Switch. Complete this data transfer process.
- Step 205 The kernel bypass communication module 12 in the node A determines the transmission information required when the data packet to be transmitted is transmitted in the PCIe.
- the kernel bypass communication module 12 may include a socket management module 21, and the socket management module 21 has the function of performing this step 205.
- the socket management module 21 can also be used to maintain socket state information created by the socket application. Since the upper layer application in the node A can include multiple socket applications, the socket data packet generated by each socket application has its corresponding socket state information, and therefore, the socket management module 21 can pass a data structure. To maintain the corresponding socket state information of each socket application, the data structure can be called a socket structure. In order to improve the rate at which the socket management module 21 looks for socket status information in the socket structure, the sheath structure can be maintained in a list form.
- the mode selection module 11 triggers the socket management module 21 when determining that the transmission mode of the data packet to be transmitted is the Kernel bypass transmission mode, and the socket management module 21 can determine the data to be transmitted after being triggered by the mode selection module 11.
- the transmission information includes, but is not limited to, transmission window address information and reception window address information, where the transmission window address information and the reception window address information refer to logical addresses of the transmission window and the reception window.
- Step 206 The kernel bypass communication module 12 in the node A transmits the to-be-transmitted data packet to the node B through the PCIe Switch according to the transmission information, and ends the current data transmission process.
- the kernel bypass communication module 12 further includes: a private transmission interface 22 and a PCIe transmission module 23 , where:
- the private transport interface 22 can be invoked after the socket management module 21 determines the transport information required for transmission in PCIe.
- the private transmission interface 22 is a private interface that implements a logical communication function, and the transmission of the data packet in the PCIe is realized by calling the underlying PCIe transmission module 23.
- the transmission information required for transmission in the PCIe transmits the to-be-transmitted data packet to the Node B through the PCIe Switch.
- the PCIe transmission module 23 can also transmit the data packet according to the socket status information of the data packet to be transmitted.
- step 206 the following two ways are included to implement the transmission of the data packet:
- Method 1 Implement B-Copy (Buffer Copy) transmission of the data packet in the kernel bypass.
- FIG. 5 it is a schematic diagram of a B-Copy transmission process of a data packet, including the following contents: First, after the PCIe transmission module 23 is invoked by the private transmission interface 22, the data packet transmission function is called to start the transmission of the data packet. process.
- the PCIe transmission module 23 can read the socket status information of the data packet to be transmitted from the socket status information maintained by the socket management module 21; meanwhile, a buffer is also opened in the kernel space. The data packet to be transmitted is stored in the buffer.
- the buffer may be opened according to the data packet size information, so that the buffer created has sufficient space to store the data to be transmitted. package.
- the buffer opened in this step is actually the buffer of node A.
- the PCIe transmission module 23 converts the transmission window address and the reception window address into physical addresses in the PCIe global space.
- the transmission window address information and the reception window address information determined in step 205 are logical address information, it is logically required to use the transmission window and the reception window for data packet transmission.
- the address is converted to a physical address in the PCIe global space.
- the specific conversion method is:
- the socket application When the socket application creates the socket data packet, it also creates corresponding socket state information for the socket data packet, and the socket state information may include a mapping relationship between the logical address and the physical address, and the PCIe transmission
- the module 23 may obtain the mapping relationship from the socket state information of the data packet to be transmitted, and convert the transmission window address information and the receiving window address information acquired from the socket management module 21 into the PCIe global space. Physical address.
- the PCIe transmission module 23 transmits the to-be-transmitted data packet stored in the buffer of the node A from the physical address of the transmission window to the physical address of the receiving window, and stores the buffer in the kernel space of the node B. In the district.
- the PCIe transmission module 23 sequentially copies the to-be-transmitted data packet stored in the buffer of the node A from the physical address of the transmission window to the physical address of the receiving window, and the data packet is stored to the node via the receiving window physical address.
- B is in the buffer in kernel space.
- the PCIe transmission module 23 can notify the node B through the interrupt message to complete the data transmission process.
- the Node B determines that the data packet is cached in the buffer of the Node B, and can read the received data packet from the buffer of the Node B and copy it when needed. To the upper application of Node B.
- the overhead of the mapping can be reduced by storing and transmitting the data packets to be transmitted in the buffer, which is a relatively efficient transmission method for small data packets.
- Method 2 Implement Z-Copy (Zero Copy) transmission of the data packet in the kernel bypass.
- the system diagram shown in Figure 3 (a) and Figure 3 (b) is the system diagram of Z-Copy transmission. .
- a schematic diagram of a Z-Copy transmission process of a data packet includes the following contents: First, after the PCIe transmission module 23 is invoked by the private transmission interface 22, the data packet transmission function is called to start the transmission of the data packet. process.
- the PCIe transmission module 23 can maintain a socket status letter from the socket management module 21. Reading the socket status information of the data packet to be transmitted; and acquiring the virtual address of the socket application that generates the data packet to be transmitted.
- the virtual address of the socket application that generates the data packet to be transmitted may be obtained from the socket state information of the data packet to be transmitted.
- the PCIe transport module 23 converts the virtual address of the socket application into a physical address and maps to the PCIe global space, and converts the transmit window address and the receive window address into physical addresses within the PCIe global space.
- the mapping relationship between the logical address and the physical address may be included in the socket state information, and the PCIe transmission module 23 may obtain the mapping relationship from the socket state information of the data packet to be transmitted, and then The virtual address of the socket application, the send window virtual address, and the receive window virtual address are all converted to physical addresses within the PCIe global space.
- the PCIe transmission module 23 obtains a data packet to be transmitted from a physical address mapped by the socket application to the PCIe global space, and transmits the data packet to be transmitted from a physical address of the sending window to a physical address of the receiving window. It is stored in the buffer of the node B in the kernel space, and realizes DMA (Direct Memory Access) transmission in the PCIe global space.
- DMA Direct Memory Access
- the PCIe transmission module 23 can implement DMA transmission in the PCIe global space by calling the DMA controller in the NTB.
- the PCIe transmission module 23 can notify the node B by the interrupt message to complete the data transmission process.
- the Node B determines that the data packet is cached in the buffer of the Node B, and can read the received data packet from the buffer of the Node B and copy it when needed. To the upper application of Node B.
- the data packet to be transmitted does not need to be copied, but is directly transmitted to the node B from the socket application that generates the data packet to be transmitted directly through the DMA transmission mode, thereby effectively reducing the data packet transmission.
- the delay of the process is not necessary to be copied, but is directly transmitted to the node B from the socket application that generates the data packet to be transmitted directly through the DMA transmission mode, thereby effectively reducing the data packet transmission. The delay of the process.
- the module division manner in the node A is an optional manner of the implementation scheme, and the second embodiment is not limited to other module division manners.
- the scheme of the embodiment; and the node A has the module division manner described in FIG. 3( a ) and FIG. 3 ( b ), and also has the data packet received by other nodes and copied to the local upper layer application. functional module.
- Embodiment 3 is a diagrammatic representation of Embodiment 3
- the third embodiment of the present invention further describes a node device.
- the node device includes a processor 31 and a transmitter 32, where: the processor 31 is configured to determine when the data packet to be transmitted is transmitted in the PCIe. The required transmission information is used by the transmitter 32 to transmit the to-be-transmitted data packet to other nodes through the PCIe switch according to the transmission information determined by the processor 31.
- the node device further includes a selector 33, configured to determine, according to a preset configuration file, whether a transmission mode of the data packet to be transmitted is a TCP/IP transmission mode or a Kernel bypass transmission mode, and determining the data packet to be transmitted.
- the processor 31 is triggered when the transmission mode is the Kernel bypass transmission mode.
- the transmission information includes a transmission window address and a reception window address.
- the transmitter 32 is specifically configured to store the to-be-transmitted data packet into a buffer in its own kernel space, and convert the sending window address and the receiving window address into a physical address in a PCIe global space. And transmitting the to-be-transmitted data packet stored in the buffer from the physical address of the sending window to the physical address of the receiving window, and storing in the buffer in the kernel space of the other node.
- the transmitter 32 is specifically configured to convert a virtual address of an application that generates the data packet to be transmitted into a physical address and map to a PCIe global space, and convert the sending window address and the receiving window address into a PCIe global space. a physical address, and obtaining the data packet to be transmitted from a physical address mapped by the application to the PCIe global space, and transmitting the data packet to be transmitted from a physical address of the sending window to a physical address of the receiving window, Stored in the buffer of the other nodes in the kernel space, realize direct memory access DMA transfer in the PCIe global space.
- the data packet is transmitted through the kernel bypass technology, and the protocol processing and data copy operation of the TCP/IP layer and the link layer are bypassed.
- the system resources allocated by the CPU for the protocol processing and the data copy operation can be translated to reduce the load of the CPU; meanwhile, since the communication delay is composed of the transmission packet transmission delay and the protocol processing delay, therefore, the bypass is performed.
- the protocol processing of the TCP/IP layer and the link layer can reduce the communication delay and improve the transmission efficiency. Therefore, the transmission throughput can be further improved by reducing the CPU overhead and reducing the communication delay.
- embodiments of the present application can be provided as a method, system, or computer program product.
- the application can take the form of an entirely hardware embodiment, an entirely software embodiment, or a combination of software and hardware.
- the application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) including computer usable program code.
- the computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device.
- the apparatus implements the functions specified in one or more blocks of a flow or a flow and/or block diagram of the flowchart.
- the computer device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
- the memory may include non-persistent memory, random access memory (RAM), and/or non-volatile memory in a computer readable medium, such as read only memory (ROM) or flash memory.
- RAM random access memory
- ROM read only memory
- Memory is an example of a computer readable medium.
- Computer readable media including both permanent and non-persistent, removable and non-removable media, can be stored by any method or technology.
- the information can be computer readable instructions, data structures, modules of programs, or other data.
- Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read only memory. (ROM), electrically erasable programmable read only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disc (DVD) or other optical storage , magnetic tape cartridges, magnetic tape storage or other magnetic storage devices or any other non-transportable media that can be used to store information that can be accessed by computing devices.
- Computer-readable media does not include non-persistent computer readable media, port-modulated data signals and carrier waves.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
The present invention discloses a data transmission method, device, and system; kernel bypass technology is applied in an IPoPCIe data transmission scheme; a packet sent by a source node can directly reach a PCIe Switch by means of kernel bypass and enter a destination node, without passing through a conventional TCP/IP protocol stack; during transmission between two nodes, a data packet need not go through multi-step protocol processing and data duplication between layers, thus communications time delays are effectively reduced, increasing communications efficiency.
Description
一种数据传输方法、 设备及系统 技术领域 Data transmission method, device and system
本发明涉及通信技术领域, 尤其涉及一种数据传输方法、 设备及系统。 背景技术 The present invention relates to the field of communications technologies, and in particular, to a data transmission method, device, and system. Background technique
PCIe ( Peripheral Component Interconnect Express , 邵件快速互连局邵总 线)是在节点(如服务器主机) 内部用于连接 CPU和外设的数据传输总线, 其路由机制为: PCIe Switch ( PCIe交换机)通过读取地址信息来寻址, 以达 到传输数据包的目的, 即: CPU初始化 PCIe外设时会给外设分配地址信息, 并通过地址信息访问外设, 而 PCIe交换机则根据地址信息进行数据包的路 由。 PCIe (Peripheral Component Interconnect Express) is a data transmission bus used to connect CPUs and peripherals inside a node (such as a server host). The routing mechanism is: PCIe Switch (PCIe switch) is read by The address information is used for addressing, so as to achieve the purpose of transmitting the data packet, that is, when the CPU initializes the PCIe peripheral, the peripheral information is allocated to the peripheral, and the peripheral information is accessed through the address information, and the PCIe switch performs the data packet according to the address information. routing.
由于 PCIe的路由机制要求在一个节点内, 分配给各个外设的地址信息 是不能重复的, 因此, 如果将 PCIe直接应用到至少两台节点之间的数据传 输场景时, 会因为节点之间的地址域相互独立, 出现无法保证节点之间的地 址信息不重复的问题。对此,可在 PCIe中引入 NTB( Non-Transparent Bridge, 非透明桥) 来解决至少两台节点之间通过 PCIe直接互联的问题。 Since the routing mechanism of PCIe requires that the address information allocated to each peripheral device cannot be repeated within one node, if the PCIe is directly applied to the data transmission scenario between at least two nodes, it will be due to the relationship between the nodes. The address domains are independent of each other, and there is no problem that the address information between the nodes cannot be duplicated. In this regard, NTB (Non-Transparent Bridge) can be introduced in PCIe to solve the problem of direct interconnection between at least two nodes through PCIe.
NTB技术是根据预先设置的地址转换规则,把源节点发往目的节点的数 据包的地址信息进行转换,确保转换后的地址信息与目的节点内的地址信息 不重复, 从而实现至少两台节点之间的 PCIe数据传输。 The NTB technology converts the address information of the data packet sent by the source node to the destination node according to the preset address conversion rule, so as to ensure that the translated address information and the address information in the destination node are not duplicated, thereby realizing at least two nodes. Inter-PCIe data transmission.
目前, 节点之间主流的通信协议是 TCP/IP ( Transmission Control Protocol/Internet Protocol, 传输控制协议 /互联网络协议), 为了在使用 PCIe 进行多主机节点互联的网络上更好地兼容 TCP/IP , 业界提出了 IPoPCIe ( TCP/IP protocol over PCIe, 在 PCIe网络上兼容 TCP/IP协议 )这个概念, 即: 将 TCP/IP协议运行在 PCIe网络架构上, 其示意图如图 1所示: Currently, the mainstream communication protocol between nodes is TCP/IP (Transmission Control Protocol/Internet Protocol), which is better compatible with TCP/IP on a network that uses PCIe for multi-host node interconnection. The industry has proposed the concept of IPoPCIe (TCP/IP protocol over PCIe, compatible with TCP/IP protocol on PCIe network), namely: Running TCP/IP protocol on PCIe network architecture, its schematic diagram is shown in Figure 1:
在至少两个节点之间进行 PCIe通信时,每个节点内部的 PCIe驱动模拟 出一个称之为 vNIC ( Virtual Network Interface Card, 虚拟网络设备接口 )的 网络设备, 对于外界用户而言, vNIC 和普通的以太网设备没有差别, 也具
有配置 ip地址、 mac地址、 mtu等功能, 但 vNIC的驱动 ( PCIe vNIC driver ) 可以作为链路层接口接收上层应用 (即图 1中 APP )通过 TCP/IP堆栈发送 的数据包, 以及将其他节点传输至的数据包通过 TCP/IP堆栈发送至上层应 用。 由于上层应用向下的接口是 TCP/IP堆栈, 对于上层应用而言, 并不关 心链路层的内容, 因此, 一个节点内的上层应用可透明地使用 IPoPCIe向另 一个节点内的上层应用传输数据包。 When PCIe communication is performed between at least two nodes, the PCIe driver inside each node simulates a network device called a Virtual Network Interface Card (VNIC). For external users, vNIC and common Ethernet devices have no difference, but also There are functions such as configuring ip address, mac address, mtu, etc., but the vNIC driver (PCIe vNIC driver) can be used as a link layer interface to receive packets sent by the upper layer application (ie, APP in Figure 1) through the TCP/IP stack, and other The packets transmitted by the node are sent to the upper application through the TCP/IP stack. Since the upper interface of the upper application is the TCP/IP stack, the upper layer application does not care about the content of the link layer. Therefore, the upper application in one node can transparently use IPoPCIe to transmit to the upper application in another node. data pack.
在至少两个节点之间使用 IPoPCIe进行数据包传输时,以使用 socket (套 接字)技术为例, 常规的传输流程为: When using IPoPCIe for packet transmission between at least two nodes, taking the socket (socket) technology as an example, the normal transmission flow is:
源节点内的上层应用发出的数据包经过 TCP/IP 层到链路层, 由 PCIe vNIC driver将数据包通过 PCIe Switch传输至目的节点, 再经过与源节点的 逆过程最终进入目的节点的上层应用,数据包在各层间传输时是通过拷贝方 式传输的。 The data packets sent by the upper-layer application in the source node pass through the TCP/IP layer to the link layer, and the PCIe vNIC driver transmits the data packet to the destination node through the PCIe Switch, and then enters the upper-layer application of the destination node through the inverse process with the source node. The data packet is transmitted by copy when it is transmitted between layers.
由于数据包在两个节点间的传输要经过上述多步协议处理流程和各层 间的数据拷贝, 因此, 节点间通过 IPoPCIe传输数据包时会造成通信延时的 问题以及数据包在节点间传输效率低的问题。 Since the transmission of data packets between two nodes goes through the above-mentioned multi-step protocol processing flow and data copy between layers, the problem of communication delay and data packets are transmitted between nodes when transmitting data packets between nodes through IPoPCIe. Inefficient problem.
发明内容 Summary of the invention
本发明实施例提供了一种数据传输方法、 设备及系统, 用以解决现有技 术中存在的节点间通过 IPoPCIe传输数据包时有通信延时和输效率低的问 题。 The embodiments of the present invention provide a data transmission method, device, and system, which are used to solve the problem of communication delay and low transmission efficiency when transmitting data packets between nodes in the prior art through IPoPCIe.
第一方面, 提供一种数据传输方法, 所述方法包括: In a first aspect, a data transmission method is provided, where the method includes:
源节点确定待传输数据包在部件快速互连局部总线 PCIe 中传输时所需 的传输信息, 所述传输信息包括发送窗地址和接收窗地址; The source node determines transmission information required when the data packet to be transmitted is transmitted in the component fast interconnect local bus PCIe, and the transmission information includes a transmission window address and a reception window address;
所述源节点根据所述传输信息将所述待传输数据包通过 PCIe交换机传 输至目的节点。 The source node transmits the to-be-transmitted data packet to the destination node through the PCIe switch according to the transmission information.
结合第一方面, 在第一种可能的实现方式中, 所述方法还包括: 所述源节点根据预设的配置文件,确定所述待传输数据包的传输模式是
传输控制协议 /互联网络协议 TCP/IP传输模式还是内核旁路 Kernel bypass传 输模式; With reference to the first aspect, in a first possible implementation, the method further includes: determining, by the source node, a transmission mode of the data packet to be transmitted according to a preset configuration file. Transmission Control Protocol/Internet Protocol TCP/IP transmission mode or kernel bypass Kernel bypass transmission mode;
在确定所述待传输数据包的传输模式是 Kernel bypass传输模式时,确定 所述待传输数据包在 PCIe中传输时所需的所述传输信息。 And determining, when the transmission mode of the data packet to be transmitted is a Kernel bypass transmission mode, determining the transmission information required when the data packet to be transmitted is transmitted in the PCIe.
结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实 现方式中, In conjunction with the first aspect or the first possible implementation of the first aspect, in a second possible implementation,
所述源节点根据所述传输信息将所述待传输数据包传输至目的节点, 具 体包括: The source node transmits the to-be-transmitted data packet to the destination node according to the transmission information, which specifically includes:
所述源节点将所述待传输数据包存储至自身在内核空间内的緩冲区中; 所述源节点将所述发送窗地址和接收窗地址转换为在 PCIe全局空间内 的物理地址; The source node stores the to-be-transmitted data packet into a buffer in its own kernel space; the source node converts the sending window address and the receiving window address into a physical address in a PCIe global space;
所述源节点将緩冲区中存储的所述待传输数据包从发送窗的物理地址 传输至接收窗的物理地址, 并存储在所述目的节点在内核空间内的緩冲区 中。 The source node transmits the to-be-transmitted data packet stored in the buffer from the physical address of the transmission window to the physical address of the receiving window, and is stored in a buffer in the kernel space of the destination node.
结合第一方面或第一方面的第一种可能的实现方式,在第三种可能的实 现方式中, In conjunction with the first aspect or the first possible implementation of the first aspect, in a third possible implementation,
所述源节点根据所述传输信息将所述待传输数据包传输至目的节点, 具 体包括: The source node transmits the to-be-transmitted data packet to the destination node according to the transmission information, which specifically includes:
所述源节点将生成所述待传输数据包的应用程序的虚拟地址转换为物 理地址并映射到 PCIe全局空间, 以及将所述发送窗地址和接收窗地址转换 为在 PCIe全局空间内的物理地址; The source node converts a virtual address of an application that generates the data packet to be transmitted into a physical address and maps to a PCIe global space, and converts the sending window address and the receiving window address into a physical address in a PCIe global space. ;
所述源节点从所述应用程序映射到 PCIe全局空间的物理地址处获取所 述待传输数据包, 并将所述待传输数据包从发送窗的物理地址传输至接收窗 的物理地址,并存储在所述目的节点在内核空间内的緩冲区中, 实现在 PCIe 全局空间内的直接内存访问 DMA传输。 The source node acquires the to-be-transmitted data packet from a physical address mapped by the application to the PCIe global space, and transmits the to-be-transmitted data packet from a physical address of the sending window to a physical address of the receiving window, and stores Direct memory access DMA transfers within the PCIe global space are implemented in the buffer of the destination node in kernel space.
第二方面, 提供一种节点设备, 所述节点设备包括:
套接字管理模块, 用于确定待传输数据包在 PCIe 中传输时所需的传输 信息, 所述传输信息包括发送窗地址和接收窗地址; A second aspect provides a node device, where the node device includes: a socket management module, configured to determine transmission information required when the data packet to be transmitted is transmitted in the PCIe, where the transmission information includes a sending window address and a receiving window address;
PCIe传输模块,用于根据所述套接字管理模块确定的所述传输信息,将 所述待传输数据包通过 PCIe交换机传输至其他节点。 And a PCIe transmission module, configured to transmit the to-be-transmitted data packet to another node by using a PCIe switch according to the transmission information determined by the socket management module.
结合第二方面, 在第一种可能的实现方式中, 还包括: In combination with the second aspect, in the first possible implementation manner, the method further includes:
模式选择模块, 用于根据预设的配置文件, 确定所述待传输数据包的传 输模式是 TCP/IP传输模式还是 Kernel bypass传输模式, 在确定所述待传输 数据包的传输模式是 Kernel bypass传输模式时, 触发所述套接字管理模块。 a mode selection module, configured to determine, according to a preset configuration file, whether a transmission mode of the to-be-transmitted data packet is a TCP/IP transmission mode or a Kernel bypass transmission mode, and determining that a transmission mode of the to-be-transmitted data packet is a Kernel bypass transmission In the mode, the socket management module is triggered.
结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实 现方式中, In conjunction with the second aspect or the first possible implementation of the second aspect, in a second possible implementation,
所述 PCIe传输模块, 具体用于将所述待传输数据包存储至自身的内核 空间内的緩冲区中, 以及将所述发送窗地址和接收窗地址转换为在 PCIe全 局空间内的物理地址, 并将緩冲区中存储的所述待传输数据包从发送窗的物 理地址传输至接收窗的物理地址,存储在所述其他节点在内核空间内的緩冲 区中。 The PCIe transmission module is specifically configured to store the to-be-transmitted data packet into a buffer in its own kernel space, and convert the sending window address and the receiving window address into a physical address in a PCIe global space. And transmitting the to-be-transmitted data packet stored in the buffer from a physical address of the sending window to a physical address of the receiving window, and storing in a buffer in the kernel space of the other node.
结合第二方面或第二方面的第一种可能的实现方式,在第三种可能的实 现方式中, In conjunction with the second aspect or the first possible implementation of the second aspect, in a third possible implementation,
所述 PCIe传输模块, 具体用于将生成所述待传输数据包的应用程序的 虚拟地址转换为物理地址并映射到 PCIe全局空间、 将所述发送窗地址和接 收窗地址转换为在 PCIe全局空间内的物理地址, 以及, 从所述应用程序映 射到 PCIe全局空间的物理地址处获取所述待传输数据包, 并将所述待传输 数据包从发送窗的物理地址传输至接收窗的物理地址 ,存储在所述其他节点 在内核空间内的緩冲区中, 实现在 PCIe全局空间内的直接内存访问 DMA 传输。 The PCIe transmission module is specifically configured to convert a virtual address of an application that generates the data packet to be transmitted into a physical address and map to a PCIe global space, and convert the sending window address and the receiving window address into a PCIe global space. a physical address within, and obtaining the data packet to be transmitted from a physical address mapped by the application to the PCIe global space, and transmitting the data packet to be transmitted from a physical address of the transmission window to a physical address of the receiving window Stored in the buffer of the other nodes in the kernel space to implement direct memory access DMA transfer in the PCIe global space.
第三方面, 提供一种数据传输系统, 所述系统包括: In a third aspect, a data transmission system is provided, the system comprising:
源节点, 用于确定待传输数据包在 PCIe 中传输时所需的传输信息, 以
及根据所述传输信息将所述待传输数据包通过 PCIe交换机传输至目的节点, 所述传输信息包括发送窗地址和接收窗地址; a source node, configured to determine transmission information required for a data packet to be transmitted to be transmitted in the PCIe, And transmitting, according to the transmission information, the data packet to be transmitted to the destination node by using a PCIe switch, where the transmission information includes a sending window address and a receiving window address;
所述目的节点, 用于通过 PCIe交换机接收来自所述源节点的数据包。 结合第三方面, 在第一种可能的实现方式中, 所述源节点, 还用于根据 预设的配置文件, 确定所述待传输数据包的传输模式是 TCP/IP传输模式还 是 Kernel bypass传输模式, 在确定所述待传输数据包的传输模式是 Kernel bypass传输模式时, 确定待传输数据包在 PCIe中传输时所需的所述传输信 息。 The destination node is configured to receive a data packet from the source node by using a PCIe switch. With reference to the third aspect, in a first possible implementation, the source node is further configured to determine, according to a preset configuration file, whether a transmission mode of the to-be-transmitted data packet is a TCP/IP transmission mode or a Kernel bypass transmission. And determining, when determining that the transmission mode of the data packet to be transmitted is a Kernel bypass transmission mode, determining the transmission information required when the data packet to be transmitted is transmitted in the PCIe.
结合第三方面或第三方面的第一种可能的实现方式,在第二种可能的实 现方式中, In conjunction with the third aspect or the first possible implementation of the third aspect, in a second possible implementation,
所述源节点,具体用于将所述待传输数据包存储至自身的内核空间内的 緩冲区中, 以及将所述发送窗地址和接收窗地址转换为在 PCIe全局空间内 的物理地址, 并将緩冲区中存储的所述待传输数据包从发送窗的物理地址传 输至接收窗的物理地址, 并存储在所述目的节点在内核空间内的緩冲区中。 The source node is specifically configured to store the to-be-transmitted data packet into a buffer in its own kernel space, and convert the sending window address and the receiving window address into a physical address in a PCIe global space. And transmitting the to-be-transmitted data packet stored in the buffer from the physical address of the sending window to the physical address of the receiving window, and storing in the buffer in the kernel space of the destination node.
结合第三方面或第三方面的第一种可能的实现方式,在第三种可能的实 现方式中, In conjunction with the third aspect or the first possible implementation of the third aspect, in a third possible implementation,
所述源节点,具体用于将生成所述待传输数据包的应用程序的虚拟地址 转换为物理地址并映射到 PCIe全局空间、 将所述发送窗地址和接收窗地址 转换为在 PCIe全局空间内的物理地址, 以及, 从所述应用程序映射到 PCIe 全局空间的物理地址处获取所述待传输数据包, 并将所述待传输数据包从发 送窗的物理地址传输至接收窗的物理地址,存储在所述目的节点在内核空间 内的緩冲区中, 实现在 PCIe全局空间内的直接内存访问 DMA传输。 The source node is specifically configured to convert a virtual address of an application that generates the data packet to be transmitted into a physical address and map to a PCIe global space, and convert the sending window address and the receiving window address into a PCIe global space. Physical address, and obtaining the data packet to be transmitted from a physical address mapped by the application to the PCIe global space, and transmitting the data packet to be transmitted from a physical address of the sending window to a physical address of the receiving window, Stored in the buffer of the destination node in the kernel space to implement direct memory access DMA transfer in the PCIe global space.
本发明实施例将内核旁路技术应用在 IPoPCIe中的数据传输方案中, 源 节点发送的数据包可以不经过传统的 TCP/IP协议栈, 而直接通过内核旁路 到达 PCIe Switch并进入目的节点, 由于数据包在两个节点间传输时无需经 过多步协议处理流程和各层间的数据拷贝, 可有效减少通信时延, 提高通信
效率。 附图说明 In the embodiment of the present invention, the kernel bypass technology is applied in the data transmission scheme of the IPoPCIe, and the data packet sent by the source node can reach the PCIe Switch and enter the destination node directly through the kernel bypass without going through the traditional TCP/IP protocol stack. Since the data packet is transmitted between two nodes without going through the multi-step protocol processing flow and data copy between the layers, the communication delay can be effectively reduced, and the communication is improved. effectiveness. DRAWINGS
为了更清楚地说明本发明实施例的技术方案, 下面将对现有技术或实施 例中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅 是本发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳 动的前提下, 还可以根据这些附图获得其他的附图。 In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings used in the prior art or the embodiments will be briefly described below. Obviously, the drawings in the following description are only some implementations of the present invention. For example, other drawings may be obtained from those of ordinary skill in the art in light of the inventive work.
图 1为背景技术中 IPoPCIe的架构示意图; 1 is a schematic diagram of an architecture of an IPoPCIe in the background art;
图 2为本发明实施例一中数据传输方法步骤示意图; 2 is a schematic diagram of steps of a data transmission method according to Embodiment 1 of the present invention;
图 3 ( a )和图 3 ( b )为本发明实施例二中数据传输系统的结构示意图; 图 4为本发明实施例二中数据传输系统的工作步骤示意图; 3(a) and 3(b) are schematic diagrams showing the structure of a data transmission system according to Embodiment 2 of the present invention; FIG. 4 is a schematic diagram showing the working steps of the data transmission system according to Embodiment 2 of the present invention;
图 5为本发明实施例二中数据包的 B-Copy传输示意图; FIG. 5 is a schematic diagram of B-Copy transmission of a data packet according to Embodiment 2 of the present invention; FIG.
图 6为本发明实施例二中数据包的 Z-Copy传输示意图; 6 is a schematic diagram of Z-Copy transmission of a data packet in Embodiment 2 of the present invention;
图 7为本发明实施例三中节点设备的结构示意图。 FIG. 7 is a schematic structural diagram of a node device according to Embodiment 3 of the present invention.
具体实施方式 detailed description
为使本发明实施例的目的、 技术方案和优点更加清楚, 下面将结合本发 明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完整地描述, 显然, 所描述的实施例是本发明一部分实施例, 而不是全部的实施例。 基于 本发明中的实施例, 本领域普通技术人员在没有作出创造性劳动前提下所获 得的所有其他实施例, 都属于本发明保护的范围。 The technical solutions in the embodiments of the present invention are clearly and completely described in the following with reference to the accompanying drawings in the embodiments of the present invention. It is a partial embodiment of the invention, and not all of the embodiments. All other embodiments obtained by those skilled in the art based on the embodiments of the present invention without creative efforts are within the scope of the present invention.
为了减少由于数据包在至少两个节点间的传输要经过多步协议处理流 程和各层间的数据拷贝, 导致节点间通过 IPoPCIe传输数据包时会造成通信 延时以及数据包在节点间的传输效率低的问题, 本发明实施例提出一种将 Kernel bypass (内核旁路)技术应用在 IPoPCIe中的数据传输方案, 在本实 施例的方案中, 源节点发送的数据包可以不经过传统的 TCP/IP协议栈, 而 直接通过 Kernel bypass到达 PCIe Switch并进入目的节点, 由于数据包在两 个节点间传输时无需经过多步协议处理流程和各层间的数据拷贝, 可有效减
少通信时延, 提高通信效率。 In order to reduce the transmission of data packets between at least two nodes through the multi-step protocol processing flow and data copy between the layers, the data transmission between the nodes through IPoPCIe will cause communication delay and the transmission of data packets between nodes. The problem of low efficiency, the embodiment of the present invention provides a data transmission scheme for applying the Kernel bypass technology to the IPoPCIe. In the solution of this embodiment, the data packet sent by the source node may not pass the traditional TCP. The /IP protocol stack, and directly enters the PCIe Switch through the Kernel bypass and enters the destination node. Since the data packet is transmitted between the two nodes, it does not need to go through the multi-step protocol processing flow and data copy between the layers, which can be effectively reduced. Less communication delay and improve communication efficiency.
下面通过具体实施例对本发明方案进行详细说明。 The solution of the present invention will be described in detail below through specific embodiments.
实施例一: Embodiment 1:
本发明实施例描述一种数据传输方法, 如图 2所示, 包括以下步骤: 步骤 101 : 源节点根据预设的配置文件, 确定待传输数据包的传输模式 是 TCP/IP传输模式还是 Kernel bypass传输模式,若是 TCP/IP传输模式, 则 按照现有方案进行数据包的传输; 若是 Kernel bypass传输模式, 则执行步骤 亂 The embodiment of the present invention describes a data transmission method. As shown in FIG. 2, the method includes the following steps: Step 101: The source node determines, according to a preset configuration file, whether a transmission mode of a data packet to be transmitted is a TCP/IP transmission mode or a Kernel bypass. Transmission mode, if it is TCP/IP transmission mode, the data packet is transmitted according to the existing scheme; if it is the Kernel bypass transmission mode, the execution step is disordered.
本步骤 101是实现本发明目的的优选步骤, 在本实施例的方案, 也不限 于源节点直接采用 Kernel bypass传输模式进行数据包的传输。 This step 101 is a preferred step for achieving the object of the present invention. In the solution of the embodiment, the source node is not limited to directly adopting the Kernel bypass transmission mode for data packet transmission.
步骤 102: 源节点确定待传输数据包在 PCIe中传输时所需的传输信息。 本步骤 102中所涉及的传输信息是指: 源节点中发送待传输数据的地址 信息和目的节点中接收待传输数据的地址信息,如发送窗地址信息和接收窗 地址信息。 Step 102: The source node determines the transmission information required when the data packet to be transmitted is transmitted in the PCIe. The transmission information involved in this step 102 refers to: the address information of the source node transmitting the data to be transmitted and the address information of the destination node receiving the data to be transmitted, such as the transmission window address information and the reception window address information.
步骤 103 : 源节点根据所述传输信息将所述待传输数据包通过 PCIe Step 103: The source node passes the to-be-transmitted data packet according to the transmission information, and adopts PCIe.
Switch传输至目的节点, 实现数据包的传输。 The Switch transmits to the destination node to implement data packet transmission.
实施例二: Embodiment 2:
本实施例一所描述的方法可通过图 3 ( a )所示的数据传输系统来实现, 所述数据传输系统在图 1所示的 IPoPCIe的基石出上, 在各节点内新增模式选 择模块 11和内核旁路通信模块 12。 本实施例二以图 3 ( a )所示的数据传输 系统为例, 来对实施例一的方案做进一步详细的描述。 The method described in the first embodiment can be implemented by the data transmission system shown in FIG. 3( a ), and the data transmission system adds a mode selection module to each node on the basis of the IPoPCIe shown in FIG. 1 . 11 and the core bypass communication module 12. In the second embodiment, the data transmission system shown in FIG. 3( a ) is taken as an example to further describe the solution of the first embodiment.
图 3 ( a )所示的数据传输系统的工作步骤示意图如图 4所示, 以节点 A 作为源节点, 节点 B作为目的节点, 节点 A向节点 B发送数据包为例, 数 据传输过程包括以下步骤: Figure 3 (a) shows the working steps of the data transmission system as shown in Figure 4, with node A as the source node, node B as the destination node, and node A sending data packets to node B as an example. The data transmission process includes the following: Steps:
步骤 201 : 节点 A内的 socket应用程序生成待传输数据包。 Step 201: The socket application in node A generates a data packet to be transmitted.
所述 socket应用程序为节点 A中上层应用 (即图 2中 APP ) 中的应用
程序。 The socket application is an application in an upper layer application (ie, APP in FIG. 2) in node A. Program.
socket应用程序生成 socket数据包时, 同时还为该 socket数据包创建相 应的套接字状态信息,所述套接字状态信息表示传输该 socket数据包的传输 要求。 When the socket application generates a socket packet, it also creates corresponding socket state information for the socket packet, and the socket state information indicates the transmission request for transmitting the socket packet.
例如: 响应时限信息, 表示该 socket数据包传输至目的节点后需返回响 应消息的时限。 For example: Response time limit information, indicating the time limit for the response message to be returned after the socket data packet is transmitted to the destination node.
再例如: 数据包大小信息, 表示该 socket数据包的大小, 用于确定在发 送以及接收该 socket数据包时需为该 socket数据包申请的緩冲区大小。 For another example, the packet size information indicates the size of the socket packet, and is used to determine the buffer size that needs to be requested for the socket packet when transmitting and receiving the socket packet.
节点 A中的上层应用可包含多个 socket应用程序, 每一个 socket应用 程序所生成的 socket数据包都有其相应的套接字状态信息。 The upper application in node A can contain multiple socket applications, and each socket application generates a socket packet with its corresponding socket status information.
步骤 202: 节点 A内的模式选择模块 11受 socket应用程序的调用。 在本步骤 102中,节点 A内的 socket应用程序生成待传输数据包后,可 调用 C库中的 socket接口, 触发模式选择模块 11。 Step 202: The mode selection module 11 in node A is called by the socket application. In this step 102, after the socket application in the node A generates the data packet to be transmitted, the socket interface in the C library can be called, and the mode selection module 11 is triggered.
步骤 203: 节点 A内的模式选择模块 11根据预设的配置文件, 确定所 述待传输数据包的传输模式是 TCP/IP传输模式还是 Kernel bypass传输模式, 若是 TCP/IP传输模式, 则执行步骤 204, 若是 Kernel bypass传输模式, 则 执行步骤 205。 Step 203: The mode selection module 11 in the node A determines, according to the preset configuration file, whether the transmission mode of the to-be-transmitted data packet is a TCP/IP transmission mode or a Kernel bypass transmission mode. If the TCP/IP transmission mode is performed, the step is performed. 204. If the mode is the Kernel bypass transmission mode, go to step 205.
在本步骤 203中, 模式选择模块 11可预设一个配置文件, 在所述配置 文件中记录每个传输模式的选择条件。 In this step 203, the mode selection module 11 may preset a configuration file in which the selection condition of each transmission mode is recorded.
例如: 在配置文件中记录数据包的时效要求和传输模式的对应关系, 时 效性高的数据包配置 Kernel bypass传输模式,时效性低的数据包配置 TCP/IP 传输模式。即:将数据包的时效性划分为多个档次,时效性高于设定档次(含 所述设定档次 )的数据包配置 Kernel bypass传输模式, 时效性低于所述设定 档次(不含所述设定档次) 的数据包配置 TCP/IP传输模式。 For example: Record the correspondence between the time limit of the data packet and the transmission mode in the configuration file. The time-sensitive packet configures the Kernel bypass transmission mode, and the time-sensitive packet configures the TCP/IP transmission mode. That is, the timeliness of the data packet is divided into multiple grades, and the timeliness is higher than the set grade (including the set grade). The data packet is configured with the Kernel bypass transmission mode, and the timeliness is lower than the set grade (excluding The data packet of the setting profile is configured with a TCP/IP transmission mode.
当模式选择模块 11受 socket应用程序模块的调用后, 根据待传输数据 包的时效要求, 为该待传输数据包选择合适的传输模式, 实现 TCP/IP传输
模式和 Kernel bypass传输模式中的模式切换。 When the mode selection module 11 is called by the socket application module, according to the aging requirement of the data packet to be transmitted, an appropriate transmission mode is selected for the data packet to be transmitted, and TCP/IP transmission is realized. Mode switching in mode and Kernel bypass transmission mode.
步骤 204:节点 A将所述待传输数据包经由 TCP/IP协议栈传输至节点 B, 结束本次数据传输过程。 Step 204: The node A transmits the to-be-transmitted data packet to the node B via the TCP/IP protocol stack, and ends the current data transmission process.
在本步骤 204中, 待传输 socket数据包从 TCP/IP的 NET CORE (网络 核心)到链路层的 PCIe vNIC driver ,最后由 PCIe vNIC driver将待传输 socket 数据包通过 PCIe Switch传输至节点 B, 完成本次数据传输过程。 In this step 204, the socket data packet to be transmitted is transmitted from the TCP/IP NET CORE (network core) to the link layer PCIe vNIC driver, and finally the PCIe vNIC driver transmits the socket data packet to be transmitted to the node B through the PCIe Switch. Complete this data transfer process.
步骤 205: 节点 A内的内核旁路通信模块 12确定待传输数据包在 PCIe 中传输时所需的传输信息。 Step 205: The kernel bypass communication module 12 in the node A determines the transmission information required when the data packet to be transmitted is transmitted in the PCIe.
如图 3 ( b )所示, 所述内核旁路通信模块 12中可以包括套接字管理模 块 21 , 套接字管理模块 21具有执行本步骤 205的功能。 As shown in FIG. 3(b), the kernel bypass communication module 12 may include a socket management module 21, and the socket management module 21 has the function of performing this step 205.
优选地, 套接字管理模块 21还可用于维护 socket应用程序创建的套接 字状态信息。 由于节点 A中的上层应用可包含多个 socket应用程序,每一个 socket应用程序所生成的 socket数据包都有其相应的套接字状态信息,因此, 套接字管理模块 21可通过一个数据结构来维护每个 socket应用程序相应的 套接字状态信息, 该数据结构可称之为套接字结构体。 为了提高套接字管理 模块 21在套接字结构体中查找套接字状态信息的速率, 可以列表形式来维 护套接字结构体。 Preferably, the socket management module 21 can also be used to maintain socket state information created by the socket application. Since the upper layer application in the node A can include multiple socket applications, the socket data packet generated by each socket application has its corresponding socket state information, and therefore, the socket management module 21 can pass a data structure. To maintain the corresponding socket state information of each socket application, the data structure can be called a socket structure. In order to improve the rate at which the socket management module 21 looks for socket status information in the socket structure, the sheath structure can be maintained in a list form.
模式选择模块 11在确定待传输数据包的传输模式为 Kernel bypass传输 模式时, 触发所述套接字管理模块 21 , 套接字管理模块 21受到模式选择模 块 11 的触发后, 可确定待传输数据包的套接字结构体以及待传输数据包在 PCIe中传输时所需的传输信息。所述传输信息包括但不限于:发送窗地址信 息和接收窗地址信息, 这里发送窗地址信息和接收窗地址信息是指发送窗和 接收窗的逻辑地址。 The mode selection module 11 triggers the socket management module 21 when determining that the transmission mode of the data packet to be transmitted is the Kernel bypass transmission mode, and the socket management module 21 can determine the data to be transmitted after being triggered by the mode selection module 11. The socket structure of the packet and the transmission information required for the data packet to be transmitted to be transmitted in PCIe. The transmission information includes, but is not limited to, transmission window address information and reception window address information, where the transmission window address information and the reception window address information refer to logical addresses of the transmission window and the reception window.
步骤 206: 节点 A内的内核旁路通信模块 12根据所述传输信息将所述 待传输数据包通过 PCIe Switch传输至节点 B, 结束本次数据传输过程。 Step 206: The kernel bypass communication module 12 in the node A transmits the to-be-transmitted data packet to the node B through the PCIe Switch according to the transmission information, and ends the current data transmission process.
所述内核旁路通信模块 12还包括: 私有传输接口 22和 PCIe传输模块
23 , 其中: The kernel bypass communication module 12 further includes: a private transmission interface 22 and a PCIe transmission module 23 , where:
在套接字管理模块 21确定在 PCIe中传输时所需的传输信息后, 可调用 私有传输接口 22。 所述私有传输接口 22是实现逻辑通信功能的私有接口, 通过调用底层的 PCIe传输模块 23来实现数据包在 PCIe中的传输。 The private transport interface 22 can be invoked after the socket management module 21 determines the transport information required for transmission in PCIe. The private transmission interface 22 is a private interface that implements a logical communication function, and the transmission of the data packet in the PCIe is realized by calling the underlying PCIe transmission module 23.
PCIe传输模块 23受到私有传输接口 22的调用后,根据待传输数据包在 After the PCIe transmission module 23 is called by the private transmission interface 22, according to the data packet to be transmitted
PCIe中传输时所需的传输信息, 将所述待传输数据包通过 PCIe Switch传输 至节点 B。 优选地, PCIe传输模块 23还可以根据待传输数据包的套接字状 态信息来进行数据包的传输。 The transmission information required for transmission in the PCIe transmits the to-be-transmitted data packet to the Node B through the PCIe Switch. Preferably, the PCIe transmission module 23 can also transmit the data packet according to the socket status information of the data packet to be transmitted.
具体地, 在本步骤 206中, 包括但不限于以下两种方式来实现数据包的 传输: Specifically, in this step 206, the following two ways are included to implement the transmission of the data packet:
方式一、 在内核旁路中实现数据包的 B-Copy ( Buffer Copy, 緩冲拷贝 ) 传输。 Method 1: Implement B-Copy (Buffer Copy) transmission of the data packet in the kernel bypass.
如图 5所示, 为一次数据包的 B-Copy传输过程示意图, 包括以下内容: 第一步、 PCIe传输模块 23受到私有传输接口 22的调用后,调用数据包 发送函数, 开始数据包的发送过程。 As shown in FIG. 5, it is a schematic diagram of a B-Copy transmission process of a data packet, including the following contents: First, after the PCIe transmission module 23 is invoked by the private transmission interface 22, the data packet transmission function is called to start the transmission of the data packet. process.
第二步、 PCIe传输模块 23可从套接字管理模块 21维护的套接字状态信 息中读取待传输数据包的套接字状态信息; 同时, 还在内核空间内开辟一段 緩冲区, 将待传输数据包存储至所述緩冲区内。 In the second step, the PCIe transmission module 23 can read the socket status information of the data packet to be transmitted from the socket status information maintained by the socket management module 21; meanwhile, a buffer is also opened in the kernel space. The data packet to be transmitted is stored in the buffer.
若所述待传输数据包的套接字状态信息中包含数据包大小信息, 则可根 据所述数据包大小信息开辟緩冲区,使得开辟的緩冲区有足够空间来存储所 述待传输数据包。 If the socket status information of the data packet to be transmitted includes packet size information, the buffer may be opened according to the data packet size information, so that the buffer created has sufficient space to store the data to be transmitted. package.
在本步骤中开辟的緩冲区实际上是节点 A的緩冲区。 The buffer opened in this step is actually the buffer of node A.
第三步、 PCIe传输模块 23 将所述发送窗地址和接收窗地址转换为在 PCIe全局空间内的物理地址。 In the third step, the PCIe transmission module 23 converts the transmission window address and the reception window address into physical addresses in the PCIe global space.
由于在步骤 205中确定的发送窗地址信息和接收窗地址信息是逻辑地址 信息, 因此, 在使用发送窗和接收窗进行数据包传输之前, 需要将其逻辑地
址转换为在 PCIe全局空间内的物理地址, 具体转换方式为: Since the transmission window address information and the reception window address information determined in step 205 are logical address information, it is logically required to use the transmission window and the reception window for data packet transmission. The address is converted to a physical address in the PCIe global space. The specific conversion method is:
socket应用程序在创建 socket数据包时, 同时还为该 socket数据包创建 相应的套接字状态信息,在所述套接字状态信息中可包含逻辑地址和物理地 址之间的映射关系, PCIe传输模块 23可从待传输数据包的套接字状态信息 中获取所述映射关系, 并将从套接字管理模块 21 处获取的发送窗地址信息 和接收窗地址信息转换为在 PCIe全局空间内的物理地址。 When the socket application creates the socket data packet, it also creates corresponding socket state information for the socket data packet, and the socket state information may include a mapping relationship between the logical address and the physical address, and the PCIe transmission The module 23 may obtain the mapping relationship from the socket state information of the data packet to be transmitted, and convert the transmission window address information and the receiving window address information acquired from the socket management module 21 into the PCIe global space. Physical address.
第四步、 PCIe传输模块 23将节点 A的緩冲区中存储的所述待传输数据 包从发送窗的物理地址传输至接收窗的物理地址,并存储在节点 B在内核空 间内的緩冲区中。 In the fourth step, the PCIe transmission module 23 transmits the to-be-transmitted data packet stored in the buffer of the node A from the physical address of the transmission window to the physical address of the receiving window, and stores the buffer in the kernel space of the node B. In the district.
在本步骤中, PCIe传输模块 23依次将节点 A的緩冲区中存储的所述待 传输数据包从发送窗的物理地址向接收窗的物理地址拷贝,数据包经由接收 窗物理地址存储至节点 B在内核空间内的緩冲区中。当待传输数据包传输完 毕后, PCIe传输模块 23可通过中断消息通知节点 B, 完成本次数据传输过 程。 之后, 节点 B在接收到所述中断消息后, 确定数据包已緩存在节点 B 的緩冲区中, 可在需要的时候从节点 B的緩冲区中读取接收到的数据包, 并 拷贝至节点 B的上层应用中。 In this step, the PCIe transmission module 23 sequentially copies the to-be-transmitted data packet stored in the buffer of the node A from the physical address of the transmission window to the physical address of the receiving window, and the data packet is stored to the node via the receiving window physical address. B is in the buffer in kernel space. After the transmission of the data packet to be transmitted is completed, the PCIe transmission module 23 can notify the node B through the interrupt message to complete the data transmission process. After receiving the interrupt message, the Node B determines that the data packet is cached in the buffer of the Node B, and can read the received data packet from the buffer of the Node B and copy it when needed. To the upper application of Node B.
通过方式一所描述的 B-Copy传输过程, 通过在緩冲区中存储并传输待 传输数据包, 可减少映射的开销, 对于小数据包来说是个比较高效的传输方 式。 By means of the B-Copy transmission process described in the first method, the overhead of the mapping can be reduced by storing and transmitting the data packets to be transmitted in the buffer, which is a relatively efficient transmission method for small data packets.
方式二、 在内核旁路中实现数据包的 Z-Copy ( Zeor Copy, 零拷贝 )传 输, 图 3 ( a )和图 3 ( b )所示的系统示意图即为 Z-Copy传输时的系统示意 图。 Method 2: Implement Z-Copy (Zero Copy) transmission of the data packet in the kernel bypass. The system diagram shown in Figure 3 (a) and Figure 3 (b) is the system diagram of Z-Copy transmission. .
如图 6所示, 为一次数据包的 Z-Copy传输过程示意图, 包括以下内容: 第一步、 PCIe传输模块 23受到私有传输接口 22的调用后,调用数据包 发送函数, 开始数据包的发送过程。 As shown in FIG. 6, a schematic diagram of a Z-Copy transmission process of a data packet includes the following contents: First, after the PCIe transmission module 23 is invoked by the private transmission interface 22, the data packet transmission function is called to start the transmission of the data packet. process.
第二步、 PCIe传输模块 23可从套接字管理模块 21维护的套接字状态信
息中读取待传输数据包的套接字状态信息; 同时, 还获取生成所述待传输数 据包的 socket应用程序的虚拟地址。 In the second step, the PCIe transmission module 23 can maintain a socket status letter from the socket management module 21. Reading the socket status information of the data packet to be transmitted; and acquiring the virtual address of the socket application that generates the data packet to be transmitted.
在本步骤中,可从所述待传输数据包的套接字状态信息中获取生成所述 待传输数据包的 socket应用程序的虚拟地址。 In this step, the virtual address of the socket application that generates the data packet to be transmitted may be obtained from the socket state information of the data packet to be transmitted.
第三步、 PCIe传输模块 23将 socket应用程序的虚拟地址转换为物理地 址并映射到 PCIe全局空间, 以及将所述发送窗地址和接收窗地址转换为在 PCIe全局空间内的物理地址。 In the third step, the PCIe transport module 23 converts the virtual address of the socket application into a physical address and maps to the PCIe global space, and converts the transmit window address and the receive window address into physical addresses within the PCIe global space.
在本步骤中,在套接字状态信息中可包含逻辑地址和物理地址之间的映 射关系, PCIe传输模块 23可从待传输数据包的套接字状态信息中获取所述 映射关系后, 将 socket应用程序的虚拟地址、 发送窗虚拟地址和接收窗虚拟 地址都转换为 PCIe全局空间内的物理地址。 In this step, the mapping relationship between the logical address and the physical address may be included in the socket state information, and the PCIe transmission module 23 may obtain the mapping relationship from the socket state information of the data packet to be transmitted, and then The virtual address of the socket application, the send window virtual address, and the receive window virtual address are all converted to physical addresses within the PCIe global space.
第四步、 PCIe传输模块 23从所述 socket应用程序映射到 PCIe全局空 间的物理地址处获取待传输数据包, 并所述待传输数据包从发送窗的物理地 址传输至接收窗的物理地址, 并存储在节点 B在内核空间内的緩冲区中, 实 现在 PCIe全局空间内的 DMA ( Direct memory access,直接内存访问 )传输。 In a fourth step, the PCIe transmission module 23 obtains a data packet to be transmitted from a physical address mapped by the socket application to the PCIe global space, and transmits the data packet to be transmitted from a physical address of the sending window to a physical address of the receiving window. It is stored in the buffer of the node B in the kernel space, and realizes DMA (Direct Memory Access) transmission in the PCIe global space.
在本步骤中, PCIe传输模块 23可通过调用 NTB中的 DMA控制器实现 在 PCIe全局空间内的 DMA传输。 In this step, the PCIe transmission module 23 can implement DMA transmission in the PCIe global space by calling the DMA controller in the NTB.
当 DMA传输完毕后, PCIe传输模块 23可通过中断消息通知节点 B, 完成本次数据传输过程。 之后, 节点 B在接收到所述中断消息后, 确定数据 包已緩存在节点 B的緩冲区中, 可在需要的时候从节点 B的緩冲区中读取 接收到的数据包, 并拷贝至节点 B的上层应用中。 After the DMA transfer is completed, the PCIe transmission module 23 can notify the node B by the interrupt message to complete the data transmission process. After receiving the interrupt message, the Node B determines that the data packet is cached in the buffer of the Node B, and can read the received data packet from the buffer of the Node B and copy it when needed. To the upper application of Node B.
通过方式二所描述的 Z-Copy传输过程, 待传输数据包无需拷贝, 而是 直接通过 DMA传输方式, 从生成待传输数据包的 socket应用程序处直接传 输至节点 B, 可有效减少数据包传输过程的时延。 Through the Z-Copy transmission process described in the second method, the data packet to be transmitted does not need to be copied, but is directly transmitted to the node B from the socket application that generates the data packet to be transmitted directly through the DMA transmission mode, thereby effectively reducing the data packet transmission. The delay of the process.
需要说明的是,在本实施例二的方案中, 节点 A内的模块划分方式是实 现方案的一种可选方式, 本实施例二也不限于其他模块划分方式来实现本实
施例的方案; 且节点 A除了图 3 ( a )和图 3 ( b ) 中所描述的模块划分方式 夕卜, 同时还具有接收其他节点传输的数据包, 并拷贝至本地的上层应用中的 功能模块。 It should be noted that, in the solution of the second embodiment, the module division manner in the node A is an optional manner of the implementation scheme, and the second embodiment is not limited to other module division manners. The scheme of the embodiment; and the node A has the module division manner described in FIG. 3( a ) and FIG. 3 ( b ), and also has the data packet received by other nodes and copied to the local upper layer application. functional module.
实施例三: Embodiment 3:
本发明实施例三还描述了一种节点设备, 如图 7所示, 所述节点设备包 括处理器 31和发射器 32, 其中: 处理器 31用于确定待传输数据包在 PCIe 中传输时所需的传输信息;发射器 32用于根据所述处理器 31确定的所述传 输信息, 将所述待传输数据包通过 PCIe交换机传输至其他节点。 The third embodiment of the present invention further describes a node device. As shown in FIG. 7, the node device includes a processor 31 and a transmitter 32, where: the processor 31 is configured to determine when the data packet to be transmitted is transmitted in the PCIe. The required transmission information is used by the transmitter 32 to transmit the to-be-transmitted data packet to other nodes through the PCIe switch according to the transmission information determined by the processor 31.
所述节点设备还包括选择器 33 ,用于根据预设的配置文件,确定所述待 传输数据包的传输模式是 TCP/IP传输模式还是 Kernel bypass传输模式, 在 确定所述待传输数据包的传输模式是 Kernel bypass传输模式时,触发所述处 理器 31。 The node device further includes a selector 33, configured to determine, according to a preset configuration file, whether a transmission mode of the data packet to be transmitted is a TCP/IP transmission mode or a Kernel bypass transmission mode, and determining the data packet to be transmitted. The processor 31 is triggered when the transmission mode is the Kernel bypass transmission mode.
所述传输信息包括发送窗地址和接收窗地址。 方式一: The transmission information includes a transmission window address and a reception window address. method one:
所述发射器 32具体用于将所述待传输数据包存储至自身的内核空间内 的緩冲区中, 以及将所述发送窗地址和接收窗地址转换为在 PCIe全局空间 内的物理地址, 并将緩冲区中存储的所述待传输数据包从发送窗的物理地址 传输至接收窗的物理地址, 存储在所述其他节点在内核空间内的緩冲区中。 The transmitter 32 is specifically configured to store the to-be-transmitted data packet into a buffer in its own kernel space, and convert the sending window address and the receiving window address into a physical address in a PCIe global space. And transmitting the to-be-transmitted data packet stored in the buffer from the physical address of the sending window to the physical address of the receiving window, and storing in the buffer in the kernel space of the other node.
方式二: Method 2:
所述发射器 32具体用于将生成所述待传输数据包的应用程序的虚拟地 址转换为物理地址并映射到 PCIe全局空间、 将所述发送窗地址和接收窗地 址转换为在 PCIe全局空间内的物理地址,以及,从所述应用程序映射到 PCIe 全局空间的物理地址处获取所述待传输数据包, 并将所述待传输数据包从发 送窗的物理地址传输至接收窗的物理地址 ,存储在所述其他节点在内核空间 内的緩冲区中, 实现在 PCIe全局空间内的直接内存访问 DMA传输。
通过本发明实施例的方案, 在基于 IPoPCIe的架构下传输 socket数据包 时, 通过内核旁路技术进行数据包的传输, 绕开了 TCP/IP层和链路层的协 议处理过程和数据拷贝操作, 可将 CPU为协议处理过程和数据拷贝操作所 分配的系统资源译放出来, 降低 CPU的负载; 同时, 由于通信时延是由传 输包传输时延和协议处理时延构成, 因此, 绕开 TCP/IP层和链路层的协议 处理过程可减少通信时延, 提高传输效率; 由于减少了 CPU开销和降低了 通信时延, 因此, 还可进一步提高传输吞吐量。 The transmitter 32 is specifically configured to convert a virtual address of an application that generates the data packet to be transmitted into a physical address and map to a PCIe global space, and convert the sending window address and the receiving window address into a PCIe global space. a physical address, and obtaining the data packet to be transmitted from a physical address mapped by the application to the PCIe global space, and transmitting the data packet to be transmitted from a physical address of the sending window to a physical address of the receiving window, Stored in the buffer of the other nodes in the kernel space, realize direct memory access DMA transfer in the PCIe global space. Through the solution of the embodiment of the present invention, when the socket data packet is transmitted under the IPoPCIe-based architecture, the data packet is transmitted through the kernel bypass technology, and the protocol processing and data copy operation of the TCP/IP layer and the link layer are bypassed. The system resources allocated by the CPU for the protocol processing and the data copy operation can be translated to reduce the load of the CPU; meanwhile, since the communication delay is composed of the transmission packet transmission delay and the protocol processing delay, therefore, the bypass is performed. The protocol processing of the TCP/IP layer and the link layer can reduce the communication delay and improve the transmission efficiency. Therefore, the transmission throughput can be further improved by reducing the CPU overhead and reducing the communication delay.
本领域内的技术人员应明白, 本申请的实施例可提供为方法、 系统、 或 计算机程序产品。 因此, 本申请可采用完全硬件实施例、 完全软件实施例、 或结合软件和硬件方面的实施例的形式。 而且, 本申请可采用在一个或多个 其中包含有计算机可用程序代码的计算机可用存储介质 (包括但不限于磁盘 存储器、 CD-ROM、 光学存储器等)上实施的计算机程序产品的形式。 Those skilled in the art will appreciate that embodiments of the present application can be provided as a method, system, or computer program product. Thus, the application can take the form of an entirely hardware embodiment, an entirely software embodiment, or a combination of software and hardware. Moreover, the application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) including computer usable program code.
本申请是参照根据本申请实施例的方法、 设备(系统) 、 和计算机程序 产品的流程图和 /或方框图来描述的。应理解可由计算机程序指令实现流程 图和 /或方框图中的每一流程和 /或方框、 以及流程图和 /或方框图中的流 程和 /或方框的结合。 可提供这些计算机程序指令到通用计算机、 专用计算 机、 嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器, 使 得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实 现在流程图一个流程或多个流程和 /或方框图一个方框或多个方框中指定 的功能的装置。 The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (system), and computer program products according to embodiments of the present application. It will be understood that each flow and/or block of the flowchart and/or block diagrams, and combinations of processes and/or blocks in the flowcharts and/or block diagrams can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing device to produce a machine for the execution of instructions for execution by a processor of a computer or other programmable data processing device. Means for implementing the functions specified in one or more of the flow or in a block or blocks of the flow chart.
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理 设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储 器中的指令产生包括指令装置的制造品, 该指令装置实现在流程图一个流程 或多个流程和 /或方框图一个方框或多个方框中指定的功能。 The computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device. The apparatus implements the functions specified in one or more blocks of a flow or a flow and/or block diagram of the flowchart.
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上, 使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现
的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程 图一个流程或多个流程和 /或方框图一个方框或多个方框中指定的功能的 步骤。 These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce a computer implemented The processing, such as instructions executed on a computer or other programmable device, provides the steps for implementing the functions specified in one or more blocks of the flowchart or in a block or blocks of the flowchart.
在一个典型的配置中, 所述计算机设备包括一个或多个处理器 (CPU)、 输入 /输出接口、 网络接口和内存。 内存可能包括计算机可读介质中的非永久 性存储器, 随机存取存储器 (RAM) 和 /或非易失性内存等形式, 如只读存储 器 (ROM)或闪存 (flash RAM)。 内存是计算机可读介质的示例。 计算机可读介 质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来 实现信息存储。 信息可以是计算机可读指令、 数据结构、 程序的模块或其他 数据。 计算机的存储介质的例子包括, 但不限于相变内存 (PRAM)、 静态随 机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存 取存储器 (RAM)、 只读存储器 (ROM)、 电可擦除可编程只读存储器 (EEPROM), 快闪记忆体或其他内存技术、 只读光盘只读存储器 (CD-ROM;)、 数字多功能光盘 (DVD)或其他光学存储、 磁盒式磁带, 磁带磁磁盘存储或其 他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的 信息。 按照本文中的界定, 计算机可读介质不包括非持续性的电脑可读媒体 (transitory media) , 口调制的数据信号和载波。 In a typical configuration, the computer device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory. The memory may include non-persistent memory, random access memory (RAM), and/or non-volatile memory in a computer readable medium, such as read only memory (ROM) or flash memory. Memory is an example of a computer readable medium. Computer readable media, including both permanent and non-persistent, removable and non-removable media, can be stored by any method or technology. The information can be computer readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read only memory. (ROM), electrically erasable programmable read only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disc (DVD) or other optical storage , magnetic tape cartridges, magnetic tape storage or other magnetic storage devices or any other non-transportable media that can be used to store information that can be accessed by computing devices. Computer-readable media, as defined herein, does not include non-persistent computer readable media, port-modulated data signals and carrier waves.
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了 基本创造性概念, 则可对这些实施例做出另外的变更和修改。 所以, 所附权 利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。 While the preferred embodiment of the present application has been described, those skilled in the art can make further changes and modifications to these embodiments once they are aware of the basic inventive concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all modifications and
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本 申请的精神和范围。 这样, 倘若本申请的这些修改和变型属于本申请权利要 求及其等同技术的范围之内, 则本申请也意图包含这些改动和变型在内。
It will be apparent to those skilled in the art that various modifications and changes can be made in the present application without departing from the spirit and scope of the application. Accordingly, it is intended that the present invention cover the modifications and variations of the invention, and the scope of the present invention.
Claims
1、 一种数据传输方法, 其特征在于, 所述方法包括: 1. A data transmission method, characterized in that the method includes:
源节点确定待传输数据包在部件快速互连局部总线 PCIe 中传输时所需 的传输信息, 所述传输信息包括发送窗地址和接收窗地址; The source node determines the transmission information required when the data packet to be transmitted is transmitted in the Component Express Interconnect local bus PCIe. The transmission information includes a sending window address and a receiving window address;
所述源节点根据所述传输信息将所述待传输数据包通过 PCIe交换机传 输至目的节点。 The source node transmits the data packet to be transmitted to the destination node through the PCIe switch according to the transmission information.
2、 如权利要求 1所述的方法, 其特征在于, 所述方法还包括: 所述源节点根据预设的配置文件,确定所述待传输数据包的传输模式是 传输控制协议 /互联网络协议 TCP/IP传输模式还是内核旁路 Kernel bypass传 输模式; 2. The method of claim 1, wherein the method further includes: the source node determines, according to a preset configuration file, that the transmission mode of the data packet to be transmitted is Transmission Control Protocol/Internet Protocol TCP/IP transmission mode or Kernel bypass transmission mode;
在确定所述待传输数据包的传输模式是 Kernel bypass传输模式时,确定 所述待传输数据包在 PCIe中传输时所需的所述传输信息。 When it is determined that the transmission mode of the data packet to be transmitted is the Kernel bypass transmission mode, the transmission information required when the data packet to be transmitted is transmitted in PCIe is determined.
3、 如权利要求 1或 2所述的方法, 其特征在于, 3. The method according to claim 1 or 2, characterized in that,
所述源节点根据所述传输信息将所述待传输数据包传输至目的节点, 具 体包括: The source node transmits the data packet to be transmitted to the destination node according to the transmission information, specifically including:
所述源节点将所述待传输数据包存储至自身在内核空间内的緩冲区中; 所述源节点将所述发送窗地址和接收窗地址转换为在 PCIe全局空间内 的物理地址; The source node stores the data packet to be transmitted in its own buffer in the kernel space; the source node converts the sending window address and receiving window address into physical addresses in the PCIe global space;
所述源节点将緩冲区中存储的所述待传输数据包从发送窗的物理地址 传输至接收窗的物理地址, 并存储在所述目的节点在内核空间内的緩冲区 中。 The source node transmits the data packet to be transmitted stored in the buffer from the physical address of the sending window to the physical address of the receiving window, and stores it in the buffer of the destination node in the kernel space.
4、 如权利要求 1或 2所述的方法, 其特征在于, 4. The method according to claim 1 or 2, characterized in that,
所述源节点根据所述传输信息将所述待传输数据包传输至目的节点, 具 体包括: The source node transmits the data packet to be transmitted to the destination node according to the transmission information, specifically including:
所述源节点将生成所述待传输数据包的应用程序的虚拟地址转换为物 理地址并映射到 PCIe全局空间, 以及将所述发送窗地址和接收窗地址转换
为在 PCIe全局空间内的物理地址; The source node converts the virtual address of the application that generates the data packet to be transmitted into a physical address and maps it to the PCIe global space, and converts the sending window address and receiving window address. Is the physical address in the PCIe global space;
所述源节点从所述应用程序映射到 PCIe全局空间的物理地址处获取所 述待传输数据包, 并将所述待传输数据包从发送窗的物理地址传输至接收窗 的物理地址,并存储在所述目的节点在内核空间内的緩冲区中, 实现在 PCIe 全局空间内的直接内存访问 DMA传输。 The source node obtains the data packet to be transmitted from the physical address mapped to the PCIe global space by the application program, transmits the data packet to be transmitted from the physical address of the sending window to the physical address of the receiving window, and stores it. In the buffer of the destination node in the kernel space, direct memory access DMA transfer in the PCIe global space is implemented.
5、 一种节点设备, 其特征在于, 所述节点设备包括: 5. A node device, characterized in that, the node device includes:
套接字管理模块, 用于确定待传输数据包在 PCIe 中传输时所需的传输 信息, 所述传输信息包括发送窗地址和接收窗地址; The socket management module is used to determine the transmission information required when the data packet to be transmitted is transmitted in PCIe. The transmission information includes the sending window address and the receiving window address;
PCIe传输模块,用于根据所述套接字管理模块确定的所述传输信息,将 所述待传输数据包通过 PCIe交换机传输至其他节点。 The PCIe transmission module is configured to transmit the data packet to be transmitted to other nodes through the PCIe switch according to the transmission information determined by the socket management module.
6、 如权利要求 5所述的节点设备, 其特征在于, 还包括: 6. The node device according to claim 5, further comprising:
模式选择模块, 用于根据预设的配置文件, 确定所述待传输数据包的传 输模式是 TCP/IP传输模式还是 Kernel bypass传输模式, 在确定所述待传输 数据包的传输模式是 Kernel bypass传输模式时, 触发所述套接字管理模块。 A mode selection module, configured to determine whether the transmission mode of the data packet to be transmitted is the TCP/IP transmission mode or the Kernel bypass transmission mode according to the preset configuration file. After determining that the transmission mode of the data packet to be transmitted is the Kernel bypass transmission mode, trigger the socket management module.
7、 如权利要求 5或 6所述的节点设备, 其特征在于, 7. The node device according to claim 5 or 6, characterized in that,
所述 PCIe传输模块, 具体用于将所述待传输数据包存储至自身的内核 空间内的緩冲区中, 以及将所述发送窗地址和接收窗地址转换为在 PCIe全 局空间内的物理地址, 并将緩冲区中存储的所述待传输数据包从发送窗的物 理地址传输至接收窗的物理地址,存储在所述其他节点在内核空间内的緩冲 区中。 The PCIe transmission module is specifically used to store the data packet to be transmitted in a buffer in its own kernel space, and convert the sending window address and receiving window address into physical addresses in the PCIe global space. , and transfer the data packet to be transmitted stored in the buffer from the physical address of the sending window to the physical address of the receiving window, and store it in the buffer of the other node in the kernel space.
8、 如权利要求 5或 6所述的节点设备, 其特征在于, 8. The node device according to claim 5 or 6, characterized in that,
所述 PCIe传输模块, 具体用于将生成所述待传输数据包的应用程序的 虚拟地址转换为物理地址并映射到 PCIe全局空间、 将所述发送窗地址和接 收窗地址转换为在 PCIe全局空间内的物理地址, 以及, 从所述应用程序映 射到 PCIe全局空间的物理地址处获取所述待传输数据包, 并将所述待传输 数据包从发送窗的物理地址传输至接收窗的物理地址 ,存储在所述其他节点
在内核空间内的緩冲区中, 实现在 PCIe全局空间内的直接内存访问 DMA 传输。 The PCIe transmission module is specifically used to convert the virtual address of the application program that generates the data packet to be transmitted into a physical address and map it to the PCIe global space, and convert the sending window address and the receiving window address into the PCIe global space. the physical address within the PCIe global space, and obtain the data packet to be transmitted from the physical address mapped to the PCIe global space by the application program, and transmit the data packet to be transmitted from the physical address of the sending window to the physical address of the receiving window , stored in the other nodes In the buffer within the kernel space, direct memory access DMA transfers within the PCIe global space are implemented.
9、 一种数据传输系统, 其特征在于, 所述系统包括: 9. A data transmission system, characterized in that the system includes:
源节点, 用于确定待传输数据包在 PCIe 中传输时所需的传输信息, 以 及根据所述传输信息将所述待传输数据包通过 PCIe交换机传输至目的节点 , 所述传输信息包括发送窗地址和接收窗地址; The source node is used to determine the transmission information required when the data packet to be transmitted is transmitted in PCIe, and transmit the data packet to be transmitted to the destination node through the PCIe switch according to the transmission information. The transmission information includes the transmission window address. and receiving window address;
所述目的节点, 用于通过 PCIe交换机接收来自所述源节点的数据包。 The destination node is configured to receive data packets from the source node through the PCIe switch.
10、 如权利要求 9所述的系统, 其特征在于, 10. The system of claim 9, characterized in that,
所述源节点, 还用于根据预设的配置文件, 确定所述待传输数据包的传 输模式是 TCP/IP传输模式还是 Kernel bypass传输模式, 在确定所述待传输 数据包的传输模式是 Kernel bypass传输模式时, 确定待传输数据包在 PCIe 中传输时所需的所述传输信息。 The source node is also configured to determine whether the transmission mode of the data packet to be transmitted is the TCP/IP transmission mode or the Kernel bypass transmission mode according to the preset configuration file. After determining that the transmission mode of the data packet to be transmitted is the Kernel In the bypass transmission mode, the transmission information required when the data packet to be transmitted is transmitted in PCIe is determined.
11、 如权利要求 9或 10所述的系统, 其特征在于, 11. The system according to claim 9 or 10, characterized in that,
所述源节点,具体用于将所述待传输数据包存储至自身的内核空间内的 緩冲区中, 以及将所述发送窗地址和接收窗地址转换为在 PCIe全局空间内 的物理地址, 并将緩冲区中存储的所述待传输数据包从发送窗的物理地址传 输至接收窗的物理地址, 并存储在所述目的节点在内核空间内的緩冲区中。 The source node is specifically configured to store the data packet to be transmitted into a buffer in its own kernel space, and convert the sending window address and receiving window address into physical addresses in the PCIe global space, And the data packet to be transmitted stored in the buffer is transferred from the physical address of the sending window to the physical address of the receiving window, and is stored in the buffer of the destination node in the kernel space.
12、 如权利要求 9或 10所述的系统, 其特征在于, 12. The system according to claim 9 or 10, characterized in that,
所述源节点,具体用于将生成所述待传输数据包的应用程序的虚拟地址 转换为物理地址并映射到 PCIe全局空间、 将所述发送窗地址和接收窗地址 转换为在 PCIe全局空间内的物理地址, 以及, 从所述应用程序映射到 PCIe 全局空间的物理地址处获取所述待传输数据包, 并将所述待传输数据包从发 送窗的物理地址传输至接收窗的物理地址,存储在所述目的节点在内核空间 内的緩冲区中, 实现在 PCIe全局空间内的直接内存访问 DMA传输。
The source node is specifically used to convert the virtual address of the application program that generates the data packet to be transmitted into a physical address and map it to the PCIe global space, and convert the sending window address and receiving window address into the PCIe global space. and, obtain the data packet to be transmitted from the physical address mapped to the PCIe global space by the application program, and transmit the data packet to be transmitted from the physical address of the sending window to the physical address of the receiving window, Stored in the buffer of the destination node in the kernel space, direct memory access DMA transfer in the PCIe global space is implemented.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310271606.4A CN103312720B (en) | 2013-07-01 | 2013-07-01 | A kind of data transmission method, equipment and system |
CN201310271606.4 | 2013-07-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015000302A1 true WO2015000302A1 (en) | 2015-01-08 |
Family
ID=49137504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2014/072209 WO2015000302A1 (en) | 2013-07-01 | 2014-02-19 | Data transmission method, device, and system |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103312720B (en) |
WO (1) | WO2015000302A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017139305A1 (en) * | 2016-02-09 | 2017-08-17 | Jonathan Perry | Network resource allocation |
WO2017156362A1 (en) | 2016-03-11 | 2017-09-14 | President And Fellows Of Harvard College | Modulating t cell survival by targeting the one-carbon metabolic pathway |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103312720B (en) * | 2013-07-01 | 2016-05-25 | 华为技术有限公司 | A kind of data transmission method, equipment and system |
US9672167B2 (en) | 2013-07-22 | 2017-06-06 | Futurewei Technologies, Inc. | Resource management for peripheral component interconnect-express domains |
CN103905453A (en) * | 2014-04-04 | 2014-07-02 | 浪潮电子信息产业股份有限公司 | Communication model and method based on address mapping multiplexing |
CN105760319A (en) * | 2014-12-15 | 2016-07-13 | 中兴通讯股份有限公司 | Data successfully sent confirmation method and device |
EP3057275B1 (en) * | 2015-02-10 | 2020-08-05 | TTTech Computertechnik AG | Extended distribution unit |
CN104965677B (en) * | 2015-06-26 | 2018-04-13 | 北京百度网讯科技有限公司 | Storage system |
CN105681018B (en) * | 2016-01-14 | 2019-01-15 | 深圳市紫光同创电子有限公司 | Data sending, receiving method and device and PCS transmitting and receiving device |
CN105721356B (en) * | 2016-02-03 | 2019-05-10 | 华为技术有限公司 | Store the method and the network equipment of protocol header |
WO2020000489A1 (en) * | 2018-06-30 | 2020-01-02 | 华为技术有限公司 | Pcie sending and receiving method, apparatus, device and system |
CN111314311A (en) * | 2020-01-19 | 2020-06-19 | 苏州浪潮智能科技有限公司 | Method, system, equipment and medium for improving performance of switch |
CN111581139B (en) * | 2020-05-06 | 2022-05-17 | 浙江宇视科技有限公司 | Compatible processing method, device and equipment of PCIe equipment and storage medium |
CN113347017B (en) * | 2021-04-09 | 2023-07-21 | 中科创达软件股份有限公司 | Network communication method and device, network node equipment and hybrid network |
CN116010296A (en) * | 2021-10-21 | 2023-04-25 | 华为技术有限公司 | Method, device and system for processing request |
CN117591462A (en) * | 2024-01-19 | 2024-02-23 | 成都大征创智科技有限公司 | Peripheral connection method based on PCIE protocol in digital processor |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070297334A1 (en) * | 2006-06-21 | 2007-12-27 | Fong Pong | Method and system for network protocol offloading |
CN102288877A (en) * | 2011-08-01 | 2011-12-21 | 中煤科工集团重庆研究院 | On-line fault positioning system for mine cable network based on peripheral component interconnect express (PCI-E) technology |
CN102497432A (en) * | 2011-12-13 | 2012-06-13 | 华为技术有限公司 | Multi-path accessing method for input/output (I/O) equipment, I/O multi-path manager and system |
CN103312720A (en) * | 2013-07-01 | 2013-09-18 | 华为技术有限公司 | Data transmission method, equipment and system |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102821082A (en) * | 2011-06-10 | 2012-12-12 | 成都市华为赛门铁克科技有限公司 | Data transmission method, device and system |
-
2013
- 2013-07-01 CN CN201310271606.4A patent/CN103312720B/en active Active
-
2014
- 2014-02-19 WO PCT/CN2014/072209 patent/WO2015000302A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070297334A1 (en) * | 2006-06-21 | 2007-12-27 | Fong Pong | Method and system for network protocol offloading |
CN102288877A (en) * | 2011-08-01 | 2011-12-21 | 中煤科工集团重庆研究院 | On-line fault positioning system for mine cable network based on peripheral component interconnect express (PCI-E) technology |
CN102497432A (en) * | 2011-12-13 | 2012-06-13 | 华为技术有限公司 | Multi-path accessing method for input/output (I/O) equipment, I/O multi-path manager and system |
CN103312720A (en) * | 2013-07-01 | 2013-09-18 | 华为技术有限公司 | Data transmission method, equipment and system |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017139305A1 (en) * | 2016-02-09 | 2017-08-17 | Jonathan Perry | Network resource allocation |
US10348600B2 (en) | 2016-02-09 | 2019-07-09 | Flowtune, Inc. | Controlling flow rates of traffic among endpoints in a network |
WO2017156362A1 (en) | 2016-03-11 | 2017-09-14 | President And Fellows Of Harvard College | Modulating t cell survival by targeting the one-carbon metabolic pathway |
Also Published As
Publication number | Publication date |
---|---|
CN103312720B (en) | 2016-05-25 |
CN103312720A (en) | 2013-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2015000302A1 (en) | Data transmission method, device, and system | |
US11748278B2 (en) | Multi-protocol support for transactions | |
US10079889B1 (en) | Remotely accessible solid state drive | |
US11941458B2 (en) | Maintaining storage namespace identifiers for live virtualized execution environment migration | |
US10348830B1 (en) | Virtual non-volatile memory express drive | |
EP3706394A1 (en) | Writes to multiple memory destinations | |
US20220103530A1 (en) | Transport and cryptography offload to a network interface device | |
EP4136532A1 (en) | Storage transactions with predictable latency | |
US11909642B2 (en) | Offload of acknowledgements to a network device | |
US20210326270A1 (en) | Address translation at a target network interface device | |
US20100020818A1 (en) | Sharing buffer space in link aggregation configurations | |
US11379405B2 (en) | Internet small computer interface systems extension for remote direct memory access (RDMA) for distributed hyper-converged storage systems | |
JP2016529575A (en) | Hard disk and data processing method | |
WO2017162175A1 (en) | Data transmission method and device | |
EP4289108A1 (en) | Transport and crysptography offload to a network interface device | |
US20210377150A1 (en) | Memory pooled time sensitive networking based architectures | |
WO2023003603A1 (en) | Cache allocation system | |
WO2016119469A1 (en) | Service context management method, physical main machine, pcie device and migration management device | |
WO2018113622A1 (en) | Virtual machine-based method and device for sending and receiving data packet | |
KR101720360B1 (en) | Copy circumvention in a virtual network environment | |
US11003618B1 (en) | Out-of-band interconnect control and isolation | |
US20230153174A1 (en) | Device selection for workload execution | |
WO2015062390A1 (en) | Virtual machine migration method, device and system | |
WO2022141322A1 (en) | System on chip and related method | |
US11979459B1 (en) | Configuration of data connections between a host and a shared network adapter |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14819286 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 14819286 Country of ref document: EP Kind code of ref document: A1 |