[go: up one dir, main page]

CN113904976A - Method and device for multi-path data transmission based on RDMA for lossy network - Google Patents

Method and device for multi-path data transmission based on RDMA for lossy network Download PDF

Info

Publication number
CN113904976A
CN113904976A CN202111144199.1A CN202111144199A CN113904976A CN 113904976 A CN113904976 A CN 113904976A CN 202111144199 A CN202111144199 A CN 202111144199A CN 113904976 A CN113904976 A CN 113904976A
Authority
CN
China
Prior art keywords
data
data transmission
transmitted
paths
sending
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111144199.1A
Other languages
Chinese (zh)
Inventor
张同光
高雪霞
郜伟雪
田乔梅
张涛
朱怡豪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xinxiang University
Original Assignee
Xinxiang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xinxiang University filed Critical Xinxiang University
Priority to CN202111144199.1A priority Critical patent/CN113904976A/en
Publication of CN113904976A publication Critical patent/CN113904976A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The invention relates to the technical field of data transmission, in particular to a multipath data transmission method and a multipath data transmission device for a lossy network based on RDMA (remote direct memory Access). The method comprises the following steps: at least two available data transmission paths of a data transmission terminal are transmitted; acquiring at least two available data receiving paths sent by corresponding data receiving terminals; determining a plurality of data transmission paths for transmitting data based on the available data transmission path and the available data reception path; and sending the data to be transmitted to the corresponding data receiving terminal through a plurality of data transmission paths. The data sending and receiving terminals solve the inherent problem of data packet disorder during multipath data transmission through the multipath read-write memory management module respectively, and reliable and efficient transmission of RoCE flow in a lossy network without using a PFC technology is realized. Therefore, data transmission is carried out through a plurality of currently available data transmission paths, and the data transmission speed can be increased to at least a certain extent.

Description

Multi-path data transmission method and device for lossy network based on RDMA
Technical Field
The invention relates to the technical field of data transmission, in particular to a multipath data transmission method and a multipath data transmission device for a lossy network based on RDMA (remote direct memory Access).
Background
Remote Direct Memory Access (RDMA) technology has the characteristics of low latency, high throughput, and low CPU occupancy. RDMA enables direct transfer of data between applications at two endpoints over a network without excessive intervention by the operating system kernel and the TCP/IP network protocol stack. Three major properties of RDMA are as follows: CPU offload, kernel bypass, zero copy.
In the prior art, when data transmission is performed based on the RDMA technology, data transmission is often performed by using only one path, and when the data volume is too large, the data transmission speed of the path is limited, and the data transmission time is long.
Disclosure of Invention
The embodiment of the invention provides a multi-path data transmission method, a multi-path data transmission device, electronic equipment and a storage medium for a lossy network based on RDMA (remote direct memory Access), which are used for solving the problems that in the existing scheme, when data transmission is carried out based on the RDMA technology, only one path is often used for transmitting one data packet, and when the data packet data volume is too large, the data transmission speed of the path is limited, and the data transmission time is longer.
In a first aspect, an embodiment of the present invention provides a multipath data transmission method for a lossy network based on RDMA, including:
transmitting an available data transmission path of the data transmission terminal; the available data transmission paths at least comprise two data transmission paths;
acquiring an available data receiving path sent by a corresponding data receiving terminal; wherein, the available data receiving paths at least comprise two data receiving paths;
determining a plurality of data transmission paths for transmitting data based on the available data transmission path and the available data reception path;
sending the data to be transmitted to corresponding data receiving terminals through the plurality of data transmission paths; and the data receiving terminal receives the data to be transmitted based on a preset memory management mode.
Preferably, the sending the data to be transmitted to the corresponding data receiving terminal through the plurality of data transmission paths includes:
sending data size information to the data receiving terminal;
segmenting the data to be transmitted to obtain a plurality of data segments to be transmitted; the plurality of data paragraphs to be transmitted comprise a plurality of data paragraphs with preset sizes and an end data paragraph; the terminal data paragraph is terminal data of the data to be transmitted and the size of the terminal data paragraph is not larger than a preset size;
setting a request identifier for each data paragraph to be transmitted; the request identification is used for indicating the information of the transmission data section;
and sending each data section to be transmitted and the corresponding request identifier to a corresponding data receiving terminal through each data transmission path, so that the data receiving terminal synthesizes the data to be transmitted based on the data size information, the request identifier and the data section to be transmitted.
Preferably, the sending, through each data transmission path, each to-be-transmitted data segment and the corresponding request identifier to the corresponding data receiving terminal includes:
determining a data transmission queue of each data transmission path based on the data section to be transmitted and each data transmission path; the data transmission queue comprises transmission requests of each transmission data section;
transmitting a data paragraph to be transmitted and a corresponding request identifier through each data transmission path based on a corresponding data transmission queue;
the multi-path data transmission method for the lossy network based on RDMA further comprises the following steps:
and when one data transmission path finishes the transmission request in the corresponding data transmission queue, re-determining the data transmission queue of each data transmission path.
Preferably, the transmitting, through each of the data transmission paths, the to-be-transmitted data segment and the corresponding request identifier based on the corresponding data transmission queue includes:
based on the data transmission queue, sending a data paragraph to be transmitted and a corresponding request identifier to the data receiving terminal;
after the data paragraph to be transmitted and the corresponding request mark are determined to be sent, a check request is sent to the data receiving terminal; the check request is used for indicating the data receiving terminal to check whether the data paragraph to be transmitted and the transmission corresponding to the request identifier lose packet or not and sending a check result to the data sending terminal;
and receiving the verification result, finishing the transmission of the data paragraph to be transmitted and the corresponding request identifier when the verification result is that no packet is lost, and re-transmitting the data paragraph to be transmitted and the corresponding request identifier when the verification result is that the packet is lost.
In a second aspect, an embodiment of the present invention provides a multipath data transmission method for a lossy network based on RDMA, which is applied to a data receiving terminal, and the method includes:
sending an available data receiving path of the data receiving terminal; wherein, the available data receiving paths at least comprise two data receiving paths;
acquiring an available data receiving and sending path sent by a corresponding data sending terminal; the available data transmission paths at least comprise two data transmission paths;
determining a plurality of data transmission paths for transmitting data based on the available data transmission path and the available data reception path;
and receiving the data to be transmitted through the plurality of data transmission paths based on a preset memory management mode.
Preferably, the receiving, through the plurality of data transmission paths, data to be transmitted based on a preset memory management manner includes:
acquiring data size information sent by the data sending terminal;
based on the data size information, creating a continuous virtual memory with a preset size as a unit;
acquiring a data paragraph to be transmitted and a corresponding request identifier sent by the data sending terminal based on each data transmission path, and storing the data paragraph to be transmitted in a corresponding virtual memory based on the request identifier;
writing the data in the virtual memory into the physical memory;
the data paragraph to be transmitted is obtained by dividing the data to be transmitted by the data sending terminal; the plurality of data paragraphs to be transmitted comprise a plurality of data paragraphs with preset sizes and an end data paragraph; the end data paragraph is end data of the data to be transmitted and has a size not larger than a preset size.
Preferably, the method further comprises the following steps:
acquiring a checking request sent by the data sending terminal; the data sending terminal sends the check request after sending the data paragraph to be transmitted and the corresponding request mark once;
based on the check request, checking whether the data paragraph to be transmitted and the corresponding request identifier lose packet in the sending process to obtain a checking result;
and sending a check result to the data sending terminal to indicate the data sending terminal, and if the data is lost, resending the data paragraph to be transmitted and the corresponding request identifier.
In a third aspect, an embodiment of the present invention provides a multipath data transmission apparatus for a lossy network based on RDMA, which is applied to a data sending terminal, and includes:
a first sending module, configured to send an available data sending path of the data sending terminal; the available data transmission paths at least comprise two data transmission paths;
the first acquisition module is used for acquiring an available data receiving path sent by a corresponding data receiving terminal; wherein, the available data receiving paths at least comprise two data receiving paths;
a first determining module, configured to determine a plurality of data transmission paths for transmitting data based on the available data transmission path and the available data reception path;
and the second sending module is used for sending the data to be transmitted to the corresponding data receiving terminal through the plurality of data transmission paths.
In a fourth aspect, an embodiment of the present invention provides a multipath data transmission apparatus for a lossy network based on RDMA, which is applied to a data receiving terminal, and includes:
a third sending module, configured to send an available data receiving path of the data receiving terminal; wherein, the available data receiving paths at least comprise two data receiving paths;
the second acquisition module is used for acquiring an available data receiving and sending path sent by the corresponding data sending terminal; the available data transmission paths at least comprise two data transmission paths;
a second determining module, configured to determine a plurality of data transmission paths for transmitting data based on the available data transmission path and the available data reception path;
and the receiving module is used for receiving the data to be transmitted through the plurality of data transmission paths based on a preset memory management mode.
In a fifth aspect, an embodiment of the present invention provides an electronic device, which includes a memory, a processor, and a computer program stored in the memory and executable on the processor, where the processor executes the computer program to implement the steps of the RDMA-based multipath data transmission method for a lossy network according to the present invention.
According to the multipath data transmission method for the lossy network based on RDMA provided by the embodiment of the invention, when data transmission is carried out, data transmission is not carried out through only one path, but the available data transmission path and the available data receiving path of the data transmission terminal and the data receiving terminal are preferentially determined, and then a plurality of currently available data transmission paths are determined for data transmission, so that the data transmission speed can be increased to at least a certain degree.
Further, the data receiving terminal receives the data to be transmitted based on a preset memory management mode. Namely, the data sending terminal segments the data to be transmitted to obtain a plurality of data segments to be transmitted; the plurality of data paragraphs to be transmitted comprise a plurality of data paragraphs with preset sizes and an end data paragraph; the terminal data paragraph is terminal data of the data to be transmitted and the size of the terminal data paragraph is not larger than a preset size; setting a request identifier for each data paragraph to be transmitted; the request identification is used for indicating the information of the transmission data section; and sending each data section to be transmitted and the corresponding request identifier to a corresponding data receiving terminal through each data transmission path, so that the data receiving terminal synthesizes the data to be transmitted based on the data size information, the request identifier and the data section to be transmitted. The data receiving terminal acquires the data size information sent by the data sending terminal; based on the data size information, creating a continuous virtual memory with a preset size as a unit; acquiring a data paragraph to be transmitted and a corresponding request identifier sent by the data sending terminal based on each data transmission path, and storing the data paragraph to be transmitted in a corresponding virtual memory based on the request identifier; writing the data in the virtual memory into the physical memory; the data sending and receiving terminals solve the inherent problem of data packet disorder during multipath data transmission through a multipath memory management mode respectively, and reliable and efficient transmission of RoCE flow in a lossy network without using a PFC technology is realized.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below, and it is obvious that the drawings in the following description are some embodiments of the present invention, and those skilled in the art can also obtain other drawings according to the drawings without creative efforts.
Fig. 1 is a flowchart illustrating a multi-path data transmission method for a lossy network based on RDMA according to an embodiment of the present invention;
fig. 2 is a flowchart illustrating a multi-path data transmission method for a lossy network based on RDMA according to another embodiment of the present invention;
fig. 3 is a flowchart illustrating a multi-path data transmission method for a lossy network based on RDMA according to another embodiment of the present invention;
fig. 4 is a flowchart illustrating a multi-path data transmission method for a lossy network based on RDMA according to another embodiment of the present invention;
fig. 5 is a flowchart illustrating a multi-path data transmission method for a lossy network based on RDMA according to another embodiment of the present invention;
fig. 6 is a flowchart illustrating a multi-path data transmission method for a lossy network based on RDMA according to another embodiment of the present invention;
fig. 7 is a schematic diagram of a multipath data transmission method for a lossy network based on RDMA according to an embodiment of the present invention;
fig. 8 is a partial flowchart of a method for multipath data transmission for a lossy network based on RDMA according to an embodiment of the present invention;
fig. 9 is a schematic structural diagram of a multipath data transmission apparatus for a lossy network based on RDMA according to an embodiment of the present invention;
FIG. 10 is a schematic structural diagram of a multi-path data transmission apparatus for a lossy network based on RDMA according to another embodiment of the present invention
Fig. 11 is a schematic structural diagram of an electronic device according to an embodiment of the present invention.
Detailed Description
In order to make the objects, technical solutions and advantages of the embodiments of the present invention clearer, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are some, but not all, embodiments of the present invention. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
In the traditional TCP/IP network communication process, a sender copies data from a user space to a kernel space, a kernel TCP/IP protocol stack encapsulates the data layer by layer, and then the data is sent to a cache in a network card for network transmission. And the receiver performs the reverse processing after receiving the data packet. For a gigabit/one hundred giga ethernet, the processing of packet, unpacking, checking, etc. of a data packet occupies a lot of CPU capacity, which is a relatively time-consuming I/O operation and involves many times of memory copy, interrupt processing, process context switching, etc., resulting in that the CPU cannot use its powerful computing power for the business logic processing of a user. This situation is unacceptable in high performance computing centers (HPCs), data centers, distributed systems, and other large data transfer application scenarios. Remote Direct Memory Access (RDMA) technology, which has the characteristics of low latency, high throughput, and low CPU utilization, can solve these problems. RDMA enables direct transfer of data between applications at two endpoints over a network without excessive intervention by the operating system kernel and the TCP/IP network protocol stack. Three major properties of RDMA: CPU offload, kernel bypass, zero copy.
RDMA allows local applications to read and write directly to remote memory. RDMA supports both unilateral and bilateral communication. Unilateral RDMA operations directly access remote memory without involving the remote CPU. Bilateral RDMA operations notify remote nodes of a delivered message. RDMA supports Reliable Connections (RC), Unreliable Connections (UC), and Unreliable Datagrams (UD). RDMA uses various types of queues to enable communication. RC communication is established by building a Pair of Queue Pairs (QPs) between two nodes. When data transmission is performed based on the RDMA technology, data transmission is often performed by using only one path, and when the amount of data is too large, the data transmission speed of the path is limited, and the data transmission time is long. To address this problem, an embodiment of the present invention provides a multipath data transmission method for a lossy network based on RDMA. Fig. 1 is a flowchart illustrating a multipath data transmission method for a lossy network based on RDMA according to an embodiment of the present invention, where the embodiment takes an execution flow of a data sending terminal as an example.
As shown in fig. 1, the method includes:
step 110, sending an available data sending path of the data sending terminal; the available data transmission paths at least comprise two data transmission paths;
in some embodiments, when data is transmitted, one data transmitting end often has multiple data transmitting paths, and in general, a part of the data transmitting paths are occupied. In practical application, after the data sending terminal is in communication connection with the data sending terminal, a QP is created based on an IP address; and sends a QP list (i.e., an available data transmission path) to the data reception terminal;
step 120, acquiring an available data receiving path sent by a corresponding data receiving terminal; wherein, the available data receiving paths at least comprise two data receiving paths;
similarly, the data receiving terminal establishes a QP based on the IP address after performing communication connection with the data sending terminal; and sends a QP list (i.e., an available data reception path) to the data transmission terminal;
step 130, determining a plurality of data transmission paths for transmitting data based on the available data transmission path and the available data receiving path;
when the data sending terminal receives the QP list sent by the data receiving terminal, the data transmission path can be constructed based on the preset rule by combining the QP list of the data sending terminal with the QP list of the data receiving terminal. When the data receiving terminal receives the QP list sent by the data sending terminal, the data transmission path can be constructed based on the preset rule by combining the QP list of the data receiving terminal with the QP list of the data sending terminal. When both of them complete the construction of the data transmission path, the data transmission can be performed.
And step 140, sending the data to be transmitted to the corresponding data receiving terminals through the plurality of data transmission paths.
The data receiving terminal receives the data to be transmitted based on a preset memory management mode.
In the scheme provided by the embodiment of the invention, the data to be transmitted can be sent to the corresponding data receiving terminal through the plurality of data transmission paths. Compared with the prior art in which data is transmitted through one data transmission path, in the scheme provided by the embodiment of the invention, when data transmission is performed, available data transmission paths and available data receiving paths of a data transmission terminal and a data receiving terminal are preferentially determined, and then, a plurality of currently available data transmission paths are determined for data transmission.
Further, as shown in fig. 2, step 140, sending the data to be transmitted to the corresponding data receiving terminal through the plurality of data transmission paths, includes:
step 141, sending data size information to the data receiving terminal;
142, segmenting the data to be transmitted to obtain a plurality of data segments to be transmitted; the plurality of data paragraphs to be transmitted comprise a plurality of data paragraphs with preset sizes and an end data paragraph; the terminal data paragraph is terminal data of the data to be transmitted and the size of the terminal data paragraph is not larger than a preset size;
step 143, setting a request identifier for each to-be-transmitted data paragraph; the request identification is used for indicating the information of the transmission data section;
step 144, sending each to-be-transmitted data segment and the corresponding request identifier to a corresponding data receiving terminal through each data transmission path, so that the data receiving terminal synthesizes the to-be-transmitted data based on the data size information, the request identifier and the to-be-transmitted data segment.
In the above description of step 140, a specific scheme for performing data transmission based on multiple data transmission paths is provided, that is: and segmenting the data to be transmitted to obtain a plurality of data segments to be transmitted.
In practical application, the method for dividing the data to be transmitted and the related steps are as follows:
first, a virtual memory in which data to be transmitted is located is segmented in units of 1GB-8MB (here, default values len-1 KB-8B-1016B are used) (in actual splitting, the size of the last data segment may not satisfy the size of 1GB-8MB), and transmission of each segment is performed through a multi-data transmission path. Each segment is subdivided by 220Each size len-1 KB-8B-1016B (default values are used here in order to avoid IP fragmentation). Each segment corresponds to one WQE (RDMA write request), there is one SGA (Scatter/Gather Abstract) in each WQE, addr in the SGA represents a start address of the segment, size is 011 represents 1KB-8B (default len ═ 1KB-8B ═ 1016B is used here), num represents the number of data shares (number of packets) contained in the segment, and key is read-write permission. The smart card can handle multiple WQEs (multipaths) in QP1 and QP2 simultaneously, loop 2 according to the content of each WQE20Second (and possibly less than 2 if the last segment20) And writing the data of 1GB-8MB (if the data is the last segment, the data can be less than 1GB-8MB) of the local end into the memory of the remote end.
Further, as shown in fig. 3, in step 144, sending each to-be-transmitted data segment and the corresponding request identifier to the corresponding data receiving terminal through each data transmission path, includes:
step 1441, determining a data transmission queue of each data transmission path based on the data segment to be transmitted and each data transmission path; the data transmission queue comprises transmission requests of each transmission data section;
step 1442, through each data transmission path, based on the corresponding data transmission queue, performing transmission of the data paragraph to be transmitted and the corresponding request identifier;
step 1443, when there is a data transmission path to complete the transmission request in the corresponding data transmission queue, re-determining the data transmission queue of each data transmission path.
It should be noted that, in the embodiment of the present invention, a part of key points lie in the establishment of a data transmission queue, where the data transmission queue may split a transmission task of data to be transmitted into a plurality of subtasks (i.e., transmission tasks of data segments to be transmitted), and then control a plurality of data transmission paths to execute the subtasks one by one, so as to finally complete the transmission task of data transmission. In order to ensure the overall transmission efficiency, each data transmission queue may be divided in an approximately equal manner, so that the data amount required to be transmitted by each data transmission path is approximately equal. Further, in the process of practical application, the transmission efficiency of each data transmission path is not necessarily the same, so that one data transmission path may have completed a data transmission task, but other data transmission paths have a plurality of data transmission tasks (i.e., to-be-transmitted data paragraphs) that are not transmitted, at this time, the data transmission queue may be re-planned, and the data transmission tasks that are not transmitted may be re-divided, so that all data transmission paths are in a data transmission state, and the overall transmission process of to-be-transmitted data is accelerated.
Further, in the process of data transmission, there may be a case of packet loss, so as to avoid that the whole data to be transmitted cannot be used due to the case of packet loss. In the solution provided in the embodiment of the present invention, the transmitting, through each of the data transmission paths, a data segment to be transmitted and a corresponding request identifier based on a corresponding data transmission queue specifically includes the following steps:
based on the data transmission queue, sending a data paragraph to be transmitted and a corresponding request identifier to the data receiving terminal;
after the data paragraph to be transmitted and the corresponding request mark are determined to be sent, a check request is sent to the data receiving terminal; the check request is used for indicating the data receiving terminal to check whether the data paragraph to be transmitted and the transmission corresponding to the request identifier lose packet or not and sending a check result to the data sending terminal;
and receiving the verification result, finishing the transmission of the data paragraph to be transmitted and the corresponding request identifier when the verification result is that no packet is lost, and re-transmitting the data paragraph to be transmitted and the corresponding request identifier when the verification result is that the packet is lost.
By the arrangement, the data transmission error caused by packet loss in the data transmission process can be avoided.
Fig. 4 is a flowchart illustrating a multipath data transmission method for a lossy network based on RDMA according to an embodiment of the present invention, where the embodiment takes an execution flow of a data sending terminal as an example. As shown in fig. 4, the method is applied to a data receiving terminal, and includes:
step 410, sending an available data receiving path of the data receiving terminal; wherein, the available data receiving paths at least comprise two data receiving paths;
step 420, acquiring an available data receiving and sending path sent by a corresponding data sending terminal; the available data transmission paths at least comprise two data transmission paths;
step 430, determining a plurality of data transmission paths for transmitting data based on the available data transmission path and the available data receiving path;
step 440, receiving the data to be transmitted through the plurality of data transmission paths based on a preset memory management manner.
In the scheme provided by the embodiment of the invention, the data to be transmitted can be sent to the corresponding data receiving terminal by the plurality of data transmission paths. Compared with the prior art in which data is transmitted through one data transmission path, in the scheme provided by the embodiment of the invention, when data transmission is performed, available data transmission paths and available data receiving paths of a data transmission terminal and a data receiving terminal are preferentially determined, and then, a plurality of currently available data transmission paths are determined for data transmission.
Specifically, as shown in fig. 5, step 440 receives data to be transmitted through the multiple data transmission paths based on a preset memory management manner, where the method includes:
step 441, obtaining data size information sent by the data sending terminal;
step 442, creating a continuous virtual memory with a preset size as a unit based on the data size information;
step 443, acquiring a data paragraph to be transmitted and a corresponding request identifier sent by the data sending terminal based on each data transmission path, and storing the data paragraph to be transmitted in a corresponding virtual memory based on the request identifier;
step 444, writing the data in the virtual memory into the memory;
the data paragraph to be transmitted is obtained by dividing the data to be transmitted; the plurality of data paragraphs to be transmitted comprise a plurality of data paragraphs with preset sizes and an end data paragraph; the end data paragraph is end data of the data to be transmitted and has a size not larger than a preset size.
It should be noted that the virtual memory is established, so that each segment of data to be transmitted is directly written into the virtual memory, and thus, as long as the segment of data to be transmitted is filled into the corresponding virtual memory according to the dividing sequence, complete data to be transmitted can be formed in the virtual memory.
In practical applications, the transmission of data based on the difference of the execution bodies includes: reading and writing: for the two cases, the virtual memory is set and the related steps are as follows: if the node A writes data to the node B, the node A informs the node B of the data amount through the control plane. The node B allocates continuous virtual memory with 1GB as a unit, and the maximum value is 50GB (for example, a 100GB smart network card is considered here, and may be adjusted according to the size of the actual memory). And the node A writes data to the node B through the data plane, and informs the node B through the control plane after writing a 1GB-8MB data block or lost packet each time. The node B uses the red-black tree to sort 1024 data units in the 1GB virtual memory block according to the PSN (when a data packet is inserted into the red-black tree, the value of the U field of the data packet is changed from 0 to 1, and the value of the FE field is 01, which indicates that the last data packet in the current 1G data segment is processed), if no packet is lost, the node A is informed through a control plane that the data block of 1GB-8MB is successfully received, otherwise, the node A is informed of the PSN with the packet loss through the control plane to retransmit. When the node A receives a 1GB-8MB data block receiving success notice from the node B, the node A carries out subsequent processing on the corresponding WR;
if the node A reads data from the node B, the node B informs the node A of the data volume and the starting address of the data in the virtual memory through the control plane. The node a allocates continuous virtual memory with 1GB as a unit, and the maximum value is 50GB (for example, a 100GB smart network card is considered here, and may be adjusted according to the size of the actual memory). And the node A reads data from the node B through the data plane, and performs subsequent processing after reading one data block of 1GB-8MB or lost packet each time. The node a uses the red-black tree to sort 1024 data units in the 1GB virtual memory block according to the PSN (when a data packet is inserted into the red-black tree, the value of its U field is changed from 0 to 1, and the value of the FE field is 01, which indicates that the last data packet in the current 1G data segment is processed), and if there is no packet loss, the subsequent processing is performed. And when the node A receives a 1GB-8MB data block receiving success notice from the node B, the corresponding WR is processed subsequently.
By the arrangement, the data sending and receiving terminals solve the inherent problem of data packet disorder during multipath data transmission through a multipath memory management mode respectively, and reliable and efficient transmission of RoCE flow in a lossy network without using a PFC technology is realized.
Specifically, the RDMA-based multipath data transmission method for a lossy network according to the embodiment of the present invention is applied to a data receiving terminal, and further includes:
acquiring a checking request sent by the data sending terminal; the data sending terminal sends the check request after sending the data paragraph to be transmitted and the corresponding request mark once;
based on the check request, checking whether the data paragraph to be transmitted and the corresponding request identifier lose packet in the sending process to obtain a checking result;
and sending a check result to the data sending terminal to indicate the data sending terminal, and if the data is lost, resending the data paragraph to be transmitted and the corresponding request identifier.
In summary, the invention has the following three innovative technical advantages:
(1) the multipath establishing method comprises the following steps: the nodes of the two communication parties establish the multipath between the local terminal and the remote terminal through the control surface, and the local terminal and the remote terminal respectively establish QPs according to the GIDs which are associated with the local terminal and can access the IP addresses. The two-party nodes send respective QP lists to each other, and then establish a QP set (QPS) and related queues and data structures according to the QP lists sent by each other for supporting the multi-path transmission of data.
(2) The multi-path data read-write method comprises the following steps: the local end application program and the remote end application program firstly segment the used virtual memory by a fixed size (1GB or 1GB-8MB), and respectively transmit each data segment to be transmitted through each data transmission path. Each segment is subdivided by 220Each size is len-1 KB-8B-1016B (in order to avoid IP fragmentation). Each segment corresponds to one WQE (RDMA read or write request), each WQE is provided with an SGA (scatter gather digest), addr in the SGA represents the starting address of the segment, the size is 011 and represents 1KB or 1KB-8B, num represents the number of data copies (pack number) contained in the segment, and key represents read-write permission. The smart card can handle multiple WQEs (multipaths) in QP1 and QP2 simultaneously, loop 2 according to the content of each WQE20Second (and possibly less than 2 if the last segment20) Completing the reading and writing of data;
(3) the multi-path read-write memory management method comprises the following steps: the nodes of the two communication parties inform the total data volume needing to be transferred through the control plane. The receiving party allocates continuous virtual memory with 1GB as a unit, and the maximum value is 50GB (for example, a 100GB smart network card is considered here, and may be adjusted according to the size of the actual memory). The sender writes data to the receiver through the data surface, and informs the receiver through the control surface after finishing writing a 1GB-8MB data block or lost packet each time. The receiving side uses the red-black tree to sort 1024 data units in the 1GB virtual memory block according to the PSN (when a data packet is inserted into the red-black tree, the value of the U field of the data packet is changed from 0 to 1, and the value of the FE field is 01, which indicates that the last data packet in the current 1G data segment is processed), if no packet is lost, the control plane informs the sending side that the data block of 1GB-8MB is successfully received, otherwise, informs the control plane of the PSN with the packet loss to the sending side for retransmission. And the sender receives a successful receiving notice of one 1GB-8MB data block from the receiver, processes the corresponding WR, and then reads and writes the next 1GB-8MB data block through the data plane. The multi-path read-write memory management method solves the inherent problem of data packet disorder during multi-path data transmission, and realizes reliable and efficient transmission of RoCE flow in a lossy network without using a PFC technology.
Fig. 6 is a flowchart illustrating a multi-path data transmission method for a lossy network based on RDMA according to another embodiment of the present invention; fig. 7 is a schematic diagram of a multipath data transmission method for a lossy network based on RDMA according to an embodiment of the present invention; referring to fig. 6 and 7, a method for multi-path data transmission for a lossy network based on RDMA according to an embodiment of the present invention includes:
step 601, establishing a plurality of data transmission paths;
specifically, the nodes of the two communicating parties establish a multi-path between the local end and the remote end through a control plane, and the local end and the remote end respectively create a QP according to the GID which is associated with the remote end and can access the IP address (the GID is a Global ID, and the GID is required to be used for establishing the QP in the RoCE network). The two-party nodes send respective QP lists (QP1 is before and QP2 is after) to each other, and then establish a QP set (QPS) and related queues and data structures according to the QP lists sent by each other, so as to prepare for the multipath transmission of data.
Step 602, sending basic information of data to be transmitted;
specifically, sending the basic information of the data to be transmitted can provide a reference for creating the virtual memory. In preparation for further data transmission.
Step 603, segmenting the data to be transmitted to obtain a plurality of data segments to be transmitted;
step 604, creating a continuous virtual memory with a preset size as a unit based on the data size information;
step 605, sending the data to be transmitted to the corresponding data receiving terminal through the plurality of data transmission paths.
For brevity and without loss of completeness, the description is provided hereTake two paths as an example. Referring to fig. 7, an application program of a data receiving terminal first allocates a virtual memory according to an amount of data to be read, and then segments the virtual memory in units of 1GB, with odd-numbered segments being written by a path associated with QP1, and even-numbered segments being written by a path associated with QP 2. Each segment is subdivided by 220Shares, each size of 1KB (in order to avoid IP fragmentation). Each segment corresponds to one WQE (RDMA read request), each WQE has an SGA (Scatter/Gather Abstract), addr in the SGA indicates the start address of the segment, size is 011 and 1KB (default value is used here), num indicates the number of data shares (number of packets) contained in the segment, and key indicates read and write permissions. The local intelligent network card can simultaneously process a plurality of WQEs (multiple paths) in QP1 and QP2, and according to each RDMA read request, a loop program in the remote intelligent network card loops 2 according to information (addr, size, num and key) sent by the opposite party20Second (and possibly less than 2 if the last segment20) Converting the virtual address into a physical address, and sending the data of 1GB-8MB (if the last segment is, the data may be less than 1GB-8MB) to the local intelligent network card; one circulation program circulation 2 in the local terminal intelligent network card20Second (and possibly less than 2 if the last segment20) The virtual address is converted into a physical address, and the received 1GB (or less than 1GB if the last segment) of data is written into the memory.
Further, when the data transmission paths are multiple, the allocation of the path transmission is already inapplicable by means of odd-numbered segments and even-numbered segments, and at this time, the division of each data transmission path can be performed by a preset rule.
Referring to fig. 8, the transmission of a specific data segment to be transmitted in one data transmission path is taken as an example for explanation:
step 801, a data sending terminal sends a data paragraph to be transmitted according to a data transmission queue;
in the embodiment of the present invention, only one data transmission path is used for illustration, and one data transmission path first needs to transmit data segments to be transmitted one by one according to a preset data transmission queue.
Step 802, whether packet loss occurs or not;
the data receiving terminal carries out packet loss detection, a red-black tree is used for sorting the data units in the virtual memory block according to PSN, if no packet loss exists, the data units are indicated to successfully complete the transmission of a data section to be transmitted, and then the data receiving terminal carries out subsequent processing of receiving the data section to be transmitted; if the packet loss is detected through the red and black tree, the lost packet is re-read according to the PSN, i.e. step 803 is executed.
Step 803, resend the data segment to be transmitted;
step 804, whether the corresponding data transmission queue is completely transmitted or not is judged;
after the transmission of one segment of data to be transmitted is completed, it is determined whether the transmission of the corresponding data transmission queue is completed, and if not, step 801 is executed to send the next segment of data to be transmitted in the data transmission queue. If it is, step 805 is performed.
Step 805, whether all other data transmission queues complete transmission;
after the current data transmission channel completes the task in its own data transmission queue, if there are other channels that do not complete data transmission, the channel can assist other channels to transmit data, so as to accelerate the data transmission rate. Namely: and judging whether the other data transmission queues are all completed, if so, finishing the data transmission, and if not, executing step 806.
Step 806, reformulating the data transmission queue;
the scheme provided by the embodiment of the invention is explained by one data transmission path through the above embodiment.
Referring to fig. 9, an embodiment of the present invention provides a multipath data transmission apparatus for a lossy network based on RDMA, which is applied to a data transmission terminal, and includes:
a first sending module 91, configured to send an available data sending path of the data sending terminal; the available data transmission paths at least comprise two data transmission paths;
a first obtaining module 92, configured to obtain an available data receiving path sent by a corresponding data receiving terminal; wherein, the available data receiving paths at least comprise two data receiving paths;
a first determining module 93, configured to determine a plurality of data transmission paths for transmitting data based on the available data sending path and the available data receiving path;
the second sending module 94 is configured to send the data to be transmitted to the corresponding data receiving terminal through the multiple data transmission paths.
Optionally, the sending the data to be transmitted to the corresponding data receiving terminal through the multiple data transmission paths includes:
sending data size information to the data receiving terminal;
segmenting the data to be transmitted to obtain a plurality of data segments to be transmitted; the plurality of data paragraphs to be transmitted comprise a plurality of data paragraphs with preset sizes and an end data paragraph; the terminal data paragraph is terminal data of the data to be transmitted and the size of the terminal data paragraph is not larger than a preset size;
setting a request identifier for each data paragraph to be transmitted; the request identification is used for indicating the information of the transmission data section;
and sending each data section to be transmitted and the corresponding request identifier to a corresponding data receiving terminal through each data transmission path, so that the data receiving terminal synthesizes the data to be transmitted based on the data size information, the request identifier and the data section to be transmitted.
Optionally, the sending, through each data transmission path, each to-be-transmitted data segment and the corresponding request identifier to the corresponding data receiving terminal includes:
determining a data transmission queue of each data transmission path based on the data section to be transmitted and each data transmission path; the data transmission queue comprises transmission requests of each transmission data section;
transmitting a data paragraph to be transmitted and a corresponding request identifier through each data transmission path based on a corresponding data transmission queue;
and when one data transmission path finishes the transmission request in the corresponding data transmission queue, re-determining the data transmission queue of each data transmission path.
Optionally, the transmitting, through each of the data transmission paths, the to-be-transmitted data paragraph and the corresponding request identifier based on the corresponding data transmission queue includes:
based on the data transmission queue, sending a data paragraph to be transmitted and a corresponding request identifier to the data receiving terminal;
after the data paragraph to be transmitted and the corresponding request mark are determined to be sent, a check request is sent to the data receiving terminal; the check request is used for indicating the data receiving terminal to check whether the data paragraph to be transmitted and the transmission corresponding to the request identifier lose packet or not and sending a check result to the data sending terminal;
and receiving the verification result, finishing the transmission of the data paragraph to be transmitted and the corresponding request identifier when the verification result is that no packet is lost, and re-transmitting the data paragraph to be transmitted and the corresponding request identifier when the verification result is that the packet is lost.
Referring to fig. 10, an embodiment of the present invention provides an RDMA-based multipath data transmission apparatus for a lossy network, where the apparatus is applied to a data receiving terminal, and the apparatus includes:
a third sending module 95, configured to send an available data receiving path of the data receiving terminal; wherein, the available data receiving paths at least comprise two data receiving paths;
a second obtaining module 96, configured to obtain an available data receiving and sending path sent by a corresponding data sending terminal; the available data transmission paths at least comprise two data transmission paths;
a second determining module 97, configured to determine a plurality of data transmission paths for transmitting data based on the available data sending path and the available data receiving path;
the receiving module 98 is configured to receive data to be transmitted through the multiple data transmission paths based on a preset memory management manner.
Optionally, the receiving, through the multiple data transmission paths and based on a preset memory management manner, data to be transmitted includes:
acquiring data size information sent by the data sending terminal;
based on the data size information, creating a continuous virtual memory with a preset size as a unit;
acquiring a data paragraph to be transmitted and a corresponding request identifier sent by the data sending terminal based on each data transmission path, and storing the data paragraph to be transmitted in a corresponding virtual memory based on the request identifier;
writing the data in the virtual memory into the physical memory;
the data paragraph to be transmitted is obtained by dividing the data to be transmitted by the data sending terminal; the plurality of data paragraphs to be transmitted comprise a plurality of data paragraphs with preset sizes and an end data paragraph; the end data paragraph is end data of the data to be transmitted and has a size not larger than a preset size.
Optionally, the method further includes: acquiring a checking request sent by the data sending terminal; the data sending terminal sends the check request after sending the data paragraph to be transmitted and the corresponding request mark once;
based on the check request, checking whether the data paragraph to be transmitted and the corresponding request identifier lose packet in the sending process to obtain a checking result;
and sending a check result to the data sending terminal to indicate the data sending terminal, and if the data is lost, resending the data paragraph to be transmitted and the corresponding request identifier.
Fig. 11 is a schematic structural diagram of an electronic device according to an embodiment of the present invention, and as shown in fig. 11, the electronic device may include: a processor (processor)1110, a communication Interface (Communications Interface)1120, a memory (memory)1130, and a communication bus 1140, wherein the processor 1110, the communication Interface 1120, and the memory 1130 communicate with each other via the communication bus 1140. Processor 1110 may call logical commands in memory 1130 to perform the following method: transmitting an available data transmission path of the data transmission terminal; the available data transmission paths at least comprise two data transmission paths; acquiring an available data receiving path sent by a corresponding data receiving terminal; wherein, the available data receiving paths at least comprise two data receiving paths; determining a plurality of data transmission paths for transmitting data based on the available data transmission path and the available data reception path; and sending the data to be transmitted to the corresponding data receiving terminal through the plurality of data transmission paths. Or performing the following method: sending an available data receiving path of the data receiving terminal; wherein, the available data receiving paths at least comprise two data receiving paths; acquiring an available data receiving and sending path sent by a corresponding data sending terminal; the available data transmission paths at least comprise two data transmission paths; determining a plurality of data transmission paths for transmitting data based on the available data transmission path and the available data reception path; and receiving the data to be transmitted through the plurality of data transmission paths based on a preset memory management mode.
In addition, the logic commands in the memory 1130 may be implemented in the form of software functional units and may be stored in a computer readable storage medium when sold or used as a stand-alone product. Based on such understanding, the technical solution of the present invention may be embodied in the form of a software product, which is stored in a storage medium and includes a plurality of commands for enabling a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the method according to the embodiments of the present invention. And the aforementioned storage medium includes: a U-disk, a removable hard disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a magnetic disk or an optical disk, and other various media capable of storing program codes.
Embodiments of the present invention further provide a non-transitory computer-readable storage medium, on which a computer program is stored, where the computer program is implemented to perform the method provided in the foregoing embodiments when executed by a processor, and the method includes: transmitting an available data transmission path of the data transmission terminal; the available data transmission paths at least comprise two data transmission paths; acquiring an available data receiving path sent by a corresponding data receiving terminal; wherein, the available data receiving paths at least comprise two data receiving paths; determining a plurality of data transmission paths for transmitting data based on the available data transmission path and the available data reception path; and sending the data to be transmitted to the corresponding data receiving terminal through the plurality of data transmission paths. Or comprises the following steps: sending an available data receiving path of the data receiving terminal; wherein, the available data receiving paths at least comprise two data receiving paths; acquiring an available data receiving and sending path sent by a corresponding data sending terminal; the available data transmission paths at least comprise two data transmission paths; determining a plurality of data transmission paths for transmitting data based on the available data transmission path and the available data reception path; and receiving the data to be transmitted through the plurality of data transmission paths based on a preset memory management mode. .
The above-described embodiments of the apparatus are merely illustrative, and the units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of the present embodiment. One of ordinary skill in the art can understand and implement it without inventive effort.
Through the above description of the embodiments, those skilled in the art will clearly understand that each embodiment can be implemented by software plus a necessary general hardware platform, and certainly can also be implemented by hardware. With this understanding in mind, the above technical solutions may be embodied in the form of a software product, which can be stored in a computer-readable storage medium, such as ROM/RAM, magnetic disk, optical disk, etc., and includes commands for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to execute the method according to the embodiments or some parts of the embodiments.
Finally, it should be noted that: the above examples are only intended to illustrate the technical solution of the present invention, but not to limit it; although the present invention has been described in detail with reference to the foregoing embodiments, it will be understood by those of ordinary skill in the art that: the technical solutions described in the foregoing embodiments may still be modified, or some technical features may be equivalently replaced; and such modifications or substitutions do not depart from the spirit and scope of the corresponding technical solutions of the embodiments of the present invention.

Claims (10)

1.一种基于RDMA用于有损网络的多路径数据传输方法,其特征在于,应用于数据发送终端,所述方法包括:1. a multi-path data transmission method for lossy network based on RDMA, is characterized in that, is applied to data sending terminal, and described method comprises: 发送所述数据发送终端的可用数据发送路径;其中,所述可用数据发送路径,至少包括两条数据发送路径;Send the available data sending paths of the data sending terminal; wherein, the available data sending paths include at least two data sending paths; 获取对应的数据接收终端发送的可用数据接收路径;其中,所述可用数据接收路径,至少包括两条数据接收路径;Obtaining available data receiving paths sent by the corresponding data receiving terminal; wherein, the available data receiving paths include at least two data receiving paths; 基于所述可用数据发送路径和所述可用数据接收路径,确定用于传输数据的多条数据传输路径;determining a plurality of data transmission paths for transmitting data based on the available data transmission paths and the available data reception paths; 通过所述多条数据传输路径,将待传输数据发送至对应的数据接收终端;其中,所述数据接收终端基于预设的内存管理方式接收所述待传输数据。The data to be transmitted is sent to the corresponding data receiving terminal through the multiple data transmission paths; wherein, the data receiving terminal receives the to-be-transmitted data based on a preset memory management method. 2.根据权利要求1所述的基于RDMA用于有损网络的多路径数据传输方法,其特征在于,所述通过所述多条数据传输路径,将待传输数据发送至对应的数据接收终端,包括:2. The RDMA-based multi-path data transmission method for a lossy network according to claim 1, wherein the data to be transmitted is sent to a corresponding data receiving terminal through the multiple data transmission paths, include: 向所述数据接收终端发送数据大小信息;sending data size information to the data receiving terminal; 对所述待传输数据进行分段,得到多个待传输数据段落;所述多个待传输数据段落包括多个预设大小的数据段落和一个末端数据段落;所述末端数据段落为所述待传输数据的末端数据且大小不大于预设大小;The data to be transmitted is segmented to obtain a plurality of data segments to be transmitted; the plurality of data segments to be transmitted include a plurality of data segments with a preset size and an end data segment; the end data segment is the to-be-transmitted data segment. The end data of the transmission data and the size is not larger than the preset size; 对各所述待传输数据段落设置请求标识;所述请求标识用于指示所述传输数据段落的信息;A request identifier is set for each of the data segments to be transmitted; the request identifier is used to indicate the information of the transmission data segment; 通过各所述数据传输路径,将各所述待传输数据段落和对应的所述请求标识发送至对应的数据接收终端,以供所述数据接收终端基于所述数据大小信息、所述请求标识和所述待传输数据段落合成所述待传输数据。Through each of the data transmission paths, each of the data segments to be transmitted and the corresponding request identifier are sent to the corresponding data receiving terminal, so that the data receiving terminal can use the data size information, the request identifier and the The to-be-transmitted data segments are synthesized into the to-be-transmitted data. 3.根据权利要求2所述的基于RDMA用于有损网络的多路径数据传输方法,其特征在于,所述通过各所述数据传输路径,将各所述待传输数据段落和对应的所述请求标识发送至对应的数据接收终端,包括:3. The RDMA-based multi-path data transmission method for a lossy network according to claim 2, wherein, by each of the data transmission paths, each of the to-be-transmitted data segments and the corresponding described The request identifier is sent to the corresponding data receiving terminal, including: 基于所述待传输数据段落和各所述数据传输路径,确定各条数据传输路径的数据传输队列;所述数据传输队列包括各所述传输数据段落的传输请求;Based on the data segment to be transmitted and each of the data transmission paths, a data transmission queue of each data transmission path is determined; the data transmission queue includes a transmission request of each of the transmission data segments; 通过各所述数据传输路径,基于对应的数据传输队列,进行待传输数据段落和对应请求标识的传输;Through each of the data transmission paths, based on the corresponding data transmission queue, the transmission of the data segment to be transmitted and the corresponding request identifier is performed; 所述基于RDMA用于有损网络的多路径数据传输方法,还包括:The RDMA-based multi-path data transmission method for lossy networks further includes: 当存在一个数据传输路径完成对应的数据传输队列中的传输请求时,重新确定各所述数据传输路径的数据传输队列。When there is one data transmission path to complete the transmission request in the corresponding data transmission queue, the data transmission queue of each data transmission path is re-determined. 4.根据权利要求3所述的基于RDMA用于有损网络的多路径数据传输方法,其特征在于,所述通过各所述数据传输路径,基于对应的数据传输队列,进行待传输数据段落和对应请求标识的传输,包括:4. The multi-path data transmission method for lossy network based on RDMA according to claim 3, characterized in that, through each of the data transmission paths, based on the corresponding data transmission queue, data segments to be transmitted and The transmission of the corresponding request identifier, including: 基于所述数据传输队列,向所述数据接收终端发送待传输数据段落和对应请求标识;Based on the data transmission queue, sending the data segment to be transmitted and the corresponding request identifier to the data receiving terminal; 确定所述待传输数据段落和对应请求标识的发送完成后,向所述数据接收终端发送检验请求;所述检验请求用于指示所述数据接收终端进行此次待传输数据段落和对应请求标识的传输是否丢包的校验并向所述数据发送终端发送校验结果;After it is determined that the transmission of the data segment to be transmitted and the corresponding request identifier is completed, a verification request is sent to the data receiving terminal; the verification request is used to instruct the data receiving terminal to perform the data segment to be transmitted this time and the corresponding request identifier. transmitting the check of whether the packet is lost and sending the check result to the data sending terminal; 接收所述校验结果,当所述校验结果为未丢包时,此次待传输数据段落和对应请求标识的传输完成,当所述校验结果为丢包时,重新进行此次待传输数据段落和对应请求标识的传输。Receive the verification result, when the verification result is no packet loss, the transmission of the data segment to be transmitted and the corresponding request identifier is completed, and when the verification result is packet loss, perform the to-be-transmission again Transmission of data segments and corresponding request identifiers. 5.一种基于RDMA用于有损网络的多路径数据传输方法,其特征在于,应用于数据接收终端,所述方法包括:5. A multi-path data transmission method for lossy network based on RDMA, characterized in that, applied to a data receiving terminal, the method comprising: 发送所述数据接收终端的可用数据接收路径;其中,所述可用数据接收路径,至少包括两条数据接收路径;Sending available data receiving paths of the data receiving terminal; wherein, the available data receiving paths include at least two data receiving paths; 获取对应的数据发送终端发送的可用数据接发送路径;其中,所述可用数据发送路径,至少包括两条数据发送路径;Obtain the available data transmission paths sent by the corresponding data transmission terminal; wherein, the available data transmission paths include at least two data transmission paths; 基于所述可用数据发送路径和所述可用数据接收路径,确定用于传输数据的多条数据传输路径;determining a plurality of data transmission paths for transmitting data based on the available data transmission paths and the available data reception paths; 通过所述多条数据传输路径,基于预设的内存管理方式,接收待传输数据。Through the plurality of data transmission paths, the data to be transmitted is received based on a preset memory management method. 6.根据权利要求5所述的基于RDMA用于有损网络的多路径数据传输方法,其特征在于,所述通过所述多条数据传输路径,基于预设的内存管理方式,接收待传输数据,包括:6 . The RDMA-based multi-path data transmission method for lossy networks according to claim 5 , wherein the data to be transmitted is received through the multiple data transmission paths based on a preset memory management mode. 7 . ,include: 获取所述数据发送终端发送的数据大小信息;obtaining data size information sent by the data sending terminal; 基于所述数据大小信息,创建以预设大小为单位的连续的虚拟内存;based on the data size information, creating a continuous virtual memory with a preset size as a unit; 基于各所述数据传输路径,获取所述数据发送终端发送的待传输数据段落和对应的请求标识,并基于所述请求标识将所述待传输数据段落存储在对应的虚拟内存中;Based on each of the data transmission paths, acquiring the data segment to be transmitted and the corresponding request identifier sent by the data sending terminal, and storing the data segment to be transmitted in the corresponding virtual memory based on the request identifier; 将虚拟内存中的数据写入物理内存中;Write data in virtual memory to physical memory; 其中,所述待传输数据段落为所述数据发送终端将所述待传输数据进行划分得到的;多个待传输数据段落包括多个预设大小的数据段落和一个末端数据段落;所述末端数据段落为所述待传输数据的末端数据且大小不大于预设大小。Wherein, the data segment to be transmitted is obtained by dividing the data to be transmitted by the data sending terminal; the multiple data segments to be transmitted include multiple data segments with preset sizes and an end data segment; the end data segment The segment is the end data of the data to be transmitted and the size is not larger than the preset size. 7.根据权利要求6所述的基于RDMA用于有损网络的多路径数据传输方法,其特征在于,还包括:7. The multi-path data transmission method for lossy network based on RDMA according to claim 6, characterized in that, further comprising: 获取所述数据发送终端发送的检验请求;所述检验请求由所述数据发送终端在执行一次所述待传输数据段落和对应请求标识的发送后发出;Obtain the inspection request sent by the data sending terminal; the inspection request is sent by the data sending terminal after executing the sending of the data segment to be transmitted and the corresponding request identifier once; 基于所述检验请求,校验此次待传输数据段落和对应请求标识的发送过程中是否丢包,得到校验结果;Based on the verification request, verify whether packets are lost during the sending process of the data segment to be transmitted and the corresponding request identifier, and obtain a verification result; 向所述数据发送终端发送校验结果,以指示所述数据发送终端,若丢包,重新发送所述待传输数据段落和对应请求标识。The verification result is sent to the data sending terminal to instruct the data sending terminal to resend the to-be-transmitted data segment and the corresponding request identifier if the packet is lost. 8.一种基于RDMA用于有损网络的多路径数据传输装置,其特征在于,应用于数据发送终端,包括:8. A multi-path data transmission device for lossy network based on RDMA, characterized in that, applied to a data sending terminal, comprising: 第一发送模块,用于发送所述数据发送终端的可用数据发送路径;其中,所述可用数据发送路径,至少包括两条数据发送路径;a first sending module, configured to send the available data sending paths of the data sending terminal; wherein, the available data sending paths include at least two data sending paths; 第一获取模块,用于获取对应的数据接收终端发送的可用数据接收路径;其中,所述可用数据接收路径,至少包括两条数据接收路径;a first obtaining module, configured to obtain an available data receiving path sent by a corresponding data receiving terminal; wherein, the available data receiving path includes at least two data receiving paths; 第一确定模块,用于基于所述可用数据发送路径和所述可用数据接收路径,确定用于传输数据的多条数据传输路径;a first determining module, configured to determine a plurality of data transmission paths for transmitting data based on the available data sending paths and the available data receiving paths; 第二发送模块,用于通过所述多条数据传输路径,将待传输数据发送至对应的数据接收终端。The second sending module is configured to send the data to be transmitted to the corresponding data receiving terminal through the multiple data transmission paths. 9.一种基于RDMA用于有损网络的多路径数据传输装置,其特征在于,应用于数据接收终端,包括:9. A multi-path data transmission device for lossy network based on RDMA, characterized in that, applied to a data receiving terminal, comprising: 第三发送模块,用于发送所述数据接收终端的可用数据接收路径;其中,所述可用数据接收路径,至少包括两条数据接收路径;a third sending module, configured to send the available data receiving paths of the data receiving terminal; wherein, the available data receiving paths include at least two data receiving paths; 第二获取模块,用于获取对应的数据发送终端发送的可用数据接发送路径;其中,所述可用数据发送路径,至少包括两条数据发送路径;The second acquiring module is configured to acquire the available data transmission paths sent by the corresponding data transmission terminal; wherein, the available data transmission paths include at least two data transmission paths; 第二确定模块,用于基于所述可用数据发送路径和所述可用数据接收路径,确定用于传输数据的多条数据传输路径;a second determining module, configured to determine a plurality of data transmission paths for transmitting data based on the available data transmission paths and the available data reception paths; 接收模块,用于通过所述多条数据传输路径,基于预设的内存管理方式,接收待传输数据。The receiving module is configured to receive the data to be transmitted through the plurality of data transmission paths based on a preset memory management method. 10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7中任一项所述的基于RDMA用于有损网络的多路径数据传输方法的步骤。10. An electronic device, comprising a memory, a processor and a computer program stored on the memory and running on the processor, wherein the processor implements any one of claims 1 to 7 when the processor executes the program. Steps of a described RDMA-based multi-path data transmission method for lossy networks.
CN202111144199.1A 2021-09-28 2021-09-28 Method and device for multi-path data transmission based on RDMA for lossy network Pending CN113904976A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111144199.1A CN113904976A (en) 2021-09-28 2021-09-28 Method and device for multi-path data transmission based on RDMA for lossy network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111144199.1A CN113904976A (en) 2021-09-28 2021-09-28 Method and device for multi-path data transmission based on RDMA for lossy network

Publications (1)

Publication Number Publication Date
CN113904976A true CN113904976A (en) 2022-01-07

Family

ID=79189004

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111144199.1A Pending CN113904976A (en) 2021-09-28 2021-09-28 Method and device for multi-path data transmission based on RDMA for lossy network

Country Status (1)

Country Link
CN (1) CN113904976A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115834002A (en) * 2022-11-16 2023-03-21 江苏为是科技有限公司 High-speed transmission system and method
CN116647517A (en) * 2023-05-04 2023-08-25 福建天泉教育科技有限公司 A method and terminal for data packet transmission
WO2024140068A3 (en) * 2022-12-29 2024-08-22 华为技术有限公司 Message transmission method and system, and network apparatus

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100023595A1 (en) * 2008-07-28 2010-01-28 Crossfield Technology LLC System and method of multi-path data communications
CN104618236A (en) * 2015-01-21 2015-05-13 网宿科技股份有限公司 Parallel data transmission system and method of acceleration network
CN109936510A (en) * 2017-12-15 2019-06-25 微软技术许可有限责任公司 Multipath RDMA transfer
CN110191052A (en) * 2019-04-23 2019-08-30 北京交通大学 A cross-protocol network transmission method and system
CN113316263A (en) * 2021-04-20 2021-08-27 阿里巴巴新加坡控股有限公司 Data transmission method, device, equipment and storage medium

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100023595A1 (en) * 2008-07-28 2010-01-28 Crossfield Technology LLC System and method of multi-path data communications
CN104618236A (en) * 2015-01-21 2015-05-13 网宿科技股份有限公司 Parallel data transmission system and method of acceleration network
CN109936510A (en) * 2017-12-15 2019-06-25 微软技术许可有限责任公司 Multipath RDMA transfer
CN110191052A (en) * 2019-04-23 2019-08-30 北京交通大学 A cross-protocol network transmission method and system
CN113316263A (en) * 2021-04-20 2021-08-27 阿里巴巴新加坡控股有限公司 Data transmission method, device, equipment and storage medium

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘路等: "基于动态连接的RDMA可靠传输协议设计", 《计算机工程与科学》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115834002A (en) * 2022-11-16 2023-03-21 江苏为是科技有限公司 High-speed transmission system and method
CN115834002B (en) * 2022-11-16 2023-10-31 江苏为是科技有限公司 High-speed transmission system and method
WO2024140068A3 (en) * 2022-12-29 2024-08-22 华为技术有限公司 Message transmission method and system, and network apparatus
CN116647517A (en) * 2023-05-04 2023-08-25 福建天泉教育科技有限公司 A method and terminal for data packet transmission

Similar Documents

Publication Publication Date Title
US11184439B2 (en) Communication with accelerator via RDMA-based network adapter
CN113904976A (en) Method and device for multi-path data transmission based on RDMA for lossy network
US10484472B2 (en) Methods and systems for efficiently moving data between nodes in a cluster
US9473596B2 (en) Using transmission control protocol/internet protocol (TCP/IP) to setup high speed out of band data communication connections
WO2016187813A1 (en) Data transmission method and device for photoelectric hybrid network
CN113014528B (en) Message processing method, processing unit and virtual private network server
CN102118434A (en) Data packet transmission method and device
CN110022261A (en) Multi-path transmission method and apparatus based on SCTP-CMT transport protocol
CN113422793A (en) Data transmission method and device, electronic equipment and computer storage medium
CN109688606B (en) Data processing method, device, computer equipment and storage medium
CN110312283A (en) An information processing method and device
CN110417632B (en) Network communication method, system and server
CN113973091A (en) Message processing method, network equipment and related equipment
US20240146806A1 (en) Intermediate apparatus, communication method, and program
CN107343037B (en) Data transmission method and device for distributed storage system
CN118012351A (en) Data read-write order keeping method and device based on remote storage protocol, electronic equipment and storage medium
WO2022111693A1 (en) Data transmission method and related device
CN113572575B (en) Self-adaptive data transmission method and system
CN104615564A (en) Data transmission method based on QPI bus and computer system
CN109660495B (en) File transmission method and device
CN115442318A (en) Method, device, storage medium and equipment for realizing reliable multicast of RDMA (remote direct memory Access) network
CN114615351A (en) Message transmission method and device thereof
CN104660521A (en) Method and device for controlling multicast traffic
CN105812415A (en) Method for realizing load balancing and storage system
CN103338124B (en) The processing method of abnormal chain scission, device and system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20220107

RJ01 Rejection of invention patent application after publication