Data transmission method and apparatus, electronic device, and storage medium
Patent Information
- Application Number
- CN202610759180.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2026-05-29
- Publication Date
- 2026-09-11
- Estimated Expiration
- 2046-05-29
AI Technical Summary
这种重复多次的传输方式不仅极大地消耗了源节点内部计算资源,还会导致网络链路中充斥大量冗余的重复报文,从而增加集群整体的传输延迟
[0068]The data transmission method, apparatus, electronic device, and storage medium proposed in this application receive multicast registration information sent by a source node. The multicast registration information includes a multicast address, a first source address of the source node, first transport layer connection information of the source node, a first target address of each target node associated with the multicast address, and second transport layer connection information of each target node associated with the multicast address. After configuring the multicast registration information, a configuration completion signal is sent to the source node, and the data to be transmitted sent by the source node according to the configuration completion signal is received. The data to be transmitted is copied according to the multicast registration information, and each copy of the data to be transmitted is then processed as a message. The source address in the header is modified to a multicast address. Based on the first destination address and the second transport layer connection information of each target node, the destination address and transport layer connection parameters in the header of each piece of data to be transmitted are modified to the first destination address and the second transport layer connection information of the corresponding target node to generate target data to be transmitted corresponding to each target node. Each piece of target data to be transmitted is sent to the corresponding target node. The message packets returned by each target node based on the received target data to be transmitted are received. All received message packets are aggregated to generate an aggregated message packet, and the aggregated message packet is sent to the source node.
Smart Images

Figure CN122316808B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of data processing technology, specifically to a data transmission method, apparatus, electronic device, and storage medium. Background Technology
[0002] In various scenarios such as high-performance computing and large-scale artificial intelligence model training, reliable data transmission is essential for transferring data to corresponding computing nodes. With the continuous development of technology, massive amounts of data often need to be communicated between computing nodes. Among related technologies, the Reliable Connection (RC) mode within Remote Direct Memory Access (RDMA) technology enables reliable data transmission based on a one-to-one connection between computing nodes.
[0003] However, in scenarios involving aggregated communication where the same data needs to be sent to multiple computing nodes, the source node can only establish independent RC connections with each target node and repeatedly copy the same data locally before sending it. This repeated transmission method not only consumes a significant amount of the source node's internal computing resources but also results in a large number of redundant duplicate packets in the network link, thereby increasing the overall transmission latency of the cluster. In other words, related technologies suffer from high source node resource overhead and excessively high overall cluster latency when dealing with one-to-many reliable aggregated communication. Summary of the Invention
[0004] This application provides a data transmission method, apparatus, electronic device, and storage medium that can reduce the resource overhead of the source node in one-to-many reliable communication and reduce the overall latency of the cluster.
[0005] To achieve the above objectives, the first aspect of this application provides a data transmission method applied to a forwarding device, the method comprising:
[0006] Receive multicast registration information sent by the source node. The multicast registration information includes the multicast address, the first source address of the source node, the first transport layer connection information of the source node, the first destination address of each destination node associated with the multicast address, and the second transport layer connection information of each destination node associated with the multicast address.
[0007] After completing the configuration of the multicast registration information, it sends a configuration completion signal to the source node and receives the data to be transmitted sent by the source node according to the configuration completion signal;
[0008] Based on the multicast registration information, the data to be transmitted is copied, and the source address in the header of each copied data to be transmitted is modified to the multicast address. Based on the first destination address and the second transport layer connection information of each target node, the destination address and transport layer connection parameters in the header of each data to be transmitted are modified to the first destination address and the second transport layer connection information of the corresponding target node, so as to generate target data to be transmitted corresponding to each target node.
[0009] Each target data to be transmitted is sent to its corresponding target node;
[0010] It receives message packets returned by each target node based on the received target data to be transmitted, aggregates all received message packets to generate an aggregated message packet, and sends the aggregated message packet to the source node.
[0011] In some embodiments, all received message messages are aggregated to generate an aggregated message message, including:
[0012] When each received message is an acknowledgment message, the global reception progress of the data to be transmitted by each target node is determined based on the second transport layer connection information of each target node.
[0013] When the global reception progress is updated relative to the previous aggregate confirmation progress, an aggregate confirmation message carrying the global reception progress is generated and used as the aggregate confirmation message.
[0014] In some embodiments, the aggregation process for all received message messages to generate an aggregated message message further includes:
[0015] When a negative acknowledgment message is received, the expected retransmission sequence number is extracted from the negative acknowledgment message.
[0016] Based on the multicast registration information, the expected retransmission sequence number is mapped to the sequence number space of the source node, an aggregated negative message carrying the mapped expected retransmission sequence number is generated, and the aggregated negative message is used as an aggregated message message.
[0017] In some embodiments, determining the global reception progress of the data to be transmitted for each target node based on the second transport layer connection information of each target node includes:
[0018] Based on the second transport layer connection information corresponding to each target node, the initial node response sequence number corresponding to each target node is determined;
[0019] Based on the message packets returned by each target node, determine the update node response sequence number of each target node;
[0020] For each target node, the node reception progress is determined based on the initial node response sequence number and the updated node response sequence number of the target node.
[0021] Based on the node reception progress of each target node, determine the target response number that represents the slowest reception progress from all the updated node response numbers;
[0022] Based on the target response sequence number, determine the global reception progress of the data to be transmitted for each target node.
[0023] In some embodiments, determining the global reception progress of the data to be transmitted for each target node based on the target response sequence number includes:
[0024] Based on the multicast registration information, determine the first sequence number mapping relationship between the target node and the source node corresponding to the target response sequence number;
[0025] Based on the mapping relationship between the target response sequence number and the first sequence number, the global reception progress of the data to be transmitted by each target node is determined.
[0026] In some embodiments, generating an aggregated acknowledgment message carrying global reception progress includes:
[0027] Use the multicast address as the second source address and the first source address as the second destination address;
[0028] An aggregated acknowledgment message is generated based on the first transport layer connection information, the second source address, the second destination address, and the global reception progress.
[0029] In some embodiments, based on multicast registration information, the desired retransmission sequence number is mapped to the sequence number space of the source node, and an aggregated negative message carrying the mapped desired retransmission sequence number is generated, including:
[0030] The second sequence number mapping relationship between the target node and the source node corresponding to the negative acknowledgment message is determined based on the multicast registration information, and the expected retransmission sequence number after mapping is determined based on the expected retransmission sequence number and the second sequence number mapping relationship.
[0031] Use the multicast address as the third source address and the first source address as the third destination address;
[0032] An aggregated negative message is generated based on the first transport layer connection information, the third source address, the third destination address, and the mapped expected retransmission sequence number.
[0033] In some embodiments, when the data to be transmitted is remote direct memory access write operation data, the multicast registration information further includes a virtual write address and write key allocated by each target node for receiving the data to be transmitted; generating target data to be transmitted corresponding to each target node includes:
[0034] Based on the virtual write address and write key of each target node, the memory write address and access permission fields in the header of the data to be transmitted are modified to generate target data to be transmitted corresponding to each target node.
[0035] To achieve the above objectives, a second aspect of this application provides a data transmission method applied to a source node, the method comprising:
[0036] Send multicast addresses to multiple target nodes and receive the first target address and second transport layer connection information returned by each target node based on the multicast address;
[0037] Based on the first source address of the source node, the first transport layer connection information of the source node, the multicast address, the first destination address and the second transport layer connection information of each destination node, multicast registration information is generated and sent to the forwarding device.
[0038] After receiving the configuration completion signal returned by the forwarding device, the data to be transmitted is sent to the forwarding device so that the forwarding device can update the data to be transmitted according to the multicast registration information and obtain the target data to be transmitted to each target node.
[0039] The system receives the aggregated message returned by the forwarding device and determines the data transmission result based on the aggregated message. The aggregated message is generated by the forwarding device based on the first transport layer connection information, the first source address, and the message returned by each target node.
[0040] In some embodiments, determining the data transmission result based on the aggregated message includes:
[0041] If the aggregated message is an aggregated confirmation message, the first data transmission result is determined based on the aggregated confirmation message. The first data transmission result indicates that the source node has successfully sent the data to be transmitted to each target node.
[0042] If the aggregated message is an aggregated negative message, the second data transmission result is determined based on the aggregated negative message. The second data transmission result indicates that the source node needs to retransmit at least part of the data to be transmitted.
[0043] In some embodiments, after determining the second data transmission result based on the aggregated negative message, the method further includes:
[0044] The expected retransmission sequence number after mapping is determined based on the aggregated negative message;
[0045] Based on the expected retransmission sequence number after mapping, at least one target data packet is determined from the data to be transmitted, and at least one target data packet is sent to the forwarding device.
[0046] To achieve the above objectives, a third aspect of this application provides a data transmission method applied to a target node, the method comprising:
[0047] Receive the multicast address sent by the source node;
[0048] Based on the multicast address, the first target address and the second transport layer connection information of the target node are sent to the source node, so that the source node can generate multicast registration information based on the multicast address, the first target address, the second transport layer connection information, the first source address of the source node, and the first transport layer connection information. The multicast registration information is used to enable the forwarding device to update the data to be transmitted sent by the source node to obtain the target data to be transmitted.
[0049] The system receives the target data to be transmitted from the forwarding device, generates a message packet based on the target data to be transmitted, and sends it to the forwarding device.
[0050] In some embodiments, based on the multicast address, sending the first target address and second transport layer connection information of the target node to the source node includes:
[0051] Based on the multicast address, allocate a virtual write address and a corresponding write key for receiving remote direct memory access write operation data;
[0052] Based on the multicast address, send the first target address of the target node, the second transport layer connection information, the virtual write address, and the write key to the source node.
[0053] To achieve the above objectives, a fourth aspect of this application provides a data transmission system, including a forwarding device, a source node, and at least one target node;
[0054] The source node is used to send multicast addresses to multiple target nodes and receive the first target address and second transport layer connection information returned by each target node; based on the source node's first source address, first transport layer connection information, multicast address, and the first target address and second transport layer connection information of each target node, it generates multicast registration information and sends it to the forwarding device; after receiving the configuration completion signal returned by the forwarding device, it sends the data to be transmitted to the forwarding device.
[0055] The forwarding device is used to receive multicast registration information sent by the source node and send a configuration completion signal to the source node after completing the configuration; receive data to be transmitted sent by the source node; copy the data to be transmitted according to the multicast registration information and generate target data to be transmitted corresponding to each target node, wherein generating target data to be transmitted includes: modifying the source address in the header of the data to be transmitted to the multicast address, and modifying the destination address and transport layer connection parameters in the header of the data to be transmitted according to the first target address and the second transport layer connection information of each target node; and sending each target data to be transmitted to the corresponding target node.
[0056] The target node is used to receive the multicast address sent by the source node and return the first target address and the second transport layer connection information of the target node to the source node; it receives the target data to be transmitted sent by the forwarding device, generates a message packet according to the target data to be transmitted, and sends it to the forwarding device.
[0057] The forwarding device is also used to receive message packets returned by each target node, aggregate all received message packets to generate an aggregated message packet, and send the aggregated message packet to the source node;
[0058] The source node is also used to receive aggregated message packets returned by the forwarding device and determine the data transmission result based on the aggregated message packets.
[0059] To achieve the above objectives, a fifth aspect of this application provides a data transmission apparatus applied to a forwarding device, the apparatus comprising:
[0060] The multicast registration information receiving module is used to receive multicast registration information sent by the source node. The multicast registration information includes the multicast address, the first source address of the source node, the first transport layer connection information of the source node, the first target address of each target node associated with the multicast address, and the second transport layer connection information of each target node associated with the multicast address.
[0061] The configuration and transceiver module is used to send a configuration completion signal to the source node after completing the configuration of the multicast registration information, and to receive the data to be transmitted sent by the source node according to the configuration completion signal.
[0062] The data update module is used to copy the data to be transmitted according to the multicast registration information, modify the source address in the header of each copied data to be transmitted to the multicast address, and modify the destination address and transport layer connection parameters in the header of each data to be transmitted according to the first destination address and the second transport layer connection information of each target node, so as to generate target data to be transmitted corresponding to each target node.
[0063] The data forwarding module is used to send the data to be transmitted for each target to the corresponding target node.
[0064] The message aggregation module is used to receive message messages returned by each target node based on the received target data to be transmitted, aggregate all received message messages to generate an aggregated message message, and send the aggregated message message to the source node.
[0065] To achieve the above objectives, a fifth aspect of this application provides a computer-readable storage medium storing a plurality of instructions adapted for loading by a processor to execute the steps of the data transmission method provided in the first aspect, the second aspect, or the third aspect of this application.
[0066] To achieve the above objectives, a sixth aspect of this application provides a computer device, including a memory, a processor, and a computer program stored in the memory and capable of running on the processor. When the processor executes the computer program, it implements the steps of the data transmission method provided in the first aspect of this application, or the steps of the data transmission method provided in the second aspect, or the steps of the data transmission method provided in the third aspect.
[0067] To achieve the above objectives, one aspect of this application provides a computer program product, including a computer program or instructions, which, when executed by a processor, implement the steps of the data transmission method provided in the first aspect, the second aspect, or the third aspect of this application.
[0068] The data transmission method, apparatus, electronic device, and storage medium proposed in this application receive multicast registration information sent by a source node. The multicast registration information includes a multicast address, a first source address of the source node, first transport layer connection information of the source node, a first target address of each target node associated with the multicast address, and second transport layer connection information of each target node associated with the multicast address. After configuring the multicast registration information, a configuration completion signal is sent to the source node, and the data to be transmitted sent by the source node according to the configuration completion signal is received. The data to be transmitted is copied according to the multicast registration information, and each copy of the data to be transmitted is then processed as a message. The source address in the header is modified to a multicast address. Based on the first destination address and the second transport layer connection information of each target node, the destination address and transport layer connection parameters in the header of each piece of data to be transmitted are modified to the first destination address and the second transport layer connection information of the corresponding target node to generate target data to be transmitted corresponding to each target node. Each piece of target data to be transmitted is sent to the corresponding target node. The message packets returned by each target node based on the received target data to be transmitted are received. All received message packets are aggregated to generate an aggregated message packet, and the aggregated message packet is sent to the source node.
[0069] This application embodiment introduces a forwarding device with computing capabilities to participate in aggregated communication. This allows the source node to send the data to be transmitted only once in a one-to-many communication scenario. Furthermore, the forwarding device automatically forwards the data to multiple target nodes and dynamically rewrites the packet headers within the network based on the multicast registration information previously received from the source node. Thus, this application embodiment offloads the multiple data replication and distribution tasks previously undertaken by the source node to the switch, significantly reducing the consumption of computing resources within the source node and alleviating its burden. Simultaneously, since the same data only needs to be transmitted once on the same network path... This effectively avoids a large number of redundant and duplicate messages in the network link, thereby significantly saving network bandwidth and alleviating potential network congestion. In addition, the forwarding device can also intercept and aggregate the response message packets returned by all target nodes at the hardware level, and only reply to the source node with an aggregated message packet. This not only greatly reduces backhaul network traffic, but also achieves transparent multicast while being fully compatible with and without changing the semantics of the existing reliable connection (RDMARC). Finally, in one-to-many reliable communication scenarios, the embodiments of this application can effectively reduce the resource overhead of the source node and reduce the overall transmission latency of the cluster so that the aggregate communication can converge faster.
[0070] Other features and advantages of this application will be set forth in the following description and will be apparent in part from the description or may be learned by practicing the application. The objectives and other advantages of this application may be realized and obtained by means of the structures particularly pointed out in the description, claims and drawings. Attached Figure Description
[0071] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0072] Figure 1 This is a schematic diagram of the system framework corresponding to the data transmission method provided in the embodiments of this application;
[0073] Figure 2 This is a flowchart illustrating a data transmission method applied to the forwarding device side, as provided in an embodiment of this application.
[0074] Figure 3 This is a schematic diagram of a multicast forwarding table provided in an embodiment of this application;
[0075] Figure 4 This is an example of a response representation provided in this application.
[0076] Figure 5 This is a schematic diagram of data broadcasting using the data transmission method provided in an embodiment of this application;
[0077] Figure 6 This is a schematic diagram of the data response method provided in the embodiments of this application;
[0078] Figure 7 This is a flowchart illustrating a data transmission method applied to the source node side, as provided in an embodiment of this application.
[0079] Figure 8 This is a schematic diagram of the data flow during the preparation stage of the data transmission method provided in this application embodiment;
[0080] Figure 9 This is a schematic diagram of a data packet provided in an embodiment of this application;
[0081] Figure 10 This is a flowchart illustrating a data transmission method applied to the target node side provided in an embodiment of this application;
[0082] Figure 11 This is a schematic diagram of the module structure of a data transmission device applied to the forwarding device side according to an embodiment of this application;
[0083] Figure 12 This is a schematic diagram of the hardware structure of the electronic device provided in the embodiments of this application. Detailed Implementation
[0084] To enable those skilled in the art to better understand the solutions of this application, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0085] It should be noted that in each specific embodiment of this application, when it is necessary to obtain multicast registration information sent by the source node, permission or consent from the relevant personnel managing the source node will be obtained first. Furthermore, the collection, use, and processing of this obtained data will comply with relevant laws, regulations, and standards. In addition, when this application embodiment needs to obtain sensitive personal information of relevant personnel, separate permission or consent from the relevant personnel will be obtained through pop-ups or redirection to a confirmation page. Only after obtaining the separate permission or consent of the relevant personnel will the necessary multicast registration information for the normal operation of this application embodiment be obtained. Other data obtained in this application embodiment are all authorized and legal data, and will not be described in detail here.
[0086] This application can be used in a wide variety of general-purpose or special-purpose computer system environments or configurations. Examples include: personal computers, server computers, handheld or portable devices, tablet devices, multiprocessor systems, microprocessor-based systems, programmable consumer computer devices, minicomputers, mainframe computers, and distributed computing environments including any of the above systems or devices. This application can be described in the general context of computer-executable instructions executed by a computer, such as program modules. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform specific tasks or implement specific abstract data types. This application can also be practiced in distributed computing environments where tasks are performed by remote processing devices connected via a communication network. In distributed computing environments, program modules can reside in local and remote computer storage media, including storage devices.
[0087] The technical problems existing in the related technologies are as follows:
[0088] In various scenarios such as high-performance computing and large-scale artificial intelligence model training, reliable data transmission is essential for transferring data to corresponding computing nodes. With the continuous development of technology, massive amounts of data often need to be communicated between these computing nodes. Among related technologies, reliable connection modes within Remote Direct Memory Access (RDA) technology achieve reliable data transmission based on one-to-one connections between computing nodes.
[0089] However, in scenarios involving aggregated communication where the same data needs to be sent to multiple computing nodes, the source node can only establish independent RC connections with each target node and repeatedly copy the same data locally before sending it. This repeated transmission method not only consumes a significant amount of the source node's internal computing resources but also results in a large number of redundant duplicate packets in the network link, thereby increasing the overall transmission latency of the cluster. In other words, related technologies suffer from high source node resource overhead and excessively high overall cluster latency when dealing with one-to-many reliable aggregated communication.
[0090] For example, in large-scale distributed training tasks with hundreds of billions of parameters, each iteration requires synchronizing the latest gradient parameters or checkpoint data from the master node to all computing nodes. If the traditional one-to-one RC connection mechanism is used, the source node not only needs to allocate buffers in its local memory for hundreds or thousands of target nodes and perform multiple memory copy operations, causing its processor load to spike instantly and memory bandwidth to be ineffectively occupied, thus severely slowing down the computational efficiency of forward and backward propagation; at the same time, the network layer will form a traffic storm due to the repeated transmission of the same data packet thousands of times, which can easily cause switch port congestion, queue packet loss, or even network instability. This waste of resources and cumulative delay effect is even more serious when facing sudden elastic scaling or high-frequency parameter broadcasting requirements, often extending the collection communication operation that should be completed in milliseconds to seconds, directly causing a significant drop in the computing power utilization of the entire cluster, thus significantly increasing the overall completion time of the training task, making it difficult to support the urgent need for efficient collaborative operation of ultra-large-scale clusters in modern artificial intelligence.
[0091] The data transmission method, apparatus, electronic device, and storage medium proposed in this application receive multicast registration information sent by a source node. The multicast registration information includes a multicast address, a first source address of the source node, first transport layer connection information of the source node, a first target address of each target node associated with the multicast address, and second transport layer connection information of each target node associated with the multicast address. After configuring the multicast registration information, a configuration completion signal is sent to the source node, and the data to be transmitted sent by the source node according to the configuration completion signal is received. The data to be transmitted is copied according to the multicast registration information, and each copy of the data to be transmitted is then processed as a message. The source address in the header is modified to a multicast address. Based on the first destination address and the second transport layer connection information of each target node, the destination address and transport layer connection parameters in the header of each piece of data to be transmitted are modified to the first destination address and the second transport layer connection information of the corresponding target node to generate target data to be transmitted corresponding to each target node. Each piece of target data to be transmitted is sent to the corresponding target node. The message packets returned by each target node based on the received target data to be transmitted are received. All received message packets are aggregated to generate an aggregated message packet, and the aggregated message packet is sent to the source node.
[0092] This application embodiment introduces a forwarding device with computing capabilities to participate in aggregated communication. This allows the source node to send the data to be transmitted only once in a one-to-many communication scenario. Subsequently, the forwarding device automatically forwards the data to multiple target nodes and dynamically rewrites the packet headers within the network based on the multicast registration information previously received from the source node. Thus, this application embodiment offloads the data replication and distribution tasks previously undertaken by the source node to the switch, significantly reducing the consumption of computing resources within the source node and alleviating its burden. Simultaneously, since the same data only needs to be transmitted once on the same network path, it effectively avoids a large number of redundant and duplicate packets in the network link, thereby significantly saving network bandwidth and alleviating potential network congestion. Furthermore, the forwarding device can intercept and aggregate all response message packets returned by the target nodes at the hardware level, replying to the source node with only one aggregated message packet. This not only significantly reduces backhaul network traffic but also maintains full compatibility with and does not alter existing RDMA. Transparent multicast is achieved under the premise of RC semantics. Ultimately, the embodiments of this application can effectively reduce the resource overhead of the source node and reduce the overall transmission latency of the cluster in one-to-many reliable communication scenarios, so that the collective communication can converge faster.
[0093] The data transmission methods, apparatus, electronic devices, and storage media provided in the embodiments of this application will be described in detail below.
[0094] Please see Figure 1 , Figure 1 This is a schematic diagram of the system framework corresponding to the data transmission method provided in the embodiments of this application. The data transmission method provided in the embodiments of this application can be applied to this system framework, which includes multiple nodes 110 and forwarding devices 120, etc.
[0095] In this context, node 110 refers to a computing and data processing unit participating in aggregated communication (e.g., broadcast operations) within a high-performance computing or artificial intelligence cluster. Multiple nodes 110 are communicatively connected to the forwarding device 120 to participate in executing the data transmission method proposed in this embodiment. Each node 110 can be either a data initiator (source node) or a data receiver (target node). The role of each node 110 is determined by the task it is currently executing; that is, any node 110 can dynamically switch between being a data initiator and a data receiver during different communication cycles. Specific types of nodes 110 include, but are not limited to, graphics processing units (GPUs) and neural processing units (NPUs).
[0096] Furthermore, such as Figure 1 As shown, the number of nodes 110 connected to the forwarding device 120 is typically multiple (more than two). When one node 110 acts as the source node, it can form a multicast group with at least two other nodes 110. The source node sends data to be transmitted to the other nodes 110 through the forwarding device 120, and the data content of the data to be transmitted received by the other nodes 110 is the same. It should be noted that the number n of nodes 110 connected to the forwarding device 120 can be selected according to the actual situation, and this application embodiment does not impose any limitation on this. That is, when executing the data transmission method proposed in this application embodiment, the source node and at least one target node are determined from multiple nodes 110.
[0097] The source node is used to send multicast addresses to multiple target nodes and receive the first target address and second transport layer connection information returned by each target node; based on the first source address, first transport layer connection information, multicast address, first target address and second transport layer connection information of each target node, it generates multicast registration information and sends it to the forwarding device; after receiving the configuration completion signal returned by the forwarding device, it sends the data to be transmitted to the forwarding device.
[0098] The source node is also used to receive the aggregated message packets returned by the forwarding device and determine the data transmission result based on the aggregated message packets.
[0099] Furthermore, when a node 110 acts as the source node, it is responsible for determining the multicast address and collecting the RDMA RC transport layer information (including QPN, PSN, etc.) of each participating node 110, and then packaging and sending this information to the forwarding device 120 to complete the multicast registration. After entering the data transmission phase, the source node only needs to send the data to be transmitted once to the multicast address. Then, the source node will be responsible for receiving the unified aggregated message (including aggregated acknowledgment message and aggregated negation message) returned by the forwarding device 120 after aggregation processing, and judging the progress of data transmission based on this.
[0100] The forwarding device is used to receive multicast registration information sent by the source node and send a configuration completion signal to the source node after completing the configuration; receive data to be transmitted sent by the source node; copy the data to be transmitted according to the multicast registration information and generate target data to be transmitted corresponding to each target node. The generation of target data to be transmitted includes: modifying the source address in the header of the data to be transmitted to the multicast address, and modifying the destination address and transport layer connection parameters in the header of the data to be transmitted according to the first target address and the second transport layer connection information of each target node; and sending each target data to be transmitted to the corresponding target node.
[0101] The forwarding device is also used to receive message packets returned by each target node, aggregate all received message packets to generate an aggregated message packet, and send the aggregated message packet to the source node.
[0102] Furthermore, multiple nodes 110 and forwarding device 120 are communicatively connected. Forwarding device 120 can dynamically rewrite the packet headers (including key fields such as IP, QPN, and PSN) of the data to be transmitted to each target node according to its internally maintained multicast forwarding table. At the same time, it intercepts and aggregates message packets returned by all target nodes on the reverse link. The specific type of forwarding device 120 includes, but is not limited to, high-performance Ethernet switches with computing capabilities, smart network interface cards, programmable switches, and converged edge gateways and routers. It can be specifically selected according to the actual situation, and this application embodiment does not limit it. When a node 110, acting as the source node, needs to distribute the same data to all other nodes 110, the forwarding device 120 dynamically modifies the header of the data sent to each target node based on the multicast registration information previously received from the source node. It updates the destination IP address, destination MAC address, and RDMA transport layer parameters (such as QPN, PSN, virtual address, and Key) to the specific information of the corresponding target node. After header rewriting, the forwarding device 120 sends this target data to be transmitted from the designated port to the corresponding target node. Furthermore, in the reverse data path, the forwarding device 120 intercepts all message packets (such as ACK or NACK packets) replied by the target nodes and performs packet aggregation processing based on its internally maintained status records, ultimately replying to the source node with only one aggregated message packet. This hardware-level collaborative computing architecture allows the source node to transmit data only once on the same path, greatly offloading the source node's computational tasks, effectively reducing network load, and accelerating the convergence of aggregated communication.
[0103] The target node is used to receive the multicast address sent by the source node and return the first target address and the second transport layer connection information of the target node to the source node; it receives the target data to be transmitted sent by the forwarding device, generates a message packet based on the target data to be transmitted, and sends it to the forwarding device.
[0104] Furthermore, when a node 110 acts as the target node, it serves as both the data receiver and status feedback end for aggregated communication. During the data connection establishment phase, the target node participates in creating the communication domain. During data transmission, it receives the target data to be transmitted after the packet header is dynamically modified by the forwarding device 120. If the data corresponds to remote direct memory access write operation data, the received data is directly written to the local cache (e.g., written to a specified virtual address based on the RDMA Write mechanism) after the link information verification is completed. Finally, the target node will reply to the network side with a unicast acknowledgment message (ACK or NACK requesting retransmission) containing the reception status based on the actual data reception situation, which is then intercepted and status aggregated by the forwarding device 120.
[0105] The embodiments of this application can be applied to a variety of executable data transmission scenarios: The embodiments of this application can be applied to a variety of high-performance computing and aggregated communication acceleration scenarios: (1) Distributed training of large artificial intelligence models, for example, when the master node (such as MasterGPU) needs to broadcast the initial model weights or global parameter updates to multiple target GPU nodes participating in parallel training in the cluster, the switch automatically completes the copying of data packets, the dynamic rewriting of transport layer information and the aggregation of all message packets at the network layer, thereby greatly shortening the communication latency of model synchronization between nodes; (2) High-performance computing (HPC) cluster data distribution, for example, in large-scale physical simulation or weather forecasting tasks In the process, when the master computing node needs to send the same initial boundary conditions or massive basic data to multiple working computing nodes, the transparent multicast technology of the switch is used to replace the traditional one-to-one polling distribution of RDMA, which significantly reduces the computing burden and network bandwidth consumption of the source node; (3) Ultra-large-scale AI inference or distributed storage synchronization, for example, in the computing center, when the scheduling node needs to reliably synchronize the updated model file or key business data to multiple parallel computing nodes, the forwarding device uses hardware-level message aggregation processing to ensure that the efficient broadcast distribution of data is achieved with extremely low network congestion under the premise of being fully compatible with the existing RDMA reliable connection (RC) semantics.
[0106] The above are merely illustrative examples. The data transmission method proposed in this application can also be applied to other application scenarios. The application scenarios involved in this application are far more than those shown in the examples. The specific data transmission method proposed in this application can be selected according to the actual situation.
[0107] Having understood the data transmission system framework, the forwarding devices within that framework, and the general data processing flow of each node, the next step will be to describe it from the perspective of the data transmission devices applied to the forwarding device side, such as... Figure 2 As shown, Figure 2 This is a flowchart illustrating a data transmission method applied to a forwarding device, as provided in an embodiment of this application. The data transmission method is applied to a data transmission apparatus. Figure 2 The method may include, but is not limited to, the following steps 210 to 250. When the data transmission device executes the data transmission method, the specific process is as follows. It should be noted first that this embodiment... Figure 2 The order of steps 210 to 250 is not specifically limited. The order of steps can be adjusted or some steps can be reduced or added according to actual needs.
[0108] Step 210: Receive multicast registration information sent by the source node. The multicast registration information includes the multicast address, the first source address of the source node, the first transport layer connection information of the source node, the first destination address of each destination node associated with the multicast address, and the second transport layer connection information of each destination node associated with the multicast address.
[0109] Step 210 is described in detail below.
[0110] In some embodiments, before the source node officially sends the data to be transmitted, the forwarding device first determines the update and forwarding information of the data to be transmitted based on the multicast registration information sent by the source node. Here, the multicast address refers to the Internet Protocol address (IP address) that uniquely identifies the group of nodes currently participating in the multicast communication; different multicast groups have different multicast addresses. The first source address refers to the IP address or Media Access Control address (MAC address) of the source node. The first destination address refers to the IP address or MAC address corresponding to each destination node. The first transport layer connection information refers to the underlying state parameters required by the source node to establish a communication link in RDMA RC mode, and the second transport layer connection information refers to the underlying state parameters required by the destination node to establish a communication link in RDMA RC mode. The transport layer connection information (including the first and second transport layer connection information) includes, but is not limited to, queue key-value pairs (QPN), packet sequence numbers (PSN), etc. The specific parameters included in the transport layer connection information can be adjusted according to actual conditions. Different transport layer connection information sent will result in changes to the contents of the multicast forwarding table established internally by the forwarding device.
[0111] In some embodiments, the forwarding device establishes a multicast forwarding table and a response table based on the multicast registration information received from the source node, such as... Figure 3 As shown, Figure 3 This is a schematic diagram of a multicast forwarding table provided in an embodiment of this application. The multicast forwarding table records in detail the hardware port mappings and network connection status of all participating nodes in the current aggregated communication multicast group (including the source node initiating communication and multiple target nodes receiving data). Each entry in the multicast forwarding table includes the switch forwarding port, node type, IP address, and transport layer connection information corresponding to each node. In this embodiment, the transport layer connection information includes the QPN and PSN, which are required in RDMA RC mode. Figure 4 As shown, Figure 4This application provides an example of a response representation. When creating a multicast forwarding table, the forwarding device also creates a response table corresponding to the multicast forwarding table. The response table is used to determine the generation of aggregate message packets on the reverse link. Among them, last_ack_psn is used to record the PSN contained in the most recently successfully sent aggregate message packet to the source node by the forwarding device, ack_out_port represents the hardware sending port of the aggregate message packet (aggregate acknowledgment packet or aggregate negation packet) sent by the forwarding device to the source node, and nack_epsn is used to record the mapped expected retransmission sequence number (ePSN) contained in the most recently received aggregate negation packet from the target node. By maintaining the response table, the forwarding device can effectively intercept and traverse the response status of message packets of all target nodes, and thus generate an aggregate message packet to reply to the source node in a unified manner based on all response statuses. Thus, while fully complying with the existing RDMA RC protocol's "one request corresponds to one response" provision, the response storm problem in aggregate communication is effectively avoided.
[0112] Furthermore, a single source node can send multiple multicast registration messages to the forwarding device. Each multicast registration message corresponds to different multicast members (target nodes). The forwarding device can construct multicast forwarding tables and response tables based on the different multicast registration messages, and process the data to be transmitted according to the different tables during data broadcasting. In addition, a node can act as both a source node and a target node to receive data sent by other nodes.
[0113] Step 220: After completing the configuration of the multicast registration information, send a configuration completion signal to the source node and receive the data to be transmitted sent by the source node according to the configuration completion signal;
[0114] Step 220 is described in detail below.
[0115] In some embodiments, after constructing the multicast forwarding table and response table, the forwarding device sends a configuration completion signal to the source node. The configuration completion signal refers to a status confirmation instruction returned by the forwarding device to the source node that initiated the multicast communication during the handshake interaction phase between the source node and the forwarding device. This is done after the forwarding device receives the multicast registration information packaged and sent by the source node, and has successfully created and configured the multicast forwarding table containing the transport layer connection parameters of each target node, as well as the corresponding response table. Upon receiving this configuration completion signal, the source node can clearly know that the transparent multicast link at the network layer is fully ready, and can then smoothly switch from the control plane to the data plane, officially beginning to use the multicast group to send the actual broadcast data to be transmitted to each target node.
[0116] Furthermore, once the source node confirms successful multicast group registration and configuration, it enters the data transmission phase. Due to the application of the underlying multicast mechanism, the source node does not need to copy data individually for each target node and perform multiple round-robin transmissions in its local memory. Instead, it only sends the data to be transmitted once and forwards it to the forwarding device. This allows the forwarding device to subsequently update the data to be transmitted for each target node according to the multicast forwarding table, and then send the updated target data to the corresponding target node.
[0117] In step 230, the data to be transmitted is copied according to the multicast registration information, and the source address in the header of each copied data to be transmitted is modified to the multicast address. According to the first destination address and the second transport layer connection information of each target node, the destination address and transport layer connection parameters in the header of each data to be transmitted are modified to the first destination address and the second transport layer connection information of the corresponding target node, so as to generate target data to be transmitted corresponding to each target node.
[0118] Step 230 is described in detail below.
[0119] In some embodiments, the forwarding device first receives and parses the multicast registration information to determine the total number of data copies that need to be distributed. Then, it performs a complete copy or data block cloning of the original data to be transmitted in the underlying memory space or network card cache, laying the data foundation for subsequent customized message sending for each independent node.
[0120] In some embodiments, to ensure that each target node at the receiving end recognizes the data packet to be transmitted as legitimately sent from a one-to-one connection based on the standard RDMA RC protocol, the forwarding device must dynamically customize the packet header for each target node in the multicast forwarding table. Specifically, the forwarding device modifies the source address in the header of each copied data packet to the multicast address, modifies the source and destination addresses in the header of each copied data packet to the first destination address of the corresponding target node, and modifies the transport layer connection parameters in the header of each copied data packet to the second transport layer connection information (such as QPN and PSN) of the corresponding target node. Finally, it generates data packets that conform to the expectations of their independent RC connection for each target node, i.e., the target data to be transmitted.
[0121] Transport layer connection parameters refer to a series of key state variables and control information negotiated and maintained in real time by the two communicating ends in the transport layer (such as TCP or UDP) of the computer network protocol stack in order to establish, maintain, control and dismantle the end-to-end data transmission session. They are encapsulated in the header of the data packet and include, but are not limited to, QPN, PSN, etc.
[0122] In some embodiments, the forwarding device will adopt different update strategies for the data to be transmitted for different operation types. If it is a Remote Direct Memory Access Write (RDMA Write) operation, the multicast registration information also includes a virtual write address and write key allocated by each target node for receiving the data to be transmitted; generating target data to be transmitted corresponding to each target node includes:
[0123] (1.1) Based on the virtual write address and write key of each target node, modify the memory write address and access permission fields in the header of the data to be transmitted to generate target data to be transmitted corresponding to each target node.
[0124] In some embodiments, after receiving a data packet sent by the source node, the forwarding device parses the packet containing the data to be transmitted and obtains the opcode. The opcode is a specific field in the header of a network transport protocol packet, and its main function is to indicate the specific type of operation instruction contained in the current data packet at the receiving end, such as whether it is a regular send operation or a memory operation specific to Remote Direct Memory Access (RDMA). By extracting and identifying the opcode in the data to be transmitted, the forwarding device can accurately determine the specific network communication behavior that the source node expects to perform on the target node, thereby providing a precise basis for subsequent adoption of appropriate header modification strategies for different operation types (such as read or write).
[0125] Furthermore, when the forwarding device determines that the current operation is an RDMA Write operation by parsing the opcode, it indicates that the source node requests that data be directly written to a specific memory region of the target node without intervention from the target node's CPU. Based on this, the Virtual Address (VA) and the Key are obtained. The VA refers to the specific write location in the target node's memory specified by the source node when sending data. The Key is used to ensure the security of memory access, requiring the target node to pre-register the specific memory region and generate corresponding access authentication credentials. During the RDMA Write operation, only when a valid and matching Virtual Address and Key are included will the target node's network card allow the packet and execute the hardware-level direct write operation upon receiving it.
[0126] Furthermore, the VA and Key can be sent to the source node along with information such as the first target address during the registration phase. Therefore, the forwarding device can maintain the VA and Key in the multicast forwarding table. If they are not maintained in advance, the forwarding device needs to send a data acquisition request to the source node, and the source node will retrieve and return the data from the target node. This application embodiment does not restrict the acquisition method of VA and Key. However, it should be noted that in the RDMA Write operation, if the VA and Key are not packaged and sent to the target node, the data cannot be directly written to the specified location.
[0127] In some embodiments, under the specific scenario of RDMA Write, for each target node in the multicast group, in addition to replacing the source IP address in the header of the replicated packet with the multicast address and the destination IP address with the first target address of the target node, and updating the second transport layer connection information such as QPN and PSN, the forwarding device must also update or encapsulate the previously parsed VA and Key into the header of the data packet sent to the target node, so as to modify the memory write address and access permission fields in the header of the replicated packet, thereby generating the target data to be transmitted in accordance with the RDMA RC protocol write specification, thereby ensuring that the data packet can pass the network card authentication smoothly after arriving at each target node and be directly stored in the corresponding local cache area.
[0128] Understandably, this application is compatible with the core zero-copy direct memory access feature in RDMA RC. This mechanism ensures that during the collective communication process, massive amounts of data can be safely, accurately, and with low latency written to the specified memory areas of multiple target nodes simultaneously. At the same time, it further reduces the communication burden and participation of each computing node, significantly improving the end-to-end data distribution efficiency and system security of the computing power cluster in scenarios such as distributed training and high-performance computing.
[0129] In step 240, the data to be transmitted for each target is sent to the corresponding target node.
[0130] Step 240 is described in detail below.
[0131] In some embodiments, after rewriting the header of the data to be transmitted to each target node in step 230, the forwarding device transmits each target data to the corresponding target node through a specified forwarding port. Since each target data carries valid and precisely matched second transport layer connection information, each target node can successfully receive the target data. Furthermore, if the header of the returned target data contains a VA and a Key, the target node can securely store the valid data payload from the target data into its local receive buffer based on the VA and Key.
[0132] Furthermore, for ease of understanding, this application uses the data interaction between four GPUs (GPU1, GPU2, GPU3, and GPU4) and a forwarding device as an example, where GPU1 is the source node, GPU2, GPU3, and GPU4 are the target nodes, and GPU1, GPU2, GPU3, and GPU4 form a multicast group. For example, as shown... Figure 5 As shown, Figure 5 This is a data broadcasting diagram of the data transmission method provided in this application embodiment. The source node's GPU1 first sends its single copy of the data to be transmitted to the dedicated receiving port (Port 1) of the forwarding device through the uplink physical link. After the data packet enters the forwarding device, it is uniformly handed over to the core of the forwarding device for centralized scheduling and processing. The core of the forwarding device stores a multicast forwarding table and an acknowledgment table. Then, based on the multicast forwarding table, the core of the forwarding device performs a high-speed data packet copying operation in the underlying hardware and dynamically rewrites the header of the data to be transmitted to obtain the target data to be transmitted for each target node. Next, each target data to be transmitted is sent to each target node (GPU2, GPU3, and GPU4) in the communication domain through the corresponding forwarding ports (i.e., Port 2, Port 3, and Port 4), thus perfectly realizing a transparent data distribution process from single-point unicast input to multicast output within the network at the physical layer.
[0133] In step 250, the message packets returned by each target node based on the received target data to be transmitted are received, all received message packets are aggregated to generate an aggregated message packet, and the aggregated message packet is sent to the source node.
[0134] Step 250 is described in detail below.
[0135] In some embodiments, in the RDMA RC protocol specification, one send request can only correspond to one receive response. Therefore, the forwarding device acts as a response interception and processing agent on the reverse data link (the link from the target node to the source node). It receives the message packets independently replied by each target node, aggregates all the message packets according to the multicast forwarding table and the response table, and finally replies to the source node with only a single aggregated message packet, thereby realizing the closed loop of the entire aggregate communication data interaction.
[0136] For example, such as Figure 6 As shown, Figure 6This is a data response diagram of the data transmission method provided in this application embodiment. After completing data processing, the target nodes (GPU2, GPU3, and GPU4), as data receivers, will independently generate corresponding message packets (such as response packets representing successful reception or non-response packets representing abnormal packet loss) according to their actual reception status. These messages are then sent to the corresponding ports of the forwarding device (i.e., Port 2, Port 3, and Port 4 in the diagram) via the uplink physical link. These concurrent reverse status feedbacks enter the forwarding device and are then uniformly converged to the core of the forwarding device for interception and centralized processing. The core of the forwarding device will perform convergence evaluation and logical comparison of the local reception progress of multiple nodes based on the multicast forwarding table maintained internally. After the triggering conditions are met, an aggregated message packet is generated and sent back to the source node through the forwarding port Port 1.
[0137] It is understood that the embodiments of this application, by introducing forwarding devices with computing capabilities for hardware and software collaborative operation, break the technical limitations of the traditional RDMA reliable connection mode, which requires the source node to establish point-to-point connections one by one and repeatedly send data. Under the premise of fully compatibility with and maintenance of existing standard reliable communication semantics, the heavy tasks of multiple data copying, dynamic rewriting of message headers and aggregation of response status are completely offloaded to the network middleware, ensuring that the source node only needs to transmit the same data once, which greatly saves network bandwidth, avoids link congestion and reduces the overall data transmission latency of the cluster.
[0138] In some embodiments, the message returned by each target node to the forwarding device may be an acknowledgment message or a negative acknowledgment message. An acknowledgment message (ACK) is a positive acknowledgment feedback signal, indicating that a data packet with a specific sequence number has been successfully received by the corresponding target node. A negative acknowledgment message (NACK) is a negative error feedback signal, carrying key error correction indication information such as the packet sequence number (ePSN) that the target node currently expects to receive, designed to trigger a retransmission mechanism to ensure reliable data transmission.
[0139] In some embodiments, all received message messages are aggregated to generate an aggregated message message, including:
[0140] (2.1) When each received message is an acknowledgment message, the global reception progress of the data to be transmitted by each target node is determined according to the second transport layer connection information of each target node;
[0141] (2.2) When the global reception progress is updated relative to the previous aggregation confirmation progress, an aggregation confirmation message carrying the global reception progress is generated and the aggregation confirmation message is used as an aggregation message message.
[0142] First, let's introduce step (2.1):
[0143] In some embodiments, if every message packet received by the forwarding device is an acknowledgment message, it indicates that all target nodes in the current multicast group have successfully and completely received at least a portion of the data packets of the target data to be transmitted. In this case, the forwarding device determines the global reception progress of the data to be transmitted for each target node based on the second transport layer connection information of each target node. The specific steps are as follows:
[0144] In some embodiments, determining the global reception progress of the data to be transmitted for each target node based on the second transport layer connection information of each target node includes:
[0145] (2.1.1) Determine the initial node response sequence number corresponding to each target node based on the second transport layer connection information corresponding to each target node;
[0146] (2.1.2) Determine the update node response sequence number of each target node based on the message message returned by each target node;
[0147] (2.1.3) For each target node, determine the node reception progress of the target node based on the initial node response sequence number and the updated node response sequence number of the target node;
[0148] (2.1.4) Based on the node reception progress of each target node, determine the target response number that represents the slowest reception progress from all the update node response sequence numbers;
[0149] (2.1.5) Determine the global reception progress of the data to be transmitted for each target node based on the target response sequence number.
[0150] In some embodiments, if each received message is an acknowledgment message, the forwarding device first needs to read the current historical acknowledgment status (initial node response sequence number) of each data receiver from its internally maintained multicast forwarding table. The initial node response sequence number refers to the PSN corresponding to each target node initially recorded in the multicast forwarding table. Then, the updated node response sequence number is obtained by updating the corresponding initial node response sequence number according to the acknowledgment message of the target node received by the forwarding device. The updated response sequence number can directly replace the first initial response sequence number in the multicast forwarding table, or a new maintenance entry can be added to the multicast forwarding table.
[0151] Furthermore, by comparing or subtracting the updated node response sequence number from the previously saved initial node response sequence number, the actual data reception progress of the corresponding target node within the current time window is quantified. The node reception progress characterizes the data packet reception status of a single node, enabling the sender to independently and microscopically monitor the current data reception rate of each member in the multicast group.
[0152] Furthermore, in complex multi-point network communication, due to differences in the physical link quality, routing hop count, and processing capabilities of each node, uneven data reception progress is inevitable. The target acknowledgment number is the minimum value selected from the latest acknowledgment numbers of all legitimate nodes based on the "barrel effect." In other words, the target acknowledgment number represents the acknowledgment number with the slowest reception progress. Additionally, since the initial values of the QSN and PSN corresponding to each target node maintained in the multicast forwarding table are usually different, and numerical wraparound may occur due to the fixed field width, the "minimum" here does not refer to the absolute size of the exponential value but rather to a logical relative minimum. "Relative minimum" indicates that the sequence number of the currently acknowledged received data packet is the closest to its corresponding initial value. For example, if GPU2's acknowledgment message indicates ACK=202 (initial value 200), GPU3's acknowledgment message indicates ACK=103 (initial value 100), and GPU4's acknowledgment message indicates ACK=105 (initial value 100), then the target acknowledgment number in this example is 202.
[0153] Next, step (2.1.5) in step (2.1) will be described in detail:
[0154] In some embodiments, determining the global reception progress of the data to be transmitted for each target node based on the target response sequence number includes:
[0155] (A.1) Determine the first sequence number mapping relationship between the target node and the source node corresponding to the target response sequence number based on the multicast registration information;
[0156] (A.2) Determine the global reception progress of the data to be transmitted for each target node based on the mapping relationship between the target response sequence number and the first sequence number.
[0157] Furthermore, considering that the initial PSN values of each target node are usually inconsistent when establishing an RDMA RC connection, the forwarding device needs to uniformly convert and align the independent reception progress of each target node to the sequence number space of the source node. Specifically, the forwarding device extracts the pre-established first sequence number mapping relationship between the specific target node and the source node (e.g., the fixed logical difference or offset between their initial PSNs) based on the multicast registration information saved when the communication domain was established earlier. Then, the selected target acknowledgment sequence number is substituted into this mapping relationship for conversion to obtain the mapped target acknowledgment sequence number under the source node's PSN sequence number space. Subsequently, the global reception progress of each target node for the data to be transmitted is determined based on the mapped target acknowledgment sequence number. The global reception progress ensures that the subsequent acknowledgment progress fed back to the source node can be directly and correctly identified and matched by the source node's network interface card.
[0158] Next, we will introduce step (2.2):
[0159] In some embodiments, after obtaining the aligned global reception progress, the forwarding device compares it with the previously recorded global reception progress (i.e., the aggregation acknowledgment sequence number, last_ack_psn, of the last successful report to the source node). When the global reception progress is updated relative to the last aggregation acknowledgment progress, it proves that the overall reception progress of all target nodes in the multicast group has substantially advanced. At this time, an aggregation acknowledgment message carrying the global reception progress is generated and the aggregation acknowledgment message is used as an aggregation message message.
[0160] In some embodiments, generating an aggregated acknowledgment message carrying global reception progress includes:
[0161] (2.2.1) Use the multicast address as the second source address and the first source address as the second destination address;
[0162] (2.2.2) Generate an aggregated confirmation message based on the first transport layer connection information, the second source address, the second destination address and the global reception progress.
[0163] In some embodiments, during the generation of the reverse acknowledgment message, the multicast address is flipped and configured as the second source address in the reverse message header, while the first source address corresponding to the source node is set as the second destination address for receiving this acknowledgment message. Then, the configured second source address and second destination address are encapsulated in the network layer header of the message, the first transport layer connection information is written into the transport layer header to maintain the legitimacy of the end-to-end session, and finally, the global reception progress, representing the overall reception status of the group, is embedded in it as a key control field payload, thereby generating a unique aggregate acknowledgment message in a closed loop.
[0164] After receiving the aggregation confirmation message, the source node determines the corresponding RC queue based on the first transport layer connection information and modifies the data transmission progress of the corresponding RC queue according to the global reception progress.
[0165] Understandably, this application's embodiments introduce a message interception and state convergence mechanism based on the "barrel effect" at the underlying level of the forwarding device. This mechanism accurately transforms the massive number of independent message packets originally scattered across multiple target nodes into a unified global reception progress credential. This mechanism not only completely eliminates network congestion and response storms easily caused by concurrent responses from multiple nodes at the physical link level, greatly saving valuable reverse network bandwidth resources, but also remains transparent to both ends of the communication process, perfectly compatible with the one-to-one reliable transmission semantics of existing underlying protocols. This significantly reduces the system computational overhead of the source node in processing redundant acknowledgment packets, and improves the throughput and stability of the entire computing cluster when dealing with large-scale aggregated communication.
[0166] In some embodiments, the aggregation process for all received message messages to generate an aggregated message message further includes:
[0167] (3.1) When a negative acknowledgment message is present in the received message, the expected retransmission sequence number is extracted from the negative acknowledgment message;
[0168] (3.2) Based on the multicast registration information, the expected retransmission sequence number is mapped to the sequence number space of the source node, an aggregated negative message carrying the mapped expected retransmission sequence number is generated, and the aggregated negative message is used as an aggregated message.
[0169] In some embodiments, in a real cluster network environment, individual target nodes may fail to receive data due to network congestion or out-of-order data packets. If any message message containing a negative acknowledgment is received, the target node will reply with an aggregated negative message to the forwarding device and send the aggregated negative message back to the source node as an aggregated message.
[0170] Furthermore, if any negative acknowledgment message is received, the packet loss recovery logic is immediately triggered to accurately extract the expected retransmission sequence number from the negative acknowledgment message. The expected retransmission sequence number is the number of the data block that was not successfully received, which is clearly indicated by the receiver after discovering a data stream interruption. It represents the starting point of the data that the specific receiver urgently needs to recover.
[0171] Furthermore, after identifying the specific packet loss point, based on the multicast registration information, the extracted expected retransmission sequence number is mapped to the source node's sequence number space. This generates an aggregated negative message carrying the mapped expected retransmission sequence number, which is then used as the final aggregated negative message fed back to the source node. The aggregated negative message is a converged reverse error signaling that packages the underlying partial retransmission request into a single logical request, thereby demanding the missing data fragment from the source node.
[0172] It is understood that this application embodiment solves the response storm problem that source nodes are prone to encounter in one-to-many reliable multicast communication by designing differentiated intelligent aggregation and forwarding mechanisms for response and non-response packets on the forwarding device: when data transmission is smooth, the forwarding device automatically intercepts and converges massive numbers of successful acknowledgment packets at the hardware level, greatly saving reverse network bandwidth and reducing the processing overhead of the source node; at the same time, this application embodiment can also ensure that retransmission requests are accurately and promptly transmitted when the data packet transmission link is interrupted. Thus, this application embodiment achieves a highly available, low-latency hardware-level multicast response proxy while being fully compatible with the semantics of existing RDMA RC unicast protocols, significantly improving the overall transmission efficiency of computing power cluster communication networks.
[0173] In some embodiments, based on multicast registration information, the desired retransmission sequence number is mapped to the sequence number space of the source node, and an aggregated negative message carrying the mapped desired retransmission sequence number is generated, including:
[0174] (3.2.1) Determine the second sequence number mapping relationship between the target node and the source node corresponding to the negative acknowledgment message based on the multicast registration information, and determine the expected retransmission sequence number after mapping based on the expected retransmission sequence number and the second sequence number mapping relationship;
[0175] (3.2.2) Use the multicast address as the third source address and the first source address as the third destination address;
[0176] (3.2.3) Generate an aggregated negative message based on the first transport layer connection information, the third source address, the third destination address and the mapped expected retransmission sequence number.
[0177] In some embodiments, when the forwarding device intercepts a negative acknowledgment message indicating an abnormal data reception, it extracts the expected retransmission sequence number from it. The expected retransmission sequence number refers to the sequence number of the currently expected data packet, i.e., the ePSN, explicitly returned by the receiver when errors such as packet loss or out-of-order delivery occur, as specified in the RDMA protocol specification. Since the initial values of packet sequence numbers between the source node and different target nodes are usually offset, a second sequence number mapping relationship (i.e., a fixed logical difference in their sequence number spaces) needs to be determined between the specific target node and the source node to ensure the source node can accurately identify and respond to the retransmission request. Using this second sequence number mapping relationship, the forwarding device aligns the extracted expected retransmission sequence number to the sequence number field of the source node, thereby obtaining a mapped expected retransmission sequence number that the source node can directly recognize. The method for determining the second sequence number mapping relationship is similar to that of the first sequence number mapping relationship and will not be described again here.
[0178] Furthermore, after sequence number alignment, the forwarding device sets the multicast address as the third source address and the first source address of the source node as the third destination address. Based on the first transport layer connection information, the third source address, the third destination address, and the mapped expected retransmission sequence number, it generates an aggregated message. Thus, this embodiment addresses the local network packet loss and data out-of-order issues that are prone to occur in one-to-many reliable aggregated communication by introducing a transparent error proxy and sequence number mapping mechanism in the forwarding device. This allows for rapid interception and parsing of unacknowledged packets and generation of corresponding aggregated message packets. This eliminates the need for the source node to be aware of complex multicast topologies and underlying mapping differences; it can efficiently complete global data retransmission simply by following the error recovery logic of the standard unicast protocol. This significantly improves the communication robustness and anomaly recovery speed of the computing cluster under complex network conditions.
[0179] Next, we will describe it from the perspective of data transmission devices applied to the source node side, such as... Figure 7 As shown, Figure 7 This is a flowchart illustrating a data transmission method applied to the source node side, as provided in an embodiment of this application. The data transmission method is applied to a data transmission device. Figure 7 The method may include, but is not limited to, the following steps 710 to 740. When the data transmission device executes the data transmission method, the specific process is as follows. It should be noted first that this embodiment... Figure 2 The order of steps 710 to 740 is not specifically limited, and the order of steps can be adjusted or some steps can be reduced or added according to actual needs.
[0180] Step 710: Send multicast addresses to multiple target nodes and receive the first target address and second transport layer connection information returned by each target node based on the multicast address.
[0181] Step 710 is described in detail below.
[0182] In some embodiments, before formal data transmission, the source node uses pre-established out-of-band connections with each node to send a multicast address to the corresponding target node within the communication domain, and receives the first target address and second transport layer connection information returned by each target node. Here, an out-of-band connection refers to a control network channel, independent of the high-speed data forwarding plane and typically based on the traditional TCP / IP protocol stack. It is specifically used to securely and stably negotiate and exchange connection parameters of the underlying hardware during the handshake phase between the communicating parties, thereby avoiding resource occupation or interference with the core computing power network data channel. The first target address and second transport layer connection information returned by the target node based on the multicast address have been described in detail in steps 210 to 250, and will not be repeated here. Furthermore, other definitions identical to those described above will not be repeated hereafter.
[0183] For example, such as Figure 8 As shown, Figure 8 This is a schematic diagram of the data flow during the preparation stage of the data transmission method provided in this application embodiment. Figure 8 The dashed path in the diagram represents the establishment of an out-of-band connection between the source node GPU1 and the target nodes GPU2, GPU3, and GPU4. After GPU1 sends the pre-allocated multicast address to the current communication domain through the out-of-band connection, it collects the first target address and the second transport layer connection information returned by the target nodes GPU2, GPU3, and GPU4 within the multicast group. The second transport layer connection information includes, but is not limited to, QPN and PSN.
[0184] Step 720: Generate multicast registration information based on the first source address of the source node, the first transport layer connection information of the source node, the multicast address, the first destination address and the second transport layer connection information of each destination node, and send the multicast registration information to the forwarding device.
[0185] Step 720 is described in detail below.
[0186] In some embodiments, after collecting feedback information from the target nodes, the source node structurally binds its own network identity (i.e., the first source address), its own underlying connection parameters (i.e., the first transport layer connection information), multicast address, the first target address of each target node, and the second transport layer connection information to construct a complete multicast registration information. Subsequently, the source node sends this control message containing a many-to-one mapping relationship to the forwarding device, thereby driving the forwarding device to establish and maintain the corresponding multicast forwarding table and response table in the underlying hardware, laying the foundation for subsequent high-speed data distribution and response interception.
[0187] Furthermore, such as Figure 9 As shown, Figure 9 This is a schematic diagram of a data packet provided in an embodiment of this application. In order to send multicast registration information to the forwarding device, the source node first constructs a control header (HDR) and writes the opcode (which can represent registration, deregistration, etc.), a flag indicating the fragmentation status of the long packet, the multicast address (Group IP), and the total number of target nodes included in the current communication task (GPU Num) into the HDR. Subsequently, the source node concatenates the items in the multicast registration information collected in the previous interaction after the HDR to form the dedicated parameter blocks (GPU1 to GPUn) corresponding to each node in the multicast group. Taking the dedicated parameter block of GPU1 as an example, it encapsulates the first source address corresponding to GPU1 (source node), the first transport layer connection information of GPU1 (QPN1 and PSN1), and other parameters can be encapsulated according to the actual situation. Finally, in addition to this structured high-level payload, the source node further encapsulates the headers of standard Ethernet (ETH), Internet Protocol (IP), and User Datagram Protocol (UDP) and other underlying network communication protocols to ensure route reachability.
[0188] Step 730: After receiving the configuration completion signal returned by the forwarding device, send the data to be transmitted to the forwarding device so that the forwarding device can update the data to be transmitted according to the multicast registration information and obtain the target data to be transmitted to each target node.
[0189] Step 730 is described in detail below.
[0190] In some embodiments, once the source node learns that the forwarding device has been configured based on multicast registration information, it can send a single copy of the massive service payload (i.e., the data to be transmitted, such as gradient parameters in the training of a large AI model) to the forwarding device. Relying on the multicast registration information sent earlier, the forwarding device will automatically perform hardware-level replication of this single data packet within the network and dynamically rewrite the headers of each copy (such as IP address, QPN, PSN, etc.), thereby splitting the target data to be transmitted into data that conforms to the independent reception specifications of each target node, achieving a transparent communication effect of "one-time sending, multi-point delivery" for the source node.
[0191] For example, such as Figure 8 As shown, Figure 8 The solid line path in the diagram represents the source node GPU1 sending multicast registration information to the forwarding device through the forwarding port Port1, so that the forwarding device can build relevant entries based on the multicast registration information and return a configuration completion signal to GPU1 after completing the configuration.
[0192] Step 740: Receive the aggregated message returned by the forwarding device and determine the data transmission result based on the aggregated message. The aggregated response message is generated by the forwarding device based on the first transport layer connection information, the first source address, and the response message returned by each target node.
[0193] Step 740 is described in detail below.
[0194] In some embodiments, during the data transmission feedback cycle, the source node no longer needs to passively handle the massive number of independent message packets returned concurrently by multiple target nodes, but only needs to receive a single aggregated message packet generated by the forwarding device. Since this aggregated message packet strictly reuses the source node's first transport layer connection information and first source address in its format, the source node's network interface card can treat it as a reliable feedback of a standard unicast communication. The source node then obtains the data transmission result based on the globally unified acknowledgment sequence number or expected retransmission sequence number carried in the packet.
[0195] It is understood that the embodiments of this application, by forwarding and offloading the complex point-to-multipoint connection state maintenance and massive data replication work to the forwarding device on the network side, get rid of the extremely serious PCIe bandwidth bottleneck and CPU computing overhead in traditional star broadcast. At the same time, thanks to the reverse aggregation message mechanism, the source node always maintains a logically low-overhead "one-to-one" communication, which fundamentally immunizes against the response storm threat brought about by the expansion of cluster size. In this way, not only is the data throughput and memory processing efficiency of the source node greatly improved, but also a solid underlying network control panel is provided for building ultra-large-scale, low-latency high-performance distributed computing clusters.
[0196] In some embodiments, determining the data transmission result based on the aggregated message includes:
[0197] (4.1) If the aggregated message is an aggregated confirmation message, the first data transmission result is determined based on the aggregated confirmation message, wherein the first data transmission result indicates that the source node has successfully sent the data to be transmitted to each target node;
[0198] (4.2) If the aggregation message is an aggregation negative message, the second data transmission result is determined based on the aggregation negative message, wherein the second data transmission result indicates that the source node needs to retransmit at least part of the data to be transmitted.
[0199] In some embodiments, when a source node receives an aggregated message packet returned by a forwarding device, it parses the packet type and the underlying acknowledgment status. If the source node's network interface card (NIC) or communication driver identifies the packet as an aggregated response packet representing positive acknowledgment feedback, it determines the current actual transmission progress of the data to be transmitted based on the global acknowledgment sequence number in the aggregated response packet. The global acknowledgment sequence number indicates that all data packets before the corresponding sequence number have been successfully received by each target node in the multicast communication domain. Based on the global acknowledgment sequence number, the source node can securely release the corresponding data packet resources locally, freeing up underlying hardware space for subsequent continuous data distribution or computing tasks.
[0200] Furthermore, if the message is found to be an aggregation negative message indicating a negative anomaly, it indicates that during the previous data transmission process, data loss such as packet loss or out-of-order delivery occurred on the physical link or at some target receivers. Based on this, the source node determines the second data transmission result. This transmission result is essentially a hardware status flag that triggers the protocol error correction mechanism. It clearly warns the source node that successful reception with global consensus has not been achieved within the current multicast communication domain. At the same time, this result instructs the source node to follow the RDMA RC retransmission specification, accurately extract the missing data packets from the local unreleased transmission buffer according to the specific expected retransmission sequence number carried in the message, or rebroadcast all subsequent data packets from that sequence number (such as using the Go-back-N retransmission mechanism) until the state gap in the network is finally filled and a complete aggregation response is received.
[0201] It is understood that, by offloading the complex data distribution task of the source node to the forwarding device in the middle of the network, the source node initiating the aggregated communication only needs to face a single aggregated message to make a global decision on the transmission result. This design not only allows the source node to perfectly reuse the underlying hardware state machine of the existing unicast reliable transmission protocol when handling acknowledgments and retransmissions of large-scale multicast, greatly eliminating the computational resources and interruption overhead of the source node's CPU and network card in handling massive concurrent response messages, but also ensures the absolute data reliability and extremely fast error correction and recovery capabilities of the computing power cluster when conducting high-speed network communication by clearly distinguishing between global success (first data transmission result) and local anomaly (second data transmission result) decision-making mechanism.
[0202] In some embodiments, after determining the second data transmission result based on the aggregated negative message, the method further includes:
[0203] (4.2.1) Determine the expected retransmission sequence number after mapping based on the aggregated negative message;
[0204] (4.2.2) Determine at least one target data packet from the data to be transmitted based on the expected retransmission sequence number after mapping, and send at least one target data packet to the forwarding device.
[0205] In some embodiments, when the source node receives an aggregated negative message returned by the forwarding device, it retransmits data based on the aggregated negative message. The aggregated negative message is generated based on the NACK sent to the forwarding device by the target node that experienced packet loss or out-of-order delivery within the multicast group. The source node determines the data packets that need to be retransmitted by directly parsing the mapped expected retransmission sequence number from the aggregated negative message. The mapped expected retransmission sequence number is obtained by the forwarding device in advance by aligning the first expected retransmission sequence number initially sent by the corresponding target node with the multicast registration information issued by the source node.
[0206] Furthermore, after identifying the specific transmission breakpoint, the source node extracts the single data packet corresponding to the expected retransmission sequence number from the data to be transmitted, or a series of consecutive data packets containing the sequence number and its subsequent arrangement (i.e., at least one target data packet), based on the mapped expected retransmission sequence number. Subsequently, the source node retransmits these re-extracted target data packets along the original physical link to the forwarding device, which then continues to rely on the underlying multicast forwarding table to transparently and efficiently copy and distribute the retransmitted data to the target nodes within the communication domain, thereby filling the state gaps in the network.
[0207] It is understood that the embodiments of this application can perfectly reuse the underlying error correction state mechanism of the existing RDMA RC. The source node does not need to additionally perceive or maintain the independent and complex sequence number state of each target node, nor does it need to consume additional CPU and PCIe bandwidth resources to identify massive concurrent retransmission requests one by one. It only needs to perform a direct retransmission action based on a single and aligned mapping of the expected retransmission sequence number, just like handling one-to-one unicast anomalies. In this way, the embodiments of this application greatly reduce the logical processing burden of the network card and achieve extremely fast response to cluster data anomalies.
[0208] Next, we will describe it from the perspective of the data transmission devices applied to each target node, such as... Figure 10 As shown, Figure 10 This is a flowchart illustrating a data transmission method applied to the target node side, as provided in an embodiment of this application. The data transmission method is applied to a data transmission device. Figure 10 The method may include, but is not limited to, the following steps 1001 to 1003. When the data transmission device executes the data transmission method, the specific process is as follows. It should be noted that this embodiment... Figure 10 The order of steps 1001 to 1003 is not specifically limited. The order of steps can be adjusted or some steps can be reduced or added according to actual needs.
[0209] Step 1001: Receive the multicast address sent by the source node.
[0210] Step 1001 is described in detail below.
[0211] In some embodiments, the target node, acting as the data receiver, listens for and captures the connection establishment signaling from the initiator (source node) during the communication initialization phase. The multicast address is a network-global identifier pre-allocated by the source node at the logical level, used to divide multiple independent physical nodes participating in the same distributed computing or aggregated communication task into a unified transparent communication domain. By receiving this multicast address, the target node clearly understands on the control plane that it has been included in a specific data distribution group, and prepares for subsequently receiving data sent by the source node based on this multicast address.
[0212] Step 1002: Based on the multicast address, send the first target address and the second transport layer connection information of the target node to the source node, so that the source node can generate multicast registration information based on the multicast address, the first target address, the second transport layer connection information, the first source address of the source node, and the first transport layer connection information. The multicast registration information is used to enable the forwarding device to update the data to be transmitted sent by the source node to obtain the target data to be transmitted.
[0213] Step 1002 is described in detail below.
[0214] In some embodiments, after confirming joining the communication domain, the target node actively sends the corresponding underlying network configuration parameters to the source node via the out-of-band control link. Specifically, the first target address returned by the target node refers to its unicast network address (such as a physical IP address) that is actually routable within the physical network topology, while the second transport layer connection information includes key hardware parameters required by the target node's network card when establishing RDMA RC transmission, such as QPN and PSN. Then, the source node structurally fuses these target parameters with its local physical sending address (first source address) and the sending end's underlying network configuration parameters (first transport layer connection information) to generate multicast registration information and sends it to the forwarding device. This allows the forwarding device to construct a multicast forwarding table and a response table based on the multicast registration information, and to distribute the data to be transmitted and generate aggregated message packets based on the multicast forwarding table and the response table.
[0215] Step 1003: Receive the target data to be transmitted sent by the forwarding device, generate a message packet based on the target data to be transmitted, and send it to the forwarding device.
[0216] Step 1003 will be described in detail below.
[0217] In some embodiments, once the system officially enters the high-speed data plane transmission phase, the target node begins to continuously receive customized data payloads from the physical downlink, which have been copied and modified in the protocol header on the network side. The target data to be transmitted currently received by the target node has been rewritten in terms of format and transport layer parameters by the forwarding device, fully conforming to the one-to-one data transmission standard expected by the target node's network card. Therefore, the target node can write it to its local memory without being aware of it and with zero copying, or even directly.
[0218] Furthermore, the target node will independently generate corresponding message packets locally based on its actual data reception status (such as complete reception or packet loss and out-of-order delivery). The message packets include a response packet indicating success or a non-response packet indicating an anomaly. The target node will then send the message packets directly back to the forwarding device in the network along the reverse link, where they will be handed over to the device for subsequent global state interception, convergence, and proxy aggregation.
[0219] In addition, multiple multicast groups can broadcast data concurrently in the entire data transmission system. Different multicast groups use different Group IPs, but only one source GPU can send data in a multicast group at a time. If it is necessary to switch to other GPU members in the group to send data, a synchronization operation is required, assisted by out-of-band TCP. The new source GPU assigns the receiving PSN to the sending PSN, while the old source GPU assigns the sending PSN to the receiving PSN. After the synchronization is completed, the new sending source GPU can start broadcasting data.
[0220] It is understood that the embodiments of this application actively transmit the underlying physical information of the local network to the source node during the chain handshake phase, which effectively assists the source node and the forwarding device in building a highly transparent underlying multicast forwarding channel. At the same time, during the high-speed data reception and status feedback phase, the target node does not need to be aware of the complex multicast network topology or bear the additional burden of multi-node signaling parsing. It only needs to maintain a standard, lightweight one-to-one communication state to complete the reliable reception and confirmation of massive amounts of data.
[0221] In some embodiments, based on the multicast address, sending the first target address and second transport layer connection information of the target node to the source node includes:
[0222] (5.1) Based on the multicast address, allocate a virtual write address and a write key corresponding to the virtual write address for receiving remote direct memory access write operation data;
[0223] (5.2) Based on the multicast address, send the first target address, the second transport layer connection information, the virtual write address and the write key of the target node to the source node.
[0224] In some embodiments, after obtaining the multicast address, which serves as a global logical identifier, the target node, acting as the data receiver, also prepares for addressing and permission configuration in its local memory space. Specifically, based on the corresponding multicast address, the target node allocates a dedicated storage area in its underlying driver or network interface card (NIC) for receiving the data from this collective communication (e.g., gradient parameters in large model training), and generates a virtual write address exposed at the network layer, such as the target-end memory virtual address or Virtual Address in a Remote Direct Memory Access protocol. Simultaneously, to ensure the security of local memory and prevent data tampering and unauthorized writes, the target node also generates a write key corresponding to the virtual write address, such as the remote access credential rkey or Remote Key in an RDMA protocol. The virtual write address and write key serve as the necessary spatial addressing basis and secure authorization credentials for implementing Zero-copy direct memory writing without CPU intervention.
[0225] Furthermore, after completing the allocation and authorization mechanism of the local memory receiving area, the target node sends the virtual write address and write key, along with the target node's first target address and second transport layer connection information, to the source node. The reporting of these parameters allows the source node to fully grasp the complete underlying receiving credentials of all target nodes within the multicast domain across three dimensions: network addressing, transport layer channels, and direct memory access. Consequently, the source node can send these collected multi-node heterogeneous parameters, along with its own first source address and first transport layer connection information, as multicast registration information to the forwarding device for use in constructing relevant entries.
[0226] It is understood that this application's embodiments interact with the source node by using the virtual write address and write key as key dimensions of multicast registration information. Ultimately, this enables the forwarding device not only to perform surface-level network IP and transport layer QPN conversion, but also to delve into the protocol stack's underlying layers, dynamically rewriting addresses and replacing keys based on the heterogeneous memory physical layouts of different target nodes. This fundamentally ensures that the source node only needs to send a single RDMA Write data stream to transparently, legally, and securely achieve zero-copy data persistence across multiple nodes concurrently, without needing to be aware of the actual memory offsets and security verification mechanisms of each target node. While ensuring memory-level data security, this significantly improves the overall multicast communication throughput efficiency of the distributed computing power cluster.
[0227] like Figure 11 As shown, Figure 11 This is a schematic diagram of the module structure of a data transmission device applied to the forwarding device side according to an embodiment of this application. The data transmission device 1100 may include the following modules 1101 to 1105:
[0228] The multicast registration information receiving module 1101 is used to receive multicast registration information sent by the source node. The multicast registration information includes a multicast address, a first source address of the source node, a first transport layer connection information of the source node, a first target address of each target node associated with the multicast address, and a second transport layer connection information of each target node associated with the multicast address.
[0229] The configuration and transceiver module 1102 is used to send a configuration completion signal to the source node after completing the configuration of the multicast registration information, and to receive the data to be transmitted sent by the source node according to the configuration completion signal.
[0230] The data update module 1103 is used to copy the data to be transmitted according to the multicast registration information, modify the source address in the header of each copy of the data to be transmitted to the multicast address, and modify the destination address and transport layer connection parameters in the header of each copy of the data to be transmitted according to the first destination address and the second transport layer connection information of each target node, so as to generate target data to be transmitted corresponding to each target node.
[0231] The data forwarding module 1104 is used to send each target data to be transmitted to the corresponding target node.
[0232] The message aggregation module 1105 is used to receive message messages returned by each target node based on the received target data to be transmitted, aggregate all received message messages to generate an aggregated message message, and send the aggregated message message to the source node.
[0233] In some embodiments, when the data to be transmitted is remote direct memory access write operation data, the multicast registration information also includes a virtual write address and write key allocated by each target node for receiving the data to be transmitted; the data update module 1103 is used for:
[0234] Based on the virtual write address and write key of each target node, modify the memory write address and access permission fields in the header of the data to be transmitted.
[0235] In some embodiments, the message aggregation module 1105 is used for:
[0236] When each received message is an acknowledgment message, the global reception progress of the data to be transmitted by each target node is determined based on the second transport layer connection information of each target node.
[0237] When the global reception progress is updated relative to the previous aggregate confirmation progress, an aggregate confirmation message carrying the global reception progress is generated and used as the aggregate confirmation message.
[0238] In some embodiments, the message aggregation module 1105 is further configured to:
[0239] When a negative acknowledgment message is received, the expected retransmission sequence number is extracted from the negative acknowledgment message.
[0240] Based on the multicast registration information, the expected retransmission sequence number is mapped to the sequence number space of the source node, an aggregated negative message carrying the mapped expected retransmission sequence number is generated, and the aggregated negative message is used as an aggregated message message.
[0241] In some embodiments, the message aggregation module 1105 is further configured to:
[0242] Based on the second transport layer connection information corresponding to each target node, the initial node response sequence number corresponding to each target node is determined;
[0243] Based on the message packets returned by each target node, determine the update node response sequence number of each target node;
[0244] For each target node, the node reception progress is determined based on the initial node response sequence number and the updated node response sequence number of the target node.
[0245] Based on the node reception progress of each target node, determine the target response number that represents the slowest reception progress from all the updated node response numbers;
[0246] Based on the target response sequence number, determine the global reception progress of the data to be transmitted for each target node.
[0247] In some embodiments, the message aggregation module 1105 is further configured to:
[0248] Based on the multicast registration information, determine the first sequence number mapping relationship between the target node and the source node corresponding to the target response sequence number;
[0249] Based on the mapping relationship between the target response sequence number and the first sequence number, the global reception progress of the data to be transmitted by each target node is determined.
[0250] In some embodiments, the message aggregation module 1105 is further configured to:
[0251] Use the multicast address as the second source address and the first source address as the second destination address;
[0252] An aggregated acknowledgment message is generated based on the first transport layer connection information, the second source address, the second destination address, and the global reception progress.
[0253] In some embodiments, the message aggregation module 1105 is further configured to:
[0254] The second sequence number mapping relationship between the target node and the source node corresponding to the negative acknowledgment message is determined based on the multicast registration information, and the expected retransmission sequence number after mapping is determined based on the expected retransmission sequence number and the second sequence number mapping relationship.
[0255] Use the multicast address as the third source address and the first source address as the third destination address;
[0256] An aggregated negative message is generated based on the first transport layer connection information, the third source address, the third destination address, and the mapped expected retransmission sequence number.
[0257] In addition, the source node and the target node can also deploy corresponding data transmission devices according to the corresponding data transmission methods, which will not be elaborated here.
[0258] The data transmission method, apparatus, electronic device, and storage medium proposed in this application receive multicast registration information sent by a source node. The multicast registration information includes a multicast address, a first source address of the source node, first transport layer connection information of the source node, a first target address of each target node associated with the multicast address, and second transport layer connection information of each target node associated with the multicast address. After configuring the multicast registration information, a configuration completion signal is sent to the source node, and the data to be transmitted sent by the source node according to the configuration completion signal is received. The data to be transmitted is copied according to the multicast registration information, and each copy of the data to be transmitted is then processed as a message. The source address in the header is modified to a multicast address. Based on the first destination address and the second transport layer connection information of each target node, the destination address and transport layer connection parameters in the header of each piece of data to be transmitted are modified to the first destination address and the second transport layer connection information of the corresponding target node to generate target data to be transmitted corresponding to each target node. Each piece of target data to be transmitted is sent to the corresponding target node. The message packets returned by each target node based on the received target data to be transmitted are received. All received message packets are aggregated to generate an aggregated message packet, and the aggregated message packet is sent to the source node.
[0259] This application embodiment introduces a forwarding device with computing capabilities to participate in aggregated communication. This allows the source node to send the data to be transmitted only once in a one-to-many communication scenario. Subsequently, the forwarding device automatically forwards the data to multiple target nodes and dynamically rewrites the packet headers within the network based on the multicast registration information previously received from the source node. Thus, this application embodiment offloads the data replication and distribution tasks previously undertaken by the source node to the switch, significantly reducing the consumption of computing resources within the source node and alleviating its burden. Simultaneously, since the same data only needs to be transmitted once on the same network path, it effectively avoids a large number of redundant and duplicate packets in the network link, thereby significantly saving network bandwidth and alleviating potential network congestion. Furthermore, the forwarding device can intercept and aggregate all response message packets returned by the target nodes at the hardware level, replying to the source node with only one aggregated message packet. This not only significantly reduces backhaul network traffic but also maintains full compatibility with and does not alter existing RDMA. Transparent multicast is achieved under the premise of RC semantics. Ultimately, the embodiments of this application can effectively reduce the resource overhead of the source node and reduce the overall transmission latency of the cluster in one-to-many reliable communication scenarios, so that the collective communication can converge faster.
[0260] like Figure 12 As shown, Figure 12 This is a schematic diagram of the hardware structure of an electronic device provided in an embodiment of this application. The electronic device includes:
[0261] The processor 1201 can be implemented using a general-purpose CPU, a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits, and is used to execute relevant programs to implement the technical solutions provided in the embodiments of this application.
[0262] The memory 1202 can be implemented as a read-only memory (ROM), a static storage device, a dynamic storage device, or a random access memory (RAM). The memory 1202 can store the operating system and other applications. When the technical solutions provided in the embodiments of this specification are implemented through software or firmware, the relevant program code is stored in the memory 1202 and is called and executed by the processor 1201 using the data transmission method of the embodiments of this application.
[0263] The input / output interface 1203 is used to implement information input and output;
[0264] The communication interface 1204 is used to enable communication and interaction between this device and other devices. Communication can be achieved through wired means (such as USB, network cable, etc.) or wireless means (such as mobile network, WIFI, Bluetooth, etc.).
[0265] Bus 1205 transmits information between various components of the device (e.g., processor 1201, memory 1202, input / output interface 1203, and communication interface 1204);
[0266] The processor 1201, memory 1202, input / output interface 1203 and communication interface 1204 are connected to each other within the device via bus 1205.
[0267] This application also provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the above-described data transmission method.
[0268] Memory, as a non-transitory computer-readable storage medium, can be used to store non-transitory software programs and non-transitory computer-executable programs. Furthermore, memory may include high-speed random access memory, and may also include non-transitory memory, such as at least one disk storage device, flash memory device, or other non-transitory solid-state storage device. In some embodiments, memory may optionally include memory remotely located relative to the processor, and these remote memories can be connected to the processor via a network. Examples of such networks include, but are not limited to, the Internet, intranets, local area networks, mobile communication networks, and combinations thereof.
[0269] The data transmission method, apparatus, electronic device, and storage medium proposed in this application receive multicast registration information sent by a source node. The multicast registration information includes a multicast address, a first source address of the source node, first transport layer connection information of the source node, a first target address of each target node associated with the multicast address, and second transport layer connection information of each target node associated with the multicast address. After configuring the multicast registration information, a configuration completion signal is sent to the source node, and the data to be transmitted sent by the source node according to the configuration completion signal is received. The data to be transmitted is copied according to the multicast registration information, and each copy of the data to be transmitted is then processed as a message. The source address in the header is modified to a multicast address. Based on the first destination address and the second transport layer connection information of each target node, the destination address and transport layer connection parameters in the header of each piece of data to be transmitted are modified to the first destination address and the second transport layer connection information of the corresponding target node to generate target data to be transmitted corresponding to each target node. Each piece of target data to be transmitted is sent to the corresponding target node. The message packets returned by each target node based on the received target data to be transmitted are received. All received message packets are aggregated to generate an aggregated message packet, and the aggregated message packet is sent to the source node.
[0270] This application embodiment introduces a forwarding device with computing capabilities to participate in aggregated communication. This allows the source node to send the data to be transmitted only once in a one-to-many communication scenario. Subsequently, the forwarding device automatically forwards the data to multiple target nodes and dynamically rewrites the packet headers within the network based on the multicast registration information previously received from the source node. Thus, this application embodiment offloads the data replication and distribution tasks previously undertaken by the source node to the switch, significantly reducing the consumption of computing resources within the source node and alleviating its burden. Simultaneously, since the same data only needs to be transmitted once on the same network path, it effectively avoids a large number of redundant and duplicate packets in the network link, thereby significantly saving network bandwidth and alleviating potential network congestion. Furthermore, the forwarding device can intercept and aggregate all response message packets returned by the target nodes at the hardware level, replying to the source node with only one aggregated message packet. This not only significantly reduces backhaul network traffic but also maintains full compatibility with and does not alter existing RDMA. Transparent multicast is achieved under the premise of RC semantics. Ultimately, the embodiments of this application can effectively reduce the resource overhead of the source node and reduce the overall transmission latency of the cluster in one-to-many reliable communication scenarios, so that the collective communication can converge faster.
[0271] The embodiments described in this application are for the purpose of more clearly illustrating the technical solutions of the embodiments of this application, and do not constitute a limitation on the technical solutions provided by the embodiments of this application. As those skilled in the art will know, with the evolution of technology and the emergence of new application scenarios, the technical solutions provided by the embodiments of this application are also applicable to similar technical problems.
[0272] Those skilled in the art will understand that the technical solutions shown in the figures do not constitute a limitation on the embodiments of this application, and may include more or fewer steps than shown, or combine certain steps, or different steps.
[0273] The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs.
[0274] Those skilled in the art will understand that all or some of the steps in the methods disclosed above, as well as the functional modules / units in the systems and devices, can be implemented as software, firmware, hardware, or suitable combinations thereof.
[0275] The terms “first,” “second,” “third,” “fourth,” etc. (if present) in the specification and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of this application described herein can be implemented in orders other than those illustrated or described herein. Furthermore, the terms “comprising” and “having,” and any variations thereof, are intended to cover non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.
[0276] It should be understood that in this application, "at least one (item)" means one or more, and "more than" means two or more. "And / or" is used to describe the relationship between related objects, indicating that three relationships can exist. For example, "A and / or B" can represent three cases: only A exists, only B exists, and both A and B exist simultaneously, where A and B can be singular or plural. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship. "At least one (item) of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one (item) of a, b, or c can represent: a, b, c, "a and b", "a and c", "b and c", or "a and b and c", where a, b, and c can be single or multiple.
[0277] In the several embodiments provided in this application, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of the units described above is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.
[0278] The units described above as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0279] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0280] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes multiple instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods of the various embodiments of this application. The aforementioned storage medium includes various media capable of storing programs, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0281] The preferred embodiments of the present application have been described above with reference to the accompanying drawings, but this does not limit the scope of the claims of the present application. Any modifications, equivalent substitutions, and improvements made by those skilled in the art without departing from the scope and substance of the embodiments of the present application shall be within the scope of the claims of the present application.
Claims
1. A data transmission method, characterized in that, Applied to a forwarding device, the method includes: Receive multicast registration information sent by the source node, the multicast registration information including multicast address, first source address of the source node, first transport layer connection information of the source node, first target address of each target node associated with the multicast address, and second transport layer connection information of each target node associated with the multicast address; After completing the configuration of the multicast registration information, a configuration completion signal is sent to the source node, and the data to be transmitted is sent by the source node according to the configuration completion signal. According to the multicast registration information, the data to be transmitted is copied, and the source address in the header of each copied data to be transmitted is modified to the multicast address. According to the first target address and the second transport layer connection information of each target node, the destination address and transport layer connection parameters in the header of each data to be transmitted are modified to the first target address and the second transport layer connection information of the corresponding target node, so as to generate target data to be transmitted corresponding to each target node. Each of the target data to be transmitted is sent to the corresponding target node; The system receives message packets returned by each target node based on the received target data to be transmitted, aggregates all received message packets to generate an aggregated message packet, and sends the aggregated message packet to the source node. The step of aggregating all received message messages to generate an aggregated message message includes: When a negative acknowledgment message is received, the expected retransmission sequence number is extracted from the negative acknowledgment message. Based on the multicast registration information, determine the second sequence number mapping relationship between the target node and the source node corresponding to the negative acknowledgment message; According to the second sequence number mapping relationship, the expected retransmission sequence number is mapped to the sequence number space of the source node, an aggregated negative message carrying the mapped expected retransmission sequence number is generated, and the aggregated negative message is used as the aggregated message message.
2. The data transmission method according to claim 1, characterized in that, All received message messages are aggregated to generate an aggregated message message, including: When each of the received message packets is an acknowledgment message, the global reception progress of each target node for the data to be transmitted is determined based on the second transport layer connection information of each target node. When the global reception progress is updated relative to the previous aggregate confirmation progress, an aggregate confirmation message carrying the global reception progress is generated, and the aggregate confirmation message is used as the aggregate message message.
3. The data transmission method according to claim 2, characterized in that, The step of determining the global reception progress of the data to be transmitted for each target node based on the second transport layer connection information of each target node includes: Based on the second transport layer connection information corresponding to each target node, the initial node response sequence number corresponding to each target node is determined; Based on the message returned by each target node, determine the update node response sequence number of each target node; For each target node, the node reception progress of the target node is determined based on the initial node response sequence number and the updated node response sequence number of the target node. Based on the node reception progress of each target node, determine the target response sequence number that represents the slowest reception progress from all the updated node response sequence numbers; Based on the target response sequence number, determine the global reception progress of each target node for the data to be transmitted.
4. The data transmission method according to claim 3, characterized in that, The step of determining the global reception progress of each target node for the data to be transmitted based on the target response sequence number includes: Based on the multicast registration information, a first sequence number mapping relationship is determined between the target node corresponding to the target response sequence number and the source node; Based on the mapping relationship between the target response sequence number and the first sequence number, the global reception progress of each target node for the data to be transmitted is determined.
5. The data transmission method according to claim 2, characterized in that, The generation of the aggregated acknowledgment message carrying the global reception progress includes: Use the multicast address as the second source address and the first source address as the second destination address; An aggregated confirmation message is generated based on the first transport layer connection information, the second source address, the second destination address, and the global reception progress.
6. The data transmission method according to claim 1, characterized in that, The step of mapping the desired retransmission sequence number to the sequence number space of the source node based on the multicast registration information, and generating an aggregated negative message carrying the mapped desired retransmission sequence number, includes: The second sequence number mapping relationship between the target node and the source node corresponding to the negative acknowledgment message is determined based on the multicast registration information, and the expected retransmission sequence number after mapping is determined based on the expected retransmission sequence number and the second sequence number mapping relationship. The multicast address is used as the third source address, and the first source address is used as the third destination address; An aggregated negative message is generated based on the first transport layer connection information, the third source address, the third destination address, and the mapped expected retransmission sequence number.
7. The data transmission method according to claim 1, characterized in that, When the data to be transmitted is remote direct memory access write operation data, the multicast registration information also includes a virtual write address and write key allocated to each target node for receiving the data to be transmitted; The generation of target data to be transmitted, corresponding to each of the target nodes, includes: Based on the virtual write address and write key of each target node, the memory write address and access permission fields in the header of the data to be transmitted are modified respectively to generate target data to be transmitted corresponding to each target node.
8. A data transmission method, characterized in that, Applied to the source node, the method includes: Send multicast addresses to multiple target nodes, and receive a first target address and a second transport layer connection information returned by each target node based on the multicast address; Based on the first source address of the source node, the first transport layer connection information of the source node, the multicast address, the first target address and the second transport layer connection information of each target node, multicast registration information is generated and sent to the forwarding device. After receiving the configuration completion signal returned by the forwarding device, the data to be transmitted is sent to the forwarding device so that the forwarding device updates the data to be transmitted according to the multicast registration information to obtain the target data to be transmitted to each target node. The system receives the aggregated message returned by the forwarding device and determines the data transmission result based on the aggregated message, wherein the aggregated message is generated by the forwarding device based on the first transport layer connection information, the first source address, and the message returned by each target node. Wherein, when a negative acknowledgment message exists in the message packet, the aggregated message packet is an aggregated negative message carrying a mapped expected retransmission sequence number. The mapped expected retransmission sequence number is generated by mapping the expected retransmission sequence number to the sequence number space of the source node according to the second sequence number mapping relationship between the target node corresponding to the negative acknowledgment message and the source node determined by the multicast registration information. The expected retransmission sequence number is extracted from the negative acknowledgment message.
9. The data transmission method according to claim 8, characterized in that, Determining the data transmission result based on the aggregated message includes: If the aggregated message is an aggregated confirmation message, a first data transmission result is determined based on the aggregated confirmation message, wherein the first data transmission result indicates that the source node has successfully sent the data to be transmitted to each of the target nodes; If the aggregated message is an aggregated negative message, a second data transmission result is determined based on the aggregated negative message, wherein the second data transmission result indicates that the source node needs to retransmit at least part of the data to be transmitted.
10. The data transmission method according to claim 9, characterized in that, After determining the second data transmission result based on the aggregated negative message, the method further includes: The expected retransmission sequence number after mapping is determined based on the aggregated negative message; Based on the expected retransmission sequence number after mapping, at least one target data packet is determined from the data to be transmitted, and the at least one target data packet is sent to the forwarding device.
11. A data transmission method, characterized in that, Applied to the target node, the method includes: Receive the multicast address sent by the source node; According to the multicast address, the first target address and the second transport layer connection information of the target node are sent to the source node, so that the source node generates multicast registration information based on the multicast address, the first target address, the second transport layer connection information, the first source address and the first transport layer connection information of the source node. The multicast registration information is used to enable the forwarding device to update the data to be transmitted sent by the source node to obtain the target data to be transmitted. Receive the target data to be transmitted sent by the forwarding device, generate a message packet based on the target data to be transmitted, and send it to the forwarding device; When a negative acknowledgment message exists in the message packet, the aggregated message packet is an aggregated negative message carrying a mapped expected retransmission sequence number. The mapped expected retransmission sequence number is generated by mapping the expected retransmission sequence number to the sequence number space of the source node based on the second sequence number mapping relationship between the target node and the source node corresponding to the negative acknowledgment message determined by the multicast registration information. The expected retransmission sequence number is extracted from the negative acknowledgment message.
12. The data transmission method according to claim 11, characterized in that, The step of sending the first target address and second transport layer connection information of the target node to the source node according to the multicast address includes: Based on the multicast address, a virtual write address and a write key corresponding to the virtual write address are allocated for receiving remote direct memory access write operation data. Based on the multicast address, the first target address of the target node, the second transport layer connection information, the virtual write address, and the write key are sent to the source node.
13. A data transmission system, characterized in that, Includes a forwarding device, a source node, and at least one target node; The source node is used to send multicast addresses to multiple target nodes and receive a first target address and a second transport layer connection information returned by each target node; Based on the first source address of the source node, the first transport layer connection information, the multicast address, the first target address of each target node, and the second transport layer connection information, multicast registration information is generated and sent to the forwarding device; after receiving the configuration completion signal returned by the forwarding device, the data to be transmitted is sent to the forwarding device. The forwarding device is used to receive the multicast registration information sent by the source node, and send the configuration completion signal to the source node after completing the configuration; and to receive the data to be transmitted sent by the source node. Based on the multicast registration information, the data to be transmitted is copied and target data to be transmitted corresponding to each of the target nodes is generated. Generating the target data to be transmitted includes: modifying the source address in the header of the data to be transmitted to the multicast address; and modifying the destination address and transport layer connection parameters in the header of the data to be transmitted according to the first target address and the second transport layer connection information of each target node; and sending each target data to be transmitted to its corresponding target node. The target node is used to receive the multicast address sent by the source node, and return the first target address and the second transport layer connection information of the target node to the source node; receive the target data to be transmitted sent by the forwarding device, generate a message packet according to the target data to be transmitted, and send it to the forwarding device; The forwarding device is further configured to receive message packets returned by each target node, aggregate all received message packets to generate an aggregated message packet, and send the aggregated message packet to the source node. When a negative acknowledgment message exists in the message packet, the aggregated message packet is an aggregated negative message carrying a mapped expected retransmission sequence number. The mapped expected retransmission sequence number is generated by mapping the expected retransmission sequence number to the sequence number space of the source node based on the second sequence number mapping relationship between the target node corresponding to the negative acknowledgment message and the source node, as determined by the multicast registration information. The expected retransmission sequence number is extracted from the negative acknowledgment message. The source node is also used to receive the aggregated message returned by the forwarding device and determine the data transmission result based on the aggregated message.
14. A data transmission device, characterized in that, Applied to a forwarding device, the apparatus includes: The multicast registration information receiving module is used to receive multicast registration information sent by the source node. The multicast registration information includes a multicast address, a first source address of the source node, a first transport layer connection information of the source node, a first target address of each target node associated with the multicast address, and a second transport layer connection information of each target node associated with the multicast address. The configuration and transceiver module is used to send a configuration completion signal to the source node after completing the configuration of the multicast registration information, and to receive the data to be transmitted sent by the source node according to the configuration completion signal; The data update module is used to copy the data to be transmitted according to the multicast registration information, modify the source address in the header of each copied data to be transmitted to the multicast address, and modify the destination address and transport layer connection parameters in the header of each data to be transmitted according to the first target address and the second transport layer connection information of each target node, so as to generate target data to be transmitted corresponding to each target node. The data forwarding module is used to send each of the target data to be transmitted to the corresponding target node; The message aggregation module is used to receive message messages returned by each target node based on the received target data to be transmitted, aggregate all received message messages to generate an aggregated message message, and send the aggregated message message to the source node. The step of aggregating all received message messages to generate an aggregated message message includes: When a negative acknowledgment message is received, the expected retransmission sequence number is extracted from the negative acknowledgment message. Based on the multicast registration information, determine the second sequence number mapping relationship between the target node and the source node corresponding to the negative acknowledgment message; According to the second sequence number mapping relationship, the expected retransmission sequence number is mapped to the sequence number space of the source node, an aggregated negative message carrying the mapped expected retransmission sequence number is generated, and the aggregated negative message is used as the aggregated message message.
15. An electronic device, characterized in that, The electronic device includes a memory and a processor. The memory stores a computer program. When the processor executes the computer program, it implements the data transmission method according to any one of claims 1 to 7, or the data transmission method according to any one of claims 8 to 10, or the data transmission method according to any one of claims 11 to 12.
16. A computer-readable storage medium storing a computer program, characterized in that, When the computer program is executed by the processor, it implements the data transmission method according to any one of claims 1 to 7, or the data transmission method according to any one of claims 8 to 10, or the data transmission method according to any one of claims 11 to 12.
Citation Information
Patent Citations
Method and device for realizing reliable multicast of RDMA network, storage medium and equipment
CN115442318A