Multipath transmission method, apparatus, device, medium and program product

By generating multiple sub-queue pairs (sQPs) and transmitting the first message with preset information in each sQP, the problems of low data transmission reliability and low bandwidth utilization in RDMA are solved, achieving high efficiency and accuracy in multi-path transmission.

CN119052163BActive Publication Date: 2026-01-02CHINA MOBILE COMM LTD RES INST +1
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411038305.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-07-31
Publication Date
2026-01-02
Estimated Expiration
2044-07-31

AI Technical Summary

Technical Problem

In existing RDMA technology, because the source and destination port numbers of the User Datagram Protocol (UDP) connected to the same queue pair (QP) are the same, it leads to reliability issues and low bandwidth utilization during data transmission, making it impossible to fully utilize multiple equivalent paths and affecting data transmission performance.

Method used

By generating multiple sub-queue pairs (sQP) based on the main queue pair (QP), and carrying preset information, such as the RETH extended header, in the first message of each sQP transmission, multi-path transmission is performed using multiple physical paths. Combined with RTT measurement and merging mechanisms, the accuracy and uniform distribution of data packets are ensured.

Benefits of technology

It improves the reliability and bandwidth utilization of data transmission, enhances the efficiency and effectiveness of data transmission, and ensures the accuracy and uniformity of data packets in multipath transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119052163B_ABST
    Figure CN119052163B_ABST
Patent Text Reader

Abstract

The application provides a multi-path transmission method, device, equipment, medium and program product, and relates to the technical field of data transmission, to solve the problem of poor data transmission effect in related technologies. The method comprises the following steps: generating a plurality of sub-queue pairs sQPs corresponding to a main queue pair QP based on the QP; and performing multi-path transmission on target data based on the plurality of sQPs, wherein the first message transmitted by each sQP carries preset information. The application can improve the effect of data transmission.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of data transmission, and in particular to a multi-path transmission method, device, equipment, medium and program product. BACKGROUND

[0002] The rapid development of the digital industry in the related art promotes the explosive increase of data volume, and the uneven distribution of computing resources causes the transmission demand between data production and consumption to be more and more, and each cloud computing manufacturer proposes its own solution for long-distance transmission of large files. Remote Direct Memory Access (RDMA) uses technologies such as memory zero-copy, kernel bypass, Central Processing Unit (CPU) offloading, etc., to offload the Transmission Control Protocol (TCP) / Internet Protocol (IP) protocol stack to the network card processing, allowing user-mode applications to directly read and write remote host memory, avoiding data copying and context switching, and achieving high throughput, low latency and low CPU computing power consumption performance.

[0003] However, since the standard RDMA has the same User Datagram Protocol (UDP) source and destination port number for a Queue Pair (QP) connection, only one physical network path can be selected for transmission by one connection. On the one hand, this can cause reliability problems, that is, a single physical network path is prone to link failures, such as random packet loss, congestion packet loss, link single-pass, line disconnection, etc. caused by physical failure or configuration error, and the wide area network is complex and heterogeneous, and the reliability problem is more serious. On the other hand, it can cause bandwidth utilization problems, that is, there are multiple equivalent paths in the wide area network, and a Hash algorithm is generally used for load balancing, and a single flow can only be hashed to one physical path, which cannot fully utilize the effective link bandwidth. If the user uses a multi-flow (multi-QP) method for transmission, due to the limitations of the Hash algorithm (such as Equal Cost Multi-Path (ECMP)), Hash polarization is prone to occur, causing the traffic of multiple flows to be unevenly distributed among multiple links, and thus causing poor data transmission effect. SUMMARY

[0004] The embodiments of the present application provide a multi-path transmission method, device, equipment, medium and program product to solve the problem of poor data transmission effect in the related art.

[0005] To solve the above technical problems, the present application is implemented as follows:

[0006] In a first aspect, the embodiments of the present application provide a multi-path transmission method, applied to a source end, comprising:

[0007] generating a plurality of sub-queue pairs sQPs corresponding to the main QP based on the main queue pair QP;

[0008] performing multi-path transmission on target data based on the plurality of sQPs, wherein a first packet transmitted by each sQP carries preset information.

[0009] Optionally, the generating a plurality of sub-queue pairs sQPs corresponding to the main QP based on the main queue pair QP comprises:

[0010] determining a plurality of equivalent paths between the source end and the destination end of the main QP as the plurality of sQPs corresponding to the main QP.

[0011] Optionally, the generating a plurality of sub-queue pairs sQPs corresponding to the main QP based on the main queue pair QP comprises:

[0012] generating N sQPs based on the source end and the destination end of the main QP, N being an integer greater than 0;

[0013] performing round-trip time RTT measurement based on the N sQPs to obtain RTT measurement values corresponding to the N sQPs respectively, and returning to the step of generating N sQPs based on the source end and the destination end of the main QP until a preset condition is met;

[0014] The preset condition comprises at least one of the following:

[0015] the number of sQPs is greater than or equal to a first preset threshold;

[0016] the difference between the RTT measurement values corresponding to a first sQP and a second sQP is less than a second preset threshold, the first sQP and the second sQP being any two sQPs in the N sQPs.

[0017] Optionally, the method further comprises:

[0018] in the case where the difference between the RTT measurement values corresponding to the first sQP and the second sQP is less than the second preset threshold, merging the first sQP and the second sQP.

[0019] Optionally, the preset information is an RETH extended packet header, and the RETH extended packet header carries at least one of the following:

[0020] a virtual address of the destination end; a registration key; a direct memory access DMA length.

[0021] Optionally, the method further comprises:

[0022] determine the UDP port number of the sQP based on the packet sequence number of the packet transmitted by each sQP.

[0023] In a second aspect, the embodiments of the present application provide a multi-path transmission method, applied to a destination, comprising:

[0024] receiving a packet transmitted by an sQP;

[0025] writing the packet into a host memory;

[0026] determining out-of-order record bitmap information based on the packet sequence number of the packet, the out-of-order record bitmap information being used to indicate whether the packet is out of order.

[0027] In a third aspect, the embodiments of the present application provide a multi-path transmission device, applied to a source, comprising:

[0028] a generating module, configured to generate a plurality of sQPs corresponding to the main QP based on the main QP and the QP;

[0029] a transmission module, configured to perform multi-path transmission on target data based on the plurality of sQPs, wherein a first packet transmitted by each sQP carries preset information.

[0030] Optionally, the generating module comprises:

[0031] a determining unit, configured to determine a plurality of equivalent paths between the source and the destination of the main QP as the plurality of sQPs corresponding to the main QP.

[0032] Optionally, the generating module comprises:

[0033] a generating unit, configured to generate N sQPs based on the source and the destination of the main QP, N being an integer greater than 0;

[0034] a measuring unit, configured to perform round-trip time (RTT) measurement based on the N sQPs to obtain RTT measurement values corresponding to the N sQPs respectively, and return to the step of generating N sQPs based on the source and the destination of the main QP until a preset condition is met.

[0035] The preset condition comprises at least one of the following:

[0036] the number of sQPs is greater than or equal to a first preset threshold;

[0037] the difference between the RTT measurement values corresponding to a first sQP and a second sQP is less than a second preset threshold, the first sQP and the second sQP being any two sQPs in the N sQPs.

[0038] Optionally, the generating module further comprises:

[0039] The merging unit is configured to merge the first sQP and the second sQP in a case where a difference between RTT detection values corresponding to the first sQP and the second sQP is less than the second preset threshold.

[0040] Optionally, the preset information is an RETH extension packet header, and the RETH extension packet header carries at least one of the following:

[0041] a virtual address of the destination end, a registration key, and a direct memory access (DMA) length.

[0042] Optionally, the apparatus further includes:

[0043] The second determining module is configured to determine a UDP port number of the sQP based on a data packet sequence number of a packet transmitted by each sQP.

[0044] In a fourth aspect, an embodiment of the present application provides a multi-path transmission apparatus applied to a destination end and including:

[0045] The receiving module is configured to receive a packet transmitted by an sQP.

[0046] The writing module is configured to write the packet into a host memory.

[0047] The first determining module is configured to determine out-of-order record bitmap information based on a data packet sequence number of the packet, the out-of-order record bitmap information being used to indicate whether the packet is out of order.

[0048] In a fifth aspect, an embodiment of the present application provides an electronic device including a transceiver and a processor,

[0049] The processor is configured to generate a plurality of sQPs corresponding to a main QP based on the main QP and a QP.

[0050] The transceiver is configured to perform multi-path transmission on target data based on the plurality of sQPs, wherein a first packet transmitted by each sQP carries preset information.

[0051] Optionally, the processor is specifically configured to:

[0052] determine a plurality of equivalent paths between a source end and a destination end of the main QP as the plurality of sQPs corresponding to the main QP.

[0053] Optionally, the processor is specifically configured to:

[0054] generate N sQPs based on the source end and the destination end of the main QP, N being an integer greater than 0.

[0055] performing the step of generating N sQPs based on the master QP at the source end and the destination end, until a preset condition is met, based on the N sQPs to perform a round trip time (RTT) measurement, obtaining an RTT measurement value corresponding to each of the N sQPs, and returning to the step of generating N sQPs based on the master QP at the source end and the destination end until the preset condition is met.

[0056] The preset condition includes at least one of the following:

[0057] The number of sQPs is greater than or equal to a first preset threshold.

[0058] A difference between RTT measurement values corresponding to a first sQP and a second sQP is less than a second preset threshold, and the first sQP and the second sQP are any two sQPs in the N sQPs.

[0059] Optionally, the processor is further configured to:

[0060] In a case where the difference between the RTT measurement values corresponding to the first sQP and the second sQP is less than the second preset threshold, the first sQP and the second sQP are merged.

[0061] Optionally, the preset information is a RETH extension packet header, and the RETH extension packet header carries at least one of the following:

[0062] A virtual address of the destination end, a registration key, and a direct memory access (DMA) length.

[0063] Optionally, the processor is further configured to:

[0064] Determine a UDP port number of the sQP based on a data packet sequence number of a packet transmitted by each sQP.

[0065] In a sixth aspect, an embodiment of the present application provides an electronic device, including a transceiver and a processor,

[0066] The transceiver is configured to receive a packet transmitted by an sQP.

[0067] The processor is configured to:

[0068] Write the packet into a host memory.

[0069] Determine out-of-order record bitmap information based on a data packet sequence number of the packet, and the out-of-order record bitmap information is used to indicate whether the packet is out of order.

[0070] In a seventh aspect, an electronic device is provided, which includes a processor, a memory, and a program stored in the memory and capable of running on the processor. When the program is executed by the processor, the steps of the multi-path transmission method according to the first aspect are implemented. Alternatively, when the program is executed by the processor, the steps of the multi-path transmission method according to the second aspect are implemented.

[0071] In an eighth aspect, a computer readable storage medium is provided, which stores a computer program. When the computer program is executed by a processor, the steps of the multi-path transmission method according to the first aspect are implemented. Alternatively, when the computer program is executed by a processor, the steps of the multi-path transmission method according to the second aspect are implemented.

[0072] In a ninth aspect, a computer program product is provided, which includes computer instructions. When the computer instructions are executed by a processor, the steps of the multi-path transmission method according to the first aspect are implemented. Alternatively, when the computer instructions are executed by a processor, the steps of the multi-path transmission method according to the second aspect are implemented.

[0073] In the embodiments of the present application, the multi-path transmission method can generate a plurality of sQPs corresponding to the main QP based on the main QP and the QP, and perform multi-path transmission on the target data based on the plurality of sQPs. The first packet transmitted by each sQP carries preset information, so that the target data can be transmitted by using a plurality of physical paths, the reliability of data transmission is improved, the available bandwidth of the plurality of equivalent paths can be fully utilized, the efficiency of data transmission is improved, and the effect of data transmission is improved. BRIEF DESCRIPTION OF DRAWINGS

[0074] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the drawings needed in the description of the embodiments of the present application will be briefly introduced. Obviously, the drawings in the following description are only some embodiments of the present application, and other drawings can be obtained by those skilled in the art without creative labor.

[0075] Figure 1 is one of the flowcharts of the multi-path transmission method provided by the embodiments of the present application;

[0076] Figure 2 is one of the schematic diagrams of generating sQPs provided by the embodiments of the present application;

[0077] Figure 3 is another schematic diagram of generating sQPs provided by the embodiments of the present application;

[0078] Figure 4 is a schematic diagram of a RoCE packet format provided by an embodiment of the present application;

[0079] Figure 5 is a schematic diagram of an IB header provided by an embodiment of the present application;

[0080] Figure 6 is a schematic diagram of a RETH packet format provided by an embodiment of the present application;

[0081] Figure 7 is a schematic diagram of an RDMA read-write data packet provided by an embodiment of the present application;

[0082] Figure 8 is a schematic diagram of a data packet sequence number provided by an embodiment of the present application;

[0083] Figure 9 is a flowchart of a multi-path transmission method provided by an embodiment of the present application;

[0084] Figure 10 is a schematic diagram of a multi-path transmission device provided by an embodiment of the present application;

[0085] Figure 11 is a schematic diagram of a multi-path transmission device provided by an embodiment of the present application;

[0086] Figure 12 is a schematic diagram of an electronic device provided by an embodiment of the present application;

[0087] Figure 13 is a schematic diagram of an electronic device provided by an embodiment of the present application. DETAILED DESCRIPTION

[0088] The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only some of the embodiments of the present application, but not all of the embodiments of the present application. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative work fall within the scope of protection of the present application.

[0089] For the convenience of understanding, some contents related to the embodiments of the present application are described as follows:

[0090] The rapid development of the digital industry has led to an explosive increase in data volume. The uneven distribution of computing resources has resulted in an increasing demand for data transmission between production and consumption. For example, East-to-West computing, nationwide computing network, data express, and distributed intelligent wide-area interconnection services. Currently, for long-distance transmission of large files, offline manual hard disk express solutions are mostly used, which have risks such as data leakage and loss, and cannot meet market demand in terms of data security and transmission efficiency.

[0091] Each cloud computing vendor has proposed its own solution for long-distance transmission of large files. For example, Amazon's AWS DataSync is used to quickly and securely transfer large amounts of data between local storage and AWS storage. Microsoft's Azure DataBox provides a secure and reliable way to transfer large amounts of data from local to Azure data centers. Huawei's CloudWAN 3.0 solution supports ultra-wide interconnection and efficient data transmission through an IPv6+ innovative technology system. Alibaba Cloud uses intelligent routing technology and transmission layer acceleration technology to further improve data transmission speed and stability. Each cloud computing vendor provides solutions for efficient transmission of large-scale data over a wide area network through global data center layout and optimized transmission protocols. However, for the transmission of tens of terabytes of data, online transmission solutions cannot meet the timeliness requirements and still require offline transmission. For distributed intelligent wide-area interconnection and other large-scale space-time interactive services, further research is needed on wide-area transmission technology for super-large-scale data.

[0092] RDMA uses technologies such as memory zero-copy, kernel bypass, and CPU offloading to fully offload the TCP / IP protocol stack to the network card for processing, allowing user-mode applications to directly read and write remote host memory, avoiding data copying and context switching, and achieving high throughput, low latency, and low CPU computing loss. RDMA has been widely deployed in data centers to support various low-latency high-throughput applications, such as key-value storage, distributed transactions, distributed memory, remote procedure call (RPC), storage systems, graph computing, and machine learning systems. The kernel bypass and direct memory access (DMA) features of RDMA can greatly reduce the CPU overhead of the sender and receiver. By using the "one-sided" operation of RDMA (registering the receive buffer in advance to the receiver's network card), nearly CPU-agnostic mass data transmission can be achieved at the receiver.

[0093] However, since the standard RDMA has the same UDP source and destination port number for a QP connection, only one physical network path can be selected for transmission, which introduces reliability and bandwidth utilization problems, resulting in poor data transmission performance.

[0094] In an embodiment of the present application, a multi-path transmission method, device, equipment, medium and program product are provided to solve the problem of poor data transmission effect in related technologies.

[0095] Referring to Figure 1 , Figure 1 is one of the flowcharts of a multi-path transmission method provided by an embodiment of the present application, applied to a source end, as shown in Figure 1 The method comprises the following steps:

[0096] Step 101: generating a plurality of sub-queue pairs sQPs corresponding to the main QP based on the main queue pair QP.

[0097] Specifically, the above-mentioned main QP can be a virtual channel in the RDMA network facing users for transmitting target data, and the source end and the destination end of the main QP are the sending end and the receiving end of the target data. The creation process of the above-mentioned main QP can be that the user calls the RDMA programming interface (such as Verbs API) on the control node to create the main QP and configure the corresponding initial attributes such as endpoint address.

[0098] The above-mentioned plurality of sQPs are channels for actually transmitting target data, and the plurality of sQPs have the same source end and destination end address as the main QP corresponding thereto. Each sQP can correspond to one physical path or a group of physical paths. For example, the sQP corresponding to a group of physical paths can be a high-bandwidth path logically bundled by link aggregation from a plurality of physical paths.

[0099] It can be understood that the main QP serves as a control interface for processing control information and management tasks, and the sQP serves as a channel for actual data transmission, responsible for actual data read-write operations.

[0100] Step 102: performing multi-path transmission on the target data based on the plurality of sQPs, wherein the first message transmitted by each sQP carries preset information.

[0101] Specifically, the above-mentioned target data can be data to be transmitted to the host memory, and the above-mentioned multi-path transmission of the target data based on the plurality of sQPs can be understood as transmitting the target data through a plurality of parallel data channels, i.e. sQPs. The first message transmitted by the sQP can be the first message in at least one message transmitted by each sQP. The above-mentioned preset information can be a destination address for indicating message transmission.

[0102] In the embodiments of the present application, the multi-path transmission method can generate a plurality of sub-queue pairs sQPs corresponding to the main QP based on the main queue pair QP, and perform multi-path transmission on the target data based on the plurality of sQPs, wherein the first packet transmitted by each sQP carries preset information, so that the target data can be transmitted by using a plurality of physical paths, the reliability of data transmission is improved, the available bandwidth of a plurality of equivalent paths can be fully utilized, the efficiency of data transmission is improved, and the effect of data transmission is improved.

[0103] Optionally, the generating a plurality of sub-queue pairs sQPs corresponding to the main QP based on the main queue pair QP comprises:

[0104] The plurality of equivalent paths between the source end and the destination end of the main QP are determined as the plurality of sQPs corresponding to the main QP.

[0105] Specifically, in the case of a scenario in which a user is familiar with a wide area network infrastructure, that is, the number of equivalent paths between the source end and the destination end of the data can be determined, and the number of equivalent paths does not change over time, the user can configure the number of sQPs at the two ends respectively before creating and initializing the main QP, or configure the number of sQPs at one end, and complete the configuration through TCP / IP protocol or communication management protocol (CM) interaction.

[0106] Exemplarily, Figure 2 is one of the schematic diagrams for generating sQPs provided by the embodiments of the present application, as Figure 2 shown, the user can create the main QP by calling the Verbs API, and determine the plurality of equivalent paths between the source end and the destination end of the main QP as the plurality of sQPs corresponding to the main QP.

[0107] In the embodiments of the present application, the multi-path transmission method can generate a plurality of sub-queue pairs sQPs corresponding to the main QP based on the main queue pair QP, and perform multi-path transmission on the target data based on the plurality of sQPs, wherein the first packet transmitted by each sQP carries preset information, so that the target data can be transmitted by using a plurality of physical paths, the reliability of data transmission is improved, the available bandwidth of a plurality of equivalent paths can be fully utilized, the efficiency of data transmission is improved, and the effect of data transmission is improved.

[0108] Optionally, the generating a plurality of sub-queue pairs sQPs corresponding to the main QP based on the main queue pair QP comprises:

[0109] generating N sQPs based on the source end and the destination end of the main QP, N being an integer greater than 0;

[0110] performing the step of generating N sQPs at the source end and the destination end based on the master QP until a preset condition is met, based on the N sQPs, performing a round-trip time (RTT) measurement, obtaining an RTT measurement value corresponding to each of the N sQPs, and returning to the step of generating N sQPs at the source end and the destination end based on the master QP until the preset condition is met;

[0111] The preset condition includes at least one of the following:

[0112] The number of sQPs is greater than or equal to a first preset threshold value.

[0113] A difference between RTT measurement values corresponding to a first sQP and a second sQP is less than a second preset threshold value, and the first sQP and the second sQP are any two sQPs in the N sQPs.

[0114] Specifically, the above-mentioned generating N sQPs at the source end and the destination end based on the master QP can be that the source end generates N sQP connections by incrementing the UDP source port number, N can be understood as a probe step that can be adjusted, and the value of N can be determined according to historical experience or specific requirements. The above-mentioned round-trip time (RTT) measurement can refer to measuring the time taken for a data packet to be sent from the source end of the sQP, to arrive at the destination end of the sQP, and then return to the source end. The above-mentioned RTT measurement value is the time taken.

[0115] Specifically, the above-mentioned first preset threshold value can be an upper limit value of the physical connection between the source end and the destination end. In the case where the number of sQPs is greater than or equal to the first preset threshold value, the generation of sQPs is ended. The above-mentioned second preset threshold value can be used to determine whether the first sQP and the second sQP are the same physical path, that is, in the case where the difference between the RTT measurement values corresponding to the first sQP and the second sQP is less than the second preset threshold value, it can be determined that the first sQP and the second sQP are the same physical path. The above-mentioned second preset threshold value can be determined according to historical experience or specific requirements. For example, in the case where the difference between each physical path can be determined according to the network topology, the second preset threshold value can be set to be relatively small, and in the case where the difference between each physical path is large, the second preset threshold value can be set to be relatively large.

[0116] It can be understood that, in the case where the difference between the RTT measurement values corresponding to the first sQP and the second sQP is less than the second preset threshold value, it indicates that new physical paths cannot be detected, and the generation of sQPs can be stopped.

[0117] In the embodiment, the multi-path transmission method can generate N sQPs based on the source end and the destination end of the master QP, perform round trip time (RTT) measurement based on the N sQPs, obtain RTT measurement values corresponding to the N sQPs respectively, and return to the step of generating N sQPs based on the source end and the destination end of the master QP until a preset condition is met. In this way, the sQPs can be determined by step-by-step detection in a case where user and network infrastructure topology and other physical information are decoupled, and the effective link bandwidth can be fully utilized, so that the efficiency of data transmission can be further improved.

[0118] Optionally, the method further includes:

[0119] In a case where a difference between the RTT detection values corresponding to the first sQP and the second sQP is less than the second preset threshold, the first sQP and the second sQP are merged.

[0120] Specifically, in a case where a difference between the RTT measurement values corresponding to the first sQP and the second sQP is less than the second preset threshold, the first sQP and the second sQP can be determined as the same physical path.

[0121] For example, Figure 3 is a second schematic diagram for generating an sQP provided by an embodiment of the application, as Figure 3 shown, the source end can generate N sQP connections by incrementing the UDP source port number, and perform active RTT measurement based on the generated sQP connections. A threshold T (configurable) of RTT difference is set, and the difference values of the RTT measurement results of any two sQPs are compared. If there are two sQP connections with a difference value less than T, the two sQP connections are merged to stop iteration. If the difference values of the RTT measurement results of any two sQPs are all greater than T, N new sQPs are added, and a new round of iteration detection and comparison and merging are performed. The principle is the same as that of the previous round. If the physical connection upper limit is still not reached, the next round of iteration is continued until two sQP connections with a difference value less than T appear.

[0122] In the embodiment, the multi-path transmission method can merge the first sQP and the second sQP in a case where a difference between the RTT detection values corresponding to the first sQP and the second sQP is less than the second preset threshold, so that the accuracy of determining multiple physical paths can be improved, and the uniformity of distributing traffic among multiple physical paths can be improved, thereby further improving the effect of data transmission.

[0123] Optionally, the preset information is an RETH extended packet header, and the RETH extended packet header carries at least one of the following:

[0124] A virtual address of a destination end; a registration key; a direct memory access (DMA) length.

[0125] Specifically, the RETH extension header can be an RDMA extended transport header, the virtual address of the destination end can be a destination memory address, used to indicate a specific location in a receiving host memory, i.e., a location where data should be written or read, the registration key can be used to verify whether a remote node has the right to perform an RDMA operation, and the DMA length can be a length of data to be read or written.

[0126] An exemplary RDMA read / write data packet is shown in FIG. 8. Figure 4 An exemplary RoCE packet format is shown in FIG. 1. Figure 4 As shown in FIG. 1, a RoCEv2 (RDMA over Converged Ethernet version 2) packet sequentially includes an Ethernet header, an IP header, a UDP header, and an InfiniBand (IB) header, etc. Figure 5 An exemplary IB header is shown in FIG. 2. Figure 5 As shown in FIG. 2, an extended transport header (ETH) in the IB includes an RETH extension header. Figure 6 An exemplary RETH packet format is shown in FIG. 3. Figure 6 As shown in FIG. 3, the RETH extension header can carry information such as a virtual address (Virtual Address), a registration key (R_Key), a direct memory access (DMA) length, etc. 、 R_Key), a registration key (R_Key Figure 7 An exemplary RDMA read / write data packet is shown in FIG. 8. Figure 7 As shown in FIG. 8, the RETH extension header can be carried in an RDMA read request data packet and an RDMA write request data packet. Standard RDMA read (Read) and write (Write) operations only carry the RETH extension header in the header of the first packet. If out-of-order packets arrive first, a memory address will not be clear, etc.

[0127] In the embodiment, the multi-path transmission method can carry an RETH extended packet header in the first packet of each sQP, and the RETH extended packet header carries at least one of the following: a virtual address of the destination end; a registration key; and a direct memory access (DMA) length, so that packets arriving in different physical paths in disorder can be directly and correctly written into the host memory, thereby improving the accuracy of data transmission.

[0128] Optionally, the method further comprises:

[0129] Determining the UDP port number of the sQP based on the packet sequence number of the packet transmitted by each sQP.

[0130] Specifically, the UDP port number can include a source port number and a destination port number, and the determination of the UDP port number of the sQP based on the packet sequence number of the packet transmitted by each sQP can be selecting a value corresponding to a preset position of the packet sequence number (PSN) as the UDP port number of the sQP, and the preset position can be determined according to actual needs.

[0131] It can be understood that a larger number of bits of the PSN can be selected as the UDP port number of the sQP to realize packet-by-packet loading, that is, each packet corresponds to an sQP.

[0132] For example, Figure 8 is a schematic diagram of a packet sequence number provided by an embodiment of the application, as Figure 8 For example, the middle three bits of the PSN can be selected as the UDP port number of the sQP. Since the middle three bits of the first three PSNs are the same, that is, 000, it indicates that the three packets corresponding to the first three PSNs will be transmitted in sequence through the same sQP, that is, the sQP with the UDP port number 000. The middle three bits of the fourth to seventh PSNs are the same, that is, 001, it indicates that the four packets corresponding to the fourth to seventh PSNs will be transmitted in sequence through the same sQP, that is, the sQP with the UDP port number 001. The middle three bits of the eighth to eleventh PSNs are the same, that is, 010, it indicates that the four packets corresponding to the eighth to eleventh PSNs will be transmitted in sequence through the same sQP, that is, the sQP with the UDP port number 010. In addition, the middle five bits of the PSN can be selected as the UDP port number of the sQP to realize packet-by-packet loading.

[0133] It should be noted that in the case of transmitting multiple data packets in the same sQP, the multiple data packets can be transmitted in sequence according to the PSN of the multiple data packets, so that in the case where a specific data packet is not received at the receiving end, the receiving end can more easily determine whether the data packet is lost or the data packet arrival time difference caused by different transmission paths, for example, as shown in Figure 8 , the data packet corresponding to the second PSN in Figure 8 has arrived at the receiving end, while the data packet corresponding to the first PSN has not arrived at the receiving end, it can be determined that the data packet corresponding to the first PSN is lost, and the processing pressure of the receiving end can be reduced.

[0134] In this embodiment, the above multi-path transmission method can determine the UDP port number of the sQP based on the data packet sequence number of the message transmitted by each sQP, the target data can be segmented and dispersed to multiple sQPs for transmission to improve the data transmission efficiency, and the degree of disorder introduced by the multi-path transmission can be controlled, so that the efficiency of data transmission can be further improved.

[0135] Referring to Figure 9 , Figure 9 is a flowchart of a multi-path transmission method provided by an embodiment of the present application, which is applied to a destination, as shown in Figure 9 , the method comprises the following steps:

[0136] Step 901, receiving a message transmitted by an sQP.

[0137] Step 902, writing the message into a host memory.

[0138] Step 903, determining disordered record bitmap information according to the data packet sequence number of the message, the disordered record bitmap information being used to indicate whether the message is disordered.

[0139] Specifically, the destination can directly write the received message into the host memory by using the RDMA direct memory access feature. The above disordered record bitmap information can be used to record whether the message is disordered by using 1 bit, for example, the message is disordered, which can be recorded as 1, and vice versa, 0. Whether the above message is disordered can be understood as whether the message whose data packet sequence number is sorted before the message has arrived at the destination.

[0140] It should be noted that in the case where the disordered record bitmap information indicates that there is no disorder in all messages in the host memory, it indicates that the messages in the host memory can be delivered to the upper layer application in order.

[0141] In the embodiments of the present application, the multi-path transmission method can be used to receive a message transmitted by sQP, write the message into a host memory, and determine disordered record bitmap information according to a data packet sequence number of the message. The disordered record bitmap information is used to indicate whether the message is disordered, so that the disordered message can be directly stored in the host memory, and the disordered record bitmap information is used to realize ordered delivery to an upper layer application, thereby reducing the use of on-card cache resources of an RDMA card and improving the efficiency of data transmission.

[0142] Referring to Figure 10 , Figure 10 is one of the structural diagrams of a multi-path transmission device provided by the embodiments of the present application, and is applied to a source end, such as Figure 10 As shown in the figure, the multi-path transmission device 1000 comprises:

[0143] A generating module 1001 is configured to generate a plurality of sub-queue pairs sQP corresponding to the main QP based on the main queue pair QP.

[0144] A transmission module 1002 is configured to perform multi-path transmission on target data based on the plurality of sQPs, wherein a first message transmitted by each sQP carries preset information.

[0145] Optionally, the generating module 1001 comprises:

[0146] A determining unit is configured to determine a plurality of equivalent paths between the source end and the destination end of the main QP as the plurality of sQPs corresponding to the main QP.

[0147] Optionally, the generating module 1001 comprises:

[0148] A generating unit is configured to generate N sQPs based on the source end and the destination end of the main QP, wherein N is an integer greater than 0.

[0149] A measuring unit is configured to perform round-trip time RTT measurement based on the N sQPs to obtain RTT measurement values corresponding to the N sQPs respectively, and return to perform the step of generating N sQPs based on the source end and the destination end of the main QP until a preset condition is met.

[0150] The preset condition comprises at least one of the following:

[0151] The number of sQPs is greater than or equal to a first preset threshold value;

[0152] The difference between the RTT measurement values corresponding to a first sQP and a second sQP is less than a second preset threshold value, and the first sQP and the second sQP are any two sQPs in the N sQPs.

[0153] Optionally, the generating module 1001 further comprises:

[0154] The merging unit is configured to merge the first sQP and the second sQP in a case where a difference between RTT detection values corresponding to the first sQP and the second sQP is less than the second preset threshold.

[0155] Optionally, the preset information is an RETH extension packet header, and the RETH extension packet header carries at least one of the following:

[0156] a virtual address of the destination end, a registration key, and a direct memory access (DMA) length.

[0157] Optionally, the apparatus further includes:

[0158] The second determining module is configured to determine the UDP port number of the sQP based on a data packet sequence number of the packet transmitted by each sQP.

[0159] It should be noted that the multi-path transmission apparatus provided by the embodiments of the present application is an apparatus capable of executing the multi-path transmission method, and all implementation manners in the multi-path transmission method embodiments are applicable to the apparatus and can achieve the same or similar beneficial effects. To avoid repetition, the embodiments will not be described again.

[0160] Referring to Figure 11 , Figure 11 is a structure diagram of a multi-path transmission apparatus provided by an embodiment of the present application, which is applied to a destination end, as shown in Figure 11 The multi-path transmission apparatus 1100 includes:

[0161] The receiving module 1101 is configured to receive a packet transmitted by an sQP.

[0162] The writing module 1102 is configured to write the packet into a host memory.

[0163] The first determining module 1103 is configured to determine out-of-order record bitmap information according to a data packet sequence number of the packet, and the out-of-order record bitmap information is used to indicate whether the packet is out of order.

[0164] It should be noted that the multi-path transmission apparatus provided by the embodiments of the present application is an apparatus capable of executing the multi-path transmission method, and all implementation manners in the multi-path transmission method embodiments are applicable to the apparatus and can achieve the same or similar beneficial effects. To avoid repetition, the embodiments will not be described again.

[0165] Specifically, referring to Figure 12 The present application also provides an electronic device, which includes a bus 1201, a transceiver 1202, an antenna 1203, a bus interface 1204, a processor 1205, and a memory 1206.

[0166] Processor 1205 is used to generate multiple sub-queue pairs sQP corresponding to the main queue pair QP based on the main queue pair QP.

[0167] Furthermore, the transceiver 1202 is used to perform multipath transmission of target data based on the plurality of sQPs, wherein the first message transmitted by each sQP carries preset information.

[0168] exist Figure 12 In this document, a bus architecture (represented by bus 1201) is used. Bus 1201 may include any number of interconnected buses and bridges, linking various circuits including one or more processors represented by processor 1205 and memory represented by memory 1206. Bus 1201 may also link various other circuits such as peripheral devices, voltage regulators, and power management circuits, which are well known in the art and therefore will not be described further herein. Bus interface 1204 provides an interface between bus 1201 and transceiver 1202. Transceiver 1202 may be a single element or multiple elements, such as multiple receivers and transmitters, providing a unit for communicating with various other devices over a transmission medium. Data processed by processor 1205 is transmitted over a wireless medium via antenna 1203, which further receives data and transmits it to processor 1205.

[0169] Processor 1205 is responsible for managing bus 1201 and general processing, and can also provide various functions, including timing, peripheral interface, voltage regulation, power management, and other control functions. Memory 1206 can be used to store data used by processor 1205 during operation.

[0170] Optionally, the processor 1205 may be a central processing unit (CPU), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or a complex programmable logic device (CPLD).

[0171] Optionally, the processor 1205 is specifically used for:

[0172] Multiple equivalent paths between the source and destination ends of the main QP are determined as multiple sQPs corresponding to the main QP.

[0173] Optionally, the processor 1205 is specifically used for:

[0174] generating N sQPs based on the master QP at the source end and the destination end, N being an integer greater than 0;

[0175] performing round trip time (RTT) measurement based on the N sQPs to obtain RTT measurement values corresponding to the N sQPs respectively, and returning to the step of generating N sQPs based on the master QP at the source end and the destination end until a preset condition is met;

[0176] The preset condition includes at least one of the following:

[0177] The number of sQPs is greater than or equal to a first preset threshold.

[0178] A difference between RTT measurement values corresponding to a first sQP and a second sQP is less than a second preset threshold, the first sQP and the second sQP being any two sQPs in the N sQPs.

[0179] Optionally, the processor 1205 is further configured to:

[0180] In a case where the difference between the RTT measurement values corresponding to the first sQP and the second sQP is less than the second preset threshold, the first sQP and the second sQP are merged.

[0181] Optionally, the preset information is a RETH extension packet header, and the RETH extension packet header carries at least one of the following:

[0182] A virtual address of the destination end; a registration key; and a direct memory access (DMA) length.

[0183] Optionally, the processor 1205 is further configured to:

[0184] Determine a UDP port number of the sQP based on a data packet sequence number of a packet transmitted by each sQP.

[0185] It should be noted that the electronic device provided by the embodiments of the present application is a device capable of executing the above-mentioned multi-path transmission method, and all implementation manners in the embodiments of the multi-path transmission method are applicable to the electronic device and can achieve the same or similar beneficial effects. To avoid repetition, the embodiments will not be described again.

[0186] Specifically, referring to FIG. 13, Figure 13 The embodiments of the present application further provide an electronic device, which includes a bus 1301, a transceiver 1302, an antenna 1303, a bus interface 1304, a processor 1305 and a memory 1306.

[0187] The transceiver 1302 is configured to receive a packet transmitted by an sQP.

[0188] Further, the processor 1305 is configured to:

[0189] write the packet into the host memory;

[0190] determine the out-of-order record bitmap information according to a packet sequence number of the packet, the out-of-order record bitmap information being used for indicating whether the packet is out of order.

[0191] In Figure 13 The bus architecture (represented by the bus 1301) can include any number of interconnecting buses and bridges, the bus 1301 linking together various circuits including the processor 1305 represented by one or more processors and the memory 1306 represented by the memory. The bus 1301 can also link together various other circuits, such as peripheral devices, voltage regulators, and power management circuits, which are well known in the art, and therefore, will not be described further. The bus interface 1304 provides an interface between the bus 1301 and the transceiver 1302. The transceiver 1302 can be a single element or multiple elements, such as a plurality of receivers and transmitters, providing a means for communicating with various other apparatus over a transmission medium. Data processed by the processor 1305 is transmitted over a wireless medium via the antenna 1303, and further, the antenna 1303 receives data and delivers the data to the processor 1305.

[0192] The processor 1305 is responsible for managing the bus 1301 and general processing, and can also provide various functions including timing, peripheral interfaces, voltage regulation, power management, and other control functions. The memory 1306 can be used for storing data used by the processor 1305 in executing operations.

[0193] Optionally, the processor 1305 can be a central processing unit (CPU), an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or a complex programmable logic device (CPLD).

[0194] It should be noted that the electronic device provided by the embodiments of the present application is an apparatus capable of executing the above-mentioned multi-path transmission method, and all implementation manners in the multi-path transmission method embodiments are applicable to the electronic device and can achieve the same or similar beneficial effects. To avoid repetition, the embodiments will not be described further.

[0195] The embodiment of the present application further provides an electronic device, comprising a processor, a memory, and a program stored in the memory and executable on the processor, when the program is executed by the processor, each process of the multi-path transmission method or the multi-path transmission method embodiment is implemented, and the same technical effects can be achieved. To avoid repetition, details are not repeated here.

[0196] The embodiment of the present application further provides a computer readable storage medium, a computer program is stored in the computer readable storage medium, when the computer program is executed by the processor, each process of the multi-path transmission method or the multi-path transmission method embodiment is implemented, and the same technical effects can be achieved. To avoid repetition, details are not repeated here. The computer readable storage medium is, for example, a read-only memory (Read-Only Memory, ROM), a random access memory (Random Access Memory, RAM), a magnetic disk or an optical disk.

[0197] The embodiment of the present application further provides a computer program product, comprising computer instructions, when the computer instructions are executed by the processor, each process of the multi-path transmission method or the multi-path transmission method embodiment is implemented, and the same technical effects can be achieved. To avoid repetition, details are not repeated here.

[0198] It should be noted that in this paper, the term "includes", "contains" or any other variant thereof is intended to cover non-exclusive inclusion, so that the process, method, article or device including a series of elements not only includes those elements, but also includes other elements not explicitly listed or inherent to such process, method, article or device. Without more limitations, the element defined by the statement "includes a" does not exclude the presence of another identical element in the process, method, article or device including the element.

[0199] From the above description of the embodiments, those skilled in the art can clearly understand that the above embodiment method can be realized by software plus a general hardware platform, of course, it can also be realized by hardware, but in many cases the former is a better embodiment. Based on this understanding, the technical solutions of the present application can be embodied in the form of a software product, which is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) and includes a plurality of instructions for making a terminal (which can be a mobile phone, computer, server, air conditioner, or network device, etc.) execute the method described in each embodiment of the present application.

[0200] The embodiments of the present application are described above with reference to the accompanying drawings, but the present application is not limited to the specific embodiments described above, and the specific embodiments described above are merely illustrative, but not restrictive, and a person of ordinary skill in the art can make many forms under the inspiration of the present application without departing from the purpose of the present application and the scope protected by the claims.

Claims

1. A multipath transmission method, characterized in that, Applied to the source end, including: Based on the main queue pair QP, generate multiple sub-queue pairs sQP corresponding to the main QP; The target data is transmitted via multiple paths based on the multiple sQPs, wherein the first message transmitted by each sQP carries preset information, which is the RETH extended message header; The process of generating multiple sub-queue pairs sQP corresponding to the main queue pair QP based on the main queue pair QP includes: N sQPs are generated based on the source and destination ends of the main QP, where N is an integer greater than 0; Based on the N sQPs, the round-trip time (RTT) is measured to obtain the RTT measurement values ​​corresponding to the N sQPs respectively. Then, the step of generating N sQPs based on the source and destination of the main QP is returned to be executed until the preset conditions are met. The source generates N sQP connections by incrementing the UDP source port number and performs active RTT measurement based on the generated sQP connections. A threshold T for RTT difference is set, and the difference between the RTT measurement results of any two sQPs is compared. If two sQP connections have a difference less than T, these two sQP connections are merged and the iteration stops. If the difference between the RTT measurement results of any two sQPs is greater than T, N new sQPs are added and a new round of iteration, detection, comparison, and merging is performed, following the same principle as the previous round. If the physical connection limit is still not reached, the next round of iteration continues until two sQP connections with a difference less than T are found.

2. The method according to claim 1, characterized in that, The RETH extended header carries at least one of the following: The virtual address of the destination; the registration key; the direct memory access (DMA) length.

3. The method according to claim 1, characterized in that, The method further includes: The UDP port number of sQP is determined based on the packet sequence number of each message transmitted by sQP.

4. A multipath transmission device, characterized in that, Applied to the source end, including: The generation module is used to generate multiple sub-queue pairs sQP corresponding to the main queue pair QP based on the main queue pair QP; The transmission module is used to perform multi-path transmission of target data based on the multiple sQPs, wherein the first message transmitted by each sQP carries preset information, which is a RETH extended message header; The generation module includes: The generation unit is used to generate N sQPs based on the source and destination ends of the main QP, where N is an integer greater than 0; The measurement unit is used to perform round-trip time (RTT) measurement based on the N sQPs, obtain the RTT measurement values ​​corresponding to the N sQPs respectively, and return to execute the step of generating N sQPs based on the source and destination ends of the main QP until the preset conditions are met. The source generates N sQP connections by incrementing the UDP source port number and performs active RTT measurement based on the generated sQP connections. A threshold T for RTT difference is set, and the difference between the RTT measurement results of any two sQPs is compared. If two sQP connections have a difference less than T, these two sQP connections are merged and the iteration stops. If the difference between the RTT measurement results of any two sQPs is greater than T, N new sQPs are added and a new round of iteration, detection, comparison, and merging is performed, following the same principle as the previous round. If the physical connection limit is still not reached, the next round of iteration continues until two sQP connections with a difference less than T are found.

5. An electronic device, characterized in that, Including transceivers and processors, The processor is configured to generate multiple sub-queue pairs sQP corresponding to the main queue pair QP based on the main queue pair QP; The transceiver is used to perform multipath transmission of target data based on the plurality of sQPs, wherein the first message transmitted by each sQP carries preset information, the preset information being a RETH extended message header; The processor is specifically used for: N sQPs are generated based on the source and destination ends of the main QP, where N is an integer greater than 0; Based on the N sQPs, the round-trip time (RTT) is measured to obtain the RTT measurement values ​​corresponding to the N sQPs respectively. Then, the step of generating N sQPs based on the source and destination of the main QP is returned to be executed until the preset conditions are met. The source generates N sQP connections by incrementing the UDP source port number and performs active RTT measurement based on the generated sQP connections. A threshold T for RTT difference is set, and the difference between the RTT measurement results of any two sQPs is compared. If two sQP connections have a difference less than T, these two sQP connections are merged and the iteration stops. If the difference between the RTT measurement results of any two sQPs is greater than T, N new sQPs are added and a new round of iteration, detection, comparison, and merging is performed, following the same principle as the previous round. If the physical connection limit is still not reached, the next round of iteration continues until two sQP connections with a difference less than T are found.

6. An electronic device, characterized in that, include: A processor, a memory, and a program stored in the memory and executable on the processor, wherein the program, when executed by the processor, implements the steps of the multipath transmission method as described in any one of claims 1 to 3.

7. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the steps of the multipath transmission method as described in any one of claims 1 to 3.

8. A computer program product, characterized in that, It includes computer instructions that, when executed by a processor, implement the steps of the multipath transmission method as described in any one of claims 1 to 3.

Citation Information

Patent Citations

  • Message transmission method and device

    CN109691039A

  • Multi-path data transmission method and device for lossy network based on RDMA

    CN113904976A