Communication method based on dual-path processing and related equipment

By adopting the dual-path processing communication method in the data transmission of RDMA QP, the problem of data transmission suspension caused by packet loss in the sliding window transmission mechanism is solved, and efficient and reliable data transmission is achieved.

CN119341702AInactive Publication Date: 2025-01-21CHINA TELECOM CORP LTD +1
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
CN202411907530.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-23
Publication Date
2025-01-21
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

When RDMA QP data transmission occurs in the network with packet loss and other abnormalities, the sliding window transmission mechanism will cause frequent abortion of data transmission, causing head-of-climbing and network congestion.

Method used

A communication method based on dual-path processing is adopted, and a first transmission channel and a second transmission channel are established between the data sending end and the receiving end for data transmission and packet loss information transmission respectively. The data sending end sends the data packet through the first transmission channel, receives the negative acknowledgment response message returned by the data receiving end through the second transmission channel, analyzes the packet loss information and resends the lost data packet.

Benefits of technology

It effectively avoids the suspension of data transmission due to packet loss in the sliding window transmission mechanism, improves the reliability and efficiency of data transmission, and reduces the risk of network congestion and head-of-line blocking.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119341702A_ABST
    Figure CN119341702A_ABST
Patent Text Reader

Abstract

The invention provides a communication method based on dual-path processing and related equipment, and relates to the technical field of communication. The method comprises the following steps: establishing a first transmission channel and a second transmission channel between a data sending end and a data receiving end; the data sending end sends a communication data packet to the data receiving end through the first transmission channel; the data sending end receives a negative acknowledgement response message returned by the data receiving end through the second transmission channel; the data sending end analyzes the negative acknowledgement response message to obtain packet loss information of the first transmission channel; the data sending end determines a communication data packet to be retransmitted according to the packet loss information of the first transmission channel; and the data transmitting end retransmits the communication data packet to be retransmitted to the data receiving end through the first transmission channel. According to the communication method and device, the situation that data transmission is stopped due to packet loss of a data transmission channel in a communication method based on sliding window transmission can be avoided, and low-delay and efficient data transmission is realized while the data reliability is ensured.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0002] RDMA (Remote Direct Memory Access) is a high-performance network transmission technology that enables efficient and low-latency data communication. As a basic communication unit, QP (Queue Pair) plays a vital role. QP builds a communication bridge between the network card hardware and the host software through its queue structure. Specifically, each QP consists of two WQE (Work Queue Element) queues, namely SQ (Send Queue) and RQ (Receive Queue). SQ is used by the data sender to send data, while RQ is used by the data receiver to receive data. As the task unit of QP, WQE directly guides the transmission behavior of data packets.

[0003] Currently, the data transmission of RDMA QP uses a sliding window transmission mechanism to manage the sending of data streams. This transmission mechanism ensures that the number of unconfirmed data packets in the network at the same time is maintained within a certain range by controlling the size of the sending window. However, when abnormal conditions such as packet loss occur in the network, the mechanism will suspend the sending of new data packets until the lost data packets are resent by the data sender and successfully received by the data receiver. Although this retransmission mechanism ensures the reliability of data transmission, it is very easy to cause head-of-line blocking, that is, all subsequent data packets to be sent must wait for the retransmission of the lost packet to be completed before they can continue to be sent. This blocking will not only cause congestion problems in network transmission, but may also lead to a significant decrease in communication efficiency.

[0004] Therefore, how to avoid the situation where the RDMA transmission network adopts a sliding window transmission mechanism, which may cause frequent data transmission interruptions due to packet loss, is a technical problem that needs to be solved urgently in this field.

[0005] It should be noted that the information disclosed in the above background technology section is only used to enhance the understanding of the background of the present disclosure, and therefore may include information that does not constitute the prior art known to ordinary technicians in the field. Summary of the invention

[0006] The present disclosure provides a communication method based on dual-path processing and related equipment, which at least to a certain extent overcomes the technical problem in the related art that the communication method based on the sliding window transmission mechanism may cause frequent interruption of data transmission due to packet loss.

[0007] Other features and advantages of the present disclosure will become apparent from the following detailed description, or may be learned in part by the practice of the present disclosure.

[0008] According to one aspect of the present disclosure, a communication method based on dual-path processing is provided, which is applied to a data sending end, and includes: establishing a first transmission channel and a second transmission channel with a data receiving end; sending a communication data packet to the data receiving end through the first transmission channel; receiving a negative acknowledgment response message returned by the data receiving end through the second transmission channel, wherein the negative acknowledgment response message is a response message returned by the data receiving end when monitoring the presence of packet loss in the first transmission channel; parsing the negative acknowledgment response message to obtain packet loss information of the first transmission channel; determining a communication data packet to be retransmitted based on the packet loss information of the first transmission channel; and resending the communication data packet to be retransmitted to the data receiving end through the first transmission channel.

[0009] In some embodiments, the method further includes: when the data receiving end successfully receives all communication data packets sent by the data sending end, closing the first transmission channel and the second transmission channel.

[0010] In some embodiments, the first transmission channel is a transmission channel for data transmission based on the RDMA protocol, and the second transmission channel is a transmission channel for data transmission based on the TCP / IP protocol.

[0011] In some embodiments, the data sending end includes: a data sending end network card, a data sending queue and a data retransmission queue; the data receiving end includes: a data receiving end network card and a data receiving queue; wherein the data sending queue is used to store the working queue element WQE of the communication data packet to be sent by the data sending end; the data retransmission queue is used to store the WQE of the communication data packet to be retransmitted by the data sending end; the data receiving queue is used to store the communication data packet received by the data receiving end; wherein the data sending end network card is used to read the WOE in the data sending queue, read the communication data packet to be sent from the data storage area of ​​the data sending end, and send it to the data receiving end network card through the first transmission channel; the data receiving end network card is used to store the received communication data packet in the data storage area of ​​the data receiving end, and monitor whether there is any lost communication data packet, and generate the negative acknowledgment response message according to the lost communication data packet; the data sending end is also used to generate the WQE of the communication data packet to be retransmitted according to the negative acknowledgment response message, and put it into the data retransmission queue.

[0012] In some embodiments, the data sending end and the data receiving end are both GPU devices.

[0013] According to another aspect of the present disclosure, a communication method based on dual-path processing is also provided, which is applied to a data receiving end, including: establishing a first transmission channel and a second transmission channel with a data sending end; sending a communication data packet through the first transmission channel by the data sending end; sending a communication data packet to the data receiving end through the first transmission channel; returning a negative acknowledgment response message to the data sending end through the second transmission channel, wherein the negative acknowledgment response message is a response message returned by the data receiving end when monitoring the presence of packet loss in the first transmission channel; receiving a communication data packet to be retransmitted sent by the data sending end through the first transmission channel, wherein the communication data packet to be retransmitted is determined by the data sending end according to the packet loss information of the first transmission channel, and the packet loss information of the first transmission channel is obtained by the data sending end parsing the negative acknowledgment response message.

[0014] In some embodiments, the method further includes: when the data receiving end successfully receives all communication data packets sent by the data sending end, closing the first transmission channel and the second transmission channel.

[0015] In some embodiments, the first transmission channel is a transmission channel for data transmission based on the RDMA protocol, and the second transmission channel is a transmission channel for data transmission based on the TCP / IP protocol.

[0016] In some embodiments, the data sending end includes: a data sending end network card, a data sending queue and a data retransmission queue; the data receiving end includes: a data receiving end network card and a data receiving queue; wherein the data sending queue is used to store the working queue element WQE of the communication data packet to be sent by the data sending end; the data retransmission queue is used to store the WQE of the communication data packet to be retransmitted by the data sending end; the data receiving queue is used to store the communication data packet received by the data receiving end; wherein the data sending end network card is used to read the WOE in the data sending queue, read the communication data packet to be sent from the data storage area of ​​the data sending end, and send it to the data receiving end network card through the first transmission channel; the data receiving end network card is used to store the received communication data packet in the data storage area of ​​the data receiving end, and monitor whether there is any lost communication data packet, and generate the negative acknowledgment response message according to the lost communication data packet; the data sending end is also used to generate the WQE of the communication data packet to be retransmitted according to the negative acknowledgment response message, and put it into the data retransmission queue.

[0017] In some embodiments, the data sending end and the data receiving end are both GPU devices.

[0018] According to another aspect of the present disclosure, a data sending end device is also provided, and the method is applied to the data sending end, including: a data sending end communication module, used to establish a first transmission channel and a second transmission channel with a data receiving end; a data packet sending module, used to send a communication data packet to the data receiving end through the first transmission channel; a response message receiving module, used to receive a negative acknowledgment response message returned by the data receiving end through the second transmission channel, wherein the negative acknowledgment response message is a response message returned by the data receiving end when monitoring the presence of packet loss in the first transmission channel; a parsing module, used to parse the negative acknowledgment response message to obtain packet loss information of the first transmission channel; a data packet retransmission monitoring module, used to determine the communication data packet to be retransmitted according to the packet loss information of the first transmission channel; and a data packet retransmission module, used to resend the communication data packet to be retransmitted to the data receiving end through the first transmission channel.

[0019] According to another aspect of the present disclosure, a data receiving end device is also provided. The method is applied to the data receiving end, including: a data receiving end communication module, used to establish a first transmission channel and a second transmission channel with a data sending end; a data packet receiving response module, used to return a negative acknowledgment response message to the data sending end through the second transmission channel, wherein the negative acknowledgment response message is a response message returned by the data receiving end when monitoring the presence of packet loss in the first transmission channel; a retransmission data packet receiving module, used to receive a communication data packet to be retransmitted sent by the data sending end through the first transmission channel, wherein the communication data packet to be retransmitted is determined by the data sending end according to the packet loss information of the first transmission channel, and the packet loss information of the first transmission channel is obtained by the data sending end parsing the negative acknowledgment response message.

[0020] According to another aspect of the present disclosure, an electronic device is also provided, including: a processor; and a memory for storing executable instructions of the processor; wherein the processor is configured to execute any one of the above-mentioned dual-path processing-based communication methods by executing the executable instructions.

[0021] According to another aspect of the present disclosure, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the communication method based on dual-path processing described above is implemented.

[0022] According to another aspect of the present disclosure, a computer program product is provided, including: a computer program or instructions, wherein when the computer program or instructions are executed by a processor, the communication method based on dual-path processing described above is implemented.

[0023] The communication method and related equipment based on dual-path processing provided in the embodiments of the present disclosure establish a first transmission channel and a second transmission channel between a data sending end and a data receiving end, so that the data sending end sends a communication data packet to the data receiving end through the first transmission channel, and receives a negative acknowledgment response message returned by the data receiving end when a packet loss is detected in the first transmission channel through the second transmission channel, obtains the packet loss information of the first transmission channel by parsing the negative acknowledgment response message, and then determines the communication data packet to be retransmitted according to the packet loss information of the first transmission channel, and then resends the communication data packet to be retransmitted to the data receiving end through the first transmission channel.

[0024] Through the solution provided by the embodiments of the present invention, one transmission channel is used to achieve fast data transmission, and another transmission channel is used to return packet loss information. The data transmission process and the data reliability assurance process are separated by dual paths. This can avoid the situation where data transmission is terminated due to packet loss in the data transmission channel in the communication method based on sliding window transmission. While ensuring data reliability, low-latency and efficient data transmission is achieved.

[0025] It is to be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0026] The accompanying drawings herein are incorporated into the specification and constitute a part of the specification, illustrate embodiments consistent with the present disclosure, and together with the specification are used to explain the principles of the present disclosure. Obviously, the accompanying drawings described below are only some embodiments of the present disclosure, and for ordinary technicians in this field, other accompanying drawings can be obtained based on these accompanying drawings without creative work.

[0027] Figure 1 A schematic diagram of a communication system architecture in an embodiment of the present disclosure is shown; Figure 2 A flow chart of a communication method based on dual-path processing in an embodiment of the present disclosure is shown; Figure 3 A flow chart of an optional communication method based on dual-path processing in an embodiment of the present disclosure is shown; Figure 4 A flow chart of another communication method based on dual-path processing in an embodiment of the present disclosure is shown; Figure 5 A flow chart of another optional communication method based on dual-path processing in an embodiment of the present disclosure is shown; Figure 6 A schematic diagram of an RDMA communication system architecture based on a sliding window transmission mechanism in the related art is shown; Figure 7A schematic diagram of an RDMA communication system architecture based on dual-path processing in an embodiment of the present disclosure is shown; Figure 8 A flow chart of an RDMA communication method based on dual-path processing in an embodiment of the present disclosure is shown; Fig. 9 A schematic diagram of a data sending terminal device in an embodiment of the present disclosure is shown; Fig.10 A schematic diagram of a data receiving terminal device in an embodiment of the present disclosure is shown; Fig.11 A structural block diagram of an electronic device in an embodiment of the present disclosure is shown. DETAILED DESCRIPTION

[0028] Example embodiments will now be described more fully with reference to the accompanying drawings. However, example embodiments can be implemented in a variety of forms and should not be construed as limited to the examples set forth herein; rather, these embodiments are provided so that the disclosure will be more comprehensive and complete and to fully convey the concepts of the example embodiments to those skilled in the art. The described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.

[0029] In addition, the accompanying drawings are only schematic illustrations of the present disclosure and are not necessarily drawn to scale. The same reference numerals in the figures represent the same or similar parts, and their repeated description will be omitted. Some of the block diagrams shown in the accompanying drawings are functional entities and do not necessarily correspond to physically or logically independent entities. These functional entities can be implemented in software form, or implemented in one or more hardware modules or integrated circuits, or implemented in different networks and / or processor devices and / or microcontroller devices.

[0030] For ease of understanding, before introducing the embodiments of the present disclosure, several terms involved in the embodiments of the present disclosure are first explained as follows: RDMA: Remote Direct Memory Access, a network transmission protocol for high-throughput, low-latency transmission services, quickly moves data from one system to a remote system memory without affecting the operating system. It is usually used in high-performance computing scenarios such as large AI models.

[0031] QP: Queue Pair, queue pair, is the basic communication unit of RDMA network, mainly including send queue (SQ, SendQueue) and receive queue (RQ, Receive Queue). The queue structure establishes a communication bridge between the network card hardware and the host software. When each pair of hosts performs RDMA communication, each server needs to establish SQ and RQ.

[0032] RetryQ: Retry Queue, a retransmission queue, is a high-priority queue based on SQ, specifically used for retransmission of lost data.

[0033] WQE: Work Queue Element, work request, is an element in the QP queue, which can be a transmission request for user business data. When a user needs to send data to the other end, a WQE is created to SQ; when a user needs to receive data, a WQE is received to RQ.

[0034] ACK / NACK: It is a special data packet, mainly used by the receiving end to return the information that the sending end has received the data packet. Among them, ACK returns the information of which packets are received, and NACK returns the information of which packets are not received.

[0035] NIC: Network Interface Controller, network adapter, refers to the computer hardware that communicates on a computer network, generally refers to a network card.

[0036] The specific implementation of the embodiment of the present disclosure is described in detail below with reference to the accompanying drawings.

[0037] Figure 1 A schematic diagram of a communication system architecture in an embodiment of the present disclosure is shown. Figure 1 As shown, the system architecture includes: a data sending end 10 and a data receiving end 20; wherein, the data sending end 10 and the data receiving end 20 communicate with each other based on the RDMA protocol.

[0038] It should be noted that the data transmitting end 10 and the data receiving end 20 in the embodiment of the present disclosure can be any pair of communicating devices for data transmission. The data transmitting end 10 can be a terminal device or a server; similarly, the data receiving end 20 can also be a terminal device or a server; it can be communication between a terminal device and a server, or between terminal devices, or between servers.

[0039] The above-mentioned terminal device may also be referred to as UE (User Equipment). In a specific implementation, the terminal device may be a mobile phone, a tablet computer (Tablet Personal Computer), a laptop computer (Laptop Computer), a personal digital assistant (Personal Digital Assistant, PDA), a mobile Internet device (Mobile Internet Device, MID), a wearable device (Wearable Device) or a vehicle-mounted device, etc. It should be noted that the specific type of the terminal device is not limited in the embodiments of the present invention.

[0040] The above-mentioned servers can be independent physical servers, or they can be server clusters or distributed systems composed of multiple physical servers. They can also be cloud servers that provide basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, CDN (Content Delivery Network), as well as big data and artificial intelligence platforms.

[0041] In the embodiment of the present disclosure, the medium providing the communication link between the data transmitting end 10 and the data receiving end 20 may be a wired network or a wireless network.

[0042] Optionally, the wireless network or wired network described above uses standard communication technology and / or protocols. The network is typically the Internet, but may also be any network, including but not limited to a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a mobile, wired or wireless network, a private network or any combination of a virtual private network). In some embodiments, technologies and / or formats including Hyper Text Mark-up Language (HTML), Extensible Markup Language (XML), etc. are used to represent data exchanged over the network. In addition, conventional encryption technologies such as Secure Socket Layer (SSL), Transport Layer Security (TLS), Virtual Private Network (VPN), Internet Protocol Security (IPSec), etc. may be used to encrypt all or some links. In other embodiments, customized and / or dedicated data communication technologies may also be used to replace or supplement the above data communication technologies.

[0043] In the embodiments of the present disclosure, each embodiment is described by taking the data sending end 10 and the data receiving end 20 as GPU devices as an example.

[0044] Those skilled in the art will know that Figure 1 The number of data transmitting ends and data receiving ends in the embodiment is only for illustration, and any number of data transmitting ends and data receiving ends may be provided according to actual needs. The embodiments of the present disclosure are not limited to this.

[0045] Under the above system architecture, an embodiment of the present disclosure provides a communication method based on dual-path processing, which can be executed by any electronic device with computing and processing capabilities.

[0046] In some embodiments, the communication method based on dual-path processing provided in the embodiments of the present disclosure can be executed by the data sending end device of the above-mentioned system architecture; in other embodiments, the communication method based on dual-path processing provided in the embodiments of the present disclosure can be implemented by the data sending end device and the data receiving end device in the above-mentioned system architecture through interaction.

[0047] Figure 2 A flow chart of a communication method based on dual-path processing in an embodiment of the present disclosure is shown as follows: Figure 2As shown, the method comprises the following steps: S202: Establish a first transmission channel and a second transmission channel with a data receiving end.

[0048] It should be noted that in the embodiment of the present disclosure, the first transmission channel refers to a transmission channel for transmitting communication data packets; the second transmission channel refers to a transmission channel for transmitting communication data packet reception response messages. Optionally, the data packet reception response message is used to indicate the packet loss situation of the first transmission channel.

[0049] In some embodiments, the first transmission channel is a transmission channel for data transmission based on the RDMA protocol (fast transmission channel), and the second transmission channel is a transmission channel for data transmission based on the TCP / IP protocol (reliable transmission channel).

[0050] S204: Send a communication data packet to a data receiving end through a first transmission channel.

[0051] In the disclosed embodiment, a data packet reception response message (also called a data packet reception reply message) is added to the second transmission channel to return to the data receiving end, and the first transmission channel does not need to return the data packet reception response message, so that the first transmission channel only transmits communication data packets, which can achieve low latency and efficient data transmission. In particular, when the first transmission channel is an RMDA connection, fast data transmission can be achieved between the data sending end and the data receiving end.

[0052] S206, receiving a negative acknowledgment response message returned by the data receiving end through the second transmission channel, wherein the negative acknowledgment response message is a response message returned by the data receiving end when detecting packet loss in the first transmission channel.

[0053] In the above steps, when the data sending end sends a communication data packet to the data receiving end through the first transmission channel, the data receiving end can monitor whether there is packet loss in the first transmission channel, and return a negative acknowledgment response message to the data sending end when packet loss occurs in the first transmission channel, so as to inform the data sending end of the packet loss information of the first transmission channel. There is no need for the first transmission channel to return a negative acknowledgment response message, and the data transmission of the first transmission channel will not be terminated.

[0054] S208, parsing the negative acknowledgement response message to obtain packet loss information of the first transmission channel.

[0055] In the above steps, after receiving the negative acknowledgment response message returned by the data receiving end, the data sending end can obtain the packet loss information of the first transmission channel by parsing the negative acknowledgment response message, so as to determine the communication data packet to be retransmitted.

[0056] S210: Determine a communication data packet to be retransmitted according to packet loss information of the first transmission channel.

[0057] In some embodiments, when the first transmission channel is an RDMA transmission channel, the packet loss information may be but is not limited to serial number information such as QPN and PSN, so as to find the corresponding WQE from the comparison table of serial number information such as QPN and PSN and WQE to determine the communication data packet to be retransmitted.

[0058] It should be noted that QPN refers to the queue pair number, which is a unique number used to identify each queue pair (QueuePair, QP) in the RDMA network. In RDMA communication, the queue pair is the basic unit of sending and receiving operations. Each queue pair consists of a send queue (SQ) and a receive queue (RQ). QPN is used to distinguish different queue pairs during the communication process to ensure that data can be sent and received correctly. PSN (Packet Sequence Number) is a sequence number used to identify the order of sending data packets in RDMA communication. Each data packet sent via RDMA is assigned a unique PSN.

[0059] S212, resending the communication data packet to be retransmitted to the data receiving end through the first transmission channel.

[0060] It should be noted that when the first transmission channel is an RDMA transmission channel, the communication data packet to be retransmitted can be read from the storage (memory) of the data sending end according to the WQE of the communication data packet to be retransmitted and sent to the data receiving end.

[0061] In some embodiments, Figure 3 As shown, the communication method based on dual-path processing provided in the embodiment of the present disclosure may also include the following steps: S214, when the data receiving end successfully receives all communication data packets sent by the data sending end, the first transmission channel and the second transmission channel are closed.

[0062] In a specific implementation, when the data receiving end successfully receives all communication data packets sent by the data sending end, the transmission channel between the data sending end and the data receiving end may be closed, and the corresponding communication resources or cache resources may be released.

[0063] In some embodiments, when the first transmission channel is an RDMA transmission channel, the data sending end in the embodiment of the present disclosure may include: a data sending end network card, a data sending queue and a data retransmission queue; the data receiving end in the embodiment of the present disclosure may include: a data receiving end network card and a data receiving queue; wherein the data sending queue is used to store the working queue element WQE of the communication data packet to be sent by the data sending end; the data retransmission queue is used to store the WQE of the communication data packet to be retransmitted by the data sending end; the data receiving queue is used to store the communication data packet received by the data receiving end; wherein the data sending end network card is used to read the WOE in the data sending queue, read the communication data packet to be sent from the data storage area of ​​the data sending end, and send it to the data receiving end network card through the first transmission channel; the data receiving end network card is used to store the received communication data packet in the data storage area of ​​the data receiving end, and monitor whether there is any lost communication data packet, and generate a negative acknowledgment response message according to the lost communication data packet; the data sending end is also used to generate the WQE of the communication data packet to be retransmitted according to the negative acknowledgment response message, and put it into the data retransmission queue.

[0064] In some embodiments, the data transmitting end and the data receiving end in the embodiments of the present disclosure are both GPU (Graphics Processing Unit) devices. GPU is a microprocessor specially used for processing graphics and image computing tasks, and is an indispensable component of modern computer systems, especially in application scenarios that require high-performance graphics processing, such as video games, 3D modeling, graphics rendering, scientific computing, and artificial intelligence.

[0065] Based on the same inventive concept, an embodiment of the present disclosure provides a communication method based on dual-path processing, which can be executed by any electronic device with computing and processing capabilities.

[0066] In some embodiments, the communication method based on dual-path processing provided in the embodiments of the present disclosure can be executed by the data receiving device of the above-mentioned system architecture; in other embodiments, the communication method based on dual-path processing provided in the embodiments of the present disclosure can be implemented by the data receiving device and the data sending device in the above-mentioned system architecture through interaction.

[0067] Figure 4 A flow chart of a communication method based on dual-path processing in an embodiment of the present disclosure is shown as follows: Figure 4 As shown, the method comprises the following steps: S402, establishing a first transmission channel and a second transmission channel with a data transmitting end; a communication data packet sent by the data transmitting end through the first transmission channel; S404, sending a communication data packet to the data receiving end through the first transmission channel; returning a negative acknowledgment response message to the data sending end through the second transmission channel, wherein the negative acknowledgment response message is a response message returned by the data receiving end when detecting packet loss in the first transmission channel; S406, receiving a communication data packet to be retransmitted sent by the data sending end through the first transmission channel, wherein the communication data packet to be retransmitted is determined by the data sending end according to the packet loss information of the first transmission channel, and the packet loss information of the first transmission channel is obtained by parsing the negative acknowledgment response message by the data sending end.

[0068] In some embodiments, the first transmission channel is a transmission channel for data transmission based on the RDMA protocol, and the second transmission channel is a transmission channel for data transmission based on the TCP / IP protocol.

[0069] In some embodiments, Figure 5 As shown, the communication method based on dual-path processing provided in the embodiment of the present disclosure may also include the following steps: S408, when the data receiving end successfully receives all communication data packets sent by the data sending end, closing the first transmission channel and the second transmission channel.

[0070] In some embodiments, the data sending end includes: a data sending end network card, a data sending queue and a data retransmission queue; the data receiving end includes: a data receiving end network card and a data receiving queue; wherein the data sending queue is used to store the working queue element WQE of the communication data packet to be sent by the data sending end; the data retransmission queue is used to store the WQE of the communication data packet to be retransmitted by the data sending end; the data receiving queue is used to store the communication data packet received by the data receiving end; wherein the data sending end network card is used to read the WOE in the data sending queue, read the communication data packet to be sent from the data storage area of ​​the data sending end, and send it to the data receiving end network card through the first transmission channel; the data receiving end network card is used to store the received communication data packet in the data storage area of ​​the data receiving end, and monitor whether there is any lost communication data packet, and generate a negative acknowledgment response message according to the lost communication data packet; the data sending end is also used to generate the WQE of the communication data packet to be retransmitted according to the negative acknowledgment response message, and put it into the data retransmission queue.

[0071] In some embodiments, both the data sending end and the data receiving end are GPU devices.

[0072] Figure 6 A schematic diagram of a system architecture for implementing RDMA communication between GPUs based on a sliding window transmission mechanism provided in the related art is shown in FIG. Figure 6As shown in the figure, in the mechanism of implementing RDMA communication between GPUs based on the sliding window transmission mechanism, in the process of sending data streams, once a network anomaly such as packet loss occurs, the sending of the next set of data will be suspended until the data packet is resent and successfully received. As the parameter volume of large models continues to grow, the communication volume between GPUs is also increasing. Because the communication between GPUs has the characteristics of high concurrency in a short period of time, once a network anomaly such as packet loss occurs, serious head-of-line congestion will easily occur based on the sliding window mechanism. This will further lead to network transmission congestion, resulting in a significant decrease in communication efficiency, and even interruption of the AI ​​training process.

[0073] Figure 7 A schematic diagram of an RDMA communication system architecture based on dual-path processing in an embodiment of the present disclosure is shown. Figure 7 As shown, the RDMA communication system based on dual-path processing provided in the embodiment of the present disclosure includes: ① RDMA network protocol stack, including software layer implementation (QP queue management software, WQE management software, addressing address management software), hardware layer implementation (RDMA network card, PCIe bus) and several modules newly added in the software layer: retransmission module, retransmission information path module, fast transmission channel, reliable retransmission channel. ② Various modules related to the GPU application side, including GPU process and GPU data cache of user application.

[0074] The functions of the newly added modules are as follows: (I) Retransmission module: The retransmission module at the data transmission end is responsible for parsing and extracting the packet loss information in the NACK, and searching the hash table based on the packet loss information, generating WQE, and triggering the generation of retransmission packets; the retransmission module at the receiving end is responsible for monitoring which packets are lost and generating corresponding NACK packets to the sending end. Specifically, it includes the following contents: 1) Hash table management module: records, maintains and manages the QPN, PSN and other sequence number information of the data packet and the hash table of WQE to facilitate retrieval when retransmission occurs; 2) Retransmission instruction trigger module: After receiving the QPN, PSN and other coded information of the lost packet, it retrieves the corresponding WQE and initiates a retransmission request; 3) Negative acknowledgment message NACK Parser (analysis) / Generator (generation): Generate / parse the data packet containing the information according to the sequence number of the packet loss information, and send it to the reliable retransmission channel; 4) Packet loss sequence retrieval module: reads the header metadata contained in the normal data packet and extracts the encoding information such as PSN and QPN.

[0075] (ii) Retransmission information path module: After monitoring and identifying packet loss, the retransmission module will encapsulate this information into NACK and push it down to this module.

[0076] 1) This module uses the first-in-first-out (FCFS) strategy to send the NACKs of all QPs to the peer end via a single connection and a reliable retransmission channel.

[0077] 2) This module performs NACK decryption / encapsulation based on TCP / IP to ensure reliable transmission of the reliable retransmission channel.

[0078] (III) Fast transmission channel, which is based on the unreliable transmission time limit of RDMA protocol stack and provides high-speed and low-latency GPU data transmission. It mainly includes the following contents: 1) Based on unreliable connection (UC) transmission or unreliable datagram (UD) transmission, the transmission speed and efficiency are greatly improved.

[0079] 2) Accept the retransmission request, regenerate the lost data message according to the received retransmission WQE (Re WQE) information, and hand it over to the high-priority SQ and RetryQ for transmission.

[0080] Based on the above communication architecture provided in the embodiments of the present disclosure, the complete data packet transmission and processing flow can be divided into five stages in the order of occurrence, such as: Figure 8 As shown, they are: dual-path communication preparation, data transmission at the data transmitting end, data reception and processing at the data receiving end, data transmission retransmission at the data transmitting end, and resource release.

[0081] Phase 1: Dual-path communication preparation: The data sender and the data receiver establish an RDMA connection and a TCP connection. At the same time, both ends initiate work requests and split them into WQEs. The sender's WQE is pushed into SQ to provide the address of the sent data and other related information; the receiver's WQE is pushed into RQ to provide the address of the received data and other information, waiting for the data packet to arrive.

[0082] Phase 2: Data sender sends data: The WQE in the SQ is first read and analyzed by the RDMA network card through the fast transmission channel (Fast Path). The network card then extracts the data to be sent from the specific memory area of ​​the host through the fast transmission channel, and finally encapsulates it into a data packet and transmits it to the network. After sending, the retransmission module will combine the metadata of the data packet and the corresponding WQE information into an item in the comparison hash table for subsequent retransmission.

[0083] Phase 3: The data receiving end receives and processes data: After receiving the data packet, the network card at the data receiving end submits the data packet payload to the receiving buffer through the fast transmission channel, and extracts the packet header information. The packet loss sequence retrieval function of the retransmission module then parses, records, and scans this information to detect which data packets are lost, encapsulates the packet loss information into a NACK packet, and sends it back to the sender through the reliable retransmission channel.

[0084] Phase 4: Data sender retransmission: After receiving NACK, the data sender will parse the packet loss information contained in it, and retrieve the WQE (Re WQE) corresponding to the lost data packet in the comparison hash table of the buffer according to the QPN and PSN codes. The WQE will be sent to the retransmission queue RetryQ and re-processed in phase 2 at a high priority.

[0085] Phase 5: End and recycle resources: After receiving all the data packets, the data receiving end notifies the sending end. Both ends release their own cache resources and communication resources.

[0086] As can be seen from the above, the communication method based on dual-path processing provided in the embodiments of the present disclosure can achieve but is not limited to the following technical effects: ① Design a retransmission module at the data sending end and the data receiving end to realize the monitoring, identification, notification, analysis and retransmission of RDMA packet loss metadata; ② Design a retransmission information path module at the data sending end and the data receiving end, and use NACK to realize the packet loss information on the receiving side to be returned to the sending end via a reliable retransmission channel, and can improve the efficiency of retransmitted data; ③ Design a fast transmission channel at the data sending end and the data receiving end, on the one hand to achieve efficient and low-latency data transmission, on the other hand to achieve the sending of retransmitted data packets.

[0087] The GPU communication mechanism and system based on dual-path processing provided in the embodiments of the present disclosure replace the sliding window mechanism that is prone to congestion in the original network card, and transform the RDMA QP communication protocol stack between GPUs; the present invention no longer uses a sliding window mechanism to ensure the reliability of transmission, but uses dual paths to separate the data transmission process from the data reliability guarantee process, thereby avoiding frequent transmission interruptions, so that the RDMA network can still maintain a high transmission performance under large-scale GPU communication pressure, thereby improving the training and pushing efficiency of large AI models.

[0088] Based on the same inventive concept, the present disclosure also provides a data sending terminal device in the following embodiments. Since the principle of solving the problem in the data sending terminal device embodiment is similar to that in the above method embodiment, the implementation of the data sending terminal device embodiment can refer to the implementation of the above method embodiment, and the repeated parts will not be repeated.

[0089] Fig. 9 A schematic diagram of a data sending terminal device in an embodiment of the present disclosure is shown. Fig. 9 As shown, the data sending end device includes: a data sending end communication module 901, a data packet sending module 902, a response message receiving module 903, a parsing module 904, a data packet retransmission monitoring module 905 and a data packet retransmission module 906.

[0090] Among them, the data sending end communication module 901 is used to establish a first transmission channel and a second transmission channel with the data receiving end device; the data packet sending module 902 is used to send a communication data packet to the data receiving end device through the first transmission channel; the response message receiving module 903 is used to receive a negative acknowledgment response message returned by the data receiving end device through the second transmission channel, wherein the negative acknowledgment response message is a response message returned by the data receiving end device when detecting that there is packet loss in the first transmission channel; the parsing module 904 is used to parse the negative acknowledgment response message to obtain the packet loss information of the first transmission channel; the data packet retransmission monitoring module 905 is used to determine the communication data packet to be retransmitted according to the packet loss information of the first transmission channel; the data packet retransmission module 906 is used to resend the communication data packet to be retransmitted to the data receiving end device through the first transmission channel.

[0091] In some embodiments, the data sending end communication module 901 is further used to: when the data receiving end device successfully receives all communication data packets sent by the data sending end device, close the first transmission channel and the second transmission channel.

[0092] In some embodiments, the first transmission channel is a transmission channel for data transmission based on the RDMA protocol, and the second transmission channel is a transmission channel for data transmission based on the TCP / IP protocol.

[0093] In some embodiments, a data sending end device includes: a data sending end device network card, a data sending queue and a data retransmission queue; a data receiving end device includes: a data receiving end device network card and a data receiving queue; wherein the data sending queue is used to store a working queue element WQE of a communication data packet to be sent by the data sending end device; the data retransmission queue is used to store the WQE of the communication data packet to be retransmitted by the data sending end device; the data receiving queue is used to store the communication data packet received by the data receiving end device; wherein the data sending end device network card is used to read the WOE in the data sending queue, read the communication data packet to be sent from the data storage area of ​​the data sending end device, and send it to the data receiving end device network card through the first transmission channel; the data receiving end device network card is used to store the received communication data packet in the data storage area of ​​the data receiving end device, and monitor whether there is any lost communication data packet, and generate a negative acknowledgment response message according to the lost communication data packet; the data sending end device is also used to generate the WQE of the communication data packet to be retransmitted according to the negative acknowledgment response message, and put it into the data retransmission queue.

[0094] In some embodiments, the data sending end device and the data receiving end device are both GPU devices.

[0095] It should be noted that the examples and application scenarios implemented by the modules in the above data sending terminal device embodiment and the corresponding steps in the method embodiment are the same, but are not limited to the contents disclosed in the above method embodiment. It should be noted that the above modules as part of the data sending terminal device can be executed in a computer system such as a set of computer executable instructions.

[0096] Based on the same inventive concept, the present disclosure also provides a data receiving terminal device, as described in the following embodiments. Since the principle of solving the problem in the data receiving terminal device embodiment is similar to that in the above method embodiment, the implementation of the data receiving terminal device embodiment can refer to the implementation of the above method embodiment, and the repeated parts will not be repeated.

[0097] Fig.10 A schematic diagram of a data receiving device in an embodiment of the present disclosure is shown. Fig.10 As shown, the data receiving end device includes: a data receiving end communication module 101, a data packet receiving response module 102 and a retransmitted data packet receiving module 103.

[0098] Among them, the data receiving end communication module 101 is used to establish a first transmission channel and a second transmission channel with the data sending end device; the data packet receiving response module 102 is used to return a negative acknowledgment response message to the data sending end device through the second transmission channel, wherein the negative acknowledgment response message is a response message returned by the data receiving end device when detecting that there is packet loss in the first transmission channel; the retransmitted data packet receiving module 103 is used to receive a communication data packet to be retransmitted sent by the data sending end device through the first transmission channel, wherein the communication data packet to be retransmitted is determined by the data sending end device according to the packet loss information of the first transmission channel, and the packet loss information of the first transmission channel is obtained by the data sending end device parsing the negative acknowledgment response message.

[0099] In some embodiments, the data receiving end communication module 101 is further used to: when the data receiving end device successfully receives all communication data packets sent by the data sending end device, close the first transmission channel and the second transmission channel.

[0100] In some embodiments, the first transmission channel is a transmission channel for data transmission based on the RDMA protocol, and the second transmission channel is a transmission channel for data transmission based on the TCP / IP protocol.

[0101] In some embodiments, a data sending end device includes: a data sending end device network card, a data sending queue and a data retransmission queue; a data receiving end device includes: a data receiving end device network card and a data receiving queue; wherein the data sending queue is used to store a working queue element WQE of a communication data packet to be sent by the data sending end device; the data retransmission queue is used to store the WQE of the communication data packet to be retransmitted by the data sending end device; the data receiving queue is used to store the communication data packet received by the data receiving end device; wherein the data sending end device network card is used to read the WOE in the data sending queue, read the communication data packet to be sent from the data storage area of ​​the data sending end device, and send it to the data receiving end device network card through the first transmission channel; the data receiving end device network card is used to store the received communication data packet in the data storage area of ​​the data receiving end device, and monitor whether there is any lost communication data packet, and generate a negative acknowledgment response message according to the lost communication data packet; the data sending end device is also used to generate the WQE of the communication data packet to be retransmitted according to the negative acknowledgment response message, and put it into the data retransmission queue.

[0102] In some embodiments, the data sending end device and the data receiving end device are both GPU devices.

[0103] It should be noted that the examples and application scenarios implemented by the modules in the above data receiving device embodiment and the corresponding steps in the method embodiment are the same, but are not limited to the contents disclosed in the above method embodiment. It should be noted that the above modules as part of the data receiving device can be executed in a computer system such as a set of computer executable instructions.

[0104] Those skilled in the art will appreciate that various aspects of the present disclosure may be specifically implemented in the following forms, namely: a complete hardware implementation, a complete software implementation (including firmware, microcode, etc.), or an implementation that combines hardware and software aspects, which may be collectively referred to herein as a "circuit," "module," or "system."

[0105] Based on the same inventive concept, an electronic device is also provided in an embodiment of the present disclosure, the electronic device comprising: a processor; and a memory for storing executable instructions of the processor; wherein the processor is configured to execute any one of the above-mentioned communication methods based on dual-path processing by executing the executable instructions. Since the principle of solving the problem in the electronic device embodiment is similar to that in the above-mentioned method embodiment, the implementation of the electronic device embodiment can refer to the implementation of the above-mentioned method embodiment, and the repeated parts will not be repeated.

[0106] Refer to the following Fig.11 1100 according to this embodiment of the present disclosure is described. Fig.11 The electronic device 1100 shown is merely an example and should not bring any limitation to the functions and scope of use of the embodiments of the present disclosure.

[0107] like Fig.11 As shown, the electronic device 1100 is in the form of a general computing device. The components of the electronic device 1100 may include but are not limited to: at least one processing unit 1110, at least one storage unit 1120, and a bus 1130 connecting different system components (including the storage unit 1120 and the processing unit 1110).

[0108] The storage unit stores program codes, which can be executed by the processing unit 1110, so that the processing unit 1110 executes the steps described in the above “exemplary method” section of this specification according to various exemplary embodiments of the present disclosure.

[0109] In some embodiments, when the electronic device 1100 is a data sending device, the processing unit 1110 can execute the following steps of the above method embodiment: establish a first transmission channel and a second transmission channel with the data receiving end; send a communication data packet to the data receiving end through the first transmission channel; receive a negative acknowledgment response message returned by the data receiving end through the second transmission channel, wherein the negative acknowledgment response message is a response message returned by the data receiving end when monitoring the presence of packet loss in the first transmission channel; parse the negative acknowledgment response message to obtain packet loss information of the first transmission channel; determine the communication data packet to be retransmitted based on the packet loss information of the first transmission channel; and resend the communication data packet to be retransmitted to the data receiving end through the first transmission channel.

[0110] In other embodiments, when the electronic device 1100 is a data receiving device, the processing unit 1110 can execute the following steps of the above method embodiment: establish a first transmission channel and a second transmission channel with the data sending end; send a communication data packet through the first transmission channel by the data sending end; send a communication data packet to the data receiving end through the first transmission channel; return a negative acknowledgment response message to the data sending end through the second transmission channel, wherein the negative acknowledgment response message is a response message returned when the data receiving end detects packet loss in the first transmission channel; receive a communication data packet to be retransmitted sent by the data sending end through the first transmission channel, wherein the communication data packet to be retransmitted is determined by the data sending end according to the packet loss information of the first transmission channel, and the packet loss information of the first transmission channel is obtained by the data sending end parsing the negative acknowledgment response message.

[0111] The storage unit 1120 may include a readable medium in the form of a volatile storage unit, such as a random access storage unit (RAM) 11201 and / or a cache storage unit 11202 , and may further include a read-only storage unit (ROM) 11203 .

[0112] The storage unit 1120 may also include a program / utility 11204 having a set (at least one) of program modules 11205, such program modules 11205 including but not limited to: an operating system, one or more application programs, other program modules, and program data, each of which or some combination may include an implementation of a network environment.

[0113] Bus 1130 may represent one or more of several types of bus structures, including a memory unit bus or memory unit controller, a peripheral bus, an accelerated graphics port, a processing unit, or a local bus using any of a variety of bus architectures.

[0114] The electronic device 1100 may also communicate with one or more external devices 1140 (e.g., keyboards, pointing devices, Bluetooth devices, etc.), may also communicate with one or more devices that enable a user to interact with the electronic device 1100, and / or may communicate with any device that enables the electronic device 1100 to communicate with one or more other computing devices (e.g., routers, modems, etc.). Such communication may be performed through an input / output (I / O) interface 1150. In addition, the electronic device 1100 may also communicate with one or more networks (e.g., local area networks (LANs), wide area networks (WANs), and / or public networks, such as the Internet) through a network adapter 1160. As shown, the network adapter 1160 communicates with other modules of the electronic device 1100 through a bus 1130. It should be understood that, although not shown in the figure, other hardware and / or software modules may be used in conjunction with the electronic device 1100, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems, etc.

[0115] Through the description of the above implementation, it is easy for those skilled in the art to understand that the example implementation described here can be implemented by software, or by software combined with necessary hardware. Therefore, the technical solution according to the implementation of the present disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, a USB flash drive, a mobile hard disk, etc.) or on a network, and includes a number of instructions to enable a computing device (which can be a personal computer, a server, a terminal device, or a network device, etc.) to execute the method according to the implementation of the present disclosure.

[0116] Based on the same inventive concept, a computer-readable storage medium is also provided in the embodiment of the present disclosure, on which a computer program is stored, and when the computer program is executed by a processor, any of the above-mentioned communication methods based on dual-path processing is implemented. Since the principle of solving the problem in the embodiment of the computer-readable storage medium is similar to that in the above-mentioned method embodiment, the implementation of the embodiment of the computer-readable storage medium can refer to the implementation of the above-mentioned method embodiment, and the repeated parts will not be repeated.

[0117] More specific examples of computer-readable storage media in the present disclosure may include, but are not limited to, an electrical connection having one or more conductors, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0118] In the present disclosure, a computer readable storage medium may include a data signal propagated in baseband or as part of a carrier wave, wherein a readable program code is carried. Such propagated data signals may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. A readable signal medium may also be any readable medium other than a readable storage medium, which may send, propagate, or transmit a program for use by or in conjunction with an instruction execution system, apparatus, or device.

[0119] Alternatively, the program code contained on the computer-readable storage medium may be transmitted using any appropriate medium, including but not limited to wireless, wired, optical cable, RF, etc., or any suitable combination of the foregoing.

[0120] In specific implementation, the program code for performing the operation of the present disclosure may be written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Java, C++, etc., and conventional procedural programming languages ​​such as "C" language or similar programming languages. The program code may be executed entirely on the user computing device, partially on the user device, as an independent software package, partially on the user computing device and partially on a remote computing device, or entirely on a remote computing device or server. In the case of a remote computing device, the remote computing device may be connected to the user computing device through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computing device (e.g., using an Internet service provider to connect through the Internet).

[0121] Based on the same inventive concept, a computer program product is also provided in an embodiment of the present disclosure, including a computer program product, including: a computer program or an instruction, wherein when the computer program or the instruction is executed by a processor, the communication method based on dual-path processing in any one of the above method embodiments is implemented. Since the principle of solving the problem in the computer program product embodiment is similar to that in the above method embodiment, the implementation of the computer program product embodiment can refer to the implementation of the above method embodiment, and the repeated parts will not be repeated.

[0122] It should be noted that, although several modules or units of the device for action execution are mentioned in the above detailed description, this division is not mandatory. In fact, according to the embodiments of the present disclosure, the features and functions of two or more modules or units described above can be embodied in one module or unit. On the contrary, the features and functions of one module or unit described above can be further divided into multiple modules or units to be embodied.

[0123] In addition, although the steps of the method in the present disclosure are described in a specific order in the drawings, this does not require or imply that the steps must be performed in this specific order, or that all the steps shown must be performed to achieve the desired results. Additionally or alternatively, some steps may be omitted, multiple steps may be combined into one step, and / or one step may be decomposed into multiple steps, etc.

[0124] Through the description of the above implementation modes, it is easy for those skilled in the art to understand that the example implementation modes described here can be implemented by software, or by software combined with necessary hardware. Therefore, the technical solution according to the implementation mode of the present disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, a USB flash drive, a mobile hard disk, etc.) or on a network, and includes several instructions to enable a computing device (which can be a personal computer, a server, a mobile terminal, or a network device, etc.) to execute the method according to the implementation mode of the present disclosure.

[0125] Those skilled in the art will readily appreciate other embodiments of the present disclosure after considering the specification and practicing the invention disclosed herein. The present disclosure is intended to cover any variations, uses or adaptations of the present disclosure, which follow the general principles of the present disclosure and include common knowledge or customary techniques in the art that are not disclosed in the present disclosure. The description and examples are intended to be exemplary only, and the true scope and spirit of the present disclosure are indicated by the appended claims.

Claims

1. A communication method based on dual-path processing, characterized in that: The method is applied to a data sending end, and includes: Establishing a first transmission channel and a second transmission channel with a data receiving end; Sending a communication data packet to a data receiving end via the first transmission channel; receiving a negative acknowledgment response message returned by the data receiving end through the second transmission channel, wherein the negative acknowledgment response message is a response message returned by the data receiving end when detecting packet loss in the first transmission channel; Parsing the negative acknowledgement response message to obtain packet loss information of the first transmission channel; Determining communication data packets to be retransmitted according to packet loss information of the first transmission channel; The communication data packet to be retransmitted is resent to the data receiving end through the first transmission channel.

2. The communication method based on dual path processing according to claim 1, characterized in that: The method further comprises: When the data receiving end successfully receives all communication data packets sent by the data sending end, the first transmission channel and the second transmission channel are closed.

3. The communication method based on dual path processing according to claim 1, characterized in that: The first transmission channel is a transmission channel for data transmission based on the RDMA protocol, and the second transmission channel is a transmission channel for data transmission based on the TCP / IP protocol.

4. The communication method based on dual path processing according to claim 3, characterized in that: The data sending end includes: a data sending end network card, a data sending queue and a data retransmission queue; the data receiving end includes: a data receiving end network card and a data receiving queue; The data transmission queue is used to store the work queue element WQE of the communication data packet to be sent by the data transmission end; the data retransmission queue is used to store the WQE of the communication data packet to be retransmitted by the data transmission end; the data reception queue is used to store the communication data packet received by the data receiving end; Among them, the data sending end network card is used to read the WOE in the data sending queue, read the communication data packet to be sent from the data storage area of ​​the data sending end, and send it to the data receiving end network card through the first transmission channel; the data receiving end network card is used to store the received communication data packet in the data storage area of ​​the data receiving end, and monitor whether there is any lost communication data packet, and generate the negative acknowledgment response message according to the lost communication data packet; the data sending end is also used to generate the WQE of the communication data packet to be retransmitted according to the negative acknowledgment response message, and put it into the data retransmission queue.

5. The communication method based on dual path processing according to any one of claims 1 to 4, characterized in that: The data sending end and the data receiving end are both GPU devices.

6. A communication method based on dual path processing, characterized in that: The method is applied to the data receiving end, including: Establishing a first transmission channel and a second transmission channel with a data sending end; A communication data packet is sent by the data sending end through the first transmission channel; a communication data packet is sent to the data receiving end through the first transmission channel; Returning a negative acknowledgment response message to the data sending end through the second transmission channel, wherein the negative acknowledgment response message is a response message returned by the data receiving end when detecting that there is packet loss in the first transmission channel; Receive a communication data packet to be retransmitted sent by the data sending end through the first transmission channel, wherein the communication data packet to be retransmitted is determined by the data sending end based on packet loss information of the first transmission channel, and the packet loss information of the first transmission channel is obtained by the data sending end by parsing the negative acknowledgment response message.

7. The communication method based on dual path processing according to claim 6, characterized in that: The method further comprises: When the data receiving end successfully receives all communication data packets sent by the data sending end, the first transmission channel and the second transmission channel are closed.

8. The communication method based on dual path processing according to claim 6, characterized in that: The first transmission channel is a transmission channel for data transmission based on the RDMA protocol, and the second transmission channel is a transmission channel for data transmission based on the TCP / IP protocol.

9. The communication method based on dual path processing according to claim 8, characterized in that: The data sending end includes: a data sending end network card, a data sending queue and a data retransmission queue; the data receiving end includes: a data receiving end network card and a data receiving queue; The data transmission queue is used to store the work queue element WQE of the communication data packet to be sent by the data transmission end; the data retransmission queue is used to store the WQE of the communication data packet to be retransmitted by the data transmission end; the data reception queue is used to store the communication data packet received by the data receiving end; Among them, the data sending end network card is used to read the WOE in the data sending queue, read the communication data packet to be sent from the data storage area of ​​the data sending end, and send it to the data receiving end network card through the first transmission channel; the data receiving end network card is used to store the received communication data packet in the data storage area of ​​the data receiving end, and monitor whether there is any lost communication data packet, and generate the negative acknowledgment response message according to the lost communication data packet; the data sending end is also used to generate the WQE of the communication data packet to be retransmitted according to the negative acknowledgment response message, and put it into the data retransmission queue.

10. The communication method based on dual path processing according to any one of claims 6 to 9, characterized in that: The data sending end and the data receiving end are both GPU devices.

11. A data sending end device, characterized in that: Applied to the data sending end, including: A data transmitting end communication module, used to establish a first transmission channel and a second transmission channel with a data receiving end; A data packet sending module, used for sending a communication data packet to a data receiving end through the first transmission channel; a response message receiving module, configured to receive a negative acknowledgment response message returned by the data receiving end through the second transmission channel, wherein the negative acknowledgment response message is a response message returned by the data receiving end when detecting packet loss in the first transmission channel; A parsing module, used for parsing the negative acknowledgement response message to obtain packet loss information of the first transmission channel; A data packet retransmission monitoring module, used to determine the communication data packet to be retransmitted according to the packet loss information of the first transmission channel; The data packet retransmission module is used to resend the communication data packet to be retransmitted to the data receiving end through the first transmission channel.

12. A data receiving device, characterized in that: Applied to the data receiving end, including: A data receiving end communication module, used to establish a first transmission channel and a second transmission channel with a data sending end; a data packet receiving response module, configured to return a negative acknowledgment response message to the data sending end through the second transmission channel, wherein the negative acknowledgment response message is a response message returned by the data receiving end when detecting packet loss in the first transmission channel; A retransmitted data packet receiving module is used to receive a communication data packet to be retransmitted sent by the data sending end through the first transmission channel, wherein the communication data packet to be retransmitted is determined by the data sending end based on the packet loss information of the first transmission channel, and the packet loss information of the first transmission channel is obtained by the data sending end by parsing the negative acknowledgment response message.

13. An electronic device, characterized in that: include: processor; as well as A memory, configured to store executable instructions of the processor; The processor is configured to execute the communication method based on dual-path processing according to any one of claims 1 to 6 by executing the executable instructions.

14. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the communication method based on dual-path processing according to any one of claims 1 to 6 is implemented.

15. A computer program product comprising: A computer program or instruction, characterized in that when the computer program or instruction is executed by a processor, it implements the communication method based on dual-path processing as described in any one of claims 1 to 6.

Citation Information

Patent Citations

  • Multipath RDMA transmission

    CN109936510A

  • A data transmission method and first device

    CN109981480A

  • Data transmission method, device and equipment and computer readable storage medium

    CN113676605A

  • Data retransmission method and terminal for remote direct memory access

    CN116455524A

  • Data transmission method, system and equipment based on double channels and medium

    CN118264609A