Data transmission method and system, electronic equipment, storage medium and program product

By adopting a tree-structured data transmission method in network computing, a retransmission request is generated and sent along the tree structure when an anomaly is detected, which solves the problems of high latency and low retransmission efficiency in traditional collective communication operations, realizes an efficient and fast retransmission process, and reduces network latency and switch costs.

CN120785481APending Publication Date: 2025-10-14BEIJING ZITIAO NETWORK TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202511107061.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-08-07
Publication Date
2025-10-14

AI Technical Summary

Technical Problem

Traditional collective communication operations suffer from high latency and low retransmission efficiency, especially in network computing. The point-to-point reliable transmission mechanism leads to increased switch costs and reduced concurrency, while the root switch retransmission mechanism is inefficient and cannot be applied to the push mode.

Method used

A tree-structured data transmission method is used. When the first node detects an anomaly, it generates a retransmission request and sends it along the tree structure to related nodes for retransmission. This avoids sending the anomaly information to the root switch. Only related nodes participate in the retransmission. This method is applicable to both Pull and Push methods.

Benefits of technology

It improves retransmission efficiency, reduces network latency, lowers switch costs, is applicable to multiple communication modes, and improves network performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120785481A_ABST
    Figure CN120785481A_ABST
Patent Text Reader

Abstract

The invention discloses a data transmission method and system, electronic equipment, a storage medium and a program product, and relates to the technical field of computer networks, and the method comprises the following steps: detecting a first transmission message sent by a second node to a first node along a tree structure; if it is determined that the first transmission message is abnormal, generating a first retransmission request for the first transmission message; sending the first retransmission request to a second node corresponding to the first transmission message along the tree structure, so that the second node generates a first retransmission message corresponding to the first transmission message based on the first retransmission request; and receiving a first retransmission message sent by the second node along the tree structure. According to the scheme, when the first node detects that the message is abnormal, the first node can initiate retransmission, and only the second node related to the first transmission message participates in retransmission, so that the first transmission message can be retransmitted efficiently and quickly, the retransmission efficiency is improved, the retransmission time is shortened, and the time delay of the network is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present disclosure relates to the technical field of computer network, in particular to a data transmission method, system, electronic device, storage medium and program product. BACKGROUND

[0002] There are many collective communication operations in artificial intelligence scenarios such as large language model scenarios, and the efficiency of the collective communication operations has a significant impact on the entire computing task. Traditional collective communication operations have the disadvantages of high latency and high processor computing overhead, while in-network computing (INC) has the advantages of low latency, reduced data transmission volume, and offloading computing to the network, which can improve the communication efficiency and performance of the collective communication operations.

[0003] Since in-network computing is a special many-to-many communication mode, a reliable transmission mechanism is needed to ensure the reliability of data transmission. The reliable transmission mechanism generally includes a point-to-point reliable transmission mechanism and a root switch retransmission mechanism. For the point-to-point reliable transmission mechanism, a network device such as a switch needs to cache a message that has been sent in a sending buffer until an acknowledgment (ACK) of the message is received, and then the buffer can be released. The expensive buffer will lead to an increase in the cost of the network device such as the switch, and due to the resource occupation of the buffer, the number of concurrent groups (i.e., a group of child nodes performing a collective communication operation) that the network device such as the switch can support is reduced. For the root switch retransmission mechanism, when a packet is lost, the lost information needs to be forwarded to the root switch, and then the root switch reinitiates the entire read request to all child nodes, which leads to low efficiency of retransmission. SUMMARY

[0004] Therefore, the present disclosure provides a data transmission method, system, electronic device, storage medium and program product to solve the problem of low retransmission efficiency.

[0005] In a first aspect, the present disclosure provides a data transmission method applied to uplink communication of a first node, the method comprising: detecting a first transmission message sent by a second node to the first node along a tree structure, the tree structure being generated based on recursive paths between nodes; if it is determined that the first transmission message has an abnormality, generating a first retransmission request for the first transmission message, the first retransmission request comprising retransmission information for the first transmission message; sending the first retransmission request to the second node corresponding to the first transmission message along the tree structure, so that the second node generates a first retransmission message corresponding to the first transmission message based on the first retransmission request; and receiving the first retransmission message sent by the second node along the tree structure.

[0006] In a second aspect, the present disclosure provides a data transmission method applied to uplink communication of a second node, the method comprising: receiving a first retransmission request for a first transmission packet sent by a first node along a tree structure, the first retransmission request comprising retransmission information for the first transmission packet, the tree structure being generated based on recursive paths between nodes; if the second node does not have packet retransmission data corresponding to the first retransmission request, broadcasting the first retransmission request downward along the tree structure to each first leaf node corresponding to the second node, so that each first leaf node sends packet retransmission data corresponding to the first retransmission request to the second node; processing each packet retransmission data to generate a first retransmission packet corresponding to the first retransmission request; and sending the first retransmission packet along the tree structure to the first node.

[0007] In a third aspect, the present disclosure provides a data transmission method applied to downlink communication of a first node, the method further comprising: receiving a second retransmission request for a second transmission packet sent by a second node along a tree structure, the second retransmission request comprising retransmission information for the second transmission packet, the tree structure being generated based on recursive paths between nodes; analyzing the second retransmission request to determine a second retransmission packet corresponding to the second retransmission request; and sending the second retransmission packet along the tree structure to the second node.

[0008] In a fourth aspect, the present disclosure provides a data transmission method applied to downlink communication of a second node, the method comprising: detecting a second transmission packet sent by a first node to the second node along a tree structure, the tree structure being generated based on recursive paths between nodes; if it is determined that the second transmission packet has an abnormality, generating a second retransmission request for the second transmission packet and sending the second retransmission request along the tree structure to the first node, so that the first node sends a second retransmission packet corresponding to the second transmission packet based on the second retransmission request; and receiving the second retransmission packet sent by the first node along the tree structure.

[0009] In a fifth aspect, the present disclosure provides a data transmission system, comprising: a first node configured to detect a first transmission packet sent by a second node along a tree structure, or send a second transmission packet to the second node along the tree structure, the tree structure being generated based on recursive paths between nodes; and at least one second node in communication with the first node, configured to receive a first retransmission request for the first transmission packet sent by the first node along the tree structure, and send a first retransmission packet corresponding to the first retransmission request along the tree structure to the first node, or detect whether the second transmission packet has an abnormality, and when the second transmission packet has an abnormality, send a second retransmission request for the second transmission packet along the tree structure to the first node so that the first node sends a second retransmission packet corresponding to the second retransmission request.

[0010] In a sixth aspect, the present disclosure provides an electronic device, comprising a memory and a processor, which are communicatively connected with each other, the memory stores computer instructions, and the processor executes the data transmission method of any one of the embodiments of the first aspect or the second aspect by executing the computer instructions.

[0011] In a seventh aspect, the present disclosure provides a computer readable storage medium, which stores computer instructions, and the computer instructions are used to make a computer execute the data transmission method of any one of the embodiments of the first aspect or the second aspect or the third aspect or the fourth aspect.

[0012] In an eighth aspect, the present disclosure provides a computer program product, which comprises computer instructions, and the computer instructions are used to make a computer execute the data transmission method of any one of the embodiments of the first aspect or the second aspect or the third aspect or the fourth aspect.

[0013] The data transmission method provided by the embodiments of the present disclosure, if the first node determines that the first transmission packet is abnormal, the first retransmission request for the first transmission packet is generated and sent to the second node corresponding to the first transmission packet along the tree structure, and after the second node receives the first retransmission request, the first retransmission packet of the first transmission packet is generated based on the first retransmission request and sent to the first node along the tree structure. In this scheme, when the first node detects the packet exception, it can initiate retransmission and only the second node related to the first transmission packet can participate in the retransmission, without sending the packet exception information to the root switch to initiate retransmission by the root switch, and without retransmission by all the second nodes in the tree structure, avoiding unnecessary participation of the second node in retransmission, realizing relatively efficient and rapid retransmission of the first transmission packet, improving the efficiency of retransmission, speeding up the time of retransmission, and reducing the time delay of the network. BRIEF DESCRIPTION OF DRAWINGS

[0014] In order to more clearly illustrate the technical solutions in the specific embodiments or related art of the present disclosure, the drawings needed to be used in the specific embodiments or related art description will be briefly introduced. Obviously, the drawings in the following description are some embodiments of the present disclosure, and those skilled in the art can also obtain other drawings according to these drawings without creative labor.

[0015] Figure 1 is a schematic diagram of collective communication operation in in-web computing;

[0016] Figure 2 is a schematic diagram of the uplink stage in in-web computing;

[0017] Figure 3 is a schematic diagram of the downlink stage in in-web computing;

[0018] Figure 4 is an uplink phase retransmission schematic diagram of a point-to-point reliable transmission mechanism;

[0019] Figure 5 is a network topology schematic diagram expressed in a tree structure according to an embodiment of the present disclosure;

[0020] Figure 6 is a schematic diagram of a data transmission method according to an embodiment of the present disclosure;

[0021] Figure 7 is a schematic diagram of another data transmission method according to an embodiment of the present disclosure;

[0022] Figure 8 is a schematic diagram of yet another data transmission method according to an embodiment of the present disclosure;

[0023] Figure 9 is an uplink phase retransmission schematic diagram according to an embodiment of the present disclosure;

[0024] Figure 10 is a schematic diagram of still another data transmission method according to an embodiment of the present disclosure;

[0025] Figure 11 is a schematic diagram of a data transmission method according to an embodiment of the present disclosure;

[0026] Figure 12 is a downlink phase retransmission schematic diagram according to an embodiment of the present disclosure;

[0027] Figure 13 is a structural block diagram of a data transmission device according to an embodiment of the present disclosure;

[0028] Figure 14 is a structural block diagram of another data transmission device according to an embodiment of the present disclosure;

[0029] Figure 15 is a structural block diagram of yet another data transmission device according to an embodiment of the present disclosure;

[0030] Figure 16 is a structural block diagram of still another data transmission device according to an embodiment of the present disclosure;

[0031] Figure 17 is a hardware structure schematic diagram of an electronic device according to an embodiment of the present disclosure. DETAILED DESCRIPTION

[0032] In order to make the purposes, technical solutions and advantages of the embodiments of the present disclosure clearer, the technical solutions in the embodiments of the present disclosure will be described clearly and completely below with reference to the drawings in the embodiments of the present disclosure. Obviously, the described embodiments are part of the embodiments of the present disclosure, rather than all the embodiments. Based on the embodiments in the present disclosure, all other embodiments obtained by a person skilled in the art without creative work fall within the protection scope of the present disclosure.

[0033] It can be understood that, before using the technical solutions disclosed in the embodiments of the present disclosure, the type, use range, use scenario and the like of the personal information involved in the present disclosure should be informed to the user and the authorization of the user should be obtained through appropriate means according to relevant laws and regulations.

[0034] For example, in response to receiving the active request of the user, prompt information is sent to the user to explicitly prompt the user that the operation requested to be performed will need to obtain and use the personal information of the user. Thus, the user can autonomously select whether to provide the personal information to the software or hardware such as an electronic device, an application program, a server or a storage medium performing the operation of the technical solution of the present disclosure according to the prompt information.

[0035] As an optional but non-limiting implementation manner, in response to receiving the active request of the user, the manner of sending the prompt information to the user may, for example, be a pop-up window manner, and the prompt information may be presented in the form of text in the pop-up window. In addition, the pop-up window may also carry a selection control for the user to select “agree” or “disagree” to provide the personal information to the electronic device.

[0036] It can be understood that the above notification and user authorization process is only illustrative, and does not limit the implementation manner of the present disclosure, and other manners meeting the relevant laws and regulations can also be applied to the implementation manner of the present disclosure.

[0037] It can be understood that the data (including but not limited to the data itself, the acquisition or use of the data) involved in the present technical solution should comply with the requirements of the relevant laws and regulations and the relevant provisions.

[0038] There are many collective communication operations in artificial intelligence scenarios such as large language model scenarios, and the efficiency of the collective communication operations has a significant impact on the entire computing task. Traditional collective communication operations have disadvantages such as high latency and the need for processor computing overhead. Figure 1The in-network computing has the advantages of low latency, reduced amount of data transmission, and offloading computation to the network, which can improve the communication efficiency and performance of the collective communication operation. The basic principle of the in-network computing is to offload the collective communication operation to the network by means of the central position of the network in the topology, so as to reduce the amount of data communication and computation among multiple nodes, and then reduce the completion time, save the network bandwidth, and reduce the amount of computation of the processor. The collective communication operations supported by the in-network computing currently include Reduce, AllReduce, Barrier, Broadcast, Reduce Scatter, and AllGather, etc.

[0039] If there are multiple network devices supporting INC in the network, such as switches, the in-network computing service is usually provided in the form of a tree structure. The following takes the AllReduce operation as an example to introduce the process of accelerating the collective communication operation by the in-network computing technology. As shown in Figure 2 As shown in the uplink phase diagram of the in-network computing, leaf node 0, leaf node 1, leaf node 2, and leaf node 3 send the packets (hereinafter referred to as collective data packets) carrying the input (i.e., collective data) of the collective communication operation to the root switch. In the process of sending to the root switch, the switches along the way, such as switch 1, perform aggregation calculation on the collective data packets sent by leaf node 0 and leaf node 1 and send the aggregation result to the root switch, and switch 2 performs aggregation calculation on the collective data packets sent by leaf node 2 and leaf node 3 and sends the aggregation result to the root switch. As shown in Figure 3 As shown in the downlink phase diagram of the in-network computing, the root switch completes the aggregation of the collective data packets received by it, and then broadcasts the packets (hereinafter referred to as collective result packets) carrying the output (i.e., collective result) of the collective communication operation to leaf node 0, leaf node 1, leaf node 2, and leaf node 3 along the tree structure. As can be seen, INC is a special many-to-many communication mode, which needs to use a reliable transmission mechanism to ensure the reliability of data transmission. The reliable transmission mechanism generally includes a point-to-point reliable transmission mechanism and a root switch retransmission mechanism.

[0040] For the point-to-point reliable transmission mechanism, any two nodes (switches or leaf nodes) in the tree structure use a point-to-point packet retransmission mechanism. If a node detects a packet loss, the last hop node of the node is responsible for retransmission. As shown in Figure 4As shown, when the collective data packet sent by switch 1 to switch 3 is lost, switch 1 retransmits the lost collective data packet to switch 3 after receiving a negative acknowledgment (NAK) packet sent by switch 3. Since the sender switch, such as switch 1 in Figure 4 , needs to retransmit the packet, the sender switch needs to reserve a large-capacity sending buffer for buffering the sent packet, so that the original packet can be found from the buffer for retransmission when the packet is lost. That is, the sent packet needs to be buffered in the sending buffer until an acknowledgment (ACK) of the packet is received, and the expensive buffer will lead to an increase in the cost of the switch, and the number of concurrent groups (i.e., a group of leaf nodes performing a collective communication operation) supported by the switch is reduced due to the resource occupation of the buffer (each group needs to occupy a certain amount of buffer resources).

[0041] For the root switch retransmission mechanism, the lost information needs to be forwarded to the root switch when the packet is lost, and the root switch reinitiates the entire read request to all leaf nodes, which leads to a low efficiency of retransmission, and the mechanism is only applicable to the pull mode (Pull mode) and cannot be applied to the more popular push mode (Push mode). Further, the Push mode and the Pull mode are two modes for obtaining the collective data packet. The Push mode is a mode in which the node pushes the collective data packet to the switch by using remote direct memory access (RDMA) write (Write), which can achieve lower latency; the Pull mode is a mode in which the root switch pulls the collective data packet to the node by using RDMA read (Read), which actively flows to better utilize the buffer, but leads to a longer latency overhead.

[0042] Therefore, in the technical scheme, when the first node determines that the first transmission packet is abnormal, the first retransmission request for the first transmission packet is generated and sent to the second node corresponding to the first transmission packet along the tree structure. After receiving the first retransmission request, the second node generates the first retransmission packet of the first transmission packet based on the first retransmission request and sends the first retransmission packet to the first node along the tree structure. In this scheme, when the first node detects that the packet is abnormal, the first node can initiate retransmission and only the second node related to the first transmission packet can participate in the retransmission, without the need to send the packet abnormal information to the root switch to initiate retransmission by the root switch, and without the need to retransmit by all the second nodes in the tree structure, avoiding unnecessary participation of the second nodes in retransmission, realizing relatively efficient and rapid retransmission of the first transmission packet, improving the efficiency of retransmission, speeding up the time of retransmission, and reducing the time delay of the network.

[0043] It should be understood that in the technical scheme, when packet loss occurs, the packet loss information does not need to be sent to the root node of the tree structure, and the root node of the tree structure does not need to initiate retransmission. Therefore, the data transmission method of the technical scheme can be applied not only to the Pull mode but also to the Push mode.

[0044] As an optional application scenario of the embodiments of the present disclosure, as shown in Figure 5 is a network topology diagram represented by a tree structure. The tree structure includes a root node, intermediate nodes, and leaf nodes. The root node and the leaf nodes can include multiple levels of intermediate nodes, and are not limited to Figure 5 The tree structure shown in the figure, and the root node, the intermediate node and the leaf node can communicate with each other. It should be understood that the non-leaf nodes in the tree structure, i.e. the root node and the intermediate node, can be network devices such as switches, routers, network cards, network bridges, hubs, and repeaters. The leaf node can be a terminal device such as various types of processors or physical servers, and of course, the leaf node can also be a process actually participating in communication. The various types of processors can be general-purpose graphics processing units (GPGPU), CPUs, etc. Moreover, in order to reduce the cost of network devices such as switches, the network devices corresponding to the root node and the intermediate node in the present disclosure do not set a buffer to store the transmitted transmission packet, but the various types of processors, physical servers, or processes actually participating in communication corresponding to the leaf node can have a buffer, which will not cause the cost to increase due to the setting of the buffer.

[0045] During the communication between the root node, the intermediate node, and the leaf node, if packet loss occurs, packet retransmission is needed. For example, as Figure 5As shown, it is assumed that the second node sends a first transmission packet to the first node along the tree structure. The first node detects the first transmission packet sent by the second node, and if it is determined that the first transmission packet is abnormal, a first retransmission request for the first transmission packet is generated and sent to the second node corresponding to the first transmission packet along the tree structure; if the second node does not have packet retransmission data corresponding to the first retransmission request, the second node broadcasts the first retransmission request to each first leaf node corresponding to the second node along the tree structure; each first leaf node sends packet retransmission data corresponding to the first retransmission request to the second node along the tree structure; the second node receives the packet retransmission data corresponding to the first retransmission request sent by each first leaf node, processes each packet retransmission data, generates a first retransmission packet corresponding to the first retransmission request, and sends the first retransmission packet to the first node along the tree structure.

[0046] According to the embodiments of the present disclosure, a data transmission method is provided. It should be noted that the steps shown in the flowchart can be executed in a computer system such as a set of computer executable instructions, and although the logical order is shown in the flowchart, in some cases, the steps shown or described herein can be executed in a different order.

[0047] In this embodiment, a data transmission method is provided, which can be used for uplink communication of a first node, Figure 6 is a flowchart of a data transmission method according to an embodiment of the present disclosure, as Figure 6 shown, the flow includes the following steps:

[0048] Step S601, detecting a first transmission packet sent by a second node to a first node along a tree structure, the tree structure being generated based on recursive paths between nodes.

[0049] For the tree structure, please refer to the foregoing description, which will not be repeated here. In addition, it should be understood that the tree structure provided by the present disclosure can provide in-network computing services for collective communication operations.

[0050] The first node and the second node can be devices participating in in-network computing in the tree structure. The first node can be Figure 5 the root node of the tree structure as shown, or can be an intermediate node of the tree structure; the second node is a node in communication with the first node, and the second node can be a leaf node in the tree structure, or can be an intermediate node of the tree structure. The number of second nodes can be one or more.

[0051] If the second node sends the transmission message to the first node, it can be referred to as the uplink phase of network communication; if the first node sends the transmission message to the second node, it can be referred to as the downlink phase of network communication. It should be noted that if the second node is not a leaf node of the tree structure, after the second node sends the first transmission message to the first node, the second node discards the first transmission message, that is, the second node does not set a buffer to store the first transmission message, which can reduce the device cost of the second node; if the second node is a leaf node of the tree structure, the second node can set a buffer to store the first transmission message.

[0052] The first transmission message can be an information unit for data transmission between the first node and the second node, which can include specific service data such as sensor data, instructions, state information, identification information such as a message sequence number, a sender address / recipient address, and verification information such as a checksum, a cyclic redundancy check (CRC) code, and the like. When the second node is a leaf node of the tree structure, the second transmission message sent by the second node to the first node can be an aggregated transmission message.

[0053] Here, the first node can detect whether the first transmission message sent by the second node is abnormal based on the continuity of the sequence number, the timeout detection based on the acknowledgement mechanism, the integrity verification based on the checksum / CRC, the sliding window protocol based on the window mechanism, and the like.

[0054] In step S602, if it is determined that the first transmission message is abnormal, a first retransmission request for the first transmission message is generated, and the first retransmission request includes retransmission information for the first transmission message.

[0055] The first transmission message abnormality can be message loss or out-of-order, or message format error or content abnormality, and the like. When the first transmission message is abnormal, the first transmission message needs to be retransmitted.

[0056] The first retransmission request can be a message sent by the message recipient (such as the first node) to the message sender (such as the second node) when the message recipient determines that the first transmission message is abnormal, which is a message requesting the message sender to resend the first transmission message. The first retransmission request can be a NAK message or a selective acknowledgement (SACK) message, and can be further determined based on the communication protocol corresponding to the tree structure, which is not limited in the present disclosure.

[0057] As a specific example, if the first node determines that the first transmission packet is abnormal, the first node can parse the first transmission packet to extract a key identifier in the first transmission packet, such as a packet sequence number of the first transmission packet, and encapsulate the key identifier to generate the first retransmission request. For the first retransmission request, the packet sequence number in the first retransmission request is the retransmission information.

[0058] At step S603, the first retransmission request is sent to a second node corresponding to the first transmission packet along the tree structure, so that the second node generates a first retransmission packet corresponding to the first transmission packet based on the first retransmission request.

[0059] Here, if the second node is not a leaf node of the tree structure, the first node can directly send the first retransmission request to the second node; if the second node is a leaf node of the tree structure, the first node can broadcast the first retransmission request to the second node along the tree structure. It should be understood that the second node is the node that sends the first transmission packet to the first node at this time.

[0060] If the second node is a leaf node of the tree structure, the second node can send the first retransmission packet corresponding to the first transmission packet to the first node when receiving the first retransmission request. If the second node is not a leaf node of the tree structure, since it does not have the first retransmission packet corresponding to the first transmission packet itself, it can continue to send a retransmission request to its next hop node to generate the first retransmission packet corresponding to the first transmission packet again.

[0061] At step S604, the first retransmission packet sent by the second node along the tree structure is received.

[0062] After receiving the first retransmission packet sent by the second node, the first node can continue to detect the first retransmission packet to determine whether the first retransmission packet is abnormal; if there is still an abnormality, steps S602 to S604 can be continuously executed; if there is no abnormality and the first node is a root node, the first node can aggregate the first retransmission packet with other transmission packets received by the first node and broadcast the aggregation result to nodes in the tree structure along the tree structure; if there is no abnormality and the first node is not a root node, the first node can aggregate the first retransmission packet with other transmission packets received by the first node and send the aggregation result to its previous hop node along the tree structure.

[0063] The data transmission method provided by the embodiment can be used for uplink communication of the first node, and the first node can initiate retransmission when detecting packet abnormality and can only involve the second node related to the first transmission packet in retransmission, without sending packet abnormality information to the root switch to initiate retransmission by the root switch, or retransmitting by all second nodes in the tree structure, thereby avoiding unnecessary involvement of the second node in retransmission, achieving relatively efficient and rapid retransmission of the first transmission packet, improving the retransmission efficiency, speeding up the retransmission time, and reducing the network latency.

[0064] In the embodiment, a data transmission method is provided, which can be used for uplink communication of a first node, Figure 7 The flowchart of the data transmission method according to the embodiment of the present disclosure is shown in FIG. 7, which includes the following steps: Figure 7

[0065] Step S701, detecting a first transmission packet sent by a second node to a first node along a tree structure, the tree structure being generated based on recursive paths between nodes. For details, refer to step S601 of the embodiment shown in FIG. 6, which will not be repeated here. Figure 6

[0066] Step S702, if it is determined that the first transmission packet is abnormal, generating a first retransmission request for the first transmission packet, the first retransmission request including retransmission information for the first transmission packet.

[0067] Specifically, the above step S702 includes:

[0068] Step S7021, obtaining a first connection identifier between the first node and the second node.

[0069] The first connection identifier is an identifier for uniquely identifying a specific connection between the first node and the second node, which is used to accurately locate and distinguish the communication link between the two nodes in a complex network environment, to ensure that data transmission, state management, retransmission control and other operations can be accurately associated with the corresponding connection. As a specific example, the first connection identifier between the first node and the second node can be an expected packet sequence number (ePSN) maintained by the first node.

[0070] Step S7022, obtaining a first packet identifier corresponding to the first transmission packet.

[0071] ​​The first message identifier is used to uniquely identify the identification information of the first transmission message, which is used to accurately locate, distinguish and track a specific transmission message in the communication process, so as to ensure that the sender, receiver or intermediate node can accurately identify the identity of the message, so as to perform data verification, retransmission control, state management and other operations. As a specific example, the first message identifier can be the packet sequence number (PSN) of the first transmission message.

[0072] In step S7023, if the first connection identifier does not match the first message identifier, it is determined that the first transmission message is abnormal.

[0073] If the first connection identifier does not match the first message identifier, it indicates that the first transmission message received by the first node is not the expected transmission message, so it can be determined that the first transmission message is abnormal; if the first connection identifier matches the first message identifier, it indicates that the first transmission message received by the first node is the expected transmission message, so it can be determined that the first transmission message is not abnormal. For example, the first message identifier of the first transmission message is 4, and the first connection identifier maintained by the first node is 3, obviously the first message identifier does not match the first connection identifier, so it is determined that the first transmission message is abnormal. For another example, the first message identifier of the first transmission message is 4, and the first connection identifier maintained by the first node is 4, obviously the first message identifier matches the first connection identifier, so it is determined that the first transmission message is not abnormal.

[0074] In step S7024, a first retransmission request for the first transmission message is generated. For details, please refer to Figure 6 The step S602 of the embodiment shown in the figure will not be repeated here.

[0075] In step S703, the first retransmission request is sent to the second node corresponding to the first transmission message along the tree structure, so that the second node generates a first retransmission message corresponding to the first transmission message based on the first retransmission request. For details, please refer to Figure 6 The step S603 of the embodiment shown in the figure will not be repeated here.

[0076] In step S704, the first retransmission message sent by the second node along the tree structure is received. For details, please refer to Figure 6 The step S604 of the embodiment shown in the figure will not be repeated here.

[0077] As an optional implementation, after the first node sends the first retransmission request to the second node, since the first retransmission message sent by the second node needs to be received, at this time the first connection identifier maintained by the first node can be updated to the message identifier of the first retransmission message, so as to avoid that the first retransmission message of subsequent retransmission is discarded as a duplicate packet.

[0078] The data transmission method provided in the embodiment can efficiently and accurately determine whether the first transmission packet is abnormal by determining whether the first connection identifier and the first packet identifier match, and the calculation amount for determining whether the first transmission packet is abnormal in this way is small, which can avoid mis-triggering retransmission due to inaccurate determination results, further avoid unnecessary bandwidth and computing resource consumption, and further improve the performance of the network.

[0079] In the embodiment, a data transmission method is provided, which can be used for uplink communication of a second node, Figure 8 The flowchart of the data transmission method according to the embodiment of the present disclosure is shown in FIG. 8, which includes the following steps: Figure 8

[0080] In step S801, a first retransmission request for a first transmission packet sent by a first node along a tree structure is received, and the first retransmission request includes retransmission information for the first transmission packet, and the tree structure is generated based on recursive paths between nodes. For details, see step S602 of the embodiment shown in FIG. 6, which will not be described here again. Figure 6

[0081] In step S802, if the second node does not have packet retransmission data corresponding to the first retransmission request, the first retransmission request is broadcasted downward along the tree structure to each first leaf node corresponding to the second node, so that each first leaf node sends packet retransmission data corresponding to the first retransmission request to the second node.

[0082] As shown above, in order to reduce the cost of network devices such as switches, no buffer is set in the network devices such as switches. Therefore, if the second node does not have packet retransmission data corresponding to the first retransmission request, it indicates that the second node is not a leaf node of the tree structure, i.e., the second node is a network device such as a switch. In this case, since the second node discards the first transmission packet immediately after sending the first transmission packet to the first node, the second node no longer stores the first transmission packet, i.e., the second node does not have packet retransmission data corresponding to the first retransmission request. If the second node retransmits the first transmission packet, the second node needs to broadcast the first retransmission request along the tree structure to each first leaf node corresponding to the second node, so that each first leaf node sends packet retransmission data corresponding to the first retransmission request, so that the second node can regenerate the first retransmission packet based on the packet retransmission data sent by each first leaf node. The process in which the second node broadcasts the first retransmission request downward along the tree structure to each first leaf node can be: the second node starts from its own position, broadcasts the first retransmission request downward along the tree structure, until each first leaf node receives the first retransmission request. For example, Figure 5 ​​As shown, each first leaf node is a leaf node related to re-aggregation of the first retransmission packet, and is not all leaf nodes in the tree structure.

[0083] Further, if the second node does not have the packet retransmission data corresponding to the first retransmission request, the second node can parse the first retransmission request, regenerate a retransmission request based on the parsed retransmission information, and continue to broadcast the regenerated retransmission request along the tree structure, in this way, until the parent node corresponding to each first leaf node sends the retransmission request generated thereby to each first leaf node.

[0084] As a specific example, as shown in Figure 9 , the first node is switch 3, the second node is switch 1, d0' is used to represent the first transmission packet, and each first leaf node is leaf node 0 and leaf node 1. Leaf node 0 and leaf node 1 send d0 to switch 1 (as shown in ① of Figure 9 ), switch 1 aggregates the two received d0 to obtain d0', and switch 1 sends d0' to switch 3 (as shown in ② of Figure 9 ), but switch 3 determines that d0' is lost, so switch 3 generates a first retransmission request NAKford0' and sends NAKford0' to switch 1 (as shown in ③ of Figure 9 ). Switch 1 parses NAKford0' to obtain that d0' is to be retransmitted. Since d0' is obtained by switch 1 aggregating d0 sent by leaf node 0 and leaf node 1, and switch 1 does not set a buffer area, resulting in that it does not store d0 sent by leaf node 0 and leaf node 1 nor d0', so switch 1 can generate a retransmission request such as NAKford0 based on the packet retransmission data and broadcast NAKford0 to leaf node 0 and leaf node 1 that sent d0 thereto (as shown in ④ of Figure 9 ), so that leaf node 0 and leaf node 1 retransmit d0 thereto (as shown in ⑤ of Figure 9 ).

[0085] Following the previous example, if there is a third node between switch 1 and leaf node 0 and leaf node 1 (as shown in Figure 9The switch 1 can broadcast the NAKford0 to the relevant at least one third node, and the at least one third node can parse the NAKford0 to generate a retransmission request again and broadcast the retransmission request to the leaf node 0 and the sub-leaf node 1 along the tree structure. If there is a fourth node between the third node and the leaf node 0 and the leaf node 1, the process is the same as the above process, which is not repeated here. Through the above process, the switch 1 can receive the packet retransmission data sent by the third node again, and the switch 1 can aggregate d0' again and send it to the switch 3, thereby realizing the retransmission of d0'. Since the second node needs to receive the packet retransmission data sent by the third node, the second node can update the ePSN between the second node and the third node to the PSN of the packet retransmission data to be retransmitted by the third node after the second node sends the retransmission request to the third node, so as to avoid determining the packet retransmission data as a duplicate packet and discarding it after receiving the packet retransmission data sent by the third node. In this way, the success rate of packet retransmission can be further improved.

[0086] In step S803, each packet retransmission data is processed to generate a first retransmission packet corresponding to the first retransmission request.

[0087] In the above example, after the leaf node 0 and the leaf node 1 retransmit d0 to the switch 1, the switch 1 can aggregate the d0 received by the switch 1 to obtain d0' again, i.e., the first retransmission packet corresponding to the first transmission packet.

[0088] In step S804, the first retransmission packet is sent to the first node along the tree structure. For details, please refer to Figure 6 The step S604 of the embodiment shown in the above is not repeated here.

[0089] In an optional embodiment, if the second node has the packet retransmission data corresponding to the first retransmission request, the packet retransmission data is encapsulated into the first retransmission packet.

[0090] As shown above, the various types of processors, physical servers or processes actually participating in communication corresponding to the leaf node can have a buffer. If the second node has the packet retransmission data corresponding to the first retransmission request, it means that the second node is a leaf node of the tree structure, and therefore the second node can directly encapsulate the packet retransmission data into the first retransmission packet according to the corresponding communication protocol and send the first retransmission packet to the first node, thereby realizing the retransmission of the first transmission packet.

[0091] The data transmission method provided in the embodiment can flexibly determine the first retransmission packet. The second node sends the first retransmission packet to the first node, which can send the first retransmission packet to the first node with minimum resource consumption, avoid data transmission disorder, and improve retransmission efficiency.

[0092] As a specific application example of the embodiment of the present disclosure, as shown in Figure 9 , it is a schematic diagram of retransmitting packet loss in the uplink phase taking the AllReduce operation as an example. The switch 3 determines that the switch 1 sends it a lost d0' packet (as shown in Figure 9 ②), the switch 3 generates a first retransmission request NAKford0' and sends the NAKford0' to the switch 1 (as shown in Figure 9 ③). After receiving the NAKford0', the switch 1 broadcasts NAKford0 to the child nodes (as shown in Figure 9 ④). Among them, after the switch 1 broadcasts NAKford0 to the leaf node 0 and the leaf node 1, it updates the receiving ePSN to the PSN of the packet to be retransmitted, so as to avoid that the data packet retransmitted subsequently is discarded as a duplicate packet. The leaf node 0 and the leaf node 1 determine the PSN information of the packet to be retransmitted according to the NAKford0 broadcast by the switch 1, and retransmit the packet retransmission data corresponding to the PSN information (as shown in Figure 9 ⑤). Through the process, it can be seen that only the leaf node 0 and the leaf node 1 participate in the retransmission, and the leaf node 2 and the leaf node 3 do not need to retransmit. And the switch 3 broadcasts the retransmission request downward immediately after detecting the packet loss, without the need to upload the packet loss information to the root switch for processing (assuming that there is a root switch above the switch 3).

[0093] In the embodiment, a data transmission method is provided, which can be used for downlink communication of a first node, Figure 10 is a flowchart of the data transmission method according to the embodiment of the present disclosure, as shown in Figure 10 , the flowchart includes the following steps:

[0094] Step S1001, receiving a second retransmission request for a second transmission packet sent by a second node along a tree structure, the second retransmission request including retransmission information for the second transmission packet, the tree structure being generated based on recursive paths between nodes.

[0095] The second transmission packet can be a transmission packet broadcasted by the first node to the second node. After the first node broadcasts the second transmission packet to the second node, the second node can detect whether the second transmission packet is abnormal. If the second node determines that the second transmission packet is abnormal, the second node generates a second retransmission request for the second transmission packet and sends the second retransmission request to the first node to make the first node retransmit the second transmission packet.

[0096] It should be understood that the second node can be an intermediate node of the tree structure shown in the foregoing or a leaf node of the tree structure shown in the foregoing.

[0097] Step S1002, parsing the second retransmission request to determine a second retransmission packet corresponding to the second retransmission request.

[0098] As a specific example, if the first node is not a root node of the tree structure, that is, the first node is not the real sender of the second transmission packet, the first node can continue to send the second retransmission request to the last hop node thereof until the second retransmission request is forwarded to the root node of the tree structure, and the root node parses the second retransmission request to determine the second retransmission packet corresponding to the second retransmission request.

[0099] As a specific example, if the first node is a root node of the tree structure, that is, the first node is the real sender of the second transmission packet. Since the first node does not store the second transmission packet due to no cache area being set, the first node cannot directly retransmit the second transmission packet to the second node, and in addition, the second transmission packet is a transmission packet calculated by the first node after aggregation, and if the first node re-aggregates the second transmission packet, the first node needs to obtain the packet retransmission data required for aggregating the second transmission packet.

[0100] Specifically, the above step S1002 includes:

[0101] Step S10021, parsing retransmission information corresponding to the second retransmission request to generate a third retransmission request corresponding to the retransmission information.

[0102] The retransmission information can be key information included in the second retransmission request and used to describe a packet, such as the second transmission packet, that needs to be retransmitted and retransmission-related rules. Here, the first node parses the second retransmission request to determine that the second transmission packet needs to be retransmitted and the packet retransmission data required for aggregating the second transmission packet and other related retransmission information, and then generates the third retransmission request for obtaining the packet retransmission data based on the retransmission information.

[0103] For example, as shown in Figure 12 Figure 1, the first node is switch 3, the second node is switch 2, and r0 represents the second transmission packet. First, switch 3 broadcasts r0 along the tree structure downward (as shown in Figure 12 Figure 1, ①). If leaf node 3 does not receive r0 (as shown in Figure 12 Figure 1, ②), leaf node 3 generates a second retransmission request NAKforr0(as shown in Figure 12 Figure 1, ③). Since switch 2 is not the root node of the tree structure, switch 2 sends NAKforr0to switch 1 (as shown in Figure 12 Figure 1, ④, assuming that switch 1 is the root node of the tree structure at this time). Switch 3 analyzes NAKforr0and obtains that aggregated r0requires d0', so switch 3 generates a third retransmission request NAKford0'(as shown in Figure 12 Figure 1, ⑤).

[0104] In step S10022, the third retransmission request is broadcasted along the tree structure to each second leaf node corresponding to the first node, so that each second leaf node sends packet retransmission data corresponding to the third retransmission request to the first node.

[0105] Here, the process of broadcasting the third retransmission request along the tree structure to each second leaf node corresponding to the first node by the first node can be that the first node starts from its own position, broadcasts the third retransmission request along the tree structure downward until each second leaf node receives the third retransmission request.

[0106] As a specific example, if the second node is a leaf node of the tree structure, the second node can analyze the third retransmission request after receiving the third retransmission request to send packet retransmission data to the first node, so that the first node can perform re-aggregation calculation based on the packet retransmission data, thereby generating a second retransmission packet corresponding to the second transmission packet and broadcasting the second retransmission packet along the tree structure again.

[0107] As a specific example, if the second node is not a leaf node of the tree structure but the second node directly communicates with each second leaf node in the tree structure, that is, there is no other node between the second node and each second leaf node, then the second node can analyze the third retransmission request after receiving the third retransmission request to obtain packet parameters corresponding to the third retransmission request and generate a fourth retransmission request based on the packet parameters, and send the fourth retransmission request to each second leaf node, so that each second leaf node sends packet retransmission data to it.

[0108] As a specific example, as shown in Figure 12As shown in (5) of FIG. 12, switch 3 sends a third retransmission request NAKford0' to switch 1 and switch 2 (because switch 3 can aggregate d0' only by sending d0' through switch 1 and switch 2), and switch 1 and switch 2 parse NAKford0' to obtain d0' to be retransmitted, but they do not have d0' and need d0 to aggregate and calculate d0', so switch 1 and switch 2 generate a fourth retransmission request NAKford0 (as shown in (6) of FIG. 12), and switch 1 sends NAKford0 to leaf node 0 and leaf node 1, and switch 2 sends NAKford0 to leaf node 2 and leaf node 3, so that leaf node 0, leaf node 1, leaf node 2 and leaf node 3 can retransmit d0 (as shown in (7) of FIG. 12). Figure 12 Figure 12

[0109] If the second node is not a leaf node of the tree structure and the second node communicates with each second leaf node of the tree structure through a third node, the first node broadcasts the third retransmission request to the second node, the second node performs the action shown in the foregoing to generate a fourth retransmission request and sends the fourth retransmission request to the third node, the third node performs similar actions as the second node to generate a fifth retransmission request and sends the fifth retransmission request to each second leaf node, so that each second leaf node sends the packet retransmission data to the third node, the third node aggregates the packet retransmission data received from each second leaf node and sends the packet retransmission data to the second node, and the second node aggregates the packet retransmission data sent by the third node and sends the second transmission packet to the first node.

[0110] In step S10023, the packet retransmission data sent by each second leaf node is received, and each packet retransmission data is processed to generate a second retransmission packet corresponding to the second transmission packet.

[0111] After receiving the packet retransmission data sent by each second leaf node, the first node can aggregate each packet retransmission data to generate a second retransmission packet corresponding to the second transmission packet. As shown in (9) of FIG. 12, switch 1 receives d0 retransmitted by leaf node 0 and leaf node 1, aggregates two d0 to obtain d0' and sends d0' to switch 3, and switch 2 receives d0 retransmitted by leaf node 2 and leaf node 3, aggregates two d0 to obtain d0' and sends d0' to switch 3. Switch 3 aggregates two d0' to obtain r0, that is, the second retransmission packet corresponding to the second transmission packet is aggregated again. Figure 12

[0112] ​​​After the first node sends the second transmission packet to the second node, the first node can directly discard the second transmission packet, so that a buffer area is not set in the first node, and the device cost of the first node is lower, and the number of groups that can be supported is increased. After the first node receives the second retransmission request, the related second node, the third node and each second leaf node can retransmit the packet retransmission data required for re-aggregating the second transmission packet, so as to generate the second retransmission packet, and further improve the retransmission efficiency of the network.

[0113] In step S1003, the second retransmission packet is sent to the second node along the tree structure.

[0114] After the first node sends the second retransmission packet to the second node, the second node can continue to send the second retransmission packet hop by hop downward along the tree structure, and directly to each second leaf node of the tree structure to receive the second retransmission packet.

[0115] In an optional embodiment, if the first node is not the root node, that is, the previous hop node of the first node sends the second retransmission packet to the first node, the receive ePSN of the first node can be updated as the PSN of the second retransmission packet at this time. If the first node is the root node, that is, the first node sends the second retransmission packet downward along the tree structure, the receive ePSN of the first node is not updated at this time. Of course, after the first node broadcasts the third retransmission request to the second node, the receive ePSN of the first node needs to be updated as the PSN of the packet retransmission data that the second node retransmits, so that the packet retransmission data retransmitted by the second node can be avoided from being discarded as a duplicate packet.

[0116] The data transmission method provided in the embodiment, after the first node receives the second retransmission request corresponding to the second transmission packet sent by the second node, the first node parses the second retransmission request to generate a third retransmission request and broadcasts the third retransmission request to each second leaf node along the tree structure, so that each second leaf node retransmits the packet retransmission data to the first node. The first node can aggregate each packet retransmission data to generate the second retransmission packet corresponding to the second transmission packet and send the second retransmission packet to the second node. The buffer area does not need to be set in the first node, the device cost can be reduced, unnecessary retransmission of the second node, the third node and the second leaf node can be avoided, the retransmission time can be accelerated, the efficiency of retransmission is ensured, the network delay is reduced, and the performance of the network is improved.

[0117] In the embodiment, a data transmission method is provided, which can be used for downlink communication of a second node, Figure 11 The flowchart of the data transmission method according to the embodiment of the present disclosure is shown in FIG. 1, which includes the following steps: Figure 11

[0118] ​Step S1101, detecting a second transmission packet sent by the first node to the second node along a tree structure, the tree structure being generated based on recursive paths between nodes. The process of detecting the second transmission packet sent by the first node to the second node is similar to the process of detecting the first transmission packet sent by the second node to the first node, and thus is not repeated here. For details, see step S702.

[0119] Step S1102, if it is determined that the second transmission packet is abnormal, generating a second retransmission request for the second transmission packet and sending the second retransmission request to the first node along the tree structure, so that the first node sends a second retransmission packet corresponding to the second transmission packet based on the second retransmission request.

[0120] Here, if it is determined that the second transmission packet is abnormal, such as determining that the second transmission packet is lost or out of order, a second retransmission request is generated to request the first node to retransmit the second transmission packet.

[0121] As a specific example, the process of sending the second retransmission request to the first node by the second node can be: the second node obtains a transmission path between the second node and the first node through the tree structure, and sends the second retransmission request to the first node based on the transmission path. The transmission path can be a set of a series of nodes (such as routers, switches, gateways, etc.) and links that the second transmission packet passes through in the process of being transmitted from the first node to the second node, and the transmission path can describe the specific route of the second transmission packet flowing in the entire network. For example, if the second node is a leaf node of the tree structure, the transmission path between the first node and the second node is the path directly from the first node to the second node. For another example, if the second node is not a leaf node of the tree structure, the transmission path between the first node and the second node can be from the first node to an intermediate node (a node between the first node and the second node) and then from the intermediate node to the second node.

[0122] If there is no intermediate node mentioned above between the first node and the second node, the second node can send the second retransmission request directly to the first node. For example, as shown in FIG. 2, the switch 2 sends NAKforr0 to the switch 3. Figure 12 If there is the intermediate node mentioned above between the first node and the second node, the second node can send the second retransmission request for the second transmission packet to the first node hop by hop based on the transmission path. For example, as shown in FIG. 3, the leaf node 3 sends NAKforr0 to the switch 2, and the switch 2 sends NAKforr0 to the switch 3. Figure 12 If there is the intermediate node mentioned above between the first node and the second node, the second node can send the second retransmission request for the second transmission packet to the first node hop by hop based on the transmission path. For example, as shown in FIG. 3, the leaf node 3 sends NAKforr0 to the switch 2, and the switch 2 sends NAKforr0 to the switch 3.

[0123] Here, the specific process of sending the second retransmission packet corresponding to the second transmission packet by the first node based on the second retransmission request can be seen in step S1002, which is not repeated here.

[0124] Step S1103, receiving the second retransmission packet sent by the first node along the tree structure.

[0125] As an optional implementation, after the second node sends the second retransmission request to the first node, if the second node is a leaf node of the tree structure, the second node does not need to update the ePSN thereof; if the second node is not a leaf node of the tree structure, the second node needs to receive the second retransmission packet sent by the first node, and therefore the second connection identifier maintained by the second node with the first node is updated to the packet identifier corresponding to the second retransmission packet.

[0126] The data transmission method provided in the embodiment can make the first node retransmit the second transmission packet when the second node detects that the second transmission packet sent by the first node to the second node is abnormal. After the first node receives the second retransmission request corresponding to the second transmission packet sent by the second node, the first node analyzes the second retransmission request to generate a third retransmission request and recursively broadcasts the third retransmission request to each second leaf node, so that each second leaf node retransmits the packet retransmission data to the first node. The first node can aggregate each packet retransmission data to generate a second retransmission packet corresponding to the second transmission packet and send the second retransmission packet to the second node. This method does not need to set a buffer in the first node, can reduce the equipment cost, avoids unnecessary participation of the second node, the third node and the leaf node in retransmission, speeds up the retransmission time, ensures the efficiency of retransmission, reduces the network delay and improves the network performance.

[0127] As a specific application embodiment of the present disclosure, as shown in Figure 12 , it is a schematic diagram of retransmission of downlink packet loss by taking the AllReduce operation as an example. The switch 3 broadcasts r0 along the tree structure downward (as shown in ① in Figure 12 ). If the leaf node 3 does not receive r0 (as shown in ② in Figure 12 ), the leaf node 3 generates a second retransmission request NAKforr0 (as shown in ③ in Figure 12 ). Since the switch 2 is not the root node of the tree structure, the switch 2 sends NAKforr0 to the switch 1 (as shown in ④ in Figure 12 ). At this time, the switch 2 hopes that the switch 1 retransmits r0, so the switch 2 updates the receiving ePSN to the PSN of r0. The first node analyzes NAKforr0 to obtain the aggregated NAKforr0 required d0', so the switch 3 generates a third retransmission request NAKford0' (as shown in ⑤ in Figure 12⑤) and sends a NAKford0' to switch 1 and switch 2. At this time, switch 3 expects switch 1 and switch 2 to retransmit d0', so switch 3 updates the receive ePSN to the PSN of d0'. Switch 1 and switch 2 broadcast the NAKford0 to leaf node 0, leaf node 1, leaf node 2 and leaf node 3 respectively (as shown in Figure 13 ⑥). At this time, switch 1 expects leaf node 0 and leaf node 1 to retransmit d0, so switch 1 updates the receive ePSN to the PSN of d0, and switch 2 expects leaf node 2 and leaf node 3 to retransmit d0, so switch 2 updates the receive ePSN to the PSN of d0. Leaf node 0, leaf node 1, leaf node 2 and leaf node 3 retransmit d0 (as shown in Figure 14 ⑦), so that switch 1 and switch 2 can aggregate d0' again, and then switch 3 can aggregate r0 again and broadcast r0 to each node along the tree structure again.

[0128] From the above process, it can be seen that for non-leaf nodes in the tree structure, there is no need to cache any transmitted packet, i.e. after transmitting the packet, there is no need to cache the packet, which greatly reduces the demand for buffer. In addition, in the present scheme, when a packet is lost, only the leaf nodes in the tree structure related to the lost transmission packet need to initiate retransmission, rather than all the leaf nodes. When an uplink packet is lost, the non-leaf nodes and non-root nodes in the tree structure can initiate retransmission when detecting the loss, rather than reporting the loss information to the root node.

[0129] In the embodiment, a data transmission device is also provided, which is used to implement the above-mentioned embodiments and preferred embodiments, and will not be described again. As used below, the term "module" can be a combination of software and / or hardware that implements a predetermined function. Although the device described in the following embodiments is preferably implemented in software, hardware, or a combination of software and hardware is possible and contemplated.

[0130] The embodiment provides a data transmission device, as shown in Figure 15 The device is applied to uplink communication of a first node, and includes:

[0131] A first detection module 1301 is configured to detect a first transmission packet sent by a second node to the first node along a tree structure, the tree structure being generated based on recursive paths between the nodes.

[0132] A first generation module 1302 is configured to generate a first retransmission request for the first transmission packet if it is determined that the first transmission packet is abnormal, the first retransmission request including retransmission information for the first transmission packet.

[0133] The first sending module 1303 is configured to send the first retransmission request to a second node corresponding to the first transmission packet along the tree structure, so that the second node generates a first retransmission packet corresponding to the first transmission packet based on the first retransmission request.

[0134] The first receiving module 1304 is configured to receive the first retransmission packet sent by the second node along the tree structure.

[0135] In some optional embodiments, the first generating module 1302 includes: a first obtaining unit configured to obtain a first connection identifier between the first node and the second node; a second obtaining unit configured to obtain a first packet identifier corresponding to the first transmission packet; and a matching unit configured to determine that the first transmission packet is abnormal if the first connection identifier does not match the first packet identifier.

[0136] In some optional embodiments, the apparatus further includes a first updating module configured to update the first connection identifier to a packet identifier corresponding to the first retransmission packet.

[0137] The embodiment provides a data transmission apparatus, as shown in Figure 16 The apparatus is applied to uplink communication of the second node, and includes:

[0138] The third receiving module 1401 is configured to receive a first retransmission request for the first transmission packet sent by the first node along the tree structure, the first retransmission request including retransmission information for the first transmission packet, and the tree structure being generated based on recursive paths between nodes.

[0139] The broadcasting module 1402 is configured to broadcast the first retransmission request to each first leaf node corresponding to the second node along the tree structure if the second node does not have packet retransmission data corresponding to the first retransmission request, so that each first leaf node sends the packet retransmission data corresponding to the first retransmission request to the second node.

[0140] The aggregation module 1403 is configured to process each packet retransmission data to generate a first retransmission packet corresponding to the first retransmission request.

[0141] The second sending module 1404 is configured to send the first retransmission packet to the first node along the tree structure.

[0142] In some optional embodiments, the apparatus further includes a packaging module configured to package the packet retransmission data into the first retransmission packet if the second node has the packet retransmission data corresponding to the first retransmission request.

[0143] The embodiment provides a data transmission apparatus, as shown in Figure 17 The apparatus is applied to downlink communication of the first node, and includes:

[0144] The second receiving module 1501 is configured to receive a second retransmission request for the second transmission packet sent by the second node along the tree structure, the second retransmission request comprising retransmission information for the second transmission packet, and the tree structure being generated based on recursive paths between the nodes.

[0145] The parsing module 1502 is configured to parse the second retransmission request to determine a second retransmission packet corresponding to the second retransmission request.

[0146] The third sending module 1503 is configured to send the second retransmission packet to the second node along the tree structure.

[0147] In some optional embodiments, the parsing module comprises a parsing unit configured to parse the retransmission information corresponding to the second retransmission request to generate a third retransmission request corresponding to the retransmission information; a broadcasting unit configured to broadcast the third retransmission request to each second leaf node corresponding to each first node along the tree structure downward, so that each second leaf node sends packet retransmission data corresponding to the third retransmission request to the first node; and a receiving unit configured to receive the packet retransmission data sent by each second leaf node and process each packet retransmission data to generate the second retransmission packet corresponding to the second transmission packet.

[0148] The present embodiment provides a data transmission device, as shown in Figure 17 The device is applied to downlink communication of the second node and comprises:

[0149] The second detection module 1601 is configured to detect a second transmission packet sent by a first node to the second node along a tree structure, the tree structure being generated based on recursive paths between the nodes.

[0150] The obtaining module 1602 is configured to, if it is determined that the second transmission packet is abnormal, generate a second retransmission request for the second transmission packet and send the second retransmission request to the first node along the tree structure, so that the first node sends a second retransmission packet corresponding to the second transmission packet based on the second retransmission request.

[0151] The second receiving module 1603 is configured to receive the second retransmission packet sent by the first node along the tree structure.

[0152] In some optional embodiments, the device further comprises a second updating module configured to update the second connection identifier to a packet identifier corresponding to the second retransmission packet.

[0153] In some optional embodiments, the leaf nodes in the tree structure are terminal devices, and the non-leaf nodes are network devices, the first node is a root node or an intermediate node between the root node and the leaf nodes, and the second node is a leaf node or an intermediate node.

[0154] The data transmission apparatus provided by the embodiments of the present disclosure can execute the data transmission method provided by any of the embodiments of the present disclosure, and has the corresponding function modules and beneficial effects of the execution method. When the first node detects the packet exception, it can initiate retransmission and only the second node related to the first transmission packet can participate in the retransmission, without sending the packet exception information to the root switch to initiate retransmission by the root switch, and without retransmission by all second nodes, avoiding unnecessary participation of second nodes in retransmission, realizing relatively efficient and rapid retransmission of the first transmission packet, improving the efficiency of retransmission, speeding up the time of retransmission, and reducing the time delay of the network. The further function description of each module and unit is the same as the corresponding embodiment described above, and will not be repeated here.

[0155] Figure 17 A structural schematic diagram of an electronic device provided by the embodiments of the present disclosure is provided.

[0156] Reference will be made in detail to the following Figure 17 which shows a structural schematic diagram of an electronic device suitable for implementing the embodiments of the present disclosure. The electronic device can include a processor (such as a central processor, a graphics processor, etc.) 1701, which can perform various appropriate actions and processes according to programs stored in a read-only memory (ROM) 1702 or programs loaded from a storage 1708 into a random access memory (RAM) 1703. In the RAM 1703, various programs and data required for operation of the electronic device are also stored. The processor 1701, the ROM 1702, and the RAM 1703 are connected to each other through a bus 1704. An input / output (I / O) interface 1705 is also connected to the bus 1704.

[0157] Generally, the following devices can be connected to the I / O interface 1705: input devices 1706 including, for example, a touch screen, a touchpad, a keyboard, a mouse, a camera, a microphone, an accelerometer, a gyroscope, etc.; output devices 1707 including, for example, a liquid crystal display (LCD), a speaker, a vibrator, etc.; storage 1708 including, for example, a magnetic tape, a hard disk, etc.; and communication devices 1709. The communication devices 1709 can allow the electronic device to communicate with other devices wirelessly or by wire to exchange data. Although ​ An electronic device with various devices is shown, but it should be understood that it is not required to implement or have all the shown devices, and more or fewer devices can be implemented or possessed instead.

[0158] In particular, according to embodiments of the present disclosure, the processes described above with reference to the flowcharts can be implemented as a computer software program. For example, embodiments of the present disclosure include a computer program product comprising a computer program carried on a non-transitory computer-readable medium, the computer program containing program code for performing the methods illustrated by the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network by the communication device 1709, or installed from the memory 1708, or installed from the ROM 1702. When the computer program is executed by the processor 1701, the above-mentioned functions defined in the data transmission method of the embodiments of the present disclosure are performed.

[0159] ​ The electronic device shown is merely an example and should not impose any limitation on the functions and use range of the embodiments of the present disclosure.

[0160] Embodiments of the present disclosure also provide a computer-readable storage medium, the above-mentioned method according to the embodiments of the present disclosure can be implemented in hardware, firmware, or as computer code recordable on a storage medium, or as computer code originally stored in a remote storage medium or non-transitory machine-readable storage medium and downloaded through a network and to be stored in a local storage medium, so that the methods described herein can be processed by such software on a storage medium using a general-purpose computer, a special-purpose processor, or programmable or special-purpose hardware. Among them, the storage medium can be a magnetic disk, an optical disk, a read-only memory, a random access memory, a flash memory, a hard disk or a solid state disk, etc.; further, the storage medium can also include a combination of the above-mentioned types of memories. It can be understood that the computer, processor, microprocessor controller or programmable hardware includes a storage component that can store or receive software or computer code, which, when accessed and executed by the computer, processor or hardware, implements the data transmission method shown in the above embodiments.

[0161] Part of the present disclosure can be applied as a computer program product, for example, computer program instructions, when executed by a computer, through the operation of the computer, the method and / or technical solutions according to the present disclosure can be invoked or provided. Those skilled in the art should understand that the form of computer program instructions in computer-readable medium includes but is not limited to source files, executable files, installation package files, etc., and accordingly, the way of computer program instructions executed by computer includes but is not limited to: the computer directly executes the instructions, or the computer executes the corresponding compiled program after compiling the instructions, or the computer reads and executes the instructions, or the computer reads and installs the instructions and then executes the corresponding installed program. Here, the computer-readable medium can be any available computer-readable storage medium or communication medium accessible to the computer.

[0162] While embodiments of the present disclosure have been described in conjunction with the accompanying drawings, various modifications and changes can be suggested by those skilled in the art, and it is intended that the present disclosure encompass such modifications and changes as fall within the scope of the appended claims.

Claims

1. A data transmission method, characterized in that: Applied to uplink communication of a first node, the method includes: detecting a first transmission message sent by a second node to the first node along a tree structure, where the tree structure is generated based on a recursive path between nodes; If it is determined that the first transmission message is abnormal, generating a first retransmission request for the first transmission message, where the first retransmission request includes retransmission information for the first transmission message; sending the first retransmission request along the tree structure to the second node corresponding to the first transmission message, so that the second node generates a first retransmission message corresponding to the first transmission message based on the first retransmission request; Receive the first retransmission message sent by the second node along the tree structure.

2. The method according to claim 1, characterized in that Determining whether the first transmission message is abnormal includes: Obtaining a first connection identifier between the first node and the second node; Obtaining a first message identifier corresponding to the first transmission message; If the first connection identifier does not match the first message identifier, it is determined that an abnormality exists in the first transmission message.

3. The method according to any one of claims 1 or 2, characterized in that The method further comprises: The first connection identifier is updated to the message identifier corresponding to the first retransmitted message.

4. A data transmission method, characterized in that: Applied to uplink communication of a second node, the method includes: receiving a first retransmission request for a first transmission message sent by a first node along a tree structure, wherein the first retransmission request includes retransmission information for the first transmission message, and the tree structure is generated based on a recursive path between nodes; If the second node does not have the message retransmission data corresponding to the first retransmission request, broadcasting the first retransmission request downward along the tree structure to each first leaf node corresponding to the second node, so that each first leaf node sends the message retransmission data corresponding to the first retransmission request to the second node; Processing each of the message retransmission data to generate a first retransmission message corresponding to the first retransmission request; Send the first retransmission message to the first node along the tree structure.

5. The method according to claim 4, characterized in that The method further comprises: If the second node has the message retransmission data corresponding to the first retransmission request, the message retransmission data is encapsulated into the first retransmission message.

6. A data transmission method, characterized in that: Applied to downlink communication of the first node, the method further includes: receiving a second retransmission request for a second transmission message sent by a second node along a tree structure, wherein the second retransmission request includes retransmission information for the second transmission message, and the tree structure is generated based on a recursive path between nodes; parsing the second retransmission request, and determining a second retransmission message corresponding to the second retransmission request; Send the second retransmission message to the second node along the tree structure.

7. The method according to claim 6, characterized in that Parsing the second retransmission request and determining a second retransmission message corresponding to the second retransmission request includes: parsing the retransmission information corresponding to the second retransmission request, and generating a third retransmission request corresponding to the retransmission information; broadcasting the third retransmission request downward along the tree structure to each second leaf node corresponding to the first node, so that each second leaf node sends the message retransmission data corresponding to the third retransmission request to the first node; Receive the message retransmission data sent by each of the second leaf nodes, and process each of the message retransmission data to generate the second retransmission message corresponding to the second transmission message.

8. A data transmission method, characterized in that: Applied to downlink communication of the second node, the method further includes: detecting a second transmission message sent by the first node to the second node along a tree structure, where the tree structure is generated based on a recursive path between nodes; If it is determined that the second transmission message is abnormal, generating a second retransmission request for the second transmission message and sending the second retransmission request to the first node along the tree structure, so that the first node sends a second retransmission message corresponding to the second transmission message based on the second retransmission request; Receive the second retransmission message sent by the first node along the tree structure.

9. The method according to claim 8, characterized in that The method further comprises: The second connection identifier is updated to the message identifier corresponding to the second retransmitted message.

10. The data transmission method according to any one of claim 1, claim 4, claim 6, or claim 8, characterized in that: The leaf nodes in the tree structure are terminal devices and the non-leaf nodes are network devices, the first node is the root node or the intermediate node between the root node and the leaf node, and the second node is the leaf node or the intermediate node.

11. A data transmission system, characterized in that: include: A first node, configured to detect a first transmission message sent by a second node along a tree structure, or to send a second transmission message to the second node along the tree structure, wherein the tree structure is generated based on a recursive path between nodes; At least one second node communicates with the first node, and is used to receive a first retransmission request for the first transmission message sent by the first node along the tree structure, and send the first retransmission message corresponding to the first retransmission request to the first node along the tree structure, or detect whether there is an abnormality in the second transmission message. When there is an abnormality in the second transmission message, the second retransmission request for the second transmission message is sent to the first node along the tree structure so that the first node sends the second retransmission message corresponding to the second retransmission request.

12. An electronic device, characterized in that: include: A memory and a processor, wherein the memory and the processor are communicatively connected to each other, the memory stores computer instructions, and the processor executes the data transmission method according to any one of claims 1 to 10 by executing the computer instructions.

13. A computer-readable storage medium, characterized in that The computer-readable storage medium stores computer instructions, and the computer instructions are used to enable a computer to execute the data transmission method according to any one of claims 1 to 10.

14. A computer program product, characterized in that The method comprises computer instructions for causing a computer to execute the data transmission method according to any one of claims 1 to 10.