CN113906700B - Apparatus and method for delivering acknowledgements in a network transport protocol - Google Patents

Apparatus and method for delivering acknowledgements in a network transport protocol Download PDF

Info

Publication number
CN113906700B
CN113906700B CN202080017528.3A CN202080017528A CN113906700B CN 113906700 B CN113906700 B CN 113906700B CN 202080017528 A CN202080017528 A CN 202080017528A CN 113906700 B CN113906700 B CN 113906700B
Authority
CN
China
Prior art keywords
network device
ranges
status information
information
data packets
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202080017528.3A
Other languages
Chinese (zh)
Other versions
CN113906700A (en
Inventor
鲁文·科恩
本-沙哈尔·贝尔彻
利奥·赫尔莫什
塔尔·米兹拉希
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN113906700A publication Critical patent/CN113906700A/en
Application granted granted Critical
Publication of CN113906700B publication Critical patent/CN113906700B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1621Group acknowledgement, i.e. the acknowledgement message defining a range of identifiers, e.g. of sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1809Selective-repeat protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1614Details of the supervisory signal using bitmaps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1664Details of the supervisory signal the supervisory signal being transmitted together with payload signals; piggybacking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1671Details of the supervisory signal the supervisory signal being transmitted together with control information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1685Details of the supervisory signal the supervisory signal being transmitted in response to a specific request, e.g. to a polling signal

Abstract

The present application relates to protocols for ensuring data reliability in a communication network. To this end, the present disclosure proposes a first network device for: receiving a data packet from a second network device; and determining a set of data packets that were not properly received at the first network device. In particular, the first network device is configured to transmit one or more status information to the second network device, wherein the one or more status information indicates a subset of the set of data packets. In addition, the application also proposes a second network device for: transmitting the data packet to the first network device; receiving one or more status information from a first network device; and retransmitting the subset of data packets to the first network device accordingly.

Description

Apparatus and method for delivering acknowledgements in a network transport protocol
Technical Field
The present application relates to communication networks and, more particularly, to data reliability in data transmission of communication networks. The present application proposes an apparatus and method for delivering confirmation information in a compact and continuous manner.
Background
In a data network, it is often necessary to ensure data reliability when two computers communicate with each other. For this purpose, the sender attaches a sequence number to each packet and the receiver informs the sender which packets have been received and which packets have been lost. The sender must retransmit the lost data packet until the receiver receives the entire data packet.
Protocols for ensuring data reliability can be divided into three main categories: stop equation (Stop-and-Wait), back-off N frames (go-back-N), and Selective retransmission (Selective-Repeat).
In the stop equation, the sender sends a packet and waits for an Acknowledgement (ACK) of the packet. Once the ACK reaches the sender, it will transmit the next packet. If an ACK is not received, it retransmits the previous packet again.
In the rollback N frame, the receiving side receives only the data packet with the data packet number n+1 after receiving all the data packets before the data packet number N. If packet n+1 is not received, but a higher sequence number packet, e.g., n+2, is received, the receiver discards the out-of-order packet. When the sender is informed that packet n+1 is lost, it knows that it must not only retransmit this packet, but also must transmit all subsequent packets. The stop equation is in fact a special case of rolling back N frames, where n=1.
In selective retransmission, the receiver is willing to receive out-of-order packets. The receiver places these packets in a reorder buffer. Then, it informs only the sender of the information of the lost data packet, and the sender retransmits only the lost data packet.
Notably, selective retransmission is a more efficient protocol because only packets that cannot reach the receiver are retransmitted. However, selective retransmission is more difficult to implement than rollback N frames for two main reasons. The first is that selective retransmission requires the receiver to store the out-of-order packets in a special buffer until the missing packet is received (it cannot pass the out-of-order packet to the application). The second reason is to inform the sender which packets have been received and which packets have been lost, which is a laborious task in an asynchronous and unreliable network. In particular, it is possible that the receiver will inform the sender that a data packet is lost, whereas the (re-) transmission of the data packet can reach the receiver very quickly. Thus, it is always difficult for the sender of the selective retransmission to decide whether to obey the request for retransmission.
Disclosure of Invention
In view of the above limitations, embodiments of the present application aim to introduce an improved solution for ensuring data reliability. In particular, it is an object to provide a generic protocol that ensures data reliability and makes it applicable to a large number of lost data packets and to situations where the number of bits for ACK information is limited. One purpose is to achieve a compact and consistent representation of the ACK range.
This object is achieved by the embodiments provided in the attached independent claims. The dependent claims further define advantageous implementations of the embodiments.
In particular, embodiments of the present application propose several algorithms for determining what extent of loss is reported in the ACK. In addition, the embodiment of the application also provides a flexible method for triggering ACK.
A first aspect of the application provides a first network device for: receiving a data packet from a second network device; determining a set of data packets that were not correctly received on the first network device; and transmitting one or more status information to the second network device, wherein the one or more status information indicates a subset of the set of data packets.
The first network device (receiver) provides a compact solution for ensuring data stability by being configured to report only a portion of the lost data packets. In particular, this solution ensures data reliability and is suitable for situations where there are a large number of lost data packets.
In one embodiment of the first aspect, the set of data packets includes N ranges, N being a positive integer, each range including one or more consecutive data packets, and the one or more status information indicates a subset of the N ranges.
Typically, the purpose of the status information is to inform the sender which packets were sent before the polling information was received correctly and which packets were lost. Embodiments of the present application propose to report only a subset of the lost scope in the status information.
In an implementation manner of the first aspect, the one or more status information further indicates a last received data packet.
Optionally, the first network device may further indicate a sequence number (e.g., a positive integer L) of the last received data packet in the status information. Notably, this is to inform the sender (i.e., the second network device) that the receiver (i.e., the first network device) has received all packets preceding the packet number L, except for the loss range reported in the status information.
In an implementation form of the first aspect, the first network device is further configured to select a first X ranges from the N ranges as the subset indicated in the one or more status information, X being a positive integer less than N.
According to a first algorithm, the first network device may always report a first loss range in the status information. Notably, it allows the sender (i.e., the second network device) to retransmit the first loss range as early as possible.
In an implementation manner of the first aspect, the maximum number of ranges indicated in the one or more status information is Y, Y is a positive integer, and if Y is greater than X, the first network device is further configured to: further selecting Y-X ranges from the N ranges using a cyclic strategy or further randomly selecting Y-X ranges from the N ranges; and using the first X ranges and Y-X ranges of the selection as a subset indicated in the one or more status information.
For example, the lost ranges may be gap 1, gap 2, gap 3, gap 4, and gap 5, and y=2 and x=1. According to this algorithm, the first status information will report gap 1 (the first missing range) and another gap, randomly selected from gap 2, gap 3, gap 4 and gap 5.
In an implementation form of the first aspect, the first network device is further configured to select a first X ranges from the N ranges as a subset indicated in the one or more status information using a polling policy, X being a positive integer less than N.
According to the present algorithm, if the missing ranges are, for example, gap 1, gap 2, gap 3, gap 4, and gap 5, and the receiving party can report only two gaps, it reports gap 1 and gap 2 in the first state information, gap 3 and gap 4 in the second state information, gap 5 and gap 1 in the third state information, and so on.
In an implementation manner of the first aspect, the first network device is configured to: x ranges are randomly selected from the N ranges as a subset indicated in the one or more status information, X being a positive integer less than N.
According to this algorithm, the range of losses may be randomly selected by the first network device.
In an implementation manner of the first aspect, each range of the N ranges is associated with a probability parameter, and the first network device randomly selects X ranges from the N ranges based on the probability parameter.
That is, the first network device may assign different weights to different ranges of loss. For example, a first range may be randomly selected using the assigned weights/probabilities, and then a second range may be selected. Alternatively, if the first range is selected again, the algorithm may make another random selection until a different range is selected. Alternatively, the probability may be adjusted according to the first selection.
In an implementation manner of the first aspect, the first network device is configured to: indicating a lost range of the N ranges by indicating a sequence of a first lost data packet of the lost range and a number of lost data packets following the first lost data packet; or a sequence of a first missing data packet indicating the missing range and a sequence of a last missing data packet of the missing range.
Notably, the gap may be presented in different ways when reporting the extent of the loss. Preferably, to report the gap in minimum bit usage, the beginning and end of the packet sequence number can be used. Alternatively, the gap may be presented using the beginning of the missing sequence and a counter indicating how packets were lost from that point.
In an implementation form of the first aspect, the first network device is configured to receive one or more requests for the status information from the second network device; and
one or more of the status information is transmitted to the second network device in response to each request.
Alternatively, the status information may be reported to the sender in response to a request from the sender.
In an implementation of the first aspect, at least one of the one or more requests is a poll information or a data information.
For example, the extent of the loss is transmitted in the status information in response to the poll information or the data information (as in Transmission Control Protocol (TCP)).
In an implementation form of the first aspect, the first network device is configured to periodically transmit the one or more status information to the second network device.
Possibly, the status information may be sent periodically without polling information.
In an implementation manner of the first aspect, the first network device is configured to piggyback the one or more status information on one or more data packets of the second network device.
Alternatively, the status information may not necessarily be separate information, i.e., may instead be piggybacked on the data package.
In an implementation manner of the first aspect, at least one of the one or more status information further includes an indication that the at least one status information includes information that is part of the information, and the first network device is further configured to: one or more of the following status information including remaining information is transmitted to the second network device.
Alternatively, the second network device, i.e. the sender, may be informed whether the information of the status information is partial information or complete information.
In one implementation of the first aspect, the one or more status information includes a bitmap indicating a subset of the data packets, and optionally, one or more data packets received at the first network device.
Alternatively, a bitmap covering a range of special sequence numbers may be used to reveal the lost range. For example, the bitmap of each lost packet may be "0" and the bitmap of each non-lost packet may be "1".
A second aspect of the present application provides a second network device for transmitting data packets to a first network device; receiving one or more status information from the first network device, wherein the one or more status information indicates a subset of a set of data packets, wherein the set of data packets were not received correctly at the first network device; and retransmitting the subset of data packets to the first network device.
The second network device (sender) may obtain status information confirming the partially lost data packet. Accordingly, the reported lost data packets should be retransmitted to the first network device (receiver).
In one implementation of the second aspect, the second network device is further configured to transmit one or more requests for status information to the first network device; and receiving one or more status information from the first network device in response to each request.
In one embodiment of the second aspect, at least one of the one or more requests is poll information or data information.
In one embodiment of the second aspect, the second network device is further configured to receive one or more data packets from the first network device, wherein the one or more status information is piggybacked onto one or more data packets.
In an embodiment of the second aspect, at least one of the one or more status information further comprises an indication that the at least one status information comprises information that is part of the information, and the second network device is further configured to: one or more of the following status information including remaining information is received from the first network device.
A third aspect of the present disclosure provides a method performed by a first network device, wherein the method comprises receiving a data packet from a second network device; determining that a set of data packets was not properly received at the first network device; and transmitting one or more status information to the second network device, wherein the one or more status information indicates a subset of the set of data packets.
An embodiment of the third aspect may correspond to an embodiment of the first network device of the first aspect described above. The method of the third aspect and embodiments thereof achieve the same advantages and effects as the first network device of the first aspect and embodiments thereof described above.
A fourth aspect of the present disclosure provides a method performed by a second network device, wherein the method comprises: transmitting the data packet to the first network device; receiving one or more status information from the first network device, wherein the one or more status information indicates a subset of a set of data packets, wherein the set of data packets were not received correctly at the first network device; and retransmitting the subset of data packets to the first network device.
Embodiments of the fourth aspect may correspond to embodiments of the second network device of the second aspect described above. The method of the fourth aspect and embodiments thereof achieve the same advantages and effects as the second network device of the second aspect and embodiments thereof described above.
A fifth aspect of the present disclosure provides a computer program product comprising program code which, when run on a processor, performs the method of the third aspect and any implementation form of the third aspect, or any implementation form of the fourth aspect and any implementation form of the fourth aspect.
It should be noted that all the devices, elements, units and methods described in the present application may be implemented in software or hardware elements or any combination thereof. All steps performed by the various entities described in the present application and functions to be performed by the various entities described are intended to mean that the various entities are adapted to perform the various steps and functions. Even though in the following description of specific embodiments, the specific functions or steps performed entirely by external entities are not reflected in the description of specific detailed elements of the entity performing the specific steps or functions, it should be clear to a person skilled in the art that these methods and functions may be implemented in corresponding software or hardware elements or any type of combination thereof.
Drawings
The above aspects and implementations of the present disclosure will be explained in the following description of specific embodiments with reference to the drawings, in which:
figure 1 illustrates the ambiguity problem of selective retransmission methods.
Fig. 2 shows an example of a selective retransmission method.
Fig. 3 shows an example of a selective retransmission method.
FIG. 4 illustrates an example of a checkpoint mode approach.
Fig. 5 illustrates a first network device according to an embodiment of the present disclosure.
Fig. 6 shows an algorithm according to an embodiment of the present disclosure.
Fig. 7 illustrates another algorithm according to an embodiment of the present disclosure.
Fig. 8 illustrates a second network device according to an embodiment of the present disclosure.
Fig. 9 illustrates a method according to an embodiment of the present disclosure.
Fig. 10 illustrates a method according to an embodiment of the present disclosure.
Detailed Description
Illustrative embodiments of a method, apparatus and program product for efficient transmission of data packets in a communication system are described herein with reference to the accompanying drawings. While this description provides detailed examples of possible embodiments, it should be noted that these details are merely exemplary in nature and are in no way intended to limit the scope of the application.
Furthermore, one embodiment/example may relate to other embodiments/examples. For example, any description including, but not limited to, terms, elements, processes, descriptions, and/or technical advantages mentioned in one embodiment/example apply to other embodiments/examples.
Protocols for ensuring data reliability are well known and can be divided into three general categories: stop equality, back-off N frames, and selective retransmission. Among these protocols, selective retransmission is a more efficient protocol.
For example, as shown in fig. 1. In particular, after receiving the data packet 4, the receiving side knows that the data packet 3 is lost, because if not lost, it should be received before the data packet 4. The receiving party needs to inform the sending party accordingly. It may send a Negative ACK (NACK) or, alternatively, the receiver may inform the sender of all packets it has received and packets not received. This information may be named ACK/NACK.
When the sender receives this ACK/NACK information, it will retransmit packet 3. But after some time it receives another ACK/NACK indicating that packet 5-6 is also lost. The ACK/NACK also informs that packet 3 is (still) lost. When the receiver receives the ACK/NACK, it does not know what state the retransmitted copy of the data packet 3 is. On the one hand, if it ignores the fact that the ACK/NACK indicates that packet 3 is (still) lost, it will never know that a copy of the retransmitted packet 3 is lost. On the other hand, if it retransmits the data packet 3 again, but the receiver has received the previous retransmission, then this second retransmission is wasteful of resources.
One way to resolve the above-mentioned "ACK/NACK" ambiguity is for each ACK/NACK to report each lost packet only once and indicate which of the packets the receiver has correctly received. Fig. 2 shows a case where the sender sends a NACK only for a new gap. Notably, gaps can occur when packets are discontinuous.
In addition, the sender needs to know whether the retransmission of the previously NACK-indicated data packet (i.e., the data packet indicated by NACK) is also lost. One promising way to achieve this is to associate a logical timer with each retransmission. That is, if no ACK acknowledgement (i.e., a data packet indicated by an ACK) is made for a particular retransmission within a timeout period, the process is repeated. Fig. 3 shows an example. Notably, fig. 3 does not show all ACK information that has been sent or that may be sent. A NACK is typically sent when the sender detects a new interval in the sequence number. An ACK may be sent each time a sender receives a data packet.
However, the above method has two problems. First, it requires many logic timers. The operation of these timers is difficult, especially when the protocol is implemented on hardware. Second, the protocol requires adjustment of the timeout, which is a very difficult task. Especially because the Round Trip Time (RTT) may vary often in practice. Notably, RTT is the time it takes to send a signal plus the time it takes to receive an ACK for that signal. False estimates of RTT may result in unnecessary retransmissions (if the timeout is too short) or additional delays (if the timeout is too long).
Checkpoint mode (CPM) is another method of achieving selective repetition. In particular, CPM uses three types of control information: (1) polling information periodically transmitted by a sender; (2) Status (STAT) information, transmitted by the receiving side as a reply to the received polling information; and (3) Unsolicited Status (USTAT) information, transmitted by the receiver whenever a new gap in the sequence number of the received packet is detected.
Typically, the sender maintains two sequence number counters. The first counter is used for the sequence number assigned to the data packet. It is called an information sequence number (MSN). The second counter is used for the sequence number assigned to the polling information. It is called a polling information sequence number (PMSN).
When the sender sends a new packet, it appends a new MSN to the new packet and increments the MSN counter. If the receiver detects a new gap in the received packet, it will send a USTAT message and tell the sender what the detected gap is. The sender then resends the lost packet using its original MSN. Sometimes, the sender creates new poll information and sends it to the receiver. One polling information allocates one PMSN, which is equal to the PMSN of the last polling information +1. The poll information also contains a Max-MSN field, which is the MSN of the last transmitted new packet.
When the sender first sends a packet, or as a retransmission, it will associate the PMSN of the last transmitted poll with the MSN of the packet. Such an association may be stored in the memory of the sender.
When the receiving party receives the poll information, it will respond with STAT information. The purpose of STAT information is to inform the sender which packets have been correctly received and which packets have been lost before sending the poll message. In general, STAT information has three fields: (a) PMSN, which is copied from polling information of STAT responses; (b) Max-MSN value, which is also copied from the polling information; (c) The sequence number is less than the Max-MSN and the list of packets that have not been received by the receiver.
Some retransmission rules in the protocol are as follows. First, the sender always follows each USTAT information unless the sender has retransmitted a packet reported as lost (which would occur if packet X was lost and the sender sent poll information before packet (x+1) was sent). This is to ensure that for each of these retransmitted data packets received by the receiver, it will be the first time such data packet is received by the receiver. Second, when STAT information is received, for each data packet reported lost, the sender retransmits the data packet if and only if the PMSN associated with that data packet is less than the PMSN associated with the poll/STAT handshake.
The above protocol was developed in accordance with the second layer protocol and it assumes that the data packets are received in sequence. Under this assumption, the retransmission rules described above ensure that all packets will eventually be received by the receiver and that the sender will not unnecessarily retransmit any packets.
Fig. 4 shows an example of the CPM method. In this example, the USTAT information is used not only to report the new gap, but also to report correctly received data packets. For example, packet 3 is lost and when packet 4 is received by the receiver, the USTAT information reporting this loss is sent. When the sender receives the USTAT information, it will immediately retransmit packet 3. On the other hand, the USTAT information reporting the loss of data packet 5 and data packet 6 is lost, and therefore these data packets will only be retransmitted after the next successful poll/STAT handshake.
The first poll information receives pmsn=1, requesting the receiver to report the missing data packets up to sequence number 7. When the sender receives STAT information in response to this poll information, the sender is waiting for an ACK for data packets 1-8. All these data packets are associated with pmsn=1 at the sender except for pmsn=2, 3 and 8, because their last transmission occurs after the first poll information transmission. As shown in table 1.
Data packet number (MSN) 1 2 3 4 5 6 7 8
PMSN 1 1 2 1 1 1 1 2
Table 1: status of sender Window
When the sender receives STAT information in response to the first poll information, the STAT information reports that packets 3,5 and 6 are lost. By comparing the PMSN of the STAT information (i.e., pmsn=1) with the PMSNs associated with packets 3,5 and 6 (i.e., 2,1 and 1, respectively), the sender knows that the last transmission of packet 3 occurred after the transmission of the poll information to which the STAT information was responsive. This means that the STAT information does not actually indicate whether the last transmission of 3 was successful. Thus, the sender ignores the request for retransmission of data packet 3 (and, in fact, does not have to retransmit the data packet because the last retransmission has been received correctly), but it is subject to the retransmission request for data packet 5 and data packet 6.
The retransmission of the data packet 6 is lost. But the USTAT is not sent after this loss because it is only sent when each packet is first transmitted. The sender then continues to send new data packets (e.g., data packet 9). When the maximum MSN is 9, the first STAT information is sent. The responsive STAT information indicates that the data packet 6 is still lost. By comparing the PMSN of the second STAT information (i.e. pmsn=2) with the PMSN associated with the data packet 6, when receiving the STAT information (i.e. pmsn=1), the sender knows that the last transmission has been lost and it will transmit the data packet a third time.
It can be seen that when the receiver needs to indicate which packets have been received and which packets have been lost, there may be a limited number of NACK ranges that the receiver can report. This limitation may be for a number of reasons, for example, the implementation allocates a fixed length field in the packet header for the NACK range. For example, this field can accommodate up to X ranges, e.g., x=3. In another example, the protocol may be implemented by hardware, and for convenience, a STAT with the largest number X of NACK ranges may be generated.
Reliable transport protocols, such as TCP, fast user datagram protocol network connection (qic), and remote direct data access (RDMA), use an acknowledgement range. In particular, each range is a set of consecutive data packets or frames that have been successfully received (or a set of unsuccessfully received data packets). Each range of acknowledged packets has a corresponding "gap" in the received packets/frames. Each endpoint in the transport protocol sends acknowledgement information to the peer endpoint.
Notably, if there are a large number of "gaps" in the received data packet, the acknowledgement information sent from the receiver to the sender may require a large number of fields (and thus a large number of bits to be transmitted in each direction). However, the number of bits in the ACK information should be relatively small to avoid overhead on the line and to make the number of bits that each packet of a hardware implementation can parse limited. Currently, there is no known solution to this problem.
Fig. 5 illustrates a first network device 500 according to an embodiment of the present disclosure. The first network device 500 may include processing circuitry (not shown) for performing, conducting, or initiating various operations of the first network device 500 described herein. The processing circuitry may include hardware and software. The hardware may include analog or digital circuits, or both. The digital circuitry may include components such as an Application Specific Integrated Circuit (ASIC), a field programmable array (FPGA), a Digital Signal Processor (DSP), or a multi-function processor. The first network device 500 may also include a memory circuit that stores one or more instructions executable by the processor or by the processing circuit, particularly under the control of software. For example, the memory circuit may include a non-transitory storage medium storing executable software code that, when executed by a processor or processing circuit, causes various operations of the first network device 500 to be performed. In one embodiment, a processing circuit includes one or more processors and a non-transitory memory connected to the one or more processors. The non-transitory memory may carry executable program code that, when executed by one or more processors, causes the first network device 500 to perform, or initiate the operations or methods described herein.
To address the foregoing limitations and disadvantages, embodiments of the present disclosure propose several alternative algorithms for deciding which ranges to include in the NACK field of a STAT message. The algorithm may be implemented by the first network device 500.
In particular, the first network device 500 is configured to receive data packets 501 from the second network device 510. Thus, in particular, the first network device 500 may be referred to as a "receiver" and the second network device may be referred to as a "sender" as compared to the receivers and senders shown in the previous figures. The first network device 500 is also configured to determine that a set of data packets was not properly received at the first network device. Then, in particular, the first network device 500 is configured to transmit one or more status information 502 to the second network device 510, wherein the one or more status information 502 indicates a subset of the set of data packets.
Embodiments of the present disclosure provide several algorithms for cases where the NACK field in STAT information or any other message reporting the scope of the loss does not report the scope of the total loss.
In particular, the manner in which the gap or range is reported will not be limited to the examples given, but may also include:
1. the beginning and end of the packet sequence number.
2. The beginning of the packet sequence number and a counter indicating how many packets were lost from that point are processed by gap.
3. Relative numbering from the start of the reported deleted sequences.
4. In a bitmap covering a range of sequence numbers, each missing data packet is "0" and each missing data packet is "1".
Algorithm 1:
the first algorithm is that the receiving party, i.e. the first network device 500, always reports the first loss range.
Fig. 6 illustrates an example of a first range in reporting status information according to an embodiment of the present disclosure. For simplicity, this and all subsequent figures do not show the USTAT information (it can be assumed that all of this information is lost and that they have no impact on the example). In this embodiment, there are four loss ranges: 2-3,5-6,8-9 and 11. Fig. 6 shows that the sender, i.e. the first network device 500 shown in fig. 5, may report only two ranges of status information, i.e. one or more of the status information shown in fig. 5, and that it always reports the first two ranges.
Typically, each state information 502 contains two parameters (e.g., fields): ACK and NACK. The semantics of this information are all packets received by the state information sender (first network device 500) to the packet number ACK, except for the packets indicated in the NACK field. This means that when changing the NACK field, the ACK field also needs to be adjusted accordingly. For this reason, the value of the ACK field in the first state information in fig. 6 is 7 instead of 10.
Notably, this state information must be read in the following manner: the receiver receives all packets up to packet number 7 except for 2-3 and 5-6. It should be noted that the status of packets with sequence numbers greater than 7 is not reported.
This algorithm has a significant impact. I.e. it allows the sender, i.e. the second network device 510, to retransmit the first lost range as early as possible. However, this may delay time until all the lost ranges are retransmitted. As can be seen from fig. 6, one RTT is required for retransmission of the data packets from the first two losses and another RTT is required for retransmission of the data packets from the last two losses. Thus, if there are N lost ranges, the recipient, i.e., the first network device 500, may report X lost ranges in each STAT. N/X STATs are required to report all lost ranges.
Algorithm 2:
in this algorithm, the first network device 500 uses a round robin policy between the lost ranges according to an embodiment of the present disclosure. This means that if it has 5 lost ranges: gap 1, gap 2, gap 3, gap 4, and gap 5, but the first network device may report only two gaps, then it reports gap 1 and gap 2 in the first state information, gap 3 and gap 4 in the second state information, gap 5 and gap 1 in the third state information, and so on.
Fig. 7 shows an example of algorithm 2 according to this embodiment. It is assumed that the NACK field can report a maximum of two lost ranges. When the first STAT is sent, there are 3 lost ranges: 2-3,5-6 and 8-9. The NACK field of this STAT reports the first two lost ranges. When the second STAT is sent, there are 4 lost ranges: 2-3,5-6,8-9 and 11. Because the first two ranges are reported in the first STAT, the second STAT reports the next two ranges. When the third STAT is sent, there is only one missing range and the range is reported.
Since only part of the information is transmitted in the NACK field, the ACK field must be adjusted accordingly. For this reason, ack=1 for the second STAT. The STAT indicates that all packets up to number 1 have been received (i.e., only packet 1) and 8-9 and 11 are lost. The STAT is unable to convey more information. However, because the previous STAT indicates that all packets up to packet number 7, except for 2-3 and 5-6, have been received, the recipient has knowledge that packets 1,4 and 7 have been received correctly.
That is, optionally, at least one of the one or more status information 502 may further include an indication that the information included in the at least one status information is partial information. Accordingly, the first network device 500 may be further configured to send one or more of the following status messages 502 including the remaining information to the second network device 510.
Algorithm 3:
according to an embodiment of the present disclosure, in this algorithm, when the first network device 500 needs to transmit STATs having up to X NACK ranges, but it has N > X loss ranges, it randomly selects X ranges from the N loss ranges and reports them.
For example, assume that when STAT must be transmitted, the loss ranges are gap 1, gap 2, gap 3, gap 4, and gap 5, but the receiver may report only two lost ranges. It randomly selects 2 ranges, e.g., gap 3 and gap 5, and reports them. When it has to send the next STAT, the loss ranges are gap 1, gap 2, gap 3, gap 4 and gap 5. It randomly selects 2 ranges, e.g., gap 3 and gap 7, and reports them.
Algorithm 4:
according to an embodiment of the present disclosure, the algorithm is similar to algorithm 2, except that the first network device assigns different weights to different ranges of loss.
For example, when STAT information has to be transmitted, the loss ranges are gap 1, gap 2, gap 3, gap 4, and gap 5. The first network device 500 may report only two loss ranges. Assume that the first network device 500 wants to report the early loss range with a higher probability than the late loss range. Thus, it can assign probabilities as follows: gap 1.6, gap 2.2, gap 3.1, gap 4.08 and gap 5.02 (note that the sum of probabilities is 1). The first range is randomly selected using the probabilities described above, and then the second range is selected. If the first range is selected again, the method may make another random selection until a different range is selected. Alternatively, the probability may be adjusted according to the first selection.
Algorithm 5:
according to an embodiment of the present disclosure, algorithm 5 is intended to maximize the amount of information sent in STAT information. Thus, the first network device 500 may select the range of data packets with the greatest loss.
For example, if packets 1-10, 20-25, and 40-60 are lost, only one range can be included. The first network device 500 may choose to include the last range 40-60 included in the status information 502. Alternatively, the information may be sent as a bitmap, and the complete information at the first network device is the next expected data packet, numbered 500, and displayed from the complete bitmap in the data packet as:
500 501 502 503 504 505 506 507 508 509
0 0 1 1 0 1 1 1 0 1
for example, if state information 502 may contain a 6-bit bitmap. Then a possible way of the first network device 500 is to send information about 500-505 (0 0 1 10 1).
Algorithm 6:
it may be desirable to report the largest number of lost ranges using STAT information rather than focusing on the first lost range. However, at times, it is important to ensure successful delivery of information about the first range even if STAT information is lost.
According to the previous embodiment of the present disclosure, algorithm 1 allows the first network device 500 to decide that the first X lost ranges of STAT reports are those with the smallest sequence number. Further, if STAT information can include Y > X ranges, according to the present embodiment, the remaining Y-X ranges can be further selected in the loop.
In one example, the lost ranges may be gap 1, gap 2, gap 3, gap 4, and gap 5, x=1 and y=2. According to the present embodiment, the first STAT information will report gap 1 and gap 2, the second will report gap 1 and gap 3, the third will report gap 1 and gap 4, the fourth will report gap 1 and gap 5, the fifth will report gap 1 and gap 2, and so on.
Algorithm 7:
according to an embodiment of the present disclosure, the algorithm is similar to algorithm 6 except that the remaining Y-X ranges are randomly selected among the ranges that are not missing from the first X ranges.
Algorithm 8:
according to an embodiment of the present disclosure, the algorithm is similar to algorithm 6 or 7, except that the remaining Y-X ranges are selected according to the "maximum range" described in algorithm 5.
Algorithm 9:
according to embodiments of the present disclosure, in the algorithm, some STAT information may be sent back according to each transmitted poll information. In particular, STAT information may have a special internal sequence that indicates that a minority of STAT information is incremental. That is, the previous STAT may indicate whether there are additional packets (a "pointer" to the next packet).
As previously mentioned, existing protocols suggest sending multiple STAT messages back-to-back, or by reporting the last NACK range except for the first missing packet sequence number. In contrast, embodiments of the present disclosure describe the range of transmissions in STAT messages in response to polling messages. The same approach may be used for ACK messages (no poll messages) sent periodically, or response data messages (such as TCP).
It is noted that the range described in the present invention may be a positive range, a range designating received data packets, or a negative range designating non-received data packets. Further, the ACK range may be sent in STAT information or may be carried on the data packet (as in TCP Selective ACK (SACK)).
Fig. 8 illustrates a second network device 510 according to an embodiment of the present disclosure. The second network device 510 may include processing circuitry (not shown) for performing, conducting, or initiating various operations of the first network device 500 described herein. The processing circuitry may include hardware and software. The hardware may include analog or digital circuits, or both. The digital circuitry may include components such as an Application Specific Integrated Circuit (ASIC), a field programmable array (FPGA), a Digital Signal Processor (DSP), or a multi-function processor. The second network device 510 may also include a memory circuit that stores one or more instructions executable by the processor or by the processing circuit, particularly under the control of software. For example, the memory circuit may include a non-transitory storage medium storing executable software code that, when executed by a processor or processing circuit, causes various operations of the first network device 500 to be performed. In one embodiment, a processing circuit includes one or more processors and a non-transitory memory connected to the one or more processors. The non-transitory memory may carry executable program code that, when executed by one or more processors, causes the first network device 500 to perform, or initiate the operations or methods described herein.
In particular, the second network device 510 is configured to transmit data packets 501 to the first network device 500. Thus, in particular, the second network device 510 may be referred to as a "sender" and the first network device 500 may be referred to as a "receiver" as compared to the sender and receiver shown in the previous figures. In addition, the second network device is configured to receive one or more status information 502 from the first network device 500. In particular, the one or more status information 502 indicates a subset of the set of data packets that were not received correctly at the first network device 500. Accordingly, the second network device 510 is operable to retransmit the subset of data packets to the first network device 500. Possibly, as shown in fig. 5, the first network device 500 is a first network device and the second network device 510 may be the second network device 510 shown in fig. 5.
The second network device 510 (sender) may obtain status information that identifies the partially lost data packet. Accordingly, the reported lost data packets should be retransmitted to the first network device 500 (receiver).
Optionally, the second network device 510 is configured to transmit one or more requests for the status information 502 to the first network device 500. In addition, the second network device 510 is configured to receive one or more status information 502 from the first network device 500 in response to each request.
In particular, at least one of the one or more requests is poll information or data information.
Possibly, the second network device 510 may also be configured to receive one or more data packets from the first network device 500, wherein the one or more status information 502 is piggybacked onto the one or more data packets.
Notably, at least one of the one or more status information 502 can further include an indication that the information included in the at least one status information 502 is partial information. In particular, the second network device 510 is also configured to receive one or more of the following status information 502, including the remaining information received from the first network device 500.
It can be seen that the traffic is bi-directional, and therefore each endpoint is both a sender and a receiver. Possibly, as shown in fig. 5, the first network device 500 may be a second network device 510 as shown in fig. 8 in a specific embodiment.
Fig. 9 illustrates a method 900 according to an embodiment of the present disclosure. In certain embodiments of the present disclosure, the method 900 is performed by the first network device 500 shown in fig. 5. The method 900 includes: step 901, receiving a data packet 501 from a second network device 510; step 902, determining a set of data packets that were not received correctly at the first network device 500; step 903, transmitting one or more status information 502 to the second network device 510, wherein the one or more status information 502 indicates a subset of a set of data packets. Possibly, the second network device 510 is a second network device as shown in fig. 5 or fig. 8.
Fig. 10 illustrates a method 1000 according to an embodiment of the disclosure. In certain embodiments of the present disclosure, the method 1000 is performed by the second network device 510 shown in fig. 8. The method 100 comprises the following steps: step 1001, transmitting a data packet 501 to a first network device 500; step 1002, receiving one or more status information 502 from a first network device 500, wherein the one or more status information 502 indicates a subset of a set of data packets, wherein a set of data packets was not received correctly at the first network device 500; step 1003 retransmits the subset of data packets 501 to the first network device 500. Possibly, the first network device 500 is a first network device as shown in fig. 5 or fig. 8.
The present disclosure has been described in connection with various embodiments and implementations as examples. Other variations can be understood and effected by those skilled in the art in practicing the claimed invention, from a study of the drawings, the disclosure, and the independent claims. In the claims and description, the term "comprising" does not exclude other elements or steps and the "a" or "an" does not exclude a plurality. A single element or other unit may fulfill the functions of several entities or items recited in the claims. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.
Furthermore, any method according to an embodiment of the invention may be implemented in a computer program having code means which, when run by processing means, causes the processing means to perform the steps of the method. The computer program is embodied in a computer readable medium of a computer program product. A computer-readable medium may include essentially any memory, such as ROM (read only memory), PROM (programmable read only memory), EPROM (erasable PROM), flash memory, EEPROM (electrically erasable PROM), or hard disk drive.
Furthermore, those skilled in the art will recognize that embodiments of the first network device 500 and the second network device 510, respectively, include the necessary communication capabilities in the form of, for example, functions, means, units, elements, etc., for performing the present solution. Examples of other such devices, units, elements and functions are: processors, memories, buffers, control logic, encoders, decoders, rate matchers, down matchers, mapping units, multipliers, decision units, selection units, switches, interleavers, de-interleavers, modulators, demodulators, inputs, outputs, antennas, amplifiers, receiver units, transmitter units, DSPs, TCM encoders, TCM decoders, power supply units, feeders, communication interfaces, communication protocols, etc., all suitably arranged together for performing the present solution.
In particular, the processors of the first network device 500 and the second network device 510 may include, for example, a central processing unit (Central Processing Unit, CPU), a processing unit, a processing circuit, a processor, an application specific integrated circuit (Application Specific Integrated Circuit, ASIC), a microprocessor, or one or more instances of other processing logic that may interpret and execute instructions. Thus, the expression "processor" may denote a processing circuit comprising a plurality of processing circuits, e.g. any, some or all of the processing circuits described above. The processing circuitry may also perform data processing functions for inputting, outputting, and processing data, including data buffering and device control functions, such as call processing control, user interface control, and the like.

Claims (17)

1. A first network device (500) for:
receiving a data packet (501) from a second network device (510);
determining a set of data packets not correctly received at the first network device (500), the set of data packets comprising N ranges, N being a positive integer, each range comprising one or more consecutive data packets; and
selecting the first X ranges from the N ranges as a subset indicated in one or more state information (502), X being a positive integer less than N;
Further selecting Y-X ranges from the N ranges using a cyclic strategy as a subset of the one or more state information (502) indicative of the N ranges; and
-transmitting the one or more status information (502) to the second network device (510), the maximum number of ranges indicated in the one or more status information (502) being Y, Y being a positive integer, Y being larger than X.
2. The first network device (500) of claim 1, wherein the one or more status information (502) further indicates a last received data packet.
3. The first network device (500) of claim 1, configured to:
indicating a missing range of the N ranges by
Indicating a sequence of a first lost data packet of the lost range and a number of lost data packets following the first lost data packet of the lost range; or alternatively
Indicating the sequence of the first missing data packet of the missing range and the sequence of the last missing data packet of the missing range.
4. The first network device (500) of claim 1, configured to:
receiving one or more requests for the status information (502) from the second network device (510); and
One or more of the status information is transmitted to the second network device (510) in response to each request.
5. The first network device (500) of claim 4, wherein at least one of the one or more requests is poll information or data information.
6. The first network device (500) of claim 1, further configured to:
-periodically transmitting the one or more status information (502) to the second network device (510).
7. The first network device (500) of claim 1, further configured to:
the one or more status information (502) is piggybacked onto one or more data packets of the second network device (510).
8. The first network device (500) of claim 1, wherein at least one of the one or more status information (502) further comprises an indication that the at least one status information (502) comprises information that is part of information, and wherein the first network device (500) is further configured to:
one or more of the following status information (502) including remaining information is transmitted to the second network device (510).
9. The first network device (500) of claim 1, wherein the one or more status information (502) comprises a bitmap indicating a subset of the data packets, and optionally, one or more data packets received at the first network device (500).
10. A second network device (510) for:
transmitting the data packet (501) to the first network device (500);
receiving one or more status information (502) from the first network device (500), wherein the one or more status information (502) indicates a subset of a set of data packets, wherein the set of data packets is not correctly received at the first network device (500), the set of data packets comprises N ranges, N being a positive integer, each range comprising one or more consecutive data packets, and the one or more status information (502) indicates a subset of the N ranges, the subset indicated in the one or more status information (502) is the first X ranges of the N ranges, further wherein the subset indicated in the one or more status information (502) is Y-X ranges selected using a round robin policy, X is a positive integer less than N, the maximum number of ranges indicated in the one or more status information (502) is Y, Y is a positive integer, and Y is greater than X; and
-retransmitting a subset of said data packets (501) to said first network device (500).
11. The second network device (510) of claim 10, for:
transmitting one or more requests for the status information (502) to the first network device (500); and
One or more status information (502) is received from the first network device (500) in response to each request.
12. The second network device (510) of claim 11, wherein at least one of the one or more requests is poll information or data information.
13. The second network device (510) of claim 10, for:
one or more data packets are received from the first network device (500), wherein the one or more status information (502) is piggybacked onto one or more data packets.
14. The second network device (510) of claim 10, wherein at least one of the one or more status information (502) further comprises an indication that the at least one status information (502) comprises information that is part of information, and wherein the second network device (510) is further configured to:
one or more of the following status information (502) including remaining information is received from the first network device (500).
15. A method (900) of communicating acknowledgement information includes:
-receiving (901) a data packet (501) from a second network device (510);
determining (902) that a set of data packets is not correctly received at the first network device (500), the set of data packets comprising N ranges, N being a positive integer, each range comprising one or more consecutive data packets; and
Selecting the first X ranges from the N ranges as a subset indicated in one or more state information (502), X being a positive integer less than N;
further selecting Y-X ranges from the N ranges using a cyclic strategy as a subset of the one or more state information (502) indicative of the N ranges; and
-transmitting the one or more status information (502) to the second network device (510), the maximum number of ranges indicated in the one or more status information (502) being Y, Y being a positive integer, Y being larger than X.
16. A method (1000) of communicating acknowledgement information includes:
transmitting (1001) a data packet (501) to a first network device (500);
-receiving (1002) one or more status information (502) from the first network device (500), wherein the one or more status information (502) indicates a subset of a set of data packets, wherein the set of data packets is not received correctly at the first network device (500), the set of data packets comprises N ranges, N being a positive integer, each range comprising one or more consecutive data packets, and wherein the one or more status information (502) indicates a subset of the N ranges, the subset indicated in the one or more status information (502) is the first X ranges of the N ranges, further wherein the subset indicated in the one or more status information (502) is Y-X ranges of the N ranges using a cyclic strategy, X is a positive integer smaller than N, the maximum number of ranges indicated in the one or more status information (502) is Y, Y is a positive integer, Y is greater than X; and
-retransmitting (1003) a subset of said data packets to said first network device (500).
17. A computer program storage medium having a program code stored therein, which, when run on a processor, performs the method according to claim 15 or 16.
CN202080017528.3A 2020-05-05 2020-05-05 Apparatus and method for delivering acknowledgements in a network transport protocol Active CN113906700B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2020/062425 WO2021223853A1 (en) 2020-05-05 2020-05-05 Device and method for delivering acknowledgment in network transport protocols

Publications (2)

Publication Number Publication Date
CN113906700A CN113906700A (en) 2022-01-07
CN113906700B true CN113906700B (en) 2023-09-12

Family

ID=70554072

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080017528.3A Active CN113906700B (en) 2020-05-05 2020-05-05 Apparatus and method for delivering acknowledgements in a network transport protocol

Country Status (2)

Country Link
CN (1) CN113906700B (en)
WO (1) WO2021223853A1 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1354931A (en) * 1999-04-09 2002-06-19 艾利森电话股份有限公司 Method for minimizing feedback responses in ARQ protocols
CN101132259A (en) * 2006-08-23 2008-02-27 上海贝尔阿尔卡特股份有限公司 Method for controlling data retransmission at final retransmission time in wireless network
CN101213856A (en) * 2005-05-04 2008-07-02 Lg电子株式会社 Method of transmitting control information in wireless communication system and transmission window updating method using the same
CN101346925A (en) * 2005-11-30 2009-01-14 诺基亚公司 Apparatus, method and computer program product providing retransmission utilizing multiple ARQ mechanisms
US9490850B1 (en) * 2011-11-28 2016-11-08 Google Inc. Method and apparatus for decoding packetized data
CN107204834A (en) * 2017-05-25 2017-09-26 复旦大学 A kind of control method of the express network transmitting based on UDT agreements
CN109905447A (en) * 2017-12-11 2019-06-18 华为技术有限公司 Information transmission method and device

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170041766A1 (en) * 2015-08-05 2017-02-09 Qualcomm Incorporated Media access control segmentation and packet data convergence protocol delivery notification with enhanced component carriers
EP3353930B1 (en) * 2015-09-25 2020-10-21 Nokia Solutions and Networks Oy Enhancement of pdcp status report
US10820370B2 (en) * 2016-05-18 2020-10-27 Samsung Electronics Co., Ltd. Method and apparatus for performing efficient layer 2 function in mobile communication system
EP3619863A4 (en) * 2017-05-05 2020-12-23 Nokia Technologies Oy Radio link control status reporting
US10355827B2 (en) * 2017-08-08 2019-07-16 Telefonaktiebolaget Lm Ericsson (Publ) Status reporting in a wireless communication system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1354931A (en) * 1999-04-09 2002-06-19 艾利森电话股份有限公司 Method for minimizing feedback responses in ARQ protocols
CN101213856A (en) * 2005-05-04 2008-07-02 Lg电子株式会社 Method of transmitting control information in wireless communication system and transmission window updating method using the same
CN101346925A (en) * 2005-11-30 2009-01-14 诺基亚公司 Apparatus, method and computer program product providing retransmission utilizing multiple ARQ mechanisms
CN101132259A (en) * 2006-08-23 2008-02-27 上海贝尔阿尔卡特股份有限公司 Method for controlling data retransmission at final retransmission time in wireless network
US9490850B1 (en) * 2011-11-28 2016-11-08 Google Inc. Method and apparatus for decoding packetized data
CN107204834A (en) * 2017-05-25 2017-09-26 复旦大学 A kind of control method of the express network transmitting based on UDT agreements
CN109905447A (en) * 2017-12-11 2019-06-18 华为技术有限公司 Information transmission method and device

Also Published As

Publication number Publication date
CN113906700A (en) 2022-01-07
WO2021223853A1 (en) 2021-11-11

Similar Documents

Publication Publication Date Title
US6424625B1 (en) Method and apparatus for discarding packets in a data network having automatic repeat request
US6381215B1 (en) Method and computer program product for efficiently and reliably sending small data messages from a sending system to a large number of receiving systems
US5432798A (en) Data communication method and system
EP2429111A1 (en) Method and device for message retransmission
CN111193577A (en) Network system communication method and communication device using transmission timeout
US11463339B2 (en) Device and method for delivering acknowledgment in network transport protocols
CN109560897B (en) TCP retransmission method and device
US10461892B2 (en) Low latency communications
CN113906700B (en) Apparatus and method for delivering acknowledgements in a network transport protocol
CN112383622A (en) Reliable transport protocol and hardware architecture for data center networking
US10110350B2 (en) Method and system for flow control
KR20060079570A (en) Apparatus and method for a retransmission of a data in a communication system
Maisuria et al. Overview of techniques for improving QoS of TCP over wireless links
CN115812284A (en) Apparatus and method for transmitting acknowledgements in a network transport protocol
WO2007090325A1 (en) A method and device for transmitting data
WO2023016646A1 (en) A device and method for remote direct memory access
WO2020182942A1 (en) Method of enabling harq, network entity and computer program
US20230327812A1 (en) Device and method for selective retransmission of lost packets
JP2000059347A (en) Method and device for radio communication
WO2023011712A1 (en) A device and method for remote direct memory access
CN115664603A (en) Message retransmission method
Pujeri et al. Survey of End-to-End TCP Congestion Control Protocols
Mehta et al. Enrichment of ‘SACK’TCP performance by delaying fast recovery
Fuchs et al. A controlled loss transport service for sensor data transmission
Chary Experimental Evaluation of Transmission Control Protocol using Congestion Control for System to System

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant