Multi-path data retransmission method, device, chip, network interface card, equipment, medium and program product

By dynamically adjusting the timeout of the packet loss detection timer at the sending end, the problem of untimely or redundant retransmission in multipath transmission is solved, achieving efficient data retransmission and improving the performance of data center networks.

CN121907414APending Publication Date: 2026-04-21SHENZHEN JAGUAR MICROSYSTEMS CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202610354691.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-03-23
Publication Date
2026-04-21

AI Technical Summary

Technical Problem

In modern data centers, especially AI data centers, traditional selective retransmission mechanisms under multipath transmission can easily lead to redundant packets occupying bandwidth and degrading performance. Furthermore, the discarding or delay of SACK returned by the receiving end can result in untimely or excessively frequent retransmissions.

Method used

The sending end dynamically adjusts the timeout of the packet loss detection timer based on the received acknowledgment or optional acknowledgment messages, avoiding reliance on the receiving end's information and ensuring the timeliness and efficiency of retransmission.

Benefits of technology

It effectively avoids retransmission delays and redundancy, improves network transmission efficiency, reduces unnecessary retransmissions, and enhances overall performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121907414A_ABST
    Figure CN121907414A_ABST
Patent Text Reader

Abstract

The invention relates to a multi-path data retransmission method and device, a chip, a network interface card, equipment, a medium and a program product. The method comprises the following steps: adjusting the timeout time of a packet loss detection timer under the condition of determining that a receiving end receives a repeated message based on a received confirmation message or a selection confirmation message; and on the basis of the timeout time of the packet loss detection timer, under the condition of determining that the packet loss detection timer is timeout, resending the unconfirmed sending message. By adopting the method, the sending end does not depend on any information of the receiving end to trigger retransmission, so that retransmission failure or retransmission delay caused by discarding of SACK returned by the receiving end is avoided.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer network technology, and in particular to a method, apparatus, chip, network interface card, device, medium and program product for multipath data retransmission. Background Technology

[0002] Traditional RoCEv2 RDMA relies on a lossless, packet-free environment, requiring PFC and ECN configuration on the switch side. While it performs well in traditional data centers, as data center networks grow in scale and throughput increases, the impact of PFC head-of-line congestion, traffic unfairness, and problem propagation becomes increasingly apparent. More and more large cloud vendors are abandoning the traditional RoCEv2 mechanism and switching to RDMA's lossy transmission. Lossy networks mean frequent packet loss during transmission; an efficient packet loss retransmission mechanism is crucial for high-performance RDMA in lossy networks.

[0003] Traditional technologies employ selective retransmission. The sending end assigns a Packet Sequence Number (PSN) to each packet sequentially. Upon receiving a packet, the receiving end checks the continuity of the PSNs to determine if a packet has been lost. If the PSNs are not consecutive, the receiving end replies with a Selective Acknowledge (SACK) message, informing the sending end which PSNs have been received and which have not. The sending end confirms the retransmission strategy by parsing the Bitmap carried in the SACK: packets with a bit value of 0 are retransmitted, while those with a bit value of 1 are not, thus reducing unnecessary packet retransmissions and achieving high efficiency.

[0004] If there is only one transmission path between the sender and receiver, the above can effectively solve the problem of lossless networks. However, in modern data centers, especially AI data centers, the instantaneous throughput of a single stream is large, and a single path is prone to congestion. Multiple different paths need to be used for transmission simultaneously. There may be slight differences in transmission time between different paths, and out-of-order arrival of packets at the receiver has become the norm. At this time, when the receiver receives a packet with out-of-order PSN, for example, a packet with PSN 3 is not received while a packet with PSN 4 has been received, if a SACK is sent at this time, triggering the sender to retransmit, a large number of redundant packets will occupy the limited bandwidth in the network, ultimately leading to performance degradation.

[0005] To address this issue, the receiver employs a Lazy SACK mechanism: the receiver maintains an out-of-order threshold (OOOD). Only when the out-of-order degree (the difference between the received PSN and the expected received PSN) is greater than OOOD will the receiver reply with a SACK, triggering the sender to retransmit.

[0006] However, the RTT time for each path is dynamic and can vary greatly. If the OOOD configuration is too small, it may cause a lot of redundant retransmissions, while if it is too large, it may cause retransmission delays, resulting in a decrease in overall performance. Summary of the Invention

[0007] Therefore, it is necessary to provide a multipath data retransmission method, device, chip, network interface card, equipment, medium, and program product that can trigger retransmission without relying on any information from the receiving end and avoid the receiving end returning a SACK to discard the data, thus preventing retransmission from being delayed or impossible.

[0008] Firstly, this application provides a multipath data retransmission method applied at the sending end, the method comprising:

[0009] If it is determined that the receiving end has received duplicate packets based on the received acknowledgment message or selective acknowledgment message, adjust the timeout of the packet loss detection timer.

[0010] If the packet loss detection timer expires based on its timeout period, the unacknowledged transmission message is retransmitted.

[0011] In one embodiment, adjusting the timeout of the packet loss detection timer includes:

[0012] The number of duplicate messages is calculated based on the acknowledgment messages or optional acknowledgment messages received within the previous timeout period.

[0013] The new timeout is obtained based on the previous timeout, the number of duplicate packets, and the maximum round-trip time (RTT) for each path.

[0014] Adjust the timeout of the packet loss detection timer to the new timeout.

[0015] In one embodiment, the step of determining the number of duplicate messages based on the acknowledgment messages or selected acknowledgment messages received within the previous timeout period includes:

[0016] If the message number corresponding to the received acknowledgment message is less than the target number, the number of duplicate messages is increased, where the target number is the smallest number of the currently sent message that has not received an acknowledgment message.

[0017] If the bitmap of the currently selected acknowledgment message indicates that the target message has been acknowledged, the number of duplicate messages is increased, where the target message is a message that has already received an acknowledgment message.

[0018] In one embodiment, obtaining the new timeout based on the previous timeout, the number of duplicate packets, and the maximum RTT time for each path includes:

[0019] Obtain the historical weight value corresponding to the previous timeout time, and obtain the first reference timeout time based on the previous timeout time and the historical weight value;

[0020] Obtain the RTT weight value corresponding to the maximum RTT time of each path, and obtain the second reference timeout based on the maximum RTT time and the RTT weight value;

[0021] Obtain the penalty weight value, and based on the penalty weight value and the number of duplicate packets, obtain a third reference timeout.

[0022] The target timeout time is obtained based on the first reference timeout time, the second reference timeout time, and the third reference timeout time.

[0023] A new timeout is obtained based on the timeout period of the timeout retransmission timer, the minimum RTT time, and the target timeout period.

[0024] In one embodiment, the method further includes:

[0025] Upon receiving a selection acknowledgment message, update the acknowledgment message information corresponding to the sent message based on the bitmap of the selection acknowledgment message.

[0026] In one embodiment, the method further includes:

[0027] Upon receiving an acknowledgment message, update the minimum number and the maximum number of transmittable messages that have been sent but have not yet received an acknowledgment message, and stop the packet loss detection timer.

[0028] Detect whether there are any sent but unacknowledged messages;

[0029] If there are sent but unacknowledged packets, start the packet loss detection timer and update the number of the largest sent but unacknowledged packet.

[0030] In one embodiment, the retransmission of the unacknowledged transmission message includes:

[0031] Get the number of the largest sent but unacknowledged message in the current record;

[0032] Based on the number of the largest sent but unacknowledged message currently recorded, determine each sent but unacknowledged message;

[0033] Resend each of the determined transmission messages.

[0034] In one embodiment, after retransmitting the unacknowledged transmission message, the process includes:

[0035] Start the packet loss detection timer and update the number of the largest sent but unacknowledged packet.

[0036] In one embodiment, the method further includes:

[0037] If the number of the message to be sent is less than the number of the maximum number of messages that can be sent, the message to be sent is sent, the packet loss detection timer is started, and the number of the maximum number of unacknowledged messages sent is updated.

[0038] Secondly, this application also provides a multipath data retransmission method, applied at a receiving end, the method comprising:

[0039] Receive the message sent by the sender;

[0040] If it is determined that the sent message is a duplicate message, an acknowledgment message or a selective acknowledgment message corresponding to the sent message is sent back to the sending end. The acknowledgment message or selective acknowledgment message is used to instruct the sending end to adjust the timeout of the packet loss detection timer. If it is determined that the packet loss detection timer has expired based on the timeout of the packet loss detection timer, the unacknowledged sent message is resent.

[0041] In one embodiment, the method further includes:

[0042] Obtain the expected message number and the receiving window;

[0043] A first threshold is obtained based on the difference between the expected message number and the receiving window, and a second threshold is obtained based on the sum of the expected message number and the receiving window.

[0044] If the number of the sent message is greater than the first threshold and less than the number of the expected message, the sent message is determined to be a duplicate message.

[0045] If the number of the sent message is greater than or equal to the number of the expected message and less than or equal to the second threshold, it is detected whether the sent message has been received.

[0046] Once the message has been received, it is determined that the message is a duplicate message.

[0047] In one embodiment, the step of sending back an acknowledgment message or a selection acknowledgment message corresponding to the sent message to the sending end includes:

[0048] If the number of the sent message is greater than the first threshold and less than the number of the expected message, an acknowledgment message corresponding to the sent message is sent back to the sending end.

[0049] If the number of the sent message is greater than the number of the expected message and less than the second threshold, a selection confirmation message corresponding to the sent message is sent back to the sending end.

[0050] In one embodiment, the step of sending a selection acknowledgment message corresponding to the sent message back to the sending end includes:

[0051] In the case of multiple selection acknowledgment messages corresponding to the sent messages, the selection acknowledgment messages are aggregated to obtain the selection acknowledgment message corresponding to the sent message with the largest number.

[0052] The sender sends back the selection acknowledgment message corresponding to the sent message with the largest number.

[0053] Thirdly, this application also provides a multipath data retransmission device, applied at the sending end, the device comprising:

[0054] The timeout adjustment module is used to adjust the timeout of the packet loss detection timer when it is determined that the receiving end has received duplicate packets based on the received acknowledgment message or selected acknowledgment message.

[0055] The retransmission module is used to retransmit unacknowledged transmission messages when the packet loss detection timer has expired based on the timeout period of the packet loss detection timer.

[0056] Fourthly, this application also provides a multipath data retransmission device, applied at a receiving end, the device comprising:

[0057] The second receiving module is used to receive the transmission messages sent by the sending end;

[0058] The feedback module is used to send an acknowledgment message or a selective acknowledgment message corresponding to the sent message to the sending end when it is determined that the sent message is a duplicate message. The acknowledgment message or selective acknowledgment message is used to instruct the sending end to adjust the timeout of the packet loss detection timer. If it is determined that the packet loss detection timer has expired based on the timeout of the packet loss detection timer, the unacknowledged sent message is resent.

[0059] Fifthly, this application also provides a chip including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the steps of the method in any of the above embodiments.

[0060] Sixthly, this application also provides a network interface card, including the chip and multiple interfaces as described in any of the above embodiments.

[0061] The chip processes data or communicates with the outside world through the interface.

[0062] Seventhly, this application also provides a computer device including a network interface card in any of the above embodiments, the network interface card being used for processing data or external communication.

[0063] Eighthly, this application also provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the steps of the methods in any of the above embodiments.

[0064] Ninthly, this application also provides a computer program product, including a computer program that, when executed by a processor, implements the steps of the method in any of the above embodiments.

[0065] The aforementioned multipath data retransmission method, apparatus, chip, network interface card, device, medium, and program products adjust the timeout of the packet loss detection timer when it is determined that the receiving end has received a duplicate packet based on the received acknowledgment message or selective acknowledgment message; and retransmit the unacknowledged transmission message when it is determined that the packet loss detection timer has expired based on the timeout of the packet loss detection timer. The sending end triggers retransmission without relying on any information from the receiving end, avoiding the receiving end returning a SACK to discard the packet, which would lead to failure to retransmit or retransmission delay. Attached Figure Description

[0066] To more clearly illustrate the technical solutions in the embodiments of this application or related technologies, the drawings used in the description of the embodiments of this application or related technologies will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.

[0067] Figure 1 This is a schematic diagram illustrating the application environment of a multipath data retransmission method in one embodiment.

[0068] Figure 2 This is a flowchart illustrating a multipath data retransmission method in one embodiment;

[0069] Figure 3 This is a schematic diagram of the sending window of the sending end in one embodiment;

[0070] Figure 4This is a flowchart illustrating the process of the sending end sending the corresponding message in one embodiment.

[0071] Figure 5 This is a flowchart illustrating a multipath data retransmission method in another embodiment;

[0072] Figure 6 This is a schematic diagram of a receiving window in one embodiment;

[0073] Figure 7 This is a schematic block diagram of a multipath data retransmission device in one embodiment;

[0074] Figure 8 This is a schematic block diagram of the multipath data retransmission device in another embodiment;

[0075] Figure 9 This is a schematic diagram of the internal structure of a computer device in one embodiment. Detailed Implementation

[0076] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.

[0077] It should be noted that the terms "first," "second," etc., used in this application can be used to describe various elements, but these elements are not limited by these terms. These terms are only used to distinguish the first element from the second element. The terms "comprising" and "having," and any variations thereof, used in this application, are intended to cover non-exclusive inclusion. The term "multiple" used in this application refers to two or more. The term "and / or" used in this application refers to one of the embodiments, or any combination of multiple embodiments.

[0078] The multipath data retransmission method provided in this application embodiment can be applied to, for example... Figure 1 The application environment shown.

[0079] In this process, the sending end transmits data to the receiving end through a switch, and the sending end is responsible for maintaining the sending window and sending packets. The multipath network uses the ECMP (Equal Cost Multipath) mechanism of the switch to randomly allocate packets to different physical paths. The receiving end receives data packets from different physical paths, and the receiving window records the packet reception status. It then feeds back the packet reception status to the sending end through an acknowledgment message (ACK) or a selective acknowledgment message (SACK).

[0080] In addition, it should be noted that there are multiple transmission paths between the sending and receiving ends.

[0081] When the sending end receives an acknowledgment message or optional acknowledgment message from the receiving end, and determines that the receiving end has received a duplicate message based on the received acknowledgment message or optional acknowledgment message, it adjusts the timeout of the packet loss detection timer. If it determines that the packet loss detection timer has expired based on the timeout of the packet loss detection timer, it retransmits the unacknowledged message. In this way, the sending end only needs to determine whether to retransmit the message based on the timeout of the packet loss detection timer. The sending end's triggering of retransmission does not directly depend on any information from the receiving end, avoiding the receiving end returning a SACK to discard the message, which would lead to failure to retransmit or delay in retransmission.

[0082] The sending and receiving ends can be terminals or servers. Terminals can be, but are not limited to, various personal computers, laptops, smartphones, tablets, drones, low-altitude aircraft, IoT devices, and portable wearable devices. IoT devices can include smart speakers, smart TVs, smart air conditioners, smart in-vehicle devices, and projection equipment. Portable wearable devices can include smartwatches, smart bracelets, and head-mounted displays. Head-mounted displays can be virtual reality (VR) devices, augmented reality (AR) devices, and smart glasses. Servers can be independent physical servers, server clusters or distributed systems composed of multiple physical servers, or cloud servers providing cloud computing services.

[0083] In one exemplary embodiment, such as Figure 2 As shown, a multipath data retransmission method is provided, which is applied to... Figure 1 Taking the sending end as an example, the explanation includes the following steps S202 to S204. Wherein:

[0084] S202: If it is determined that the receiver has received a duplicate message based on the received acknowledgment message or selective acknowledgment message, adjust the timeout of the packet loss detection timer.

[0085] The acknowledgment message or optional acknowledgment message is used to adjust the timeout period of the packet loss detection timer. The acknowledgment message or optional acknowledgment message is returned by the receiving end to the sending end after receiving the transmitted message.

[0086] Specifically, if the received message is the expected message or a message preceding the expected message, assuming the PSN of the expected message is N, then if the PSN of the received message is less than or equal to N, an acknowledgment message is returned to the sender. If the received message is a message following the expected message, i.e., the PSN of the received message is greater than N, then an optional acknowledgment message is returned to the sender.

[0087] For ease of understanding, if the receiver's expected PSN is 5, then if the received transmitted message's PSN is any one of 1-5, the receiver will return an acknowledgment message to the sender. If the received transmitted message's PSN is 6, since 6 > 5, the receiver will return an opt-in acknowledgment message to the sender.

[0088] To reduce message retransmissions, the sending end needs to count duplicate messages. This is done by determining whether the receiving end has received duplicate messages based on acknowledgment messages or optional acknowledgment messages. For example, it determines whether a sent message has received more than two acknowledgment messages; if so, it indicates that the receiving end has received a duplicate message. The bitmap information in the optional acknowledgment message is also used to determine whether the receiving end has received a duplicate message.

[0089] If the receiver receives duplicate packets, it indicates that the sender is retransmitting too frequently. Therefore, the timeout of the packet loss detection timer needs to be increased to reduce packet retransmissions and improve packet transmission quality. If the receiver does not receive duplicate packets, the timeout of the packet loss detection timer can be kept unchanged or decreased to avoid packet loss.

[0090] S204: If the packet loss detection timer expires based on the timeout period of the packet loss detection timer, resend the unacknowledged transmission message.

[0091] Subsequently, the sending end only needs to determine whether the packet loss detection timer has expired. If it has expired, it will resend the unacknowledged transmission packet without having to send it according to the out-of-order threshold, thus avoiding the SACK returned by the receiving end being discarded, which would lead to failure to retransmit or retransmission delay.

[0092] In addition, adjusting the timeout of the packet loss detection timer based on the acknowledgment message or optional acknowledgment message sent by the receiving end can prevent the sending end from retransmitting too frequently and also prevent packet loss, thus ensuring the efficiency and quality of retransmission.

[0093] The above-mentioned multipath data retransmission method adjusts the timeout of the packet loss detection timer when it is determined that the receiving end has received a duplicate packet based on the received acknowledgment message or selective acknowledgment message; and retransmits the unacknowledged transmission message when it is determined that the packet loss detection timer has expired based on the timeout of the packet loss detection timer. The sending end triggers retransmission without directly relying on any information from the receiving end, thus avoiding the discarding of the SACK returned by the receiving end, which would lead to failure to retransmit or retransmission delay.

[0094] In some optional embodiments, adjusting the timeout of the packet loss detection timer includes: obtaining the number of duplicate packets based on the acknowledgment packets or selected acknowledgment packets received in the previous timeout period; obtaining a new timeout based on the previous timeout, the number of duplicate packets, and the maximum round-trip time (RTT) for each path; and adjusting the timeout of the packet loss detection timer to the new timeout.

[0095] This application allows for the generation of the number of duplicate messages based on acknowledgment messages or selective acknowledgment messages. This is combined with... Figure 3 As shown, Figure 3 This is a schematic diagram of the sending window of the sending end in one embodiment. In this embodiment, the sending end records the PSN of the smallest sent but unacknowledged message as "unacked", the PSN of the new message waiting to be sent as "Next", and the PSN of the largest number of messages that can be sent as "limit". Combined with... Figure 3 The PSN is divided into four parts based on the message transmission status: 1) The message area with PSN number less than unack. Messages falling into this part indicate that they have been sent and have received an acknowledgment message (ACK). If an ACK is received again and the message falls into this area, it indicates that a duplicate message has been sent, and the retransmission time and frequency should be appropriately reduced; 2) The PSN number greater than unack and less than next indicates that the message has been sent but not acknowledged. Messages that trigger a Selective Acknowledgment (SACK) message should fall into this area. This area uses a bitmap to record the message acknowledgment status. Each message is recorded using 1 bit, where 0 indicates unacknowledged and 1 indicates acknowledged. The bitmap needs to be updated after receiving a SACK message; 3) The area with PSN number greater than next and less than limit is the waiting area, indicating that the message can be sent; 4) The area with PSN number greater than limit is the area that cannot be sent. Messages falling into this area cannot be sent.

[0096] In some optional embodiments, the number of duplicate messages is determined based on the acknowledgment messages or selected acknowledgment messages received within the previous timeout period, including: increasing the number of duplicate messages if the message number corresponding to the received acknowledgment message is less than the target number, wherein the target number is the smallest number of the currently sent message that has not received an acknowledgment message; and increasing the number of duplicate messages if the bitmap of the currently selected acknowledgment message indicates that the target sent message has been acknowledged, wherein the target sent message is the sent message that has already received an acknowledgment message.

[0097] Specifically, if the received acknowledgment message is located in a message region with a PSN less than unacked, or if the corresponding bit in the bimap of the received selection acknowledgment message is already 1, it indicates that it is a duplicate message, and therefore the number of duplicate messages needs to be increased.

[0098] Furthermore, it should be noted that in multipath transmission, because the RTT of different paths is different, out-of-order does not necessarily mean packet loss, but packet loss will definitely result in out-of-order packets. The traditional approach is to use the out-of-order depth as the basis for packet loss. However, the problem of "tail packet dropping" (for example, in RDMA transmission services, burst traffic in AI scenarios, when the queue capacity is exhausted, packets that are still in the inflight state are directly dropped) cannot be solved by the out-of-order depth (because the number of packets in the inflight state may usually be less than the out-of-order depth).

[0099] This application abandons the approach of relying on subsequent messages to determine the value of earlier messages. Instead, it uses the historical RTT of all paths to calculate the latest time the message will arrive at the receiver, i.e., the maximum RTT. If the message has not arrived by this time, it is considered lost and retransmission is triggered. Furthermore, since the specific path used for the message transmission is unknown, the RTT of all paths needs to be measured. The RTT of the target number of paths with the longest delays (the target number can be 4 or other values, without specific limitations here) needs to be identified, and the latest arrival time (Max Delay Time) of these paths needs to be calculated. If an acknowledgment (ACK) message is not received by this time, the message is considered lost and retransmission is required.

[0100] In some alternative embodiments, subsequent message transmissions, including retransmissions, must avoid the target number of paths with the longest RTT to ensure transmission quality.

[0101] In this embodiment, a new timeout is obtained based on the previous timeout, the number of duplicate packets, and the maximum RTT time for each path. For example, the three factors can be combined using a weighted approach to obtain the timeout. The introduction of the previous timeout ensures the smoothness of the newly calculated timeout. The maximum RTT time can be used as a reference to determine whether packet loss exists. The number of duplicate packets can be used as a penalty; the more duplicate packets there are, the longer the timeout of the retransmission timer needs to be.

[0102] In some optional embodiments, a new timeout is obtained based on the previous timeout, the number of duplicate packets, and the maximum RTT time for each path, including: obtaining the historical weight value corresponding to the previous timeout; obtaining a first reference timeout based on the previous timeout and the historical weight value; obtaining the RTT weight value corresponding to the maximum RTT time for each path; obtaining a second reference timeout based on the maximum RTT time and the RTT weight value; obtaining a penalty weight value; obtaining a third reference timeout based on the penalty weight value and the number of duplicate packets; obtaining a target timeout based on the first reference timeout, the second reference timeout, and the third reference timeout; and obtaining a new timeout based on the timeout of the timeout retransmission timer, the minimum RTT time, and the target timeout.

[0103] The timeout period of the packet loss detection timer in this application can be determined according to the following formula:

[0104] PLPT_timeout2 = PLPT_timeout1 * α1 + (RTTmax * A) *α2 + DPKT * α3

[0105] PLPT_timeout3 = Min(Max(PLPT_timeout2, B* RTTmin), RTO)

[0106] Wherein, PLPT_timeout1 is the previous timeout time, α1 is the historical weight value, which can be 7 / 8, and other values ​​can be used in other embodiments; RTTmax is the maximum RTT time, α2 is the RTT weight value, which can be 1 / 8, and other values ​​can be used in other embodiments; DPKT is the number of duplicate packets, α3 is the penalty weight value, with a value range of 0~10us; PLPT_timeout1*α1 is the first reference timeout time, (RTTmax *A) *α2 is the second reference timeout time, where A can be 2 / 3, and other values ​​can be used in other embodiments. In this embodiment, 2 / 3 of the maximum round-trip delay is used as the baseline reference, and DPKT*α3 is the third reference timeout time. PLPT_timeout2 is the target timeout time; PLPT_timeout3 is the new timeout time, RTO is the timeout time of the timeout retransmission timer, and RTTmin is the minimum RTT time.

[0107] In addition, the timeout of the packet loss detection timer needs to be set to a minimum and a maximum value. For example, in this application, the minimum cannot be less than B times the minimum path RTT, and the maximum cannot exceed the timeout of the RTO (Retransmission Timeout Timer). Here, B can be 2, and other values ​​can also be set in other embodiments.

[0108] The packet loss detection timer and the timeout retransmission timer in this application are different. The differences between the RTO timeout timer and the PLPT timer are as follows:

[0109]

[0110] In the above embodiments, the previous timeout time is taken into account to ensure smoothness, while the number of duplicate packets and the RTT time of each path are also taken into account to ensure the accuracy of the new timeout time.

[0111] In some optional embodiments, the method further includes: upon receiving a selection acknowledgment message, updating the status of the acknowledgment message corresponding to the sent message based on the bitmap of the selection acknowledgment message.

[0112] When a select acknowledgment message is received, the status of the acknowledgment message corresponding to the sent message needs to be updated based on the select acknowledgment message, without triggering the packet sending and retransmission process.

[0113] In some optional embodiments, the method further includes: upon receiving an acknowledgment message, updating the minimum number and the maximum number of transmittable transmittable messages that have been sent but have not received an acknowledgment message, and stopping the packet loss detection timer; detecting whether there are any transmitted but unacknowledged transmittable messages; and if there are any transmitted but unacknowledged transmittable messages, starting the packet loss detection timer and updating the number of the maximum transmitted but unacknowledged transmittable message.

[0114] Upon receiving an acknowledgment message (ACK), in addition to updating the minimum number (unack) and the maximum number (limit) of currently sent messages that have not yet received an acknowledgment message, it is also necessary to stop the current packet loss detection timer.

[0115] If there are still sent but unacknowledged packets, a new packet loss detection timer needs to be started, and the PSN of the current maximum number of sent but unacknowledged packets needs to be recorded. This PSN is used as the reference RPSN for timeout retransmission.

[0116] In some optional embodiments, retransmitting unacknowledged transmission messages includes: obtaining the number of the largest currently recorded unacknowledged transmission message; determining each unacknowledged transmission message based on the number of the largest currently recorded unacknowledged transmission message; and retransmitting each determined transmission message.

[0117] When the packet loss detection timer expires, all unacknowledged packets with a value less than or equal to the RPSN need to be retransmitted. Therefore, it is necessary to obtain the number of the largest unacknowledged sent packet currently recorded, and based on the number of the largest unacknowledged sent packet currently recorded, determine each unacknowledged sent packet and retransmit it.

[0118] In some optional embodiments, after retransmitting the unacknowledged transmission message, the process includes: starting a packet loss detection timer and updating the number of the largest unacknowledged transmission message sent.

[0119] If there are still unacknowledged packets greater than RPSN after a timeout retransmission, the packet loss detection timer still needs to be restarted and the RPSN updated to the largest unacknowledged PSN.

[0120] In some optional embodiments, the method further includes: sending the message to be sent, starting a packet loss detection timer, and updating the number of the maximum number of sent but unacknowledged messages when the number of the message to be sent is less than the number of the maximum number of messages that can be sent.

[0121] During normal message transmission, it is necessary to determine whether the number of the message to be transmitted is less than the number of the maximum number of messages that can be transmitted. If so, the message to be transmitted is transmitted, the packet loss detection timer is started, and the number of the maximum number of transmitted but unacknowledged messages is updated. Otherwise, the corresponding message is not transmitted.

[0122] For ease of understanding, combined with Figure 4 As shown, Figure 4 This is a flowchart illustrating the sending process of a corresponding transmission message in one embodiment. In this embodiment, the sender does not directly rely on the SACK message for retransmission, but triggers retransmission through a packet loss detection timer. Therefore, the transmission process revolves around the packet loss detection timer. When the sender receives the SACK message, it only needs to selectively acknowledge the sent but unacknowledged packets based on the bitmap of the SACK message, without triggering the packet sending and retransmission process. When the ACK message is received, in addition to acknowledging the received message and updating the unack and limit pointers, the current packet loss detection timer needs to be stopped. If there are still sent but unacknowledged packets, a new packet loss detection timer needs to be started, and the PSN of the currently largest acknowledged packet needs to be recorded as the baseline RPSN for timeout retransmission. After the timer expires, any unacknowledged packets less than or equal to the RPSN need to be retransmitted. If, after the timeout retransmission, there are still unacknowledged packets greater than the RPSN, the timer needs to be restarted to update the RPSN to the largest unacknowledged PSN. In addition, if the sending window is sufficient (Next is less than Limit), when a new message is sent, the packet loss detection timer PLPT should be started even if it is not started, and the RPSN should be recorded as the PSN of the current message.

[0123] In the above embodiments, the sending end's retransmission triggering does not directly depend on any information from the receiving end, avoiding the loss of the receiving end's returned SACK, which could lead to failure to retransmit or retransmission delays. A packet loss detection timer accurately determines whether a packet is lost, minimizing unnecessary retransmissions while ensuring timely retransmission and improving overall network utilization. A single timer addresses both intermediate packet loss and tail packet loss, avoiding the problems of traditional retransmission methods requiring additional processing of the tail packet or only being able to retransmit after RTO timeout, thus failing to control tail latency. By dynamically measuring RTT to calculate the packet loss timer timeout, frequent parameter adjustments due to environmental differences are avoided. The sending end's retransmission is completely decoupled from the receiving end, independent of differences in the receiving end's implementation, which is beneficial for deploying different versions and vendors simultaneously in the same network.

[0124] In addition, it should be noted that this application can also reduce the timeout interval of the RTO timeout timer or improve the timeout accuracy to replace the PLPT timer, or combine the two timers into one, which will not be elaborated here.

[0125] In one exemplary embodiment, such as Figure 5 As shown, a multipath data retransmission method is provided, which is applied to... Figure 1 Taking the receiving end as an example, the explanation includes the following steps S502 to S504. Wherein:

[0126] S502: Receive the send message sent by the sender.

[0127] S504: If it is determined that the sent message is a duplicate message, an acknowledgment message or optional acknowledgment message corresponding to the sent message is sent back to the sender. The acknowledgment message or optional acknowledgment message is used to instruct the sender to adjust the timeout of the packet loss detection timer. If it is determined that the packet loss detection timer has expired based on the timeout of the packet loss detection timer, the unacknowledged sent message is resent.

[0128] The receiving end is used to receive the sending messages sent by the sending end, and to send back the corresponding acknowledgment message or selection acknowledgment message to the sending end based on the sending messages.

[0129] Specifically, the receiving end maintains a receiving window to record the reception status of received transmitted messages. Each received transmitted message needs to be recorded in the receiving window, and the message reception status is returned to the sending end through an acknowledgment message ACK or a selective acknowledgment message SACK.

[0130] The acknowledgment message or optional acknowledgment message is used to adjust the timeout of the packet loss detection timer. The specific adjustment method can be found above and will not be repeated here. In this application, when the packet loss detection timer times out, the unacknowledged transmission message is retransmitted. The retransmission triggered by the sending end does not directly depend on any information from the receiving end, thus avoiding the discarding of the SACK returned by the receiving end, which would lead to the inability to retransmit or the delay in retransmission.

[0131] In some optional embodiments, the method further includes: obtaining the number of the expected message and a receiving window; obtaining a first threshold based on the difference between the number of the expected message and the receiving window, and obtaining a second threshold based on the sum of the number of the expected message and the receiving window; determining that the sent message is a duplicate message if the number of the sent message is greater than the first threshold and less than the number of the expected message; detecting whether the sent message has been received if the number of the sent message is greater than or equal to the number of the expected message and less than or equal to the second threshold; and determining that the sent message is a duplicate message if the sent message has been received.

[0132] Combination Figure 6 As shown, Figure 6 This is a schematic diagram of a receiving window in one embodiment. The receiving window is divided into three regions based on the expected packet sequence number (ePSN) and the receiving window value (Rwin). The expected packet sequence number (ePSN) represents the PSN of the expected next received packet.

[0133] Combination Figure 6 As shown, a first threshold is obtained based on the difference between the expected message number and the receiving window, and a second threshold is obtained based on the sum of the expected message number and the receiving window.

[0134] If a sent message with a number greater than the first threshold but less than the expected message number is located in the duplicate region, it means that this part of the message has been received and a RACK (repeat acknowledge) message needs to be sent to notify the sender that the duplicate message has been received.

[0135] Messages with a number greater than or equal to the expected message number and less than or equal to the second threshold are located in the valid region. Each message within this region uses one bit to indicate whether it has been received (1 for received, 0 for not yet received). When a received message falls into this region, a SACK message must be sent to inform the sender of the message reception status within that region. Regions exceeding the second threshold are invalid regions; received messages falling into these regions are silently discarded without any processing.

[0136] In some optional embodiments, sending an acknowledgment message or a selection acknowledgment message corresponding to the sent message back to the sender includes: sending an acknowledgment message corresponding to the sent message back to the sender when the number of the sent message is greater than a first threshold and less than the number of the expected message; and sending a selection acknowledgment message corresponding to the sent message back to the sender when the number of the sent message is greater than the number of the expected message and less than a second threshold.

[0137] A message falling into the duplicate region is considered a duplicate message, and the receiving end needs to either reply with an ACK notification repeatedly or implicitly inform the sending end. Additionally, a message falling into the valid region is also considered a duplicate message if its bits are already set to 1, and the receiving end needs to explicitly inform the sending end using BMP.flag when replying with a SACK.

[0138] In some optional embodiments, sending a selection acknowledgment message corresponding to the sent message back to the sender includes: when there are multiple selection acknowledgment messages corresponding to sent messages, aggregating the selection acknowledgment messages to obtain the selection acknowledgment message corresponding to the sent message with the largest number; and sending the selection acknowledgment message corresponding to the sent message with the largest number back to the sender.

[0139] After receiving a message that falls within the valid reception range, the receiving end needs to reply with a SACK message to inform the sending end of the status of the valid reception range, including the message reception status, the size of the reception window, and the message that triggered the SACK. Multiple SACK messages can be aggregated, and the message with the largest PSN is used as the currently received message for SACK. The SACK message informs the sending end of the receiving end's information through the BMP header.

[0140] For ease of understanding, the BMP (bitmap) header is given in detail:

[0141]

[0142] Where PSN is the sequence number of the message that triggered the sending of SACK at the receiving end; Flag indicates the message status: 0x00: normal reception, 0x01: duplicate reception, 0x02: acknowledgment of packet loss, triggered by packet trimming or actively lost by the receiving end due to insufficient resources. Other: Reserved.

[0143] Length indicates the effective length of the bitmap. When length is less than 128, the high-order bits are valid and the low-order bits are invalid. Rwin is the receive window value, indicating the size of the receive window; bitmap represents the reception status of PSN packets (PSN – length) ~ PSN, where PSN corresponds to bit 127.

[0144] In the above embodiments, the receiving end determines duplicate packets based on the expected packet number and the value of the receiving window, and sends them back to the sending end via an acknowledgment packet or an optional acknowledgment packet, so that the sending end can adjust the timeout of the packet loss detector.

[0145] It should be understood that although the steps in the flowcharts of the above embodiments are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the flowcharts of the above embodiments may include multiple steps or multiple stages. These steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the steps or stages in other steps. It is understood that the steps in different embodiments can be freely combined as needed, and all non-contradictory solutions formed by such combinations are within the scope of protection of this application.

[0146] Based on the same inventive concept, this application also provides a multipath data retransmission apparatus for implementing the multipath data retransmission method described above. The solution provided by this apparatus is similar to the implementation described in the above method; therefore, the specific limitations in one or more multipath data retransmission apparatus embodiments provided below can be found in the limitations of the multipath data retransmission method described above, and will not be repeated here.

[0147] In one exemplary embodiment, such as Figure 7 As shown, a multipath data retransmission device is provided, including: a timeout adjustment module 701 and a retransmission module 702, wherein:

[0148] The timeout adjustment module 701 is used to adjust the timeout of the packet loss detection timer when it is determined that the receiving end has received a duplicate message based on the received acknowledgment message or the selected acknowledgment message.

[0149] The retransmission module 702 is used to retransmit unacknowledged transmission messages when the packet loss detection timer expires based on the timeout period of the packet loss detection timer.

[0150] In some optional embodiments, the timeout adjustment module 701 is specifically used to obtain the number of duplicate packets based on the acknowledgment packets or selected acknowledgment packets received in the previous timeout period; to obtain a new timeout period based on the previous timeout period, the number of duplicate packets, and the maximum round-trip time (RTT) of each path; and to adjust the timeout period of the packet loss detection timer to the new timeout period.

[0151] In some optional embodiments, the timeout adjustment module 701 is specifically used to increase the number of duplicate messages when the message number corresponding to the received acknowledgment message is less than the target number, wherein the target number is the smallest number of the currently sent message that has not received an acknowledgment message; and to increase the number of duplicate messages when the bitmap of the currently selected acknowledgment message indicates that the target sent message has been acknowledged, wherein the target sent message is the sent message that has already received an acknowledgment message.

[0152] In some optional embodiments, the timeout adjustment module 701 is specifically used to obtain the historical weight value corresponding to the previous timeout time, and obtain a first reference timeout time based on the previous timeout time and the historical weight value; obtain the RTT weight value corresponding to the maximum RTT time of each path, and obtain a second reference timeout time based on the maximum RTT time and the RTT weight value; obtain a penalty weight value, and obtain a third reference timeout time based on the penalty weight value and the number of duplicate packets; obtain a target timeout time based on the first reference timeout time, the second reference timeout time, and the third reference timeout time; and obtain a new timeout time based on the timeout time of the timeout retransmission timer, the minimum RTT time, and the target timeout time.

[0153] In some optional embodiments, the above apparatus further includes: a first receiving module, configured to update the status of the acknowledgment message corresponding to the sent message based on the bitmap of the selected acknowledgment message upon receiving the selected acknowledgment message.

[0154] In some optional embodiments, the first receiving module is further configured to, upon receiving an acknowledgment message, update the minimum number and the maximum number of transmittable transmittable messages that have been sent but have not received an acknowledgment message, and stop the packet loss detection timer; detect whether there are any transmitted but unacknowledged transmittable messages; and if there are any transmitted but unacknowledged transmittable messages, start the packet loss detection timer and update the number of the maximum transmitted but unacknowledged transmittable message.

[0155] In some optional embodiments, the above apparatus further includes: a sending module for obtaining the number of the largest currently recorded sent but unacknowledged message; determining each sent but unacknowledged message based on the number of the largest currently recorded sent but unacknowledged message; and retransmitting each determined message.

[0156] In some optional embodiments, the above apparatus further includes: a startup module for starting a packet loss detection timer and updating the number of the largest sent but unacknowledged packet.

[0157] In some optional embodiments, the sending module is further configured to send the message to be sent, start a packet loss detection timer, and update the number of the maximum number of sent but unacknowledged messages when the number of the message to be sent is less than the number of the maximum number of messages that can be sent.

[0158] In one exemplary embodiment, such as Figure 8 As shown, a multipath data retransmission device is provided, including: a second receiving module 801 and a feedback module 802, wherein:

[0159] The second receiving module 801 is used to receive the transmission message sent by the sending end;

[0160] The feedback module 802 is used to send an acknowledgment message or a selective acknowledgment message corresponding to the sent message to the sending end when it is determined that the sent message is a duplicate message. The acknowledgment message or selective acknowledgment message is used to instruct the sending end to adjust the timeout of the packet loss detection timer. And if it is determined that the packet loss detection timer has expired based on the timeout of the packet loss detection timer, the unacknowledged sent message is resent.

[0161] In some optional embodiments, the above apparatus further includes: a duplicate message determination module, configured to obtain the number of the expected message and a receiving window; obtain a first threshold based on the difference between the number of the expected message and the receiving window, and obtain a second threshold based on the sum of the number of the expected message and the receiving window; determine that the sent message is a duplicate message if the number of the sent message is greater than the first threshold and less than the number of the expected message; detect whether the sent message has been received if the number of the sent message is greater than the number of the expected message and less than the second threshold; and determine that the sent message is a duplicate message if the sent message has been received.

[0162] In some optional embodiments, the feedback module 802 is further configured to send an acknowledgment message corresponding to the sent message to the sender when the number of the sent message is greater than a first threshold and less than the number of the expected message; and to send an selection acknowledgment message corresponding to the sent message to the sender when the number of the sent message is greater than the number of the expected message and less than a second threshold.

[0163] In some optional embodiments, the feedback module 802 is further configured to aggregate the selection acknowledgment messages corresponding to multiple sent messages to obtain the selection acknowledgment message corresponding to the sent message with the largest number; and to feed back the selection acknowledgment message corresponding to the sent message with the largest number to the sending end.

[0164] Each module in the aforementioned multipath data retransmission device can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in the processor of a computer device in hardware form or independent of it, or stored in the memory of a computer device in software form, so that the processor can call and execute the operations corresponding to each module.

[0165] In one exemplary embodiment, a computer device is provided, which may be a terminal, and its internal structure diagram may be as follows: Figure 9 As shown, the computer device includes a processor, memory, input / output interfaces, a communication interface, a display unit, and an input device. The processor, memory, and input / output interfaces are connected via a system bus, and the communication interface, display unit, and input device are also connected to the system bus via the input / output interfaces. The processor provides computing and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system and computer programs. The internal memory provides an environment for the operation of the operating system and computer programs stored in the non-volatile storage media. The input / output interfaces are used for exchanging information between the processor and external devices. The communication interface is used for wired or wireless communication with external terminals; wireless communication can be achieved through Wi-Fi, mobile cellular networks, Near Field Communication (NFC), or other technologies. When the computer program is executed by the processor, it implements a multipath data retransmission method. The display unit is used to form a visually visible image and can be a display screen, a projection device, or a virtual reality imaging device. The display screen can be an LCD screen or an e-ink screen. The input device of the computer device can be a touch layer covering the display screen, or buttons, trackballs, or touchpads set on the casing of the computer device, or external keyboards, touchpads, or mice, etc.

[0166] Those skilled in the art will understand that Figure 9 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computer device to which the present application is applied. Specific computer devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.

[0167] In one exemplary embodiment, a chip is provided, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the steps of the method in any of the above embodiments.

[0168] In one exemplary embodiment, a network interface card is provided, including a chip as described in any of the above embodiments and multiple interfaces, through which the chip processes data or communicates externally.

[0169] In one embodiment, a computer device is also provided, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the steps in the above method embodiments.

[0170] In one embodiment, a computer-readable storage medium is provided having a computer program stored thereon that, when executed by a processor, implements the steps in the above method embodiments.

[0171] In one embodiment, a computer program product is provided, including a computer program that, when executed by a processor, implements the steps in the above method embodiments.

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

[0173] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium, and when executed, it can include the processes of the embodiments of the above methods. Any references to memory, databases, or other media used in the embodiments provided in this application can include at least one of non-volatile memory and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can take many forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM). The databases involved in the embodiments provided in this application may include at least one type of relational database and non-relational database. Non-relational databases may include, but are not limited to, blockchain-based distributed databases. The processors involved in the embodiments provided in this application may be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, quantum computing-based data processing logic devices, artificial intelligence (AI) processors, etc., and are not limited to these.

[0174] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this application.

[0175] The embodiments described above are merely illustrative of several implementation methods of this application, and while the descriptions are specific and detailed, they should not be construed as limiting the scope of this patent application. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this application should be determined by the appended claims.

Claims

1. A multipath data retransmission method, characterized in that, Applied to the sending end, the method includes: If it is determined that the receiving end has received duplicate packets based on the received acknowledgment message or selective acknowledgment message, adjust the timeout of the packet loss detection timer. If the packet loss detection timer expires based on its timeout period, the unacknowledged transmission message is retransmitted.

2. The method according to claim 1, characterized in that, The adjustment of the packet loss detection timer timeout includes: The number of duplicate messages is calculated based on the acknowledgment messages or optional acknowledgment messages received within the previous timeout period. The new timeout is obtained based on the previous timeout, the number of duplicate packets, and the maximum round-trip time (RTT) for each path. Adjust the timeout of the packet loss detection timer to the new timeout.

3. The method according to claim 2, characterized in that, The method of determining the number of duplicate messages based on the acknowledgment messages or selective acknowledgment messages received within the previous timeout period includes: If the message number corresponding to the received acknowledgment message is less than the target number, the number of duplicate messages is increased, where the target number is the smallest number of the currently sent message that has not received an acknowledgment message. If the bitmap of the currently selected acknowledgment message indicates that the target message has been acknowledged, the number of duplicate messages is increased, where the target message is a message that has already received an acknowledgment message.

4. The method according to claim 2, characterized in that, The new timeout is obtained based on the previous timeout, the number of duplicate packets, and the maximum RTT time for each path, including: Obtain the historical weight value corresponding to the previous timeout time, and obtain the first reference timeout time based on the previous timeout time and the historical weight value; Obtain the RTT weight value corresponding to the maximum RTT time of each path, and obtain the second reference timeout based on the maximum RTT time and the RTT weight value; Obtain the penalty weight value, and based on the penalty weight value and the number of duplicate packets, obtain a third reference timeout. The target timeout time is obtained based on the first reference timeout time, the second reference timeout time, and the third reference timeout time. A new timeout is obtained based on the timeout period of the timeout retransmission timer, the minimum RTT time, and the target timeout period.

5. The method according to any one of claims 1 to 4, characterized in that, The method further includes: Upon receiving a selection acknowledgment message, update the acknowledgment message information corresponding to the sent message based on the bitmap of the selection acknowledgment message.

6. The method according to any one of claims 1 to 4, characterized in that, The method further includes: Upon receiving an acknowledgment message, update the minimum number and the maximum number of transmittable messages that have been sent but have not yet received an acknowledgment message, and stop the packet loss detection timer. Detect whether there are any sent but unacknowledged messages; If there are sent but unacknowledged packets, start the packet loss detection timer and update the number of the largest sent but unacknowledged packet.

7. The method according to any one of claims 1 to 4, characterized in that, The retransmission of the unacknowledged message includes: Get the number of the largest sent but unacknowledged message in the current record; Based on the number of the largest sent but unacknowledged message currently recorded, determine each sent but unacknowledged message; Resend each of the determined transmission messages.

8. The method according to any one of claims 1 to 4, characterized in that, After retransmitting the unacknowledged message, the process includes: Start the packet loss detection timer and update the number of the largest sent but unacknowledged packet.

9. The method according to any one of claims 1 to 4, characterized in that, The method further includes: If the number of the message to be sent is less than the number of the maximum number of messages that can be sent, the message to be sent is sent, the packet loss detection timer is started, and the number of the maximum number of unacknowledged messages sent is updated.

10. A multipath data retransmission method, characterized in that, Applied to the receiving end, the method includes: Receive the message sent by the sender; If it is determined that the sent message is a duplicate message, an acknowledgment message or a selective acknowledgment message corresponding to the sent message is sent back to the sending end. The acknowledgment message or selective acknowledgment message is used to instruct the sending end to adjust the timeout of the packet loss detection timer. If it is determined that the packet loss detection timer has expired based on the timeout of the packet loss detection timer, the unacknowledged sent message is resent.

11. The method according to claim 10, characterized in that, The method further includes: Obtain the expected message number and the receiving window; A first threshold is obtained based on the difference between the expected message number and the receiving window, and a second threshold is obtained based on the sum of the expected message number and the receiving window. If the number of the sent message is greater than the first threshold and less than the number of the expected message, the sent message is determined to be a duplicate message. If the number of the sent message is greater than or equal to the number of the expected message and less than or equal to the second threshold, it is detected whether the sent message has been received. Once the message has been received, it is determined that the message is a duplicate message.

12. The method according to claim 11, characterized in that, The step of sending back an acknowledgment message or selection acknowledgment message corresponding to the sent message to the sending end includes: If the number of the sent message is greater than the first threshold and less than the number of the expected message, an acknowledgment message corresponding to the sent message is sent back to the sending end. If the number of the sent message is greater than the number of the expected message and less than the second threshold, a selection confirmation message corresponding to the sent message is sent back to the sending end.

13. The method according to claim 12, characterized in that, The step of sending the selection acknowledgment message corresponding to the sent message back to the sending end includes: In the case of multiple selection acknowledgment messages corresponding to the sent messages, the selection acknowledgment messages are aggregated to obtain the selection acknowledgment message corresponding to the sent message with the largest number. The sender sends back the selection acknowledgment message corresponding to the sent message with the largest number.

14. A multipath data retransmission device, characterized in that, Applied to the transmitting end, the device includes: The timeout adjustment module is used to adjust the timeout of the packet loss detection timer when it is determined that the receiving end has received duplicate packets based on the received acknowledgment message or selected acknowledgment message. The retransmission module is used to retransmit unacknowledged transmission messages when the packet loss detection timer has expired based on the timeout period of the packet loss detection timer.

15. A multipath data retransmission device, characterized in that, Applied to the receiving end, the device includes: The second receiving module is used to receive the transmission messages sent by the sending end; The feedback module is used to send an acknowledgment message or a selective acknowledgment message corresponding to the sent message to the sending end when it is determined that the sent message is a duplicate message. The acknowledgment message or selective acknowledgment message is used to instruct the sending end to adjust the timeout of the packet loss detection timer. If it is determined that the packet loss detection timer has expired based on the timeout of the packet loss detection timer, the unacknowledged sent message is resent.

16. A chip comprising a memory and a processor, the memory storing a computer program, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 13.

17. A network interface card, characterized in that, Includes the chip as described in claim 16 and multiple interfaces. The chip processes data or communicates with the outside world through the interface.

18. A computer device, characterized in that, Includes the network interface card as described in claim 17, the network interface card being used for processing data or external communication.

19. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 13.

20. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 13.

Citation Information

Patent Citations

  • RTT updating method and device, processor and communication system

    CN114285762A

  • Message retransmission method and device

    CN116114199A

  • Transmission control protocol optimization method, network equipment and readable storage medium

    CN119652475A

  • Data retransmission method and device, chip, network interface card, equipment, medium and program product

    CN120378065A

  • Message transmission method and device and related equipment

    CN121547382A