Message sending method, device, system, equipment, storage medium and program product

By using bidirectional feedback of HT messages in network nodes, the problems of unstable throughput, long-distance feedback delay, and bandwidth contention during network congestion are solved, achieving more stable and efficient network communication.

CN121644009APending Publication Date: 2026-03-10HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-08-29
Publication Date
2026-03-10

AI Technical Summary

Technical Problem

In network transmission, existing technologies reduce data packet size to alleviate network pressure by performing header pruning (HT) operations when the network is congested. However, this has problems such as unstable throughput, long-distance feedback delay, and congestion crashes caused by control plane preemption of bandwidth, which affect communication performance.

Method used

When data packets are lost, HT messages are sent bidirectionally to the receiver and sender. By generating and sending the first and second HT messages, the packet loss situation is promptly notified, improving the response speed of the sender and receiver. A scheduling weight mechanism is used to ensure that the control message queue does not completely preempt bandwidth.

Benefits of technology

It improves end-to-end communication performance in the network, reduces throughput fluctuations, shortens feedback latency, avoids congestion and crashes caused by bandwidth contention, and enhances network stability and efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121644009A_ABST
    Figure CN121644009A_ABST
Patent Text Reader

Abstract

The invention discloses a message sending method, device and system, equipment, a storage medium and a program product, and belongs to the technical field of communication. The method comprises the following steps: acquiring a first header pruning HT message and a second HT message corresponding to a data message, wherein the first HT message and the second HT message are used for indicating that packet loss occurs in the data message; and sending the first HT message to the receiving end of the data message, and sending the second HT message to the sending end of the data message. Therefore, according to the invention, through a bidirectional feedback mechanism of the HT message, the receiving end quickly judges the packet loss condition according to the first HT message, so that the corresponding out-of-order management operation is executed; therefore, the sending end can quickly judge the packet loss condition according to the second HT message, so that the packet loss retransmission operation can be executed more quickly. Thus, through bidirectional feedback of the HT message, the packet loss response speed of the receiving end and the sending end is improved, and the end-to-end overall communication performance in the network is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technology, and in particular to a message transmission method, apparatus, system, device, storage medium, and program product. Background Technology

[0002] Data packets typically consist of two parts: a header and a payload. The header contains routing and control information, while the payload contains the actual data to be transmitted. Data packet splitting (STP) technology improves network flexibility and efficiency by separating the processing of these two parts. Header trimming (HT) is a key mechanism for achieving STP, used to reduce data packet size during network congestion, thereby alleviating network transmission pressure and prioritizing the delivery of control information.

[0003] In related technologies, when a network node detects network congestion and data packet loss is about to occur in the data packet queue, it triggers the HT operation. At this time, the network node retains the header of the data packet, discards the payload, obtains the HT message corresponding to the data packet, and forwards the HT message to the receiving end through the high-priority control message queue, so as to inform the receiving end that the corresponding data packet has been lost during network transmission.

[0004] However, as the physical distance between the sender and receiver continues to increase, the time required for HT messages to be transmitted in the network will also increase accordingly. This accumulation of transmission delay will cause delays in the receiver's identification of packet loss events, thereby affecting end-to-end communication performance. Summary of the Invention

[0005] This application provides a message sending method, apparatus, system, device, storage medium, and program product, which, in the event of data packet loss, can bidirectionally send HT messages to both the receiving and sending ends to inform them that the corresponding data packet has been lost. The technical solution is as follows:

[0006] Firstly, a message sending method is provided, applied to a network node, the method comprising:

[0007] Obtain the first HT message and the second HT message corresponding to the data packet. The first HT message and the second HT message are used to indicate that the data packet has been lost. Send the first HT message to the receiving end of the data packet and send the second HT message to the sending end of the data packet.

[0008] In other words, when a data packet is lost, this application sends a second HT message back to the sender, enabling the sender to quickly determine the packet loss situation based on the second HT message, thereby performing packet loss retransmission operations more quickly and improving the sender's packet loss response speed.

[0009] In the event of packet loss, this application can also send a first HT message back to the receiving end, enabling the receiving end to quickly determine the packet loss situation based on the first HT message and perform corresponding out-of-order management operations, thereby improving the packet loss response speed of the receiving end.

[0010] Therefore, this application can promptly inform the sender and receiver of packet loss by means of a two-way feedback HT message mechanism when packet loss is detected, thereby improving the packet loss response speed of the sender and receiver and enhancing the overall end-to-end communication performance in the network.

[0011] Optionally, the out-of-order management operation at the receiving end includes determining the out-of-order type of the received packets based on the HT message, and determining the subsequent packet loss response operation based on the out-of-order type. The out-of-order type includes multipath out-of-order, packet loss out-of-order, etc.

[0012] It's important to note that multipath out-of-order delivery refers to the phenomenon in multipath transmission where, due to differences in transmission delays across different paths, data packets sent in the correct order from the sender may arrive at the receiver in a disordered sequence. Packet loss out-of-order delivery refers to the phenomenon during network transmission where data packets fail to reach the receiver due to various reasons (such as network congestion, link failure, router failure, etc.). When packet loss occurs, the sender typically employs a retransmission mechanism to resend the lost data packets. However, if retransmitted data packets arrive at the receiver interleaved with subsequently transmitted data packets, and the receiver lacks an appropriate mechanism to reorder these packets, out-of-order delivery may occur.

[0013] Optionally, after receiving the first HT message, the receiving end can send a negative message to the sending end to inform the sending end that it has not received the corresponding data message, so as to request the sending end to retransmit the corresponding data message.

[0014] Optionally, the first HT message is a message after discarding the payload portion of the data packet, and the destination address of the second HT message is the source address in the data packet.

[0015] In this context, the HT message can be considered equivalent to the header of a data message, but the destination addresses of the first HT message and the second HT message are different.

[0016] Optionally, the port of the network node has a data packet queue and a control packet queue. The data packet queue is used to buffer data packets to be sent, and the control packet queue is used to buffer control packets to be sent. The priority of the control packet queue is higher than that of the data packet queue. Before sending the first HT packet to the receiving end of the data packet and sending the second HT packet to the sending end of the data packet, the method further includes:

[0017] The first HT message is added to the control message queue corresponding to the first port, and the second HT message is added to the control message queue corresponding to the second port. The first port is the port in the network node that sends messages to the sending end, and the second port is the port in the network node that sends messages to the receiving end.

[0018] In other words, network nodes use numerical control separation technology to perform message forwarding operations.

[0019] Optionally, sending the first HT message to the receiving end of the data message includes:

[0020] According to the scheduling weight, the message to be sent by the first port is determined from the data message queue and the control message queue corresponding to the first port. The scheduling weight indicates the ratio between the number of messages scheduled from the data message queue and the number of messages scheduled from the control message queue. If the message to be sent by the first port is the first HT message, then the first HT message is sent to the receiving end.

[0021] Optionally, sending the second HT message to the sender of the data message includes:

[0022] According to the scheduling weight, the message to be sent by the second port is determined from the data message queue and the control message queue corresponding to the second port. The scheduling weight indicates the ratio between the number of messages scheduled from the data message queue and the number of messages scheduled from the control message queue. If the message to be sent by the second port is the second HT message, then the second HT message is sent to the sending end.

[0023] Optionally, the scheduling weight indicates that the number of packets scheduled from the control message queue is greater than the number of packets scheduled from the data message queue.

[0024] It should be noted that although this application generates the first HT message promptly upon determining that a data packet has been lost, whether the first HT message is immediately sent to the receiving end depends on whether the first HT message is selected when choosing a message to be sent from the two message queues. In other words, there may be a certain time delay between the moment the network node generates the first HT message and the moment it sends the first HT message.

[0025] As can be seen, network nodes select packets to be sent from the data packet queue and the control packet queue according to the scheduling weight, so that the control packet queue does not completely preempt bandwidth, thereby avoiding the situation where traffic in the data packet queue cannot be forwarded and ensuring the stability of end-to-end communication.

[0026] Optionally, both the first HT message and the second HT message include a first field, which is used to carry the transmission status of the data message, and the transmission status is packet loss.

[0027] The first field can be a reserved field specified in the message format, or it can be a field specifically set after the message format is changed. This application does not impose any restrictions on this.

[0028] As an example, each data packet header includes a first field, whose default value is 0, indicating that the data packet transmission is normal. However, if a network node determines that a data packet has been lost, the network node can change the value of this first field to 1 to indicate that the data packet transmission has been lost.

[0029] Therefore, by using the value of the first field, the receiving end of the HT message can accurately determine the packet loss situation.

[0030] Optionally, obtaining the first header-trimmed HT packet and the second HT packet corresponding to the data packet includes:

[0031] The probability of a data packet triggering an HT operation is determined based on the queue depth of the data packet queue, where the data packet queue refers to the queue that caches the data packet; if the probability determines that the data packet triggers the HT operation, then the first HT packet and the second HT packet corresponding to the data packet are obtained.

[0032] It should be noted that packet loss here is an active operation, meaning that the network node determines whether to perform packet loss on the data packet. When the network node determines that packet loss is necessary, it performs the HT operation on the data packet.

[0033] In this context, the HT operation refers to generating the HT message corresponding to the data packet. In this application, if a data packet triggers an HT operation, based on the two-way feedback approach, it is necessary to generate a first HT message and a second HT message corresponding to that data packet.

[0034] Optionally, determining the probability of the data packet triggering an HT operation based on the queue depth of the data packet queue includes:

[0035] If the queue depth is less than or equal to a first threshold, the probability of the data packet triggering an HT operation is determined to be 0; if the queue depth is greater than or equal to a second threshold, the probability of the data packet triggering an HT operation is determined to be 1; wherein the second threshold is greater than the first threshold; if the queue depth is greater than the first threshold and less than the second threshold, the probability of the data packet triggering an HT operation is determined to be a target value, wherein the target value is a value greater than 0 and less than 1.

[0036] The target value is positively correlated with the queue depth.

[0037] In other words, for a port of a network node, the queue depth of the data packet queue of that port is positively correlated with the probability of the data packet triggering the HT operation. As the queue depth increases, the probability of the data packet triggering the HT operation also increases.

[0038] Secondly, a message sending method is provided, applied at a sending end, the method comprising:

[0039] The system receives a second HT message sent by a network node, the second HT message indicating that a data packet sent by the sender to the receiver via the network node has been lost; in response to the second HT message, the system retransmits the data packet to the receiver.

[0040] Therefore, after receiving the second HT message sent by the network node, the sending end can determine that the corresponding data packet has been lost, and thus respond to the second HT message by promptly retransmitting the corresponding data packet to the receiving end, thereby improving the retransmission response efficiency of the sending end.

[0041] Optionally, the method further includes:

[0042] The receiver receives a negative message indicating that it has not received the data packet; in response to the negative message, the receiver retransmits the data packet to the receiver.

[0043] Therefore, the conditions for the sending end to retransmit a data packet after sending it are: receiving the HT packet corresponding to the data packet sent by the network node, and / or receiving the negative packet corresponding to the data packet sent by the receiving end.

[0044] It should be noted that, during communication with the sender, the receiving end may receive successfully forwarded data packets from the network, or it may receive the first HT packet sent after packet loss. When the receiving end determines packet loss based on the first HT packet, it can send a negative message to the sender, informing the sender that it did not receive the corresponding data packet and requesting the sender to retransmit it.

[0045] Optionally, the method further includes:

[0046] If no acknowledgment message is received within a time threshold after the data packet is sent, the data packet is retransmitted to the receiving end; wherein the acknowledgment message is used to indicate that the receiving end has successfully received the data packet.

[0047] Optionally, the transmission protocol of the data packet is a target protocol, the target protocol including the Remote Direct Memory Access (RoCE) protocol of Converged Ethernet, the second HT packet carries a destination port number, the destination port number indicating the port on which the receiving end receives the data packet; the step of retransmitting the data packet to the receiving end in response to the second HT packet includes:

[0048] Based on the destination port number carried in the second HT message, the source port number corresponding to the data packet is determined, and the source port number indicates the port on which the sending end sent the data packet; based on the source port number, the data packet is retransmitted to the receiving end.

[0049] In this context, the destination port number refers to the destination transmission queue pair (QP) number, and correspondingly, the source port number refers to the source QP number. The QP is an important concept in remote direct memory access (RDMA) communication; it consists of a transmit queue and a receive queue, and is used to identify a communication session in RDMA communication.

[0050] It should be noted that in the RoCE protocol stack, the packet encapsulation does not include the source QP number. This reduces encapsulation overhead and improves message transmission efficiency.

[0051] Thirdly, a message sending apparatus is provided, which has the function of implementing the message sending method behavior described in the first aspect above. The message sending apparatus includes:

[0052] The message acquisition module is used to acquire the first header-trimmed HT message and the second HT message corresponding to the data message. The first HT message and the second HT message are used to indicate that the data message has been lost.

[0053] The message sending module is used to send the first HT message to the receiving end of the data message and to send the second HT message to the sending end of the data message.

[0054] Optionally, the first HT message is a message after discarding the payload portion of the data packet, and the destination address of the second HT message is the source address in the data packet.

[0055] Optionally, the port of the network node has a data packet queue and a control packet queue. The data packet queue is used to buffer data packets to be sent, and the control packet queue is used to buffer control packets to be sent. The priority of the control packet queue is higher than that of the data packet queue. The packet sending device further includes:

[0056] An adding module is used to add the first HT message to the control message queue corresponding to the first port, and to add the second HT message to the control message queue corresponding to the second port. The first port is the port in the network node that sends messages to the sending end, and the second port is the port in the network node that sends messages to the receiving end.

[0057] Optionally, the message sending module is specifically used for:

[0058] According to the scheduling weight, the packets to be sent by the first port are determined from the data packet queue and the control packet queue corresponding to the first port. The scheduling weight indicates the ratio between the number of packets scheduled from the data packet queue and the number of packets scheduled from the control packet queue.

[0059] If the message to be sent at the first port is the first HT message, then the first HT message is sent to the receiving end.

[0060] Optionally, the message sending module is specifically used for:

[0061] According to the scheduling weight, the packets to be sent by the second port are determined from the data packet queue and the control packet queue corresponding to the second port. The scheduling weight indicates the ratio between the number of packets scheduled from the data packet queue and the number of packets scheduled from the control packet queue.

[0062] If the message to be sent on the second port is the second HT message, then the second HT message is sent to the sending end.

[0063] Optionally, the scheduling weight indicates that the number of packets scheduled from the control message queue is greater than the number of packets scheduled from the data message queue.

[0064] Optionally, both the first HT message and the second HT message include a first field, which is used to carry the transmission status of the data message, and the transmission status is packet loss.

[0065] Optionally, the message acquisition module includes:

[0066] The probability determination unit is used to determine the probability that the data packet triggers the HT operation based on the queue depth of the data packet queue, wherein the data packet queue refers to the queue that buffers the data packet.

[0067] The message acquisition unit is configured to acquire the first HT message and the second HT message corresponding to the data message if it is determined based on the probability that the data message triggers the HT operation.

[0068] Optionally, the probability determination unit is specifically used for:

[0069] If the queue depth is less than or equal to the first threshold, then the probability that the data packet triggers the HT operation is determined to be 0.

[0070] If the queue depth is greater than or equal to the second threshold, then the probability that the data packet triggers an HT operation is determined to be 1; wherein, the second threshold is greater than the first threshold;

[0071] If the queue depth is greater than the first threshold and less than the second threshold, then the probability of the data packet triggering the HT operation is determined to be a target value, where the target value is a value greater than 0 and less than 1.

[0072] Optionally, the target value is positively correlated with the queue depth.

[0073] Fourthly, a message sending apparatus is provided, which has the function of implementing the message sending method behavior described in the second aspect above. The message sending apparatus includes:

[0074] The message receiving module is used to receive a second HT message sent by a network node. The second HT message is used to indicate that a data packet sent by the sending end to the receiving end through the network node has been lost.

[0075] The message retransmission module is used to retransmit the data message to the receiving end in response to the second HT message.

[0076] Optionally, in the message sending device:

[0077] The message receiving module is also configured to receive a negative message sent by the receiving end, the negative message indicating that the receiving end has not received the data message;

[0078] The message retransmission module is further configured to retransmit the data message to the receiving end in response to the negative message.

[0079] Optionally, the message retransmission module is further configured to:

[0080] If no acknowledgment message is received within a time threshold after the data packet is sent, the data packet is retransmitted to the receiving end; wherein the acknowledgment message is used to indicate that the receiving end has successfully received the data packet.

[0081] Optionally, the transmission protocol of the data packet is a target protocol, the target protocol including the Remote Direct Memory Access (RoCE) protocol of converged Ethernet, and the second HT packet carries a destination port number, the destination port number indicating the port on which the receiving end receives the data packet;

[0082] The message retransmission module is specifically used for:

[0083] Based on the destination port number carried in the second HT message, the source port number corresponding to the data packet is determined, and the source port number indicates the port on which the sending end sends the data packet;

[0084] The data packet is retransmitted to the receiving end based on the source port number.

[0085] Fifthly, a message transmission system is provided, comprising a sender, a network node, and a receiver. The network node is used to execute the message transmission method provided in the first aspect, and the sender is used to execute the message transmission method provided in the second aspect. For the receiver's response to a data packet or a first HT packet, please refer to the relevant descriptions in the first and second aspects.

[0086] Optionally, the receiving end receives a first HT message sent by the network node, the first HT message indicating that a data packet sent by the sending end to the receiving end via the network node has been lost; in response to the first HT message, the receiving end sends a negative message to the sending end. The negative message indicates that the receiving end has not received the data packet.

[0087] In a sixth aspect, a chip is provided, the chip including a processor, the processor being capable of executing the steps of the message transmission method provided in the first aspect, or executing the message transmission method provided in the second aspect.

[0088] Optionally, the chip also includes an interface circuit for receiving instructions and transmitting them to the processor.

[0089] In a seventh aspect, a chip system is provided, comprising a first chip, a second chip, and a third chip. The first chip is used to execute the message transmission method provided in the first aspect, and the second chip is used to execute the message transmission method provided in the second aspect.

[0090] Optionally, the third chip is integrated into the receiving end involved in the first aspect above, and is used to perform the operations performed by the receiving end in the first aspect above.

[0091] Eighthly, a computer device is provided, the computer device including a processor configured to perform the steps of the message transmission method described in the first aspect, or the steps of the message transmission method described in the second aspect.

[0092] Optionally, the computer device may further include a memory for storing a computer program that executes the message transmission method provided in the first aspect, or for storing a computer program that executes the message transmission method provided in the second aspect, such that the processor is configured to execute the computer program stored in the memory to implement the steps of the message transmission method described in the first aspect or the steps of the message transmission method described in the second aspect.

[0093] Optionally, the computer device may further include a communication bus for establishing a connection between the processor and the memory.

[0094] In a ninth aspect, a computer-readable storage medium is provided, the storage medium storing instructions that, when executed on a computer, cause the computer to perform the steps of the message transmission method described in the first aspect, or to perform the steps of the message transmission method described in the second aspect.

[0095] In a tenth aspect, a computer program product comprising instructions is provided, which, when executed on a computer, cause the computer to perform the steps of the message transmission method described in the first aspect, or to perform the steps of the message transmission method described in the second aspect.

[0096] Alternatively, a computer program is provided that, when run on a computer, causes the computer to perform the steps of the message sending method described in the first aspect above, or to perform the steps of the message sending method described in the second aspect above.

[0097] The technical effects achieved by the third to tenth aspects mentioned above are similar to the technical effects achieved by the corresponding technical means in the first or second aspects, and will not be repeated here. Attached Figure Description

[0098] Figure 1 This is a schematic diagram of a communication architecture based on numerical control separation technology provided in an embodiment of this application;

[0099] Figure 2 This is a logic diagram illustrating how to trigger an HT operation in related technologies;

[0100] Figure 3 This is a schematic diagram of the architecture of a message sending system provided in an embodiment of this application;

[0101] Figure 4 This is a flowchart illustrating a message sending method provided in an embodiment of this application;

[0102] Figure 5 This is a schematic diagram of a probability model for triggering an HT operation provided in an embodiment of this application;

[0103] Figure 6 This is a schematic diagram of an HT message format provided in an embodiment of this application;

[0104] Figure 7 This is a schematic diagram of queue scheduling provided in an embodiment of this application;

[0105] Figure 8 This is a flowchart illustrating another message sending method provided in an embodiment of this application;

[0106] Figure 9 This is a flowchart illustrating another message sending method provided in an embodiment of this application;

[0107] Figure 10 This is a schematic diagram of an HPC network architecture provided in an embodiment of this application;

[0108] Figure 11 This is a logical schematic diagram of a bidirectional feedback HT message provided in an embodiment of this application;

[0109] Figure 12 This is a schematic diagram of a network node performing an HT operation according to an embodiment of this application;

[0110] Figure 13 This is a schematic diagram of the structure of a message sending device provided in an embodiment of this application;

[0111] Figure 14 This is a schematic diagram of another message sending device provided in an embodiment of this application;

[0112] Figure 15 This is a schematic diagram of the structure of a computer device provided in an embodiment of this application. Detailed Implementation

[0113] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the implementation methods of this application will be further described in detail below with reference to the accompanying drawings.

[0114] To facilitate understanding, before explaining the message sending method provided in the embodiments of this application, the relevant background, application scenarios and system architecture involved in the embodiments of this application will be introduced first.

[0115] First, the relevant background of the embodiments of this application will be introduced.

[0116] With the rise of large-scale artificial intelligence (AI) models, the computational demands on the underlying infrastructure for training these models are increasing. To maximize the computational efficiency of AI training clusters, network transmission protocols have become a key technology supporting this computing foundation. Currently, high-performance transmission protocols are based on the fundamental assumptions of "lossy network" and "lossless network," leading to two main technologies: lossless network technology and lossy network technology.

[0117] 1. Lossless Network Technology

[0118] Lossless network technology ensures no packet loss (i.e., no data packet loss) in the network by using hop-by-hop flow control techniques between network nodes (such as switches), such as Priority Flow Control (PFC), and employs a simplified transport protocol stack at the endpoints (such as hosts and network interface cards). However, the flow control techniques introduced to achieve lossless network operation introduce problems such as head-of-line blocking (HOLB) ​​and deadlock. They also require network nodes to have larger buffers to store data packets waiting to be transmitted, supporting larger-scale and longer-distance networks. The need for large buffers increases the cost and resource overhead of network nodes, including memory resources, processing power, and power consumption. Excessively large buffers may also cause other problems, such as increased latency and memory fragmentation.

[0119] Taking PFC as an example, this technology allows the creation of multiple virtual channels on an Ethernet link and the assignment of a priority to each channel. When the receive buffer of a certain channel becomes congested, a backpressure signal is sent to the sender, requesting a pause in the transmission of traffic of the corresponding priority, thereby avoiding data packet loss. This mechanism can precisely control the traffic of each virtual channel, achieving packet loss-free transmission.

[0120] Since Priority Control (PFC) manages the entire virtual channel or priority queue, if a high-priority queue is blocked, even if a low-priority queue has enough space to receive data, it will also be blocked. This causes low-priority data packets to be delayed as they wait for high-priority data packets to be transmitted, a phenomenon known as head-blocking. Head-blocking reduces network throughput and transmission efficiency, and increases latency.

[0121] If multiple network nodes experience congestion simultaneously due to loops or other reasons, and their port buffers exceed their thresholds while they wait for each other to release resources, data flow on all network nodes will be permanently blocked, resulting in a deadlock. While PFC deadlock detection mechanisms can detect and attempt to recover from deadlocks, they may not be able to completely prevent deadlocks in certain situations. Once a deadlock occurs, the entire network will be paralyzed, and no traffic can be transmitted.

[0122] 2. Lossy network technology

[0123] Lossy network technologies allow for packet loss during network transmission. The endpoints need to implement complex packet loss detection and retransmission mechanisms, such as timeout retransmission, fast retransmission, and selective acknowledgment (SACK) in the Transmission Control Protocol (TCP), to ensure data reliability and integrity. Because packets may not arrive in order or require multiple retransmissions, lossy network technologies may suffer from multipath out-of-order delivery, packet loss ambiguity, and issues like secondary retransmission and tail packet retransmission. These problems are difficult to address effectively using traditional reliable retransmission techniques. Furthermore, the endpoints require larger caches to support out-of-order reception and retransmission, leading to increased hardware resources and costs.

[0124] The multipath out-of-order delivery and packet loss ambiguity issues refer to the fact that data packets may be transmitted via multiple paths, and the transmission delays and reliability of different paths may vary, leading to disordered arrival of data packets at the receiving end or duplicate packet loss. Reliable retransmission techniques, when addressing these issues, typically assume that data packets arrive in order and that packet loss is independent, which can result in unnecessary retransmissions, wasted resources, and increased latency. The double retransmission and tail packet retransmission issues arise because, in multipath transmission, due to path differences and the uncertainty of packet loss, some data packets may require multiple retransmissions to successfully reach the receiving end, especially the last data packet (tail packet), which may be delayed while waiting for data packets on other paths. These issues exacerbate the processing burden and latency at the receiving end, reducing data transmission efficiency and reliability.

[0125] In summary, both "lossless network" and "lossy network" technologies have their own unavoidable problems. To achieve a complementary advantage between the two technologies, a new technical approach has emerged: the transport layer employs "data control partitioning" (DCP) technology. This approach only requires lossless control plane technology, without guaranteeing lossless data plane technology, thereby achieving extremely high transmission performance with minimal network overhead.

[0126] Control separation is a network architecture and data processing strategy that aims to separate the processing of control information and data payload in network transmission. Typically, data packets in a network model (such as TCP packets and Internet Protocol (IP) packets) consist of a header and a payload. The header contains routing and control information, while the payload contains the actual transmitted data. Control separation technology improves network flexibility and efficiency by separating the processing of these two parts.

[0127] The control plane is responsible for processing the header information of data packets and related control messages, such as acknowledgement (ACK) messages and negative ACK (NACK or NAK) messages. This information is crucial for network routing decisions, congestion control, and error recovery. In a control-data plane separation architecture, the control plane typically enjoys higher priority and a more direct processing path to ensure the timely delivery of control information. The data plane, on the other hand, focuses on the forwarding and processing of data payloads. That is, the data plane transmits the payload from the source to the destination according to the instructions of the control plane. In a control-data plane separation architecture, the data plane may undergo different processing flows, such as queue management and traffic shaping, but its main purpose is to transmit data efficiently and reliably.

[0128] See Figure 1 , Figure 1 A schematic diagram of a communication architecture based on numerical control separation technology is shown. The sending and receiving ends communicate using two channels: a control channel (control plane communication channel) and a data channel (data plane communication channel). Correspondingly, network nodes also use two channels to forward two types of messages: data messages and control messages. The data channel transmits data messages, and the control channel transmits control messages.

[0129] As an example, after the sending end generates a data packet, it sends the data packet to the network through a data channel. Network nodes forward the data packet to the receiving end via the data channel. Upon receiving the data packet, the receiving end generates an ACK packet based on the data packet and sends the ACK packet to the network through a control channel. Network nodes then forward the ACK packet to the sending end via the control channel, allowing the sending end to confirm that the receiving end has successfully received the data packet. In this way, the transmission of a data packet is completed between the sending and receiving ends.

[0130] Furthermore, header trimming (HT), a key mechanism in data control separation technology, is used to reduce the size of data packets during network congestion, thereby alleviating network pressure and prioritizing the transmission of control information. Specifically, the HT operation is triggered when a network node detects network congestion and anticipates packet loss in the regular packet queue.

[0131] The HT operation refers to pruning a data packet, retaining its header information (including routing, sequence number, and other critical control information) while discarding the payload, to obtain the corresponding HT packet. After obtaining the HT packet, the network node forwards it through a high-priority control message queue to inform the receiver that the data packet was lost during network transmission. Upon receiving the HT packet, the receiver can respond by sending a NAK message to the sender, requesting retransmission of the corresponding data packet.

[0132] As an example, Figure 2 A schematic diagram illustrating the logic for triggering an HT operation in a related technology is shown. See also... Figure 2 The sending end generates a complete data packet containing a header and payload, which is then transmitted through the network. If a network node detects network congestion, it immediately triggers a High-Level Congestion (HT) operation, retaining the data packet header and discarding the payload. The resulting HT packet is then sent through a high-priority control queue. At this point, the receiving end only receives the HT packet and not the payload of the data packet. Based on the HT packet, the receiving end determines that the corresponding data has been lost and can generate a NAK packet to send back to the sending end. The NAK packet, as a control message, is returned to the sending end through the control plane, informing them of the data loss. Upon receiving the NAK, the sending end can choose to retransmit the lost data or take other recovery measures, depending on the mechanisms of TCP or other transport layer protocols.

[0133] In other words, the numerical control separation and head trimming technology can effectively reduce the network burden when the network is congested, prioritize the transmission of control information, and thus achieve reliable and efficient transmission at a lower cost.

[0134] However, the methods for triggering HT operations in the aforementioned related technologies may have at least one of the following problems:

[0135] (1) Network queuing depth and tidal synchronization problem

[0136] A core mechanism for triggering HT operations in related technologies is to trigger the HT action 100% of the time when the network node's buffer is about to overflow, i.e., discarding the data payload and retaining only the header information. While this mechanism can alleviate network congestion to some extent, since every flow triggers the HT operation when it detects that the buffer is about to overflow, it may cause all flows passing through that network node to reduce their sending window size almost simultaneously, thereby reducing the amount of effective data payload in the network.

[0137] As all flows reduce their sending rates almost simultaneously, the overall network throughput drops rapidly, forming a "trough." Subsequently, as buffer space is released, the flow sending rates gradually increase, and throughput recovers, forming a "peak." This recurring peak-trough phenomenon leads to network throughput instability, i.e., throughput oscillation.

[0138] As an example, in applications that require stable, low-latency transmission, such as live video streaming and online games, throughput fluctuations can directly impact user experience, such as video stuttering and increased game latency.

[0139] (2) Slow long-distance feedback

[0140] In scenarios such as wide-area networks (WANs) interconnecting data centers, network latency is relatively high. Therefore, when congestion occurs on the side closer to the sender, HT messages need to be transmitted across the network to a receiver that may be hundreds of kilometers away. The receiver only responds to the HT message after receiving it, generating a NAK message and sending it back to the sender. This process results in a long round-trip time (RTT), causing a delay in the feedback signal.

[0141] In particular, long-distance RTT increases the delay of feedback signals, which can cause the sender to be unable to respond to network congestion in a timely manner to adjust the transmission rate. This may lead to the sender continuing to send data at an excessively high rate, further aggravating network congestion.

[0142] As an example, in scenarios such as cross-regional data center synchronization and remote database access, slow feedback over long distances can lead to problems such as data synchronization delays and slow database operation responses, affecting business efficiency.

[0143] (3) Control plane preemption of bandwidth leads to congestion and crash.

[0144] In related technologies, schemes that trigger HT operations typically employ a strict priority (SP) scheduling strategy to ensure timely delivery of control messages, as the control queue contains HT, ACK, and NAK messages. However, in extreme cases (such as incast scenarios), a large influx of HT and feedback messages (i.e., ACK and / or NAK messages) can simultaneously flood the control queue, causing it to quickly fill up and consume significant bandwidth. The incast scenario refers to a situation in a data center network where multiple clients send data to the same server almost simultaneously, leading to congestion in the server's receive buffer.

[0145] When control messages occupy all or most of the bandwidth, the transmission of data plane payloads will be severely affected, or even completely blocked. This will lead to a sharp decline in overall network performance and congestion-induced collapse.

[0146] As an example, in a cloud computing environment, multiple virtual machines or containers may simultaneously send large amounts of data to the same physical machine (e.g., write operations on distributed storage). If network congestion occurs at this time and triggers a large number of HT operations, the surge in control messages may quickly lead to network congestion and crashes, affecting the performance and stability of the entire cloud service.

[0147] Based on this, embodiments of this application provide a message sending method that can be applied to any network node forwarding data packets and to the sending end sending data packets. When the implementing entity of this application is a network node, upon determining that a data packet has been lost, the network node obtains the first HT message and the second HT message corresponding to the data packet, and sends the first HT message to the receiving end of the data packet and the second HT message to the sending end of the data packet. This bidirectional feedback of HT messages informs both the sending and receiving ends that the data packet has been lost, allowing both ends to execute the corresponding packet loss response operation as early as possible. When the implementing entity of this application is the sending end, upon receiving the second HT message sent by the network node, the sending end can determine that the corresponding data packet has been lost and, in response to the second HT message, promptly retransmit the corresponding data packet to the receiving end, improving the retransmission response efficiency of the sending end.

[0148] Of course, the method provided in this application embodiment can also be applied to the receiving end that receives data packets. That is, when the receiving end receives the first HT packet sent by the network node, it can determine that the corresponding data packet has been lost, and in response to the first HT packet, quickly distinguish between multipath out-of-order and packet loss out-of-order, and perform the corresponding out-of-order management operation.

[0149] It should be noted that the embodiments of this application do not limit the response operation of the receiving end. That is, the receiving end can refer to reliable transmission protocols in related technologies to request the sending end to retransmit the corresponding data packet, or it can perform other response operations.

[0150] Secondly, the application scenarios and system architecture of the embodiments of this application will be introduced.

[0151] The message sending method provided in this application embodiment can be applied to application scenarios such as AI-centric network (AICN), data center network (DCN), and wide-area network (WAN) to achieve end-to-end communication among these nodes.

[0152] AICN is a network architecture specifically designed to support artificial intelligence (AI) applications. It integrates high-performance computing resources, high-speed network connectivity, and optimized storage systems to support large-scale training and inference processes for AI algorithms. AICN ensures the efficiency and accuracy of AI applications when handling large datasets and complex computational tasks by providing a low-latency, high-bandwidth, and reliable network environment. DCN refers to the network architecture located within a data center, used to connect various servers, storage devices, and network devices. It is a crucial component of data center infrastructure, responsible for enabling high-speed data transmission and communication within the data center. WAN refers to the network architecture connecting data centers in different geographical locations. It typically covers a wide geographical area and is used to enable remote communication and data transmission between data centers.

[0153] For the three network architectures in the above examples, the message sending method provided in this application embodiment can be applied to any network node in the network. The network node can process data packets sent from the sending end to the receiving end in accordance with the technical solution provided in this application embodiment.

[0154] See Figure 3 , Figure 3 This is a schematic diagram of the architecture of a message sending system provided in an embodiment of this application. The message sending system includes a sending end, a network node, and a receiving end. The sending end communicates with the receiving end through the network node.

[0155] This application does not limit the topology of the communication network to which the network node belongs; it can be a CLOS architecture, a Torus architecture, etc. This application also does not limit the type and number of network nodes used in the communication process between the sending and receiving ends; the number can be one or more, and the type can be routers, switches, gateways, etc.

[0156] It should be understood that, Figure 3 This example only illustrates how the sender P1 and receiver Q1 communicate through two network nodes. In practical applications, any sender in this system architecture can communicate with any receiver through one or more network nodes. This embodiment does not impose any restrictions on this.

[0157] In this embodiment of the application, the network node is used to execute the following... Figure 4 The message sending method in the illustrated embodiment is used by the sending end to execute the following... Figure 8 The message sending method in the illustrated embodiment is used by the receiving end to execute the following... Figure 9 The message sending method in the illustrated embodiment is described below. For detailed implementation process, please refer to the corresponding method embodiment below.

[0158] It should be understood that the business scenarios and computer equipment architectures described in the embodiments of this application are for the purpose of more clearly illustrating the technical solutions of the embodiments of this application, and do not constitute a limitation on the technical solutions provided in the embodiments of this application. As those skilled in the art will know, with the evolution of computer equipment architecture and the emergence of new business scenarios, the technical solutions provided in the embodiments of this application are also applicable to similar technical problems.

[0159] The message sending method provided in the embodiments of this application will be explained in detail below.

[0160] Figure 4 This is a flowchart illustrating a message sending method provided in an embodiment of this application. This method is applied to any network node in a communication network. Please refer to... Figure 4 The method includes the following steps.

[0161] Step 401: Obtain the first HT message and the second HT message corresponding to the data packet. The first HT message and the second HT message are used to indicate that the data packet has been lost.

[0162] In some embodiments, the first HT message and the second HT message are messages generated in real time by the network node based on the data packet when it is determined that the data packet has been lost.

[0163] The first HT message is the message after discarding the payload portion of the data packet, and the destination address of the second HT message is the source address in the data packet.

[0164] As an example, the process by which a network node generates the first HT message can be as follows: based on the data packet, discard the payload portion of the data packet, retain only the header, and obtain the first HT message. In this case, the first HT message can be considered equivalent to the header of the data packet.

[0165] As an example, the process of a network node generating a first HT packet can be as follows: based on the first HT packet, the source address and destination address in the first HT packet are swapped to obtain a second HT packet. Alternatively, based on a data packet, the payload portion of the data packet can be discarded, only the header retained, and the source and destination addresses swapped to obtain a second HT packet. This application does not impose any limitations on this approach.

[0166] In some embodiments, a network node's port has a data packet queue and a control packet queue. The data packet queue is used to buffer data packets to be sent, and the control packet queue is used to buffer control packets to be sent. The control packet queue has a higher priority than the data packet queue. That is, the network node uses a data packet forwarding separation technique to perform packet forwarding operations.

[0167] Control messages include HT messages, NAK messages, ACK messages, etc. This application's embodiments do not impose limitations on this.

[0168] Based on this, before generating the first HT packet and the second HT packet and performing step 402 below, the network node adds the first HT packet to the control message queue corresponding to the first port and adds the second HT packet to the control message queue corresponding to the second port. Here, the first port is the port in the network node that sends packets to the sending end, and the second port is the port in the network node that sends packets to the receiving end.

[0169] In other words, a network node comprises multiple ports, each connected to a different node. Each port corresponds to a data packet queue and a control packet queue. Of course, each port may also correspond to other queues; this embodiment does not limit the number of queues corresponding to a port.

[0170] In one possible implementation, the process of implementing step 401 above may include the following steps:

[0171] (1) The probability of a data packet triggering an HT operation is determined based on the queue depth of the data packet queue.

[0172] As explained above, a data packet queue refers to a queue that caches data packets. That is, for any port in a network node, this embodiment of the application will determine whether the cached data packets in the data packet queue have been lost based on the queue depth of the data packet queue.

[0173] It should be noted that the "packet loss" in this application embodiment is an active operation, that is, the network node determines whether to perform a packet loss operation on the data packet. When the network node determines that a packet loss operation needs to be performed on the data packet, it performs an HT operation on the data packet.

[0174] Therefore, when a network node determines that a data packet needs to be actively lost, it can quickly report the packet loss to the sender and receiver as early as possible through HT messages. This advances the packet loss response actions of the sender and receiver, shortens the retransmission latency in the event of packet loss, and improves the end-to-end communication performance.

[0175] Alternatively, the reasons for a network node to intentionally lose packets may include, but are not limited to, any of the following:

[0176] (1) When a network node detects network congestion, device overload, or configuration errors, it determines that data packets cannot be successfully transmitted or processed.

[0177] (2) The network node detects a potential security threat (e.g., a distributed denial-of-service (DDoS) attack);

[0178] (3) The network node itself has a fault, and troubleshooting and performance optimization are required.

[0179] Alternatively, as described in the related art, when packet loss occurs, since the overflowing data packets will not be sent by the network node, it can be determined that the overflowing data packets have been lost at the network node when the data packet queue is about to overflow, and the HT operation is performed on the overflowing data packets.

[0180] Here, HT operation refers to generating an HT message corresponding to a data packet. In this embodiment, if a data packet triggers an HT operation, based on the two-way feedback approach, it is necessary to generate a first HT message and a second HT message corresponding to the data packet.

[0181] In one possible implementation, the process of determining the probability of a data packet triggering an HT operation can be as follows: if the queue depth is less than or equal to a first threshold, the probability of a data packet triggering an HT operation is determined to be 0; if the queue depth is greater than or equal to a second threshold, the probability of a data packet triggering an HT operation is determined to be 1; if the queue depth is greater than the first threshold and less than the second threshold, the probability of a data packet triggering an HT operation is determined to be a target value, where the target value is a value greater than 0 and less than 1.

[0182] The second threshold is greater than the first threshold; for example, the first threshold is 30% and the second threshold is 80%. The queue depth can be represented by information such as the number of data packets cached in the data packet queue or the size of the cached data packets. This application embodiment does not impose any limitations on this.

[0183] Optionally, the target value is positively correlated with the queue depth. That is, for a port of a network node, the queue depth of the data packet queue of that port is positively correlated with the probability of the data packet triggering the HT operation. As the queue depth increases, the probability of the data packet triggering the HT operation also increases.

[0184] As an example, the probability model for a data packet triggering an HT operation can be as follows: Figure 5 As shown, and assuming the first threshold is Q HTmin The second threshold is Q. HTmax Let the trigger probability be P and the queue depth be Q. In this probability model, when Q is less than or equal to Q... HTmin In the case where Q is greater than Q, the probability of the data packet triggering the HT operation is 0, meaning the HT operation will not be triggered; HTmin And less than Q HTmax In the case where the data packet triggers an HT operation, the probability P increases as Q increases; when the queue depth Q is greater than or equal to Q... HTmax In this case, the probability of a data packet triggering an HT operation is 1, meaning that an HT operation will definitely be triggered.

[0185] Optionally, Figure 5 P0 can be a value such as 50%, 60% or 70%, and the embodiments of this application do not limit its value.

[0186] As an example, Q is greater than Q. HTmin And less than Q HTmax If the probability of triggering HT for the current data packet is determined to be 60%, then after the network node successfully forwards 6 data packets out of 10 data packets, the 7th data packet will trigger the HT operation.

[0187] It should be noted that when the queue depth Q is greater than Q... HTmin And less than Q HTmaxIn some cases, the relationship between Q and P can also be non-linear. Figure 5 Using a linear growth relationship as an example is not intended to limit the relationship between the two.

[0188] Therefore, it can be seen that the network node triggers the HT operation with a certain probability P(Q) based on the queue depth Q. Compared with the related technology where the HT operation is triggered 100% of the time when the data packet queue overflows, the embodiment of this application sets a smaller Q. HTmin This allows some HT operations to be performed in advance, thus avoiding the simultaneous triggering of HT operations by multiple streams, achieving stable bandwidth and a smaller data packet queue depth.

[0189] (2) If the data packet triggers the HT operation based on probability, then the first HT packet and the second HT packet corresponding to the data packet are obtained.

[0190] That is, if it is determined that the data packet has triggered the HT operation based on the probability value P, the network node executes the above step 401 to generate the first HT packet and the second HT packet corresponding to the data packet.

[0191] In this embodiment, when a network node forwards a data packet from each port, it determines whether the data packet triggers an HT operation based on the queue depth of the data packet queue at that port. If the data packet triggers an HT operation, the network node generates an HT packet corresponding to the data packet and adds the HT packet to the corresponding control message queue.

[0192] Optionally, when a data packet triggers an HT operation, the network node can also add the corresponding HT packet to the control packet queue and then delete the data packet from the data packet queue to release the corresponding cache space.

[0193] In some embodiments, both the first HT message and the second HT message include a first field, which carries the transmission status of the data packet, and the transmission status is packet loss. In this case, the first field in the HT message can be used to identify that the corresponding data packet has been lost.

[0194] The first field can be any reserved field in the message format, or it can be a field specifically set by the message format. This application embodiment does not impose any restrictions on this.

[0195] As an example, such as Figure 6As shown, HT is the result obtained after discarding the payload portion of the data packet. The first field is located in the packet header and can be a reserved field in the header. The value of the first field can default to 0 to indicate that the data packet transmission status is normal. If a network node determines that a data packet has been lost, the network node can modify the value of this first field to 1 to indicate that the data packet transmission status is packet loss.

[0196] Therefore, by using the value of the first field, the receiving end of the HT message can accurately determine the packet loss situation.

[0197] Step 402: Send the first HT message to the receiving end of the data packet and send the second HT message to the sending end of the data packet.

[0198] As explained earlier, after a network node obtains the first HT and second HT packets corresponding to a data packet, it adds the first and second HT packets to the control message queue of the corresponding port, respectively, based on the receiving end of the HT packets. For a given port, when sending a packet, it selects a packet from either the data packet queue or the control message queue of that port and then sends that packet out of the port.

[0199] Therefore, for any port in a network node that has both a data packet queue and a control packet queue, when sending a packet, it must first select a packet to be sent from either the data packet queue or the control packet queue corresponding to that port. Next, taking the first port sending the first HT packet to the receiving end as an example, we will introduce the implementation method for selecting the packet to be sent on that port.

[0200] In one possible implementation, the network node determines the packet to be sent at the first port from the data packet queue and control packet queue corresponding to the first port according to the scheduling weight; if the packet to be sent at the first port is the first HT packet, then the first HT packet is sent to the receiving end.

[0201] As an example, for the first port, if the current message to be sent at time t1 is message 1 in the data message queue, then the network node sends message 1 through the first port; if the current message to be sent at time t1 is message 2 in the control message queue, then the network node sends message 2 through the first port; if at time tn, the current message to be sent by the network node is the first HT message, then the network node sends the first HT message at time tn.

[0202] Therefore, although the embodiments of this application generate a first HT packet in a timely manner when data packet loss is determined, whether the first HT packet is immediately sent to the receiving end depends on whether the first HT packet is selected when choosing a packet to be sent from the two packet queues. In other words, there may be a certain time delay between the moment the network node generates the first HT packet and the moment it sends the first HT packet.

[0203] The scheduling weight indicates the ratio between the number of packets scheduled from the data packet queue and the number of packets scheduled from the control packet queue. For example, the scheduling weight can be expressed as 10:1, 1:1, or 4:5, etc., and this embodiment does not limit this.

[0204] Optionally, the scheduling weight indicates that the number of packets scheduled from the control message queue is greater than the number of packets scheduled from the data message queue. Based on this, the scheduling weight can be 10:1.

[0205] In some embodiments, network nodes may employ a weighted round-robin (WRR) scheduling strategy, polling the data packet queue and control packet queue corresponding to the first port in an N:1 weighted manner to determine the packet to be sent. Here, N can be an integer greater than 1, and N can be set according to factors such as the importance, priority, or traffic characteristics of the services in the queues.

[0206] The implementation process of sending messages using the WRR strategy can be as follows: First, determine the weight values ​​of the data packet queue and the control packet queue. These weight values ​​represent the service ratio that the corresponding queue should receive during scheduling. Before scheduling begins, set a counter for each of the data packet queue and the control packet queue, with their initial values ​​proportional to the weight values ​​of the corresponding queues. For example, if the weight value of the control packet queue is 10 and the weight value of the data packet queue is 1, then initialize the counter for the control packet queue to 10 and the counter for the data packet queue to 1. Then, the network node sequentially checks each packet queue on the first port in a round-robin manner. When a packet queue is polled, if the counter of that packet queue is greater than 0, a packet is taken from that packet queue as the packet to be sent, and the counter of that packet queue is decremented by 1. If the counter of a packet queue is 0, that packet queue is skipped, and no service is provided. When the counters of all message queues on the first port are reduced to 0, it indicates that one round of scheduling is completed. At this time, the counters corresponding to each message queue are reinitialized according to the weight value of each message queue, and a new round of scheduling begins.

[0207] As an example, such as Figure 7As shown, assume that the data packet queue corresponding to the first port has 8 data packets to be sent (i.e., data packets 1-8), and the corresponding control packet queue has 6 control packets to be sent (i.e., control packets 1-6). The weight of the data packet queue is 2, and the weight of the control packet queue is 5. During polling, the counter of the control packet queue corresponding to the first port is 5, and the counter of the corresponding data packet queue is 2. Assuming that the network node polls the data packet queue first, it takes data packet 1 from the data packet queue and sends data packet 1 from the first port, while decrementing the counter of the data packet queue by 1 (at this time, the counter of the data packet queue is 1). Then, the network node polls the control packet queue, takes control packet 1 from the control packet queue, sends control packet 1 from the first port, and decrements the counter of the control packet queue by 1 (at this time, the counter of the control packet queue is 4). Further, the network node continues polling the data packet queue, retrieves data packet 2 from the queue, and sends it out from the first port, while simultaneously decrementing the counter of the data packet queue by 1 (at this point, the counter of the data packet queue is 0). Then, the network node continues polling the control packet queue, retrieves control packet 2 from the queue, and sends it out from the first port, while simultaneously decrementing the counter of the control packet queue by 1 (at this point, the counter of the control packet queue is 3). In subsequent polling, since the counter corresponding to the data packet queue is 0, this data packet queue is skipped, and the polling of the control packet queue continues. Control packets 3, 4, and 5 are retrieved sequentially from the control packet queue and sent out from the first port in that order. After selecting control packet 5, the counter of the control packet queue is also decremented to 0, thus completing one round of scheduling.

[0208] In the aforementioned 5:2 message scheduling process, the first port sequentially sends the following messages in one round of scheduling: Data Message 1, Control Message 1, Data Message 2, Control Message 2, Control Message 3, Control Message 4, and Control Message 5. That is, in one round of scheduling, the first port sends 5 control messages and 2 data messages in a 5:2 ratio.

[0209] As another example, suppose a network node has three queues (queue A, queue B, and queue C) with weights of 50%, 30%, and 20%, respectively. On a 100Mbps port, the WRR policy will guarantee that queue A receives at least 50Mbps of bandwidth, queue B at least 30Mbps, and queue C at least 20Mbps. When all three queues have packets to send, packets are retrieved from each queue in order of their weights and sent. If all packets in a queue have been sent or the queue's counter has decremented to 0, that queue is skipped, and processing continues with packets from other queues.

[0210] It should be noted that, for the first port, although the first HT packet has been added to the corresponding control message queue, whether the network node sends the first HT packet from the first port depends on whether the currently pending packet is the first HT packet, based on the aforementioned scheduling weights. That is, if the network node does not select the first HT packet from the control message queue according to the aforementioned scheduling weights, the first HT packet is buffered in the control message queue and no transmission operation is performed. Only when the network node selects the first HT packet from the control message queue will the network node send the first HT packet from the first port.

[0211] Correspondingly, the network node determines the message to be sent on the second port from the data message queue and control message queue corresponding to the second port according to the scheduling weight; if the message to be sent on the second port is the second HT message, then the second HT message is sent to the sending end.

[0212] The process of sending the second HT message on the second port is similar to that on the first port, as explained above, and will not be repeated here.

[0213] Therefore, in this embodiment, the network node selects the packets to be sent from the data packet queue and the control packet queue according to the scheduling weight, so that the control packet queue does not completely occupy the bandwidth, thereby avoiding the situation that the traffic in the data packet queue cannot be forwarded. This solves the problem of congestion and collapse caused by the control packet completely occupying the downlink in related technologies, and ensures the stability of end-to-end communication.

[0214] In summary, in this embodiment, when a network node determines that a data packet has been lost, it obtains the first HT packet and the second HT packet corresponding to the data packet, and sends the first HT packet to the receiving end of the data packet and the second HT packet to the sending end of the data packet. This bidirectional feedback of HT packets informs both the sending and receiving ends that the data packet has been lost, allowing them to execute corresponding packet loss response operations as early as possible. Thus, by using bidirectional HT packet feedback, the packet loss response speed of both the receiving and sending ends is improved, enhancing the overall end-to-end communication performance of the network.

[0215] Based on the above Figure 4 In the illustrated method embodiment, after the network node sends out bidirectional HT messages, both the sending and receiving ends can perform response operations upon receiving the corresponding HT messages. Next, the response operation of the sending end to the HT messages in this embodiment will be described.

[0216] Figure 8This is a flowchart illustrating a message sending method provided in an embodiment of this application. This method is applied at the sending end. Please refer to... Figure 8 The method includes the following steps.

[0217] Step 801: Receive the second HT message sent by the network node. The second HT message is used to indicate that a data packet sent by the sender to the receiver through the network node has been lost.

[0218] In one possible implementation, the second HT message includes a first field, which carries the transmission status of the data packet, and the transmission status is packet loss. That is, for the sending end, after receiving the second HT message, it can determine whether the corresponding data packet has been lost based on the information in the first field.

[0219] The HT message is the result after discarding the payload portion of the data packet; that is, the HT message only contains the header information of the data packet. The header usually carries a packet sequence number (PSN) to identify the transmission order of the packets. Therefore, after receiving the second HT message, the sending end can determine the data packet that was lost based on the PSN in the second HT message, which is the data packet that needs to be retransmitted in step 802 below.

[0220] Step 802: In response to the second HT message, retransmit the data packet to the receiving end.

[0221] In other words, the HT message serves as a retransmission trigger condition. When the sending end receives the HT message, it can retransmit the corresponding data packet.

[0222] In some embodiments, the sending end further performs the following steps: receiving a negative message sent by the receiving end, the negative message indicating that the receiving end has not received the data packet; and retransmitting the data packet to the receiving end in response to the negative message.

[0223] As an example, a negative message can be a NAK message.

[0224] Therefore, in this embodiment of the application, the conditions for the sending end to retransmit a data packet after sending a data packet are: receiving the HT packet corresponding to the data packet sent by the network node, and / or receiving the negative packet corresponding to the data packet sent by the receiving end.

[0225] It should be noted that in actual implementation, since the HT message is fed back from the network node on the communication path from the sender to the receiver, and the NAK message is fed back from the receiver, the two messages are transmitted to the sender at different times. Therefore, the sender can respond to only one of the HT message or the NAK message, that is, retransmit the corresponding data message.

[0226] As an example, considering that when a network node is close to the sender, the HT message sent by the network node will arrive at the sender before the NAK message, the sender only retransmits the HT message. That is, whether the sender retransmits a data packet depends on whether it has received the corresponding HT message from the network node.

[0227] Optionally, if the sender only retransmits HT messages, the traditional NAK message feedback method for packet loss can be disabled between the receiver and the sender, meaning the receiver will no longer send NAK messages to the sender.

[0228] In some embodiments, if no acknowledgment message is received within a time threshold after the data packet is sent, the data packet is retransmitted to the receiving end; wherein, the acknowledgment message is used to indicate that the receiving end has successfully received the data packet.

[0229] As an example, an acknowledgment message can be an ACK message.

[0230] The duration threshold can be any preset value, such as 10 milliseconds (ms), and this application embodiment does not impose any restrictions on it.

[0231] It should be noted that this duration threshold serves as a "fallback" solution, enabling timely retransmission of the corresponding data packets in the event of loss of NAK packets and / or HT packets in the control plane.

[0232] In some embodiments, the transmission protocol of the data packets transmitted between the sending end and the receiving end is a target protocol, which includes the remote direct memory access over converged ethernet (RoCE) protocol. In this case, the second HT message sent by the network node carries a destination port number, which indicates the port on which the receiving end receives the data packets.

[0233] In one possible implementation, step 802 can be implemented as follows: based on the destination port number carried in the second HT message, determine the source port number corresponding to the data packet, which indicates the port on which the sending end sends the data packet; based on the source port number, retransmit the data packet to the receiving end.

[0234] It should be understood that RoCE is a network protocol that allows remote direct memory access (RDMA) over Ethernet. Utilizing RDMA technology, it enables high-speed data access between servers with minimal CPU resource consumption. RoCE is suitable for emerging business scenarios such as AI computing, high-performance computing (HPC), and high-speed storage, which have extremely high requirements for network transmission latency, throughput, and stability.

[0235] Based on this, the destination port number carried in the second HT message refers to the destination transmission queue pair (QP) number, and correspondingly, the source port number refers to the source QP number. Here, QP is an important concept in RDMA communication; it consists of a send queue and a receive queue, used to identify a communication session in RDMA communication. In the TCP / IP protocol stack, each data packet contains a source IP address and a destination IP address so that network nodes and receivers can correctly route data packets to their destination and identify the sender; however, in the RoCE protocol stack, to reduce encapsulation overhead and improve transmission efficiency, the source QP number is not included during data packet encapsulation.

[0236] It should be understood that the QP number is an internal RoCE protocol identifier used to manage and identify transmission queue pairs. It is primarily used for queue management and data transmission control in RDMA communication. Furthermore, the QP number is only used within the RDMA network and is not visible to external networks. When the data packets described above are IP packets, although their headers also contain destination and source ports, these are port numbers in the TCP / IP protocol stack used to identify different services and processes. They are used to ensure correct data routing and distribution within the IP network, and these destination and source ports are visible throughout the entire IP network, enabling cross-network communication.

[0237] It should also be noted that the ports indicated by the source port number and the ports indicated by the destination port number here are different from the first port and second port that the network node uses to connect to other nodes. The first port and second port describe the external communication ports of the network node, rather than the virtual interface between the network node's internal hardware and software (i.e., the QP number in the RoCE protocol) or the application interface (i.e., the destination port and source port in the IP packet).

[0238] When transmitting data packets using the RoCE protocol, the data encapsulation does not include the source QP number. Therefore, the sending end needs to maintain a source-destination QP mapping table. This mapping table records the source and destination QP numbers corresponding to each sent data packet. Based on this, when the sending end sends a data packet, it looks up or records the source and destination QP numbers of the data packet in the mapping table. Using this mapping table, the sending end also identifies and processes received response or acknowledgment messages in subsequent transmissions based on the destination QP number.

[0239] In one possible implementation, after receiving the second HT message, the sender first looks up the corresponding receive queue based on the destination QP number (also known as Dst-QP) in the second HT message. Since the second HT message encapsulation does not contain the source QP number, the sender cannot directly obtain the source QP number (also known as Src-QP) from the second HT message. At this point, in order to correctly process the received data packet, the sender will query its own maintained QP mapping table based on the Dst-QP to determine the corresponding source QP number, and then send the second HT message to the appropriate transport layer for processing based on the source QP number.

[0240] To facilitate understanding, an example is provided below. Assume that the sender and receiver communicate via RDMA through a RoCE network. The sender has a send queue QPa and a receive queue QPr, and the receiver has a send queue QPb and a receive queue QPc.

[0241] The process of the sending end sending data can be as follows: Before sending a data packet, the sending end maintains a source-destination QP mapping table internally, recording the source QP number (QPa) and destination QP number (QPc) of this communication; then, the sending end encapsulates the communication data into a RoCE data packet, but the encapsulation does not contain the source QP number (QPa), only the destination QP number (QPc), and sends the data packet to the RoCE network.

[0242] The process of the receiving end receiving a data packet can be as follows: The receiving end receives the data packet from the RoCE network and looks up the corresponding receive queue based on the destination QP number (QPc) in the data packet. Since the source QP number is not in the data packet, the receiving end needs to use additional mechanisms (such as a pre-built QP mapping table or control plane protocol) to look up or infer the source QP number (QPa). Once the source QP number is found, the receiving end can send the data packet to the corresponding transport layer for processing and feed back the processing result (e.g., ACK) to the sending end through the RoCE network.

[0243] In the communication process described above, the source and destination QP mapping tables are very important for both the sender and receiver. They ensure that data packets can be sent and received correctly and processed correctly at the transport layer.

[0244] In summary, in this embodiment of the application, after receiving the second HT message sent by the network node, the sending end can determine that the corresponding data packet has been lost, and thus respond to the second HT message to retransmit the corresponding data packet to the receiving end in a timely manner, thereby improving the retransmission response efficiency of the sending end.

[0245] Based on the above Figure 4 In the illustrated method embodiment, after the network node sends out bidirectional HT messages, both the sending and receiving ends can perform response operations upon receiving the corresponding HT messages. Next, the response operation of the receiving end to the HT messages in this embodiment will be described.

[0246] Figure 9 This is a flowchart of a message sending method provided in an embodiment of this application, which is applied at the receiving end. Please refer to... Figure 9 The method includes the following steps.

[0247] Step 901: Receive the first HT message sent by the network node. The first HT message is used to indicate that a data packet sent by the sender to the receiver through the network node has been lost.

[0248] In one possible implementation, the first HT message includes a first field that carries the transmission status of the data packet, which is packet loss. That is, upon receiving the first HT message, the receiving end can determine whether the corresponding data packet has been lost based on the information in the first field.

[0249] The HT message is the result after discarding the payload portion of the data packet; that is, the HT message only contains the header information of the data packet, and the header usually carries the PSN that identifies the packet's transmission order. Therefore, after receiving the first HT message, the receiving end can determine the data packet that was lost based on the PSN in the first HT message.

[0250] Step 902: In response to the first HT message, send a negative message to the sender, which indicates that the receiver has not received the data packet.

[0251] As an example, a negative message can be a NAK message.

[0252] Optionally, after receiving the first HT message, the receiving end can also perform out-of-order management operations based on the PSN carried in the first HT message. The out-of-order management operation includes determining the out-of-order type of the received packets based on the HT message, and determining subsequent packet loss response operations based on the out-of-order type. The out-of-order type includes multipath out-of-order, packet loss out-of-order, etc.

[0253] It's important to note that multipath out-of-order delivery refers to the phenomenon in multipath transmission where, due to differences in transmission delays across different paths, data packets sent in the correct order from the sender may arrive at the receiver in a disordered sequence. Packet loss out-of-order delivery refers to the phenomenon during network transmission where data packets fail to reach the receiver due to various reasons (such as network congestion, link failure, router failure, etc.). When packet loss occurs, the sender typically employs a retransmission mechanism to resend the lost data packets. However, if retransmitted data packets arrive at the receiver interleaved with subsequently transmitted data packets, and the receiver lacks an appropriate mechanism to reorder these packets, out-of-order delivery may occur.

[0254] In summary, in this embodiment, upon receiving the first HT message sent by the network node, the receiving end can determine that the corresponding data packet has been lost. In response to the first HT message, it promptly sends a negative message to the sending end to inform it that the corresponding data packet has not been received. This improves the retransmission response efficiency of the receiving end.

[0255] Based on the above embodiments, the following will be discussed in conjunction with the appendix. Figure 10 and Figure 11 The following examples are used to supplement the specific implementation process of the message sending method provided in the embodiments of this application. It should be understood that the technical features involved in this example can be partially or wholly incorporated into the corresponding steps of the above method embodiments.

[0256] See Figure 10 , Figure 10 This is a schematic diagram of an HPC network architecture applied to an AI training cluster, provided in an embodiment of this application. The AI ​​training cluster typically includes multi-level network switches and multiple racks of compute nodes / servers; each compute node is usually equipped with multiple high-speed network cards with multiple ports. To maximize network transmission efficiency, communication between two compute nodes uses multiple available physical network ports and multiple equivalent shortest network paths. When executing the message sending method provided in this embodiment, the sending end and the receiving end can be... Figure 10 The servers are located in different racks, and the sending and receiving ends communicate using the RoCE protocol. All switches in the network have the bidirectional feedback HT message function enabled, the PFC function disabled, and dual-queue buffering of messages for the control plane and data plane.

[0257] It should be noted that, Figure 10 Using the CLOS network architecture as an example only, the message sending method provided in this application embodiment can be applied to communication networks of any topology, and this application embodiment does not limit the network topology type.

[0258] When executing the message sending method provided in the embodiments of this application, the sending end uses multiple network ports, distributes multiple data packets across multiple network ports according to the load balancing strategy, and uses a low-priority data packet queue when sending data packets.

[0259] Optionally, the load balancing strategy can be a packet spray strategy. This application does not limit this approach.

[0260] As an example, assume the sender is server 00 and the receiver is server 30. Figure 11 As shown, when a data packet arrives at a network node (e.g., any one of the TOR0 switch, Spine0 / Spine1 switch, or TOR3 switch), if the downlink congestion queuing of that network node is severe, the queue depth Q of the corresponding data packet queue will reach Q_{qq}. HTmin Then, the data packets on that network node will trigger the HT operation with a certain probability P(Q).

[0261] See Figure 12 When a network node performs an HT operation, it may specifically include the following steps:

[0262] S1: Discard the payload portion of the data packet to obtain the corresponding HT packet.

[0263] The HT message may include the first HT message and the second HT message mentioned above.

[0264] S2: Add the HT message to the high-priority control message queue.

[0265] In other words, the first HT message is added to the control message queue of the corresponding downlink port, and the second HT message is added to the control message queue of the corresponding uplink port. Downlink refers to the link for communication with the receiving end, and uplink refers to the link for communication with the sending end.

[0266] S3: Set the value of the first field in the HT message to 1 to indicate that the transmission status of the corresponding data packet is packet loss.

[0267] In the HT message, the default value of the first field can be 0, which indicates that the corresponding data packet is in normal transmission and no packet loss has occurred.

[0268] S4: For the first HT message of positive feedback, encapsulate the first HT message and send it to the control message queue of the next hop node.

[0269] Positive feedback refers to sending an HT message back to the receiving end of the data packet.

[0270] S5: If the network node enables fast feedback loop (also known as reverse feedback loop), then the second HT message is encapsulated and sent to the control message queue of the previous hop node.

[0271] Among them, reverse feedback / fast feedback refers to sending an HT message back to the sender of the data packet.

[0272] It should be noted that the embodiments of this application do not restrict the order of execution of the above steps S2 and S3, and S3 can be executed first and then S2; the embodiments of this application do not restrict the order of execution of the above steps S4 and S5, and S5 can be executed first and then S4, or S4 and S5 can be executed simultaneously.

[0273] In addition, network nodes can use the WRR policy to poll the control message queue and data message queue of the same port in an N:1 ratio to determine the next message to be sent and send the determined message from that port.

[0274] In one possible implementation, after receiving the first HT message in the positive feedback from the receiver, the receiver determines that the corresponding data packet has been lost and performs transport layer state processing.

[0275] Optionally, upon receiving the first HT message, the receiving end can also send a NAK message back to the sending end to inform the sending end that it has not received the data in the corresponding data packet.

[0276] In one possible implementation, the sender can send a series of data packets with incrementing sequence numbers. After sending these data packets, the sender can perform any of the following operations:

[0277] (1) Receive the ACK message corresponding to the data packet and update the status.

[0278] Whenever the sending end receives an ACK packet, it checks the sequence number acknowledged in the ACK packet. If the sequence number in the ACK is greater than the current maximum in-order packet sequence number (MaxIoPSN), it indicates that the receiving end has successfully received more ordered data. In this case, the sending end updates MaxIoPSN to the highest sequence number acknowledged in the ACK.

[0279] In addition, receiving an ACK message indicates that data transmission is still in progress normally, and there is no need to trigger a retransmission immediately. Therefore, the sender can also reset Timer-0.

[0280] It should be understood that each transmitted data packet is assigned a unique sequence number for the receiver to acknowledge and sequence. The MaxIoPSN is the highest sequence number that the sender knows the receiver has correctly received and sequenced, while the ACK packet is an acknowledgment message sent by the receiver to the sender, informing the sender which sequence numbers of data have been successfully received.

[0281] (2) If the second HT message is received from the network node, the corresponding data message will be retransmitted.

[0282] As explained above, when the sending end receives the second HT message, it can determine that the data packet indicated by the PSN carried in the second HT message has been lost, and then retransmit the data packet indicated by the PSN to the receiving end.

[0283] (3) Retransmit data packets if the timer times out.

[0284] If, for some reason (such as network congestion, control plane packet loss, etc.), the sender does not receive any ACK packets for a period of time, the timer-0 will time out. After the timer-0 expires, the sender will assume that some data may have been lost or unacknowledged, and decide to retransmit this data.

[0285] In this situation, since MaxIoPSN is the last confirmed sequence number, MaxIoPSN+1 is the next expected confirmed sequence number. Therefore, the sender will retransmit the data packet with sequence number MaxIoPSN+1.

[0286] As an example, suppose the sender sends five data packets with sequence numbers 1, 2, 3, 4, and 5, and the receiver successfully receives and acknowledges sequence numbers 1, 2, and 3. Upon receiving the ACK packet for sequence number 3, the sender updates MaxIoPSN to 3 and resets Timer-0. For some reason, the ACK packet for sequence number 4 is lost, and Timer-0 times out. At this point, the sender retransmits the data packet with sequence number MaxIoPSN+1, i.e., sequence number 4. In this process, through the ACK acknowledgment and Timer-0 timeout retransmission mechanism, the sender can ensure that data is reliably transmitted to the receiver even under poor network conditions.

[0287] As an example, suppose the sender sends five data packets with sequence numbers 1, 2, 3, 4, and 5, and the receiver successfully receives and acknowledges sequence numbers 1, 2, and 3. Upon receiving the ACK packet for sequence number 3, the sender updates its MaxIoPSN to 3 and resets Timer-0. For some reason, the sender receives the HT packet for sequence number 4. At this point, the sender retransmits the data packet with sequence number 4. However, for the data packet with sequence number 5, if the sender does not receive the HT packet or the ACK packet before Timer-0 expires, it means that packet loss may have occurred on the control plane. Therefore, the sender retransmits the data packet with sequence number 5 after Timer-0 expires.

[0288] During this process, through HT messages and the Timer-0 timeout retransmission mechanism, the sender can ensure that data can be reliably transmitted to the receiver even under poor network conditions.

[0289] It should be noted that the relevant technical details and corresponding technical effects in the above examples can be found in the method embodiments described above, and will not be repeated here.

[0290] Figure 13 This is a schematic diagram of a message sending device provided in an embodiment of this application. This message sending device can be implemented as part or all of a network node by software, hardware, or a combination of both. See also... Figure 13 The message sending device 1300 includes a message acquisition module 1301 and a message sending module 1302.

[0291] The packet acquisition module 1301 is used to acquire the first header-trimmed HT packet and the second HT packet corresponding to the data packet. The first HT packet and the second HT packet are used to indicate that packet loss has occurred in the data packet; please refer to the above for detailed implementation process. Figure 4 The content of step 401 in the illustrated embodiment will not be repeated here.

[0292] The message sending module 1302 is used to send a first HT message to the data message receiving end and a second HT message to the data message sending end; please refer to the above for detailed implementation process. Figure 4 The content of step 402 in the illustrated embodiment will not be repeated here.

[0293] Optionally, the first HT message is a message after discarding the payload portion of the data packet, and the destination address of the second HT message is the source address in the data packet.

[0294] Optionally, the network node's port has a data packet queue and a control packet queue. The data packet queue is used to buffer data packets to be sent, and the control packet queue is used to buffer control packets to be sent. The control packet queue has a higher priority than the data packet queue. The packet sending device 1300 also includes:

[0295] The addition module is used to add the first HT message to the control message queue corresponding to the first port and add the second HT message to the control message queue corresponding to the second port. The first port is the port in the network node that sends messages to the sender, and the second port is the port in the network node that sends messages to the receiver.

[0296] Optionally, the message sending module 1302 is specifically used for:

[0297] According to the scheduling weight, the packets to be sent at the first port are determined from the data packet queue and the control packet queue corresponding to the first port. The scheduling weight indicates the ratio between the number of packets scheduled from the data packet queue and the number of packets scheduled from the control packet queue.

[0298] If the message to be sent on the first port is the first HT message, then the first HT message is sent to the receiving end.

[0299] Optionally, the message sending module 1302 is specifically used for:

[0300] According to the scheduling weight, the packets to be sent by the second port are determined from the data packet queue and the control packet queue corresponding to the second port. The scheduling weight indicates the ratio between the number of packets scheduled from the data packet queue and the number of packets scheduled from the control packet queue.

[0301] If the message to be sent on the second port is the second HT message, then the second HT message is sent to the sender.

[0302] Optionally, the scheduling weight indicates that the number of messages scheduled from the control message queue is greater than the number of messages scheduled from the data message queue.

[0303] Optionally, both the first HT message and the second HT message include a first field, which is used to carry the transmission status of the data message, and the transmission status is packet loss.

[0304] Optionally, the message acquisition module 1301 includes:

[0305] The probability determination unit is used to determine the probability of a data packet triggering an HT operation based on the queue depth of the data packet queue, where the data packet queue refers to the queue that buffers data packets.

[0306] The message acquisition unit is used to acquire the first HT message and the second HT message corresponding to the data message if the HT operation is triggered based on probability.

[0307] Optionally, the probability determination unit is specifically used for:

[0308] If the queue depth is less than or equal to the first threshold, the probability of the data packet triggering the HT operation is determined to be 0.

[0309] If the queue depth is greater than or equal to the second threshold, the probability of the data packet triggering the HT operation is determined to be 1; where the second threshold is greater than the first threshold.

[0310] If the queue depth is greater than the first threshold and less than the second threshold, the probability of a data packet triggering an HT operation is determined to be the target value, which is a value greater than 0 and less than 1.

[0311] Optionally, the target value is positively correlated with the queue depth.

[0312] In this embodiment, when the packet sending device 1300 determines that a data packet has been lost, it acquires the first HT message and the second HT message corresponding to the data packet, and sends the first HT message to the receiving end of the data packet and the second HT message to the sending end of the data packet. This bidirectional feedback of HT messages informs both the sending and receiving ends that the data packet has been lost, allowing them to execute corresponding packet loss response operations as early as possible. Thus, by using bidirectional HT message feedback, the packet loss response speed of the receiving and sending ends is improved, enhancing the overall end-to-end communication performance of the network.

[0313] It should be noted that the message sending device 1300 provided in the above embodiments, when forwarding data packets sent from the sending end to the receiving end, is only illustrated by the division of the above functional modules. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. In addition, the message sending device 800 provided in the above embodiments and Figure 4 The message sending method embodiments shown belong to the same concept, and the specific implementation process can be found in the method embodiments, which will not be repeated here.

[0314] Figure 14 This is a schematic diagram of a message sending device provided in an embodiment of this application. The message sending device can be implemented as part or all of the sending end by software, hardware, or a combination of both. See also... Figure 14 The message sending device 1400 includes a message receiving module 1401 and a message retransmission module 1402.

[0315] The message receiving module 1401 is used to receive the second HT message sent by the network node. The second HT message is used to indicate that a data packet sent from the sending end to the receiving end via the network node has been lost. For detailed implementation process, please refer to the above. Figure 8 The content of step 801 in the illustrated embodiment will not be repeated here.

[0316] The message retransmission module 1402 is used to retransmit data packets to the receiving end in response to the second HT message; please refer to the above for detailed implementation process. Figure 8 The content of step 802 in the illustrated embodiment will not be repeated here.

[0317] Optionally, in the message sending device 1400:

[0318] The message receiving module 1401 is also used to receive a negative message sent by the receiving end, which indicates that the receiving end has not received a data message;

[0319] The message retransmission module 1402 is also used to retransmit data packets to the receiving end in response to a negative message.

[0320] Optionally, the message retransmission module 1402 is also used for:

[0321] If no acknowledgment message is received within the specified time threshold after sending the data packet, the data packet is retransmitted to the receiving end; the acknowledgment message is used to indicate that the receiving end has successfully received the data packet.

[0322] Optionally, the data packet transmission protocol is the target protocol, which includes the Remote Memory Direct Access (RoCE) protocol of converged Ethernet. The second HT packet carries the destination port number, which indicates the port on which the receiving end receives the data packet.

[0323] The message retransmission module 1402 is specifically used for:

[0324] Based on the destination port number carried in the second HT message, the source port number corresponding to the data packet is determined. The source port number indicates the port on which the sender sends the data packet.

[0325] Based on the source port number, retransmit the data packet to the receiving end.

[0326] In this embodiment of the application, after receiving the second HT message sent by the network node, the message sending device 1400 can determine that the corresponding data message has been lost, and thus respond to the second HT message to retransmit the corresponding data message to the receiving end in a timely manner, thereby improving the retransmission response efficiency of the sending end.

[0327] It should be noted that when the message sending device 1400 provided in the above embodiments responds to the second HT message sent by the network node and performs a data packet retransmission operation, the division of the above functional modules is only used as an example. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. In addition, the message sending device 1400 provided in the above embodiments and Figure 8 The message sending method embodiments shown belong to the same concept, and the specific implementation process can be found in the method embodiments, which will not be repeated here.

[0328] Please refer to Figure 15 , Figure 15 According to the schematic diagram of a computer device shown in the embodiments of this application, the computer device may be a terminal device, a server, a processing chip, or other devices including hardware such as a processor, used to execute the message sending method provided in the embodiments of this application.

[0329] In this embodiment, the computer device can be categorized into three types: a sender, a network node, and a receiver. The sender generates data packets and sends them to the receiver via a network node in the communication network. The network node forwards the data packets to the receiver. The receiver receives data packets or HT packets.

[0330] As an example, the sending and receiving ends can be processing chips such as processors and network cards, or terminals and servers; network nodes can be devices with forwarding functions, such as switches, routers, and gateways, and this application embodiment does not limit this.

[0331] In some embodiments, the computer device includes at least one processor 1501, a communication bus 1502, a memory 1503, and at least one communication interface 1504.

[0332] Processor 1501 can be a general-purpose central processing unit (CPU), a network processor (NP), a microprocessor, or one or more integrated circuits for implementing the solutions of this application, such as application-specific integrated circuits (ASICs), programmable logic devices (PLDs), or combinations thereof. The aforementioned PLD can be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), generic array logic (GAL), or any combination thereof.

[0333] The communication bus 1502 is used to transmit information between the aforementioned components. The communication bus 1502 can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 15 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.

[0334] The memory 1503 may be a read-only memory (ROM), a random access memory (RAM), an electrically erasable programmable read-only memory (EEPROM), an optical disc (including a compact disc read-only memory (CD-ROM), a compressed optical disc, a laser disc, a digital versatile optical disc, a Blu-ray disc, etc.), a magnetic disk storage medium, or other magnetic storage device, or any other medium capable of carrying or storing desired program code in the form of instructions or data structures that can be accessed by a computer, but not limited thereto. The memory 1503 may exist independently and be connected to the processor 1501 via a communication bus 1502. The memory 1503 may also be integrated with the processor 1501.

[0335] Communication interface 1504 uses any transceiver-like device for communicating with other devices or communication networks. Communication interface 1504 includes a wired communication interface and may also include a wireless communication interface. The wired communication interface may, for example, be an Ethernet interface. The Ethernet interface may be an optical interface, an electrical interface, or a combination thereof. The wireless communication interface may be a wireless local area network (WLAN) interface, a cellular network communication interface, or a combination thereof.

[0336] As an example, processor 1501 may include one or more CPUs, such as Figure 15 CPU0 and CPU1 are shown in the diagram.

[0337] As an example, a computer device may include multiple processors, such as Figure 15 The processors 1501 and 1505 are shown. Each of these processors may be a single-core processor or a multi-core processor. Here, "processor" may refer to one or more devices, circuits, and / or processing cores used to process data (such as computer program instructions).

[0338] In some embodiments, the computer device may further include output devices and input devices. The output device communicates with the processor 1501 and can display information in various ways. For example, the output device may be a liquid crystal display (LCD), a light-emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector, etc. The input device communicates with the processor 1501 and can receive user input in various ways. For example, the input device may be a mouse, keyboard, touchscreen device, or sensing device, etc.

[0339] In some embodiments, memory 1503 is used to store program code 1510 for executing the scheme of this application, and processor 1501 can execute the program code 1510 stored in memory 1503. The program code 1510 may include one or more software modules, and the computer device can implement the message sending method provided in the embodiments of this application through processor 1501 and program code 1510 in memory 1503.

[0340] This application also provides a computer-readable storage medium storing instructions that, when executed on a computer, cause the computer to perform the steps of the message sending method shown in the above embodiments.

[0341] This application also provides a computer program product containing instructions that, when executed on a computer, cause the computer to perform the steps of the message sending method shown in the above embodiments. Alternatively, a computer program is provided that, when executed on a computer, causes the computer to perform the steps of the message sending method shown in the above embodiments.

[0342] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented in software, it can be implemented, in whole or in part, as a computer program product. The computer program product includes one or more computer instructions. When the computer instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium accessible to a computer, or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., digital versatile disc (DVD)), or a semiconductor medium (e.g., solid state disk (SSD)). It is worth noting that the computer-readable storage medium mentioned in the embodiments of this application can be a non-volatile storage medium; in other words, it can be a non-transient storage medium.

[0343] It should be understood that "multiple" as mentioned herein refers to two or more. In the description of the embodiments of this application, unless otherwise stated, " / " means "or," for example, A / B can mean A or B; "and / or" in this document is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, and B existing alone. In addition, to facilitate a clear description of the technical solutions of the embodiments of this application, the terms "first," "second," etc., are used in the embodiments of this application to distinguish identical or similar items with substantially the same function and effect. Those skilled in the art will understand that the terms "first," "second," etc., do not limit the quantity or execution order, and the terms "first," "second," etc., do not necessarily imply that they are different.

[0344] It should be noted that the information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data used for analysis, data stored, data displayed, etc.) and signals involved in the embodiments of this application are all authorized by the user or fully authorized by all parties, and the collection, use and processing of related data must comply with the relevant laws, regulations and standards of the relevant countries and regions.

[0345] The above descriptions are embodiments provided in this application and are not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the protection scope of this application.

Claims

1. A message sending method characterized by, Applied to a network node, the method comprises: obtaining a first head-trimmed (HT) packet and a second HT packet corresponding to a data packet, the first HT packet and the second HT packet being used to indicate that the data packet has experienced packet loss; sending the first HT packet to a receiving end of the data packet and sending the second HT packet to a sending end of the data packet.

2. The method of claim 1, wherein, The first HT packet is a packet after discarding a payload part of the data packet, and a destination address of the second HT packet is a source address in the data packet.

3. The method of claim 1 or 2, wherein, A port of the network node has a data packet queue and a control packet queue, the data packet queue being used to buffer a data packet to be sent, and the control packet queue being used to buffer a control packet to be sent, a priority of the control packet queue being higher than a priority of the data packet queue. Before the sending of the first HT packet to the receiving end of the data packet and the sending of the second HT packet to the sending end of the data packet, the method further comprises: adding the first HT packet to a control packet queue corresponding to a first port and adding the second HT packet to a control packet queue corresponding to a second port, the first port being a port of the network node for sending a packet to the sending end, and the second port being a port of the network node for sending a packet to the receiving end.

4. The method of claim 3, wherein, The sending of the first HT packet to the receiving end of the data packet comprises: determining a packet to be currently sent by the first port from a data packet queue and a control packet queue corresponding to the first port according to a scheduling weight, the scheduling weight indicating a ratio between a number of packets to be scheduled from the data packet queue and a number of packets to be scheduled from the control packet queue; if the packet to be currently sent by the first port is the first HT packet, sending the first HT packet to the receiving end.

5. The method of claim 3, wherein, The sending of the second HT packet to the sending end of the data packet comprises: determining a packet to be currently sent by the second port from a data packet queue and a control packet queue corresponding to the second port according to a scheduling weight, the scheduling weight indicating a ratio between a number of packets to be scheduled from the data packet queue and a number of packets to be scheduled from the control packet queue; if the packet to be currently sent by the second port is the second HT packet, sending the second HT packet to the sending end.

6. The method of claim 4 or 5, wherein, The scheduling weight indicates that the number of packets to be scheduled from the control packet queue is greater than the number of packets to be scheduled from the data packet queue.

7. The method according to any one of claims 1 to 6, wherein The first HT packet and the second HT packet both comprise a first field, the first field being used to carry a transmission state of the data packet, and the transmission state being packet loss.

8. The method according to any one of claims 1 to 7, wherein The obtaining of the first HT packet and the second HT packet corresponding to the data packet comprises: determining a probability at which the data packet triggers an HT operation based on a queue depth of a data packet queue, the data packet queue being a queue buffering the data packet; If it is determined that the data packet triggers the HT operation based on the probability, a first HT packet and a second HT packet corresponding to the data packet are acquired.

9. The method of claim 8, wherein, The probability that the data packet triggers the HT operation is determined based on a queue depth of a data packet queue, including: If the queue depth is less than or equal to a first threshold value, it is determined that the probability that the data packet triggers the HT operation is 0; If the queue depth is greater than or equal to a second threshold value, it is determined that the probability that the data packet triggers the HT operation is 1; wherein the second threshold value is greater than the first threshold value; If the queue depth is greater than the first threshold value and less than the second threshold value, it is determined that the probability that the data packet triggers the HT operation is a target value, and the target value is a value greater than 0 and less than 1.

10. The method of claim 9, wherein, The target value is positively correlated with the queue depth.

11. A message sending method characterized by comprising: The method applied to a sending end, including: receiving a second HT packet sent by a network node, the second HT packet being used to indicate that a data packet sent by the sending end to a receiving end via the network node has a packet loss; in response to the second HT packet, retransmitting the data packet to the receiving end.

12. The method of claim 11, wherein, The method further includes: receiving a negative packet sent by the receiving end, the negative packet indicating that the receiving end has not received the data packet; in response to the negative packet, retransmitting the data packet to the receiving end.

13. The method of claim 11 or 12, wherein, The method further includes: if an acknowledgement packet is not received within a time threshold value after the data packet is sent, retransmitting the data packet to the receiving end; wherein the acknowledgement packet is used to indicate that the receiving end has successfully received the data packet.

14. The method according to any one of claims 11 to 13, wherein, A transmission protocol of the data packet is a target protocol, the target protocol including a Remote Direct Memory Access over Converged Ethernet (RoCE) protocol, the second HT packet carries a destination port number, and the destination port number indicates a port of the receiving end receiving the data packet; The response to the second HT packet includes: determining a source port number corresponding to the data packet based on the destination port number carried by the second HT packet, the source port number indicating a port of the sending end sending the data packet; retransmitting the data packet to the receiving end based on the source port number.

15. A packet transmitting apparatus characterized by comprising: The apparatus includes a packet acquisition module configured to acquire a first head trimming (HT) packet and a second HT packet corresponding to a data packet, the first HT packet and the second HT packet being used to indicate that the data packet has a packet loss. The apparatus includes a packet sending module configured to send the first HT packet to a receiving end of the data packet and send the second HT packet to a sending end of the data packet. The apparatus includes a packet receiving module configured to receive a second HT packet sent by a network node, the second HT packet being used to indicate that a data packet sent by the sending end to a receiving end via the network node has a packet loss.

16. A packet transmitting apparatus characterized by comprising: The apparatus includes a packet retransmission module configured to retransmit the data packet to the receiving end in response to the second HT packet. The system includes a sending end, a network node, and a receiving end. ​ 17. A messaging system, comprising: ​ The network node is configured to perform the method of any one of claims 1-10. The sending end is configured to perform the method of any one of claims 11-14.

18. A computer device, comprising: The computer device comprises a processor configured to perform the method of any one of claims 1-10, or configured to perform the method of any one of claims 11-14.

19. A computer-readable storage medium, characterized in that, The storage medium stores a computer program, and the computer program is executed by the processor to implement the packet sending method of any one of claims 1-10, or implement the method of any one of claims 11-14.

20. A computer program product, characterised in that, The computer program product stores computer instructions, and the computer instructions are executed by the processor to implement the method of any one of claims 1-10, or implement the method of any one of claims 11-14.