WO2021223853A1 - Device and method for delivering acknowledgment in network transport protocols - Google Patents

Device and method for delivering acknowledgment in network transport protocols Download PDF

Info

Publication number
WO2021223853A1
WO2021223853A1 PCT/EP2020/062425 EP2020062425W WO2021223853A1 WO 2021223853 A1 WO2021223853 A1 WO 2021223853A1 EP 2020062425 W EP2020062425 W EP 2020062425W WO 2021223853 A1 WO2021223853 A1 WO 2021223853A1
Authority
WO
WIPO (PCT)
Prior art keywords
network device
ranges
status messages
data packets
missing
Prior art date
Application number
PCT/EP2020/062425
Other languages
French (fr)
Inventor
Reuven Cohen
Ben-Shahar BELKAR
Lior Khermosh
Tal Mizrahi
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.
Priority to CN202080017528.3A priority Critical patent/CN113906700B/en
Priority to PCT/EP2020/062425 priority patent/WO2021223853A1/en
Publication of WO2021223853A1 publication Critical patent/WO2021223853A1/en

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
    • 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/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

Definitions

  • the present disclosure relates to communication networks, and more particularly to data reliability in data transmission of communication networks.
  • the disclosure proposes a device and method for delivering acknowledgment information in a compact and constant manner.
  • the sender attaches a sequence number to each data-packet, and the receiver informs the sender which data-packets have been received and which data- packets are missing. The sender must retransmit the missing data-packets until the receiver receives all data-packets.
  • Protocols for ensuring data reliability can be classified into three main categories: Stop-and- Wait, go-back-N, and Selective-Repeat.
  • the sender sends the packet and waits for the ACK (acknowledgement) of the packet. Once the ACK reaches the sender, it transmits the next data packet. If the ACK is not received, it retransmits the previous data packet again.
  • Selective-Repeat the receiver is willing to accept packets that are received out of order. The receiver places these packets in a reordering buffer. It then informs the sender only about missing packets, and the sender retransmits only the missing packets.
  • Selective-Repeat is a more efficient protocol, since only packets that fail to reach the receiver are retransmitted.
  • the implementation of Selective-Repeat is more difficult than that of go-back-N, for two main reasons.
  • the first is that Selective-Repeat requires the receiver to store out-of-order packets in a special buffer until missing packets are received (it cannot deliver to the application out of order packets).
  • the second is that informing the sender, which packets have been received and which are missing, is a difficult task in an asynchronous and unreliable network.
  • the receiver informs the sender that a packet is missing while a (re)transmission of this packet will reach the receiver quite soon.
  • a Selective-Repeat sender always has the difficulty of deciding whether or not to obey a retransmission request.
  • an objective is to provide a generalized protocol for ensuring data reliability, and making it applicable to a scenario of a large number of missing packets, and a limited number of bits for ACK information.
  • One aim is to enable a compact and constant representation of ACK ranges.
  • embodiments of this disclosure propose several algorithms for deciding which missing ranges to report in ACKs.
  • embodiments of this disclosure also propose flexible approaches for triggering ACKs.
  • a first aspect of the disclosure provides a first network device, configured to: receive data packets from a second network device; determine a set of data packets that have not been correctly received at the first network device; and transmit one or more status messages to the second network device, wherein the one or more status messages indicate a subset of the set of data packets.
  • the first network device (receiver), by being configured to report only a part of the missing packets, provides a compact solution for ensuring data reliability.
  • the solution ensures data reliability, and is applicable to a case where there is a large number of missing packets.
  • the set of data packets comprises N ranges, N being a positive integer, each range comprising one or more contiguous data packets, and the one or more status messages indicate a subset of the N ranges.
  • a status message is to inform the sender, which of the data packets sent before a poll message have been correctly received, and which of them have been lost.
  • Embodiments of this disclosure propose to only report a subset of the missing ranges in status messages.
  • the one or more status messages further indicate a last received data packet.
  • the first network device may additionally indicate a sequence number (e.g., a positive integer L) of the last received data packet in the status message. Notably, this is to notify the sender (i.e., the second network device), that the receiver (i.e., the first network device) received all the packets up to packet number L, except the missing ranges reported in the status message.
  • a sequence number e.g., a positive integer L
  • the first network device is further configured to select the first X ranges from the N ranges as the subset indicated in the one or more status messages, X being a positive integer less than N.
  • the first network device may always report the first missing ranges in the status message. Notably, it allows the sender (i.e., the second network device) to retransmit the first missing ranges as early as possible.
  • a maximum number of ranges that can be indicated in the one or more status messages is Y, Y being a positive integer, and if Y is greater than X, the first network device is further configured to: further select Y-X ranges from the N ranges using a round robin policy, or further randomly select Y-X ranges from the N ranges; and use the selected first X ranges and Y-X ranges as the subset indicated in the one or more status messages.
  • the first status message will report about gapl (the first missing range), and another gap, which is randomly selected from gap2, gap3, gap4 and gap5.
  • the first network device is configured to select X ranges from the N ranges as the subset indicated in the one or more status messages, using a round robin policy, X being a positive integer less than N.
  • the receiver can report only about two gaps, then it reports in the first status message about gapl and gap2, in the second status message about gap3 and gap4, in the third one about gap 5 and gapl, and so on.
  • the first network device is configured to: randomly select X ranges from the N ranges as the subset indicated in the one or more status messages, X being a positive integer less than N.
  • the missing ranges may be randomly chosen by the first network device.
  • each range of the N ranges is associated with a probability parameter
  • the first network device is configured to randomly select X ranges from the N ranges based on the probability parameters.
  • the first network device may assign different weights to different missing ranges. For instance, the first range may be chosen randomly using the assigned weights/probabilities, and then the second range may be chosen. Optionally, if the first range is chosen again, the algorithm may make another random selection until a different range is chosen. Alternatively, the probabilities may be adjusted according to the first selection.
  • the first network device is configured to: indicate a missing range in the N ranges by, indicating a sequence of a first missing packet of the missing range and a number of missing packets after the first missing packet of the missing range; or indicating a sequence of a first missing packet of the missing range and a sequence of a last missing packet of the missing range.
  • the beginning and the end of the packet sequence number may be used.
  • the beginning of the missing sequence and a counter indicating how packet packets are missing from that point may be used to present the gap.
  • the first network device is configured to receive one or more requests for status messages from the second network device; and transmit, in response to each request, one or more status messages to the second network device.
  • the status message may be reported to the sender in response to a request from the sender.
  • At least one of the one or more requests is a poll message or a data message.
  • missing ranges are transmitted in status messages, in response to poll messages, or in response to data messages (as in transmission control protocol (TCP)).
  • TCP transmission control protocol
  • the first network device is configured to periodically transmit the one or more status messages to the second network device.
  • the status messages may be sent periodically without poll messages.
  • the first network device is configured to piggyback the one or more status messages onto one or more data packets to the second network device.
  • the status messages may not have to be separate messages, that is, may instead be piggybacked onto data packets.
  • At least one of the one or more status messages further comprises an indication, which indicates that information included in the at least one status message is partial information
  • the first network device is further configured to: transmit one or more following status messages including the remaining information to the second network device.
  • the second network device namely the sender, may be informed about the information of status messages is partial or full.
  • the one or status messages comprise a bitmap, which indicates the subset of data packets and optionally indicates one or more data packets that were received at the first network device.
  • the missing ranges may be presented using a bitmap that covers a certain sequence number range.
  • the bitmap may have ‘O’ for every missing packet, and ‘ G for every not-missing packet.
  • a second aspect of the disclosure provides a second network device, being configured to transmit data packets to a first network device; receive one or more status messages from the first network device, wherein the one or more status messages indicate a subset of a set of data packets, wherein the set of data packets has not been correctly received at the first network device; and retransmit the subset of data packets to the first network device.
  • the second network device may obtain status messages acknowledging a part of the missing packets. Accordingly, the reported missing packets should be retransmitted to the first network device (receiver).
  • the second network device is further configured to transmit, one or more requests for status messages, to the first network device; and receive, in response to each request, one or more status messages from the first network device.
  • At least one of the one or more requests is a poll message or a data message.
  • the second network device is configured to receive one or more data packets from the first network device, wherein the one or more status messages are piggybacked onto the one or more data packets.
  • at least one of the one or more status messages further comprises an indication, which indicates that information included in the at least one status message is partial information, and the second network device is further configured to: receive one or more following status messages including the remaining information from the first network device.
  • a third aspect of the disclosure provides a method performed by a first network device, wherein the method comprises receiving data packets from a second network device; determining a set of data packets that have not been correctly received at the first network device; and transmitting one or more status messages to the second network device, wherein the one or more status messages indicate a subset of the set of data packets.
  • Implementation forms of the method of the third aspect may correspond to the implementation forms of the first network device of the first aspect described above.
  • the method of the third aspect and its implementation forms achieve the same advantages and effects as described above for the first network device of the first aspect and its implementation forms.
  • a fourth aspect of the disclosure provides a method performed by a second network device, wherein the method comprises: transmitting data packets to a first network device; receiving one or more status messages from the first network device, wherein the one or more status messages indicate a subset of a set of data packets, wherein the set of data packets has not been correctly received at the first network device; and retransmitting the subset of data packets to the first network device.
  • Implementation forms of the method of the fourth aspect may correspond to the implementation forms of the second network device of the second aspect described above.
  • the method of the fourth aspect and its implementation forms achieve the same advantages and effects as described above for the second network device of the second aspect and its implementation forms.
  • a fifth aspect of the disclosure provides a computer program product comprising a program code for carrying out, when implemented on a processor, the method according to the third aspect and any implementation forms of the third aspect, or the fourth aspect and any implementation forms of the fourth aspect. It has to be noted that all devices, elements, units and means described in the present application could be implemented in the software or hardware elements or any kind of combination thereof. All steps which are performed by the various entities described in the present application as well as the functionalities described to be performed by the various entities are intended to mean that the respective entity is adapted to or configured to perform the respective steps and functionalities.
  • FIG. 1 shows an ambiguity problem of Selective-Repeat approach.
  • FIG. 2 shows an example of Selective-Repeat approach.
  • FIG. 3 shows an example of Selective-Repeat approach.
  • FIG. 4 shows an example of Checkpoint mode approach.
  • FIG. 5 shows a first network device according to an embodiment of the disclosure.
  • FIG. 6 shows an algorithm according to an embodiment of the disclosure.
  • FIG. 7 shows another algorithm according to an embodiment of the disclosure.
  • FIG. 8 shows a second network device according to an embodiment of the disclosure.
  • FIG. 9 shows a method according to an embodiment of the disclosure.
  • FIG. 10 shows a method according to an embodiment of the disclosure.
  • an embodiment/example may refer to other embodiments/examples.
  • any description including but not limited to terminology, element, process, explanation and/or technical advantage mentioned in one embodiment/example is applicative to the other embodiments/examples.
  • protocols for ensuring data reliability can be classified into three main categories: Stop-and-Wait, go-back-N and Selective-Repeat. Selective-Repeat is a more efficient protocol among these protocols.
  • a situation is as shown in FIG. 1.
  • the receiver understands that packet 3 is lost, because if it was not lost, it should have been received before packet 4.
  • the receiver accordingly needs to inform the sender. It could send a negative ACK (NACK), or optionally the receiver may inform the sender about all the packets it has received and the packet it has not received.
  • NACK negative ACK
  • This message may be named as ACK/NACK.
  • this ACK/NACK message When the sender receives this ACK/NACK message, it retransmits packet number 3. But sometime later it receives another ACK/NACK, which indicates that packets 5-6 are also lost. This ACK/NACK also informs that packet 3 is (still) missing. When the sender receives this ACK/NACK, it does not know what is the status of the retransmitted copy of packet 3. On one hand, if it ignores the fact that this ACK/NACK indicates that packet 3 is (still) missing, then it would never be able to know that the retransmitted copy of packet 3 is lost. On the other hand, if it retransmits packet 3 once again, but the previous retransmission was received by the receiver, then this second retransmission is a waste of resources.
  • FIG. 2 shows the situation that the sender sending a NACK only for a new gap. Notably, a gap occurs when the packets are not contiguous. Further, the sender needs to know whether a retransmission of a previously NACKed packet (namely, the packet being indicated in a NACK) is also lost.
  • a promising way to achieve that is to associate a logical timer with each retransmission. That is, if a particular retransmission is not ACKed (namely, the packet being indicated in an ACK) within a timeout period, it will be repeated.
  • FIG. 3 does not show all the ACK messages that are sent or can be sent.
  • the sender usually sends a NACK when it detects a new gap in the sequence number.
  • the sender may send an ACK whenever it receives a data packet.
  • RTT round-trip time
  • the protocol needs to adjust the time-out, which is a very difficult task. This is especially because that a round-trip time (RTT) may vary very often in practice.
  • RTT is the length of time it takes for a signal to be sent plus the length of time it takes for an ACK of that signal to be received. Wrong estimation of the RTT may result either in an unnecessary retransmission (in case the time-out is too short), or in extra delay (in case the time-out is too long).
  • CPM Checkpoint Mode
  • STAT status
  • USTAT unsolicited status
  • the sender typically maintains two sequence number counters.
  • the first counter is for the sequence numbers assigned to data packets. It is called message sequence number (MSN).
  • the second counter is for sequence numbers assigned to poll messages. It is thus called poll message sequence number (PMSN).
  • the sender When the sender sends a new data packet, it attaches to the new data packet a new MSN, and increments the MSN counter. If the receiver detects a new gap in the received data packets, it sends a USTAT message, and tells the sender what the detected gap is. The sender then resends the missing data packet(s) with its(their) original MSN. From time to time, a new poll message is created by the sender and sent to the receiver. A poll message is assigned a PMSN, which is equal to the PMSN of the last poll message +1. The poll message also contains a Max-MSN field, which is the MSN of the last new data packet transmitted.
  • the sender When the sender sends a data packet, for the first time or as a retransmission, it associates the PMSN of the last sent poll message with the MSN of this packet. Such association may be kept in a memory of the sender.
  • the receiver When the receiver receives a poll message, it responds with a STAT message.
  • the purpose of the STAT message is to inform the sender which of the data packets sent before the poll message have been correctly received and which of them have been lost.
  • the STAT message has three fields: (a) PMSN, which is copied from the poll message to which the STAT responds; (b) the Max-MSN value, which is also copied from the poll message; and (c) a list of data packets whose sequence numbers are smaller than Max-MSN and not received yet by the receiver.
  • each USTAT message is always obeyed by the sender, unless the sender has already retransmitted the data- packet reported as missing (this happens if a data-packet X is lost, and before sending data- packet (X+l) the sender sends a poll message; hence the first report about the missing packet X is received by a STAT rather than by a USTAT). This is to guarantee that, for each of these retransmitted data packets, which is received by the receiver, it will be the first time that the receiver receives this packet.
  • the sender retransmits this packet if and only if the PMSN associated with this data packet is smaller than the PMSN associated with the poll/STAT handshake.
  • the above protocol is developed as a Layer 2 protocol, and it assumes that packets are received in-order. Under this assumption, the above retransmission rules guarantee that all data packets are eventually received by the receiver and that no packet is unnecessarily retransmitted by the sender.
  • FIG. 4 shows an example of the CPM approach.
  • USTAT messages are used not only for reporting about new gaps, but also for reporting data packets that are correctly accepted. For instance, packet 3 is lost, and a USTAT message reporting this loss is sent when the receiver receives packet 4. When the USTAT message is received, the sender immediately retransmits packet 3. On the other hand, the USTAT message reporting the loss of packets 5 and 6 is lost, and therefore these packets are retransmitted only after the next successful poll/STAT handshake.
  • this STAT message reports that packets 3, 5 and 6 are missing.
  • PMSN 1
  • PMSN 2
  • the sender learns that the last transmission of data packet 3 took places after the transmission of the poll message to which this STAT message responds. This implies that this STAT message does not really indicate whether the last transmission of 3 was successful or not.
  • the sender ignores the retransmission request for packet 3 (and, indeed, there is no need to retransmit this packet because the last transmission is correctly received), but it obeys the retransmission request for data packets 5 and 6.
  • the retransmission of data packet 6 is lost. But no USTAT is sent following this loss, because a USTAT is sent only for the first transmission of each data packet. Then, the sender continues sending new packets (e.g., packet 9).
  • the second STAT message is sent when the largest MSN is 9.
  • the responding STAT message indicates that packet 6 is still missing.
  • the receiver needs to indicate what data packets have been received, and what were lost, there might be cases where the number of NACK ranges the receiver can report is limited.
  • the protocol may be implemented by hardware, and for the sake of simplicity, a ST AT can be generated with a maximum number X of NACK ranges.
  • Reliable transport protocols such as TCP, Quick User datagram protocol Internet Connection (QUIC), and Remote Direct Memory Access (RDMA) use acknowledgment ranges.
  • each range is a set of contiguous packets or frames that were received successfully (or a set of packets that were not received successfully).
  • 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.
  • the acknowledgement information sent from the receiver to the sender may require a large number of fields (and thus a large number of bits transmitted in each direction).
  • the number of bits in the ACK information should be relatively small in order to avoid overhead on the wire, and in order to enable hardware implementations that have a limited number of bits that can be parsed per packet.
  • FIG. 5 shows a first network device 500 according to an embodiment of the disclosure.
  • the first network device 500 may comprise processing circuitry (not shown) configured to perform, conduct or initiate the various operations of the first network device 500 described herein.
  • the processing circuitry may comprise hardware and software.
  • the hardware may comprise analog circuitry or digital circuitry, or both analog and digital circuitry.
  • the digital circuitry may comprise components such as application-specific integrated circuits (ASICs), field- programmable arrays (FPGAs), digital signal processors (DSPs), or multi-purpose processors.
  • the first network device 500 may further comprise memory circuitry, which stores one or more instruction(s) that can be executed by the processor or by the processing circuitry, in particular under control of the software.
  • the memory circuitry may comprise a non-transitory storage medium storing executable software code which, when executed by the processor or the processing circuitry, causes the various operations of the first network device 500 to be performed.
  • the processing circuitry comprises 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 which, when executed by the one or more processors, causes the first network device 500 to perform, conduct or initiate the operations or methods described herein.
  • embodiments of this disclosure propose several alternative algorithms for deciding which ranges to include in the NACK field of STAT messages.
  • the algorithms may be implemented by the first network device 500.
  • the first network device 500 is configured to receive data packets 501 from a second network device 510.
  • the first network device 500 may be referred to as “receiver” and the second network device 510 as “sender”, particularly in comparison with the receiver and sender shown in the previous figures.
  • the first network device 500 is further configured to determine a set of data packets that have not been correctly received at the first network device 500. Then, the first network device 500 is particularly configured to transmit one or more status messages 502 to the second network device 510, wherein the one or more status messages 502 indicate a subset of the set of data packets.
  • Embodiments of this disclosure provide several algorithms for the case, where the NACK field in a STAT message, or in any other message that reports about missing ranges, does not report about all missing ranges.
  • the first algorithm is that the receiver, i.e., the first network device 500, always reports about the first missing ranges.
  • FIG. 6 shows an example of reporting first ranges in status messages, according to an embodiment of the disclosure. For simplicity, this figure, as well as all following figures, do not show USTAT messages (it can be assumed that all these messages are lost and they do not affect the examples). In this embodiment, there are four missing ranges: 2-3, 5-6, 8-9 and 11.
  • FIG. 6 shows the case where the sender, i.e., the first network device 500 as shown in FIG. 5, can report only 2 ranges in the status message, i.e., the one or more status messages 502 as shown in FIG. 5, and it always reports the first two ranges.
  • every status message 502 contains two parameters (e.g., fields): ACK and NACK.
  • the semantic of this message is that the status message sender (the first network device 500) received all the packets up to packet number ACK, except the packets indicated in the NACK field. This implies that when the NACK field is changed, the ACK field also needs to be adjusted accordingly. For this reason, the ACK field in the first status message in FIG. 6 has the value 7 rather than 10.
  • this status message has to be read as follows: the receiver received all the packets till packet number 7, except 2-3 and 5-6. In should be noted that, the status of the packets whose sequence numbers are larger than 7 is not reported.
  • This algorithm has an important effect. Namely, it allows the sender, i.e., the second network device 510, to retransmit the first missing ranges as early as possible. However, it may delay the time until all the missing ranges are retransmitted. It can be seen in FIG. 6 that, one RTT is needed for the retransmission of the packets from the first two missing ranges, and another RTT will be needed for retransmission of the packets from the last two missing ranges. Thus, if there are N missing ranges, and the receiver, i.e., the first network device 510, can report about X missing ranges in every STAT. N/X STATs are needed to report about all missing ranges.
  • the first network device 500 uses a round robin policy between the missing ranges. This means that if it has 5 missing ranges: gapl, gap2, gap3, gap4 and gap5, but the first network device 500 can report only about two gaps, then it reports in the first STAT about gapl and gap2, in the second STAT about gap3 and gap4, in the third STAT about gap 5 and gapl, and so on.
  • FIG. 7 shows an example of Algorithm 2, according to this embodiment. It is assumed that the NACK field can report about at most two missing ranges. When the first STAT is sent, there are 3 missing ranges: 2-3, 5-6 and 8-9. The NACK field of this STAT reports about the first 2 missing ranges.
  • At least one of the one or more status messages 502 may further comprise an indication, which indicates that information included in the at least one status message is partial information. Accordingly, the first network device 500 may be further configured to transmit one or more following status messages 502 including the remaining information to the second network device 510.
  • the first network device 500 when the first network device 500 needs to send a STAT with up to X NACK ranges, but it has N>X missing ranges, it randomly chooses X ranges from the N missing ranges and reports about them.
  • the missing ranges are gapl, gap2, gap3, gap4 and gap5, but the receiver can report only about two missing ranges. It randomly chooses 2 ranges, for example gap3 and gap5 and reports about them.
  • the missing ranges are gapl, gap2, gap3, gap4, gap6 and gap7. It randomly chooses 2 ranges, for example gap3 and gap7 and reports about them.
  • This algorithm is similar to Algorithm 2, except that the first network device 500 assigns different weights to different missing ranges, according to an embodiment of this disclosure.
  • the missing ranges are gapl, gap2, gap3, gap4 and gap5.
  • the first network device 500 can report only about two missing ranges. It is assumed that the first network device 500 wants to report about early missing ranges with higher probability compared to late missing range. It can therefore assign the probabilities as follows: gapl 0.6, gap2 0.2, gap3 0.1, gap4 0.08 and gap5 0.02 (note that the sum of the probabilities is 1).
  • the first range is chosen randomly using the above probabilities, and then the second range is chosen. If the first range is chosen again, the algorithm may make another random selection until a different range is chosen. Alternatively, the probabilities may be adjusted according to the first selection.
  • the Algorithm 5 aims to maximize the amount of information sent in a STAT message.
  • the first network device 500 may choose the ranges with maximum missing packets.
  • the first network device 500 may choose to include the last range 40-60 in the status message 502.
  • the information may be sent as a bitmap, and the full information at the first network device 500 is that the next expected packet is number 500, and from this packet the full bitmap is shown as:
  • the status message 502 can contain a bitmap of 6 bits. Then, a possibly way for the first network device 500 is to send information about 500-505 (0 0 1 1 0 1).
  • Algorithm 1 allows the first network device 500 to decide that the first X missing ranges reported by the STAT will be those with the minimum sequence numbers.
  • the STAT message can contain Y>X ranges, according to this embodiment, the remaining Y-X ranges can be further chosen in a round robin.
  • the first STAT message will report about gapl and gap2, the second one will report about gapl and gap3, the third one will report about gapl and gap4, the fourth one will report about gapl and gap5, the fifth one will report about gapl and gap2 and so on.
  • this algorithm is similar to Algorithm 6, except that the remaining Y-X ranges are chosen randomly among the missing ranges that are not the first X ranges.
  • this algorithm is similar to Algorithm 6 or 7, except that the remaining Y-X ranges are chosen according to the “maximum ranges” as described in Algorithm 5.
  • a few STAT messages could be sent back.
  • the STAT message may hold a special internal sequence indicating that the few STAT messages are incremental. That is, a previous STAT could indicate whether there are additional packets coming (“pointer” to next packet).
  • embodiments of this disclosure describe ranges that are transmitted in STAT messages in response to poll messages.
  • the same solution can be applied to ACK messages that are sent periodically (without poll messages), or in response to data messages (as in TCP).
  • the ranges that were described throughout this disclosure can be either positive ranges, specifying packets that were received, or negative ranges, specifying packets that were not received.
  • the ACK ranges can be sent in STAT messages, or they can be a piggybacked onto data packets (as in TCP selective ACK (SACK)).
  • FIG. 8 shows a second network device 510 according to an embodiment of the disclosure.
  • the second network device 510 may comprise processing circuitry (not shown) configured to perform, conduct or initiate the various operations of the first network device 500 described herein.
  • the processing circuitry may comprise hardware and software.
  • the hardware may comprise analog circuitry or digital circuitry, or both analog and digital circuitry.
  • the digital circuitry may comprise components such as application-specific integrated circuits (ASICs), field-programmable arrays (FPGAs), digital signal processors (DSPs), or multi-purpose processors.
  • the second network device 510 may further comprise memory circuitry, which stores one or more instruction(s) that can be executed by the processor or by the processing circuitry, in particular under control of the software.
  • the memory circuitry may comprise a non-transitory storage medium storing executable software code which, when executed by the processor or the processing circuitry, causes the various operations of the second network device 510 to be performed.
  • the processing circuitry comprises 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 which, when executed by the one or more processors, causes the second network device 510 to perform, conduct or initiate the operations or methods described herein.
  • the second network device 510 is configured to transmit data packets 501 to a first network device 500.
  • the second network device 510 may be referred to as “sender” and the first network device 500 as “receiver”, particularly in comparison with the sender and receiver shown in the previous figures.
  • the second network device 510 is configured to receive one or more status messages 502 from the first network device 500.
  • the one or more status messages 502 indicate a subset of a set of data packets, wherein the set of data packets has not been correctly received at the first network device 500.
  • the second network device 510 is configured to retransmit the subset of data packets to the first network device 500.
  • the first network device 500 is the first network device as shown in FIG.
  • the second network device 510 may be the second network device 510 as shown in FIG. 5.
  • the second network device 510 (sender) may obtain status messages acknowledging a part of the missing packets. Accordingly, the reported missing packets should be retransmitted to the first network device 500 (receiver).
  • the second network device 510 may be further configured to transmit, one or more requests for status messages 502, to the first network device 500. Further, the second network device 510 may be configured to receive, in response to each request, one or more status messages 502 from the first network device 500.
  • At least one of the one or more requests may be a poll message or a data message.
  • the second network device 510 may further be configured to receive one or more data packets from the first network device 500, wherein the one or more status messages 502 are piggybacked onto the one or more data packets.
  • At least one of the one or more status messages 502 may further comprise an indication, which indicates that information included in the at least one status message 502 is partial information.
  • the second network device 510 is further configured to receive one or more following status messages 502 including the remaining information from the first network device 500.
  • traffic is bidirectional, and thus each endpoint is both a sender and a receiver.
  • the first network device 500 shown in FIG. 5 may be the second network device 510 shown in FIG. 8 in a specific implementation.
  • FIG. 9 shows a method 900 according to an embodiment of the disclosure.
  • the method 900 is performed by a first network device 500 shown in FIG. 5.
  • the method 900 comprises: a step 901 of receiving data packets 501 from a second network device 510; a step 902 of determining a set of data packets that have not been correctly received at the first network device 500; and a step 903 of transmitting one or more status messages 502 to the second network device 510, wherein the one or more status messages 502 indicate a subset of the set of data packets.
  • the second network device 510 is the second network device shown in FIG. 5 or FIG. 8.
  • FIG. 10 shows a method 1000 according to an embodiment of the disclosure.
  • the method 1000 is performed by a second network device 510 shown in FIG. 8.
  • the method 1000 comprises: a step 1001 of transmitting data packets 501 to a first network device 500; and a step 1002 of receiving one or more status messages 502 from the first network device 500, wherein the one or more status messages 502 indicate a subset of a set of data packets, wherein the set of data packets has not been correctly received at the first network device 500; and a step 1003 of retransmitting the subset of data packets 501 to the first network device 500.
  • the first network device 500 is the first network device shown in FIG. 5 or FIG. 8.
  • any method according to embodiments of the disclosure may be implemented in a computer program, having code means, which when run by processing means causes the processing means to execute the steps of the method.
  • the computer program is included in a computer readable medium of a computer program product.
  • the computer readable medium may comprise essentially any memory, such as a ROM (Read-Only Memory), a PROM (Programmable Read-Only Memory), an EPROM (Erasable PROM), a Flash memory, an EEPROM (Electrically Erasable PROM), or a hard disk drive.
  • embodiments of the first network device 500 and the second network device 510 comprises the necessary communication capabilities in the form of e.g., functions, means, units, elements, etc., for performing the solution.
  • means, units, elements and functions are: processors, memory, buffers, control logic, encoders, decoders, rate matchers, de-rate matchers, mapping units, multipliers, decision units, selecting units, switches, interleavers, de-interleavers, modulators, demodulators, inputs, outputs, antennas, amplifiers, receiver units, transmitter units, DSPs, trellis-coded modulation (TCM) encoder, TCM decoder, power supply units, power feeders, communication interfaces, communication protocols, etc.
  • TCM trellis-coded modulation
  • the processor(s) of the first network device 500 and the second network device 510 may comprise, e.g., one or more instances of a Central Processing Unit (CPU), a processing unit, a processing circuit, a processor, an Application Specific Integrated Circuit (ASIC), a microprocessor, or other processing logic that may interpret and execute instructions.
  • CPU Central Processing Unit
  • ASIC Application Specific Integrated Circuit
  • the expression “processor” may thus represent a processing circuitry comprising a plurality of processing circuits, such as, e.g., any, some or all of the ones mentioned above.
  • the processing circuitry may further perform data processing functions for inputting, outputting, and processing of data comprising data buffering and device control functions, such as call processing control, user interface control, or the like.

Abstract

The present disclosure relates to protocols for ensuring data reliability in a communication network. To this end, the disclosure proposes a first network device being configured to: receive data packets from a second network device; and determine a set of data packets that have not been correctly received at the first network device. In particular, the first network device is configured to transmit one or more status messages to the second network device, wherein the one or more status messages indicate a subset of the set of data packets. Further, this disclosure also proposes a second network device being configured to: transmit data packets to a first network device; receive one or more status messages from the first network device; and retransmit the subset of data packets to the first network device accordingly.

Description

DEVICE AND METHOD FOR DELIVERING ACKNOWLEDGMENT IN NETWORK
TRANSPORT PROTOCOLS
TECHNICAL FIELD
The present disclosure relates to communication networks, and more particularly to data reliability in data transmission of communication networks. The disclosure proposes a device and method for delivering acknowledgment information in a compact and constant manner.
BACKGROUND
In data networks, when two computers communicate with each other, it is often necessary to ensure data reliability. To this end, the sender attaches a sequence number to each data-packet, and the receiver informs the sender which data-packets have been received and which data- packets are missing. The sender must retransmit the missing data-packets until the receiver receives all data-packets.
Protocols for ensuring data reliability can be classified into three main categories: Stop-and- Wait, go-back-N, and Selective-Repeat.
In Stop-and-Wait the sender sends the packet and waits for the ACK (acknowledgement) of the packet. Once the ACK reaches the sender, it transmits the next data packet. If the ACK is not received, it retransmits the previous data packet again.
In go-back-N, a receiver that has received all data packets up to packet number N is willing to accept only packet number N+l. If packet N+l is not received, but a packet with a higher sequence number is received, e.g., N+2, the receiver drops this out-of-order packet. When the sender is informed that data packet N+l was lost, it knows that it must retransmit not only this data packet, but also all succeeding packets. Stop-and-wait is actually a special case of go-back- N, with N = 1. In Selective-Repeat, the receiver is willing to accept packets that are received out of order. The receiver places these packets in a reordering buffer. It then informs the sender only about missing packets, and the sender retransmits only the missing packets.
Notably, Selective-Repeat is a more efficient protocol, since only packets that fail to reach the receiver are retransmitted. However, the implementation of Selective-Repeat is more difficult than that of go-back-N, for two main reasons. The first is that Selective-Repeat requires the receiver to store out-of-order packets in a special buffer until missing packets are received (it cannot deliver to the application out of order packets). The second is that informing the sender, which packets have been received and which are missing, is a difficult task in an asynchronous and unreliable network. In particular, it is possible that the receiver informs the sender that a packet is missing while a (re)transmission of this packet will reach the receiver quite soon. Thus, a Selective-Repeat sender always has the difficulty of deciding whether or not to obey a retransmission request.
SUMMARY
In view of the above-mentioned limitations, embodiments of the present disclosure aim to introduce an improved solution for ensuring data reliability. In particular, an objective is to provide a generalized protocol for ensuring data reliability, and making it applicable to a scenario of a large number of missing packets, and a limited number of bits for ACK information. One aim is to enable a compact and constant representation of ACK ranges.
The objective is achieved by embodiments as provided in the enclosed independent claims. Advantageous implementations of the embodiments are further defined in the dependent claims.
In particular, embodiments of this disclosure propose several algorithms for deciding which missing ranges to report in ACKs. In addition, embodiments of this disclosure also propose flexible approaches for triggering ACKs.
A first aspect of the disclosure provides a first network device, configured to: receive data packets from a second network device; determine a set of data packets that have not been correctly received at the first network device; and transmit one or more status messages to the second network device, wherein the one or more status messages indicate a subset of the set of data packets.
The first network device (receiver), by being configured to report only a part of the missing packets, provides a compact solution for ensuring data reliability. In particular, the solution ensures data reliability, and is applicable to a case where there is a large number of missing packets.
In an implementation form of the first aspect, the set of data packets comprises N ranges, N being a positive integer, each range comprising one or more contiguous data packets, and the one or more status messages indicate a subset of the N ranges.
Conventionally, the purpose of a status message is to inform the sender, which of the data packets sent before a poll message have been correctly received, and which of them have been lost. Embodiments of this disclosure propose to only report a subset of the missing ranges in status messages.
In an implementation form of the first aspect, the one or more status messages further indicate a last received data packet.
Optionally, the first network device may additionally indicate a sequence number (e.g., a positive integer L) of the last received data packet in the status message. Notably, this is to notify the sender (i.e., the second network device), that the receiver (i.e., the first network device) received all the packets up to packet number L, except the missing ranges reported in the status message.
In an implementation form of the first aspect, the first network device is further configured to select the first X ranges from the N ranges as the subset indicated in the one or more status messages, X being a positive integer less than N.
According to a first algorithm, the first network device may always report the first missing ranges in the status message. Notably, it allows the sender (i.e., the second network device) to retransmit the first missing ranges as early as possible.
In an implementation form of the first aspect, a maximum number of ranges that can be indicated in the one or more status messages is Y, Y being a positive integer, and if Y is greater than X, the first network device is further configured to: further select Y-X ranges from the N ranges using a round robin policy, or further randomly select Y-X ranges from the N ranges; and use the selected first X ranges and Y-X ranges as the subset indicated in the one or more status messages.
For example, the missing ranges may be a gapl, gap2, gap3, gap4 and gap5, and Y=2 and X=l. According to this algorithm, the first status message will report about gapl (the first missing range), and another gap, which is randomly selected from gap2, gap3, gap4 and gap5.
In an implementation form of the first aspect, the first network device is configured to select X ranges from the N ranges as the subset indicated in the one or more status messages, using a round robin policy, X being a positive integer less than N.
According to this algorithm, if the missing ranges are, for example, gapl, gap2, gap3, gap4 and gap5, and the receiver can report only about two gaps, then it reports in the first status message about gapl and gap2, in the second status message about gap3 and gap4, in the third one about gap 5 and gapl, and so on.
In an implementation form of the first aspect, the first network device is configured to: randomly select X ranges from the N ranges as the subset indicated in the one or more status messages, X being a positive integer less than N.
According to another algorithm, the missing ranges may be randomly chosen by the first network device.
In an implementation form of the first aspect, wherein each range of the N ranges is associated with a probability parameter, and the first network device is configured to randomly select X ranges from the N ranges based on the probability parameters.
That is, the first network device may assign different weights to different missing ranges. For instance, the first range may be chosen randomly using the assigned weights/probabilities, and then the second range may be chosen. Optionally, if the first range is chosen again, the algorithm may make another random selection until a different range is chosen. Alternatively, the probabilities may be adjusted according to the first selection.
In an implementation form of the first aspect, the first network device is configured to: indicate a missing range in the N ranges by, indicating a sequence of a first missing packet of the missing range and a number of missing packets after the first missing packet of the missing range; or indicating a sequence of a first missing packet of the missing range and a sequence of a last missing packet of the missing range.
Notably, when reporting the missing ranges, different manners for presenting the gaps may be used. Preferably, in order to report the gaps in a minimal bit usage, the beginning and the end of the packet sequence number may be used. Alternatively, the beginning of the missing sequence and a counter indicating how packet packets are missing from that point, may be used to present the gap.
In an implementation form of the first aspect, the first network device is configured to receive one or more requests for status messages from the second network device; and transmit, in response to each request, one or more status messages to the second network device.
Optionally, the status message may be reported to the sender in response to a request from the sender.
In an implementation form of the first aspect, at least one of the one or more requests is a poll message or a data message.
For instance, missing ranges are transmitted in status messages, in response to poll messages, or in response to data messages (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 messages to the second network device.
Possibly, the status messages may be sent periodically without poll messages.
In an implementation form of the first aspect, the first network device is configured to piggyback the one or more status messages onto one or more data packets to the second network device.
Optionally, the status messages may not have to be separate messages, that is, may instead be piggybacked onto data packets.
In an implementation form of the first aspect, at least one of the one or more status messages further comprises an indication, which indicates that information included in the at least one status message is partial information, and the first network device is further configured to: transmit one or more following status messages including the remaining information to the second network device.
Optionally, the second network device, namely the sender, may be informed about the information of status messages is partial or full.
In an implementation form of the first aspect, the one or status messages comprise a bitmap, which indicates the subset of data packets and optionally indicates one or more data packets that were received at the first network device.
Optionally, the missing ranges may be presented using a bitmap that covers a certain sequence number range. For instance, the bitmap may have ‘O’ for every missing packet, and ‘ G for every not-missing packet.
A second aspect of the disclosure provides a second network device, being configured to transmit data packets to a first network device; receive one or more status messages from the first network device, wherein the one or more status messages indicate a subset of a set of data packets, wherein the set of data packets has not been correctly received at the first network device; and retransmit the subset of data packets to the first network device.
The second network device (sender) may obtain status messages acknowledging a part of the missing packets. Accordingly, the reported missing packets should be retransmitted to the first network device (receiver).
In an implementation form of the second aspect, the second network device is further configured to transmit, one or more requests for status messages, to the first network device; and receive, in response to each request, one or more status messages from the first network device.
In an implementation form of the second aspect, at least one of the one or more requests is a poll message or a data message.
In an implementation form of the second aspect, the second network device is configured to receive one or more data packets from the first network device, wherein the one or more status messages are piggybacked onto the one or more data packets. In an implementation form of the second aspect, at least one of the one or more status messages further comprises an indication, which indicates that information included in the at least one status message is partial information, and the second network device is further configured to: receive one or more following status messages including the remaining information from the first network device.
A third aspect of the disclosure provides a method performed by a first network device, wherein the method comprises receiving data packets from a second network device; determining a set of data packets that have not been correctly received at the first network device; and transmitting one or more status messages to the second network device, wherein the one or more status messages indicate a subset of the set of data packets.
Implementation forms of the method of the third aspect may correspond to the implementation forms of the first network device of the first aspect described above. The method of the third aspect and its implementation forms achieve the same advantages and effects as described above for the first network device of the first aspect and its implementation forms.
A fourth aspect of the disclosure provides a method performed by a second network device, wherein the method comprises: transmitting data packets to a first network device; receiving one or more status messages from the first network device, wherein the one or more status messages indicate a subset of a set of data packets, wherein the set of data packets has not been correctly received at the first network device; and retransmitting the subset of data packets to the first network device.
Implementation forms of the method of the fourth aspect may correspond to the implementation forms of the second network device of the second aspect described above. The method of the fourth aspect and its implementation forms achieve the same advantages and effects as described above for the second network device of the second aspect and its implementation forms.
A fifth aspect of the disclosure provides a computer program product comprising a program code for carrying out, when implemented on a processor, the method according to the third aspect and any implementation forms of the third aspect, or the fourth aspect and any implementation forms of the fourth aspect. It has to be noted that all devices, elements, units and means described in the present application could be implemented in the software or hardware elements or any kind of combination thereof. All steps which are performed by the various entities described in the present application as well as the functionalities described to be performed by the various entities are intended to mean that the respective entity is adapted to or configured to perform the respective steps and functionalities. Even if, in the following description of specific embodiments, a specific functionality or step to be performed by external entities is not reflected in the description of a specific detailed element of that entity which performs that specific step or functionality, it should be clear for a skilled person that these methods and functionalities can be implemented in respective software or hardware elements, or any kind of combination thereof.
BRIEF DESCRIPTION OF DRAWINGS
The above described aspects and implementation forms of the present disclosure will be explained in the following description of specific embodiments in relation to the enclosed drawings, in which
FIG. 1 shows an ambiguity problem of Selective-Repeat approach.
FIG. 2 shows an example of Selective-Repeat approach.
FIG. 3 shows an example of Selective-Repeat approach.
FIG. 4 shows an example of Checkpoint mode approach.
FIG. 5 shows a first network device according to an embodiment of the disclosure.
FIG. 6 shows an algorithm according to an embodiment of the disclosure.
FIG. 7 shows another algorithm according to an embodiment of the disclosure.
FIG. 8 shows a second network device according to an embodiment of the disclosure.
FIG. 9 shows a method according to an embodiment of the disclosure.
FIG. 10 shows a method according to an embodiment of the disclosure. DETAILED DESCRIPTION OF EMBODIMENTS
Illustrative embodiments of method, device, and program product for efficient packet transmission in a communication system are described with reference to the figures. Although this description provides a detailed example of possible implementations, it should be noted that the details are intended to be exemplary and in no way limit the scope of the application.
Moreover, an embodiment/example may refer to other embodiments/examples. For example, any description including but not limited to terminology, element, process, explanation and/or technical advantage mentioned in one embodiment/example is applicative to the other embodiments/examples.
It is known that, protocols for ensuring data reliability can be classified into three main categories: Stop-and-Wait, go-back-N and Selective-Repeat. Selective-Repeat is a more efficient protocol among these protocols.
For example, a situation is as shown in FIG. 1. In particular, after receiving packet 4, the receiver understands that packet 3 is lost, because if it was not lost, it should have been received before packet 4. The receiver accordingly needs to inform the sender. It could send a negative ACK (NACK), or optionally the receiver may inform the sender about all the packets it has received and the packet it has not received. This message may be named as ACK/NACK.
When the sender receives this ACK/NACK message, it retransmits packet number 3. But sometime later it receives another ACK/NACK, which indicates that packets 5-6 are also lost. This ACK/NACK also informs that packet 3 is (still) missing. When the sender receives this ACK/NACK, it does not know what is the status of the retransmitted copy of packet 3. On one hand, if it ignores the fact that this ACK/NACK indicates that packet 3 is (still) missing, then it would never be able to know that the retransmitted copy of packet 3 is lost. On the other hand, if it retransmits packet 3 once again, but the previous retransmission was received by the receiver, then this second retransmission is a waste of resources.
One way to address the above “ACK/NACK” ambiguity is that each ACK/NACK reports every lost packet only once, and also says what packets have been correctly received by the receiver. FIG. 2 shows the situation that the sender sending a NACK only for a new gap. Notably, a gap occurs when the packets are not contiguous. Further, the sender needs to know whether a retransmission of a previously NACKed packet (namely, the packet being indicated in a NACK) is also lost. A promising way to achieve that is to associate a logical timer with each retransmission. That is, if a particular retransmission is not ACKed (namely, the packet being indicated in an ACK) within a timeout period, it will be repeated. An example is shown in FIG. 3. It should be noted that, FIG. 3 does not show all the ACK messages that are sent or can be sent. The sender usually sends a NACK when it detects a new gap in the sequence number. The sender may send an ACK whenever it receives a data packet.
However, there are two problems with the above approach. Firstly, it requires many logical timers. The operation of these timers is difficult, especially when implementing the protocol on hardware. Secondly, the protocol needs to adjust the time-out, which is a very difficult task. This is especially because that a round-trip time (RTT) may vary very often in practice. Notably, the RTT is the length of time it takes for a signal to be sent plus the length of time it takes for an ACK of that signal to be received. Wrong estimation of the RTT may result either in an unnecessary retransmission (in case the time-out is too short), or in extra delay (in case the time-out is too long).
Checkpoint Mode (CPM) is a different approach for implementing Selective-Repeat. In particular, CPM uses three types of control messages: (1) poll messages, which are periodically sent by the sender; (2) status (STAT) messages, which are sent by the receiver as a response to the received poll messages; and (3) unsolicited status (USTAT) messages, which are sent by the receiver whenever a new gap in the sequence numbers of the received data packets is detected.
Typically, the sender maintains two sequence number counters. The first counter is for the sequence numbers assigned to data packets. It is called message sequence number (MSN). The second counter is for sequence numbers assigned to poll messages. It is thus called poll message sequence number (PMSN).
When the sender sends a new data packet, it attaches to the new data packet a new MSN, and increments the MSN counter. If the receiver detects a new gap in the received data packets, it sends a USTAT message, and tells the sender what the detected gap is. The sender then resends the missing data packet(s) with its(their) original MSN. From time to time, a new poll message is created by the sender and sent to the receiver. A poll message is assigned a PMSN, which is equal to the PMSN of the last poll message +1. The poll message also contains a Max-MSN field, which is the MSN of the last new data packet transmitted.
When the sender sends a data packet, for the first time or as a retransmission, it associates the PMSN of the last sent poll message with the MSN of this packet. Such association may be kept in a memory of the sender.
When the receiver receives a poll message, it responds with a STAT message. The purpose of the STAT message is to inform the sender which of the data packets sent before the poll message have been correctly received and which of them have been lost. In general, the STAT message has three fields: (a) PMSN, which is copied from the poll message to which the STAT responds; (b) the Max-MSN value, which is also copied from the poll message; and (c) a list of data packets whose sequence numbers are smaller than Max-MSN and not received yet by the receiver.
Some retransmission rules of the protocol are stated in the following. Firstly, each USTAT message is always obeyed by the sender, unless the sender has already retransmitted the data- packet reported as missing (this happens if a data-packet X is lost, and before sending data- packet (X+l) the sender sends a poll message; hence the first report about the missing packet X is received by a STAT rather than by a USTAT). This is to guarantee that, for each of these retransmitted data packets, which is received by the receiver, it will be the first time that the receiver receives this packet. Secondly, when a STAT message is received, for each data packet reported missing, the sender retransmits this packet if and only if the PMSN associated with this data packet is smaller than the PMSN associated with the poll/STAT handshake.
The above protocol is developed as a Layer 2 protocol, and it assumes that packets are received in-order. Under this assumption, the above retransmission rules guarantee that all data packets are eventually received by the receiver and that no packet is unnecessarily retransmitted by the sender.
FIG. 4 shows an example of the CPM approach. In this example, USTAT messages are used not only for reporting about new gaps, but also for reporting data packets that are correctly accepted. For instance, packet 3 is lost, and a USTAT message reporting this loss is sent when the receiver receives packet 4. When the USTAT message is received, the sender immediately retransmits packet 3. On the other hand, the USTAT message reporting the loss of packets 5 and 6 is lost, and therefore these packets are retransmitted only after the next successful poll/STAT handshake.
The first poll message receives PMSN = 1 and it requests the receiver to report missing packets until sequence number 7. When the STAT message responding to this poll message is received by the sender, the sender is waiting for ACKs regarding data packets 1-8. All these data packets are associated at the sender with PMSN = 1 except 3 and 8 that have PMSN = 2, because their last transmission took places after the first poll message was sent. This is shown by Table 1.
Figure imgf000014_0001
Table 1: The status of the sender’s window
When the STAT message responding to the first poll message is received by the sender, this STAT message reports that packets 3, 5 and 6 are missing. By comparing the PMSN of this STAT message (i.e., PMSN = 1) to the PMSNs associated with data packets 3, 5 and 6 (i.e., 2, 1, and 1, respectively), the sender learns that the last transmission of data packet 3 took places after the transmission of the poll message to which this STAT message responds. This implies that this STAT message does not really indicate whether the last transmission of 3 was successful or not. Hence, the sender ignores the retransmission request for packet 3 (and, indeed, there is no need to retransmit this packet because the last transmission is correctly received), but it obeys the retransmission request for data packets 5 and 6.
The retransmission of data packet 6 is lost. But no USTAT is sent following this loss, because a USTAT is sent only for the first transmission of each data packet. Then, the sender continues sending new packets (e.g., packet 9). The second STAT message is sent when the largest MSN is 9. The responding STAT message indicates that packet 6 is still missing. By comparing the PMSN of the second STAT message (i.e., PMSN = 2) to the PMSN associated with data packet 6 when the STAT message is received (i.e., PMSN = 1), the sender learns that the last transmission has been lost, and it transmits this packet for the third time.
It can be seen that, when the receiver needs to indicate what data packets have been received, and what were lost, there might be cases where the number of NACK ranges the receiver can report is limited. This limitation may happen for many reasons, for example that the implementation allocates a fixed-length field in the packet header for the NACK ranges. For instance, this field can accommodate at most X ranges; e.g. X=3. In another example, the protocol may be implemented by hardware, and for the sake of simplicity, a ST AT can be generated with a maximum number X of NACK ranges.
Reliable transport protocols such as TCP, Quick User datagram protocol Internet Connection (QUIC), and Remote Direct Memory Access (RDMA) use acknowledgment ranges. In particular, each range is a set of contiguous packets or frames that were received successfully (or a set of packets that were not received successfully). 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 is a large number of “gaps” in the received packets, the acknowledgement information sent from the receiver to the sender may require a large number of fields (and thus a large number of bits transmitted in each direction). However, the number of bits in the ACK information should be relatively small in order to avoid overhead on the wire, and in order to enable hardware implementations that have a limited number of bits that can be parsed per packet. Currently, there is still no known solution that addresses this problem.
FIG. 5 shows a first network device 500 according to an embodiment of the disclosure. The first network device 500 may comprise processing circuitry (not shown) configured to perform, conduct or initiate the various operations of the first network device 500 described herein. The processing circuitry may comprise hardware and software. The hardware may comprise analog circuitry or digital circuitry, or both analog and digital circuitry. The digital circuitry may comprise components such as application-specific integrated circuits (ASICs), field- programmable arrays (FPGAs), digital signal processors (DSPs), or multi-purpose processors. The first network device 500 may further comprise memory circuitry, which stores one or more instruction(s) that can be executed by the processor or by the processing circuitry, in particular under control of the software. For instance, the memory circuitry may comprise a non-transitory storage medium storing executable software code which, when executed by the processor or the processing circuitry, causes the various operations of the first network device 500 to be performed. In one embodiment, the processing circuitry comprises 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 which, when executed by the one or more processors, causes the first network device 500 to perform, conduct or initiate the operations or methods described herein.
To address the aforementioned limitations and deficiencies, embodiments of this disclosure propose several alternative algorithms for deciding which ranges to include in the NACK field of STAT messages. The algorithms may be implemented by the first network device 500.
In particular, the first network device 500 is configured to receive data packets 501 from a second network device 510. Thus, the first network device 500 may be referred to as “receiver” and the second network device 510 as “sender”, particularly in comparison with the receiver and sender shown in the previous figures. The first network device 500 is further configured to determine a set of data packets that have not been correctly received at the first network device 500. Then, the first network device 500 is particularly configured to transmit one or more status messages 502 to the second network device 510, wherein the one or more status messages 502 indicate a subset of the set of data packets.
Embodiments of this disclosure provide several algorithms for the case, where the NACK field in a STAT message, or in any other message that reports about missing ranges, does not report about all missing ranges.
In particular, the way the gaps or ranges will be reported are not limited to the examples given and could contain:
1. The beginning and end of the packet sequence numbers.
2. The beginning of the packet sequence number and a counter indicating how many packets are missing from that point, handled per gap.
3. Relative number from the beginning reported missing sequence for all the gaps reported.
4. A bitmap that covers a certain sequence number range, and has ‘O’ for every missing packet and ‘ G for every not-missing packet.
Algorithm 1:
The first algorithm is that the receiver, i.e., the first network device 500, always reports about the first missing ranges. FIG. 6 shows an example of reporting first ranges in status messages, according to an embodiment of the disclosure. For simplicity, this figure, as well as all following figures, do not show USTAT messages (it can be assumed that all these messages are lost and they do not affect the examples). In this embodiment, there are four missing ranges: 2-3, 5-6, 8-9 and 11. FIG. 6 shows the case where the sender, i.e., the first network device 500 as shown in FIG. 5, can report only 2 ranges in the status message, i.e., the one or more status messages 502 as shown in FIG. 5, and it always reports the first two ranges.
Typically, every status message 502 contains two parameters (e.g., fields): ACK and NACK. The semantic of this message is that the status message sender (the first network device 500) received all the packets up to packet number ACK, except the packets indicated in the NACK field. This implies that when the NACK field is changed, the ACK field also needs to be adjusted accordingly. For this reason, the ACK field in the first status message in FIG. 6 has the value 7 rather than 10.
Notably, this status message has to be read as follows: the receiver received all the packets till packet number 7, except 2-3 and 5-6. In should be noted that, the status of the packets whose sequence numbers are larger than 7 is not reported.
This algorithm has an important effect. Namely, it allows the sender, i.e., the second network device 510, to retransmit the first missing ranges as early as possible. However, it may delay the time until all the missing ranges are retransmitted. It can be seen in FIG. 6 that, one RTT is needed for the retransmission of the packets from the first two missing ranges, and another RTT will be needed for retransmission of the packets from the last two missing ranges. Thus, if there are N missing ranges, and the receiver, i.e., the first network device 510, can report about X missing ranges in every STAT. N/X STATs are needed to report about all missing ranges.
Algorithm 2:
In this algorithm, the first network device 500, according to an embodiment of the disclosure, uses a round robin policy between the missing ranges. This means that if it has 5 missing ranges: gapl, gap2, gap3, gap4 and gap5, but the first network device 500 can report only about two gaps, then it reports in the first STAT about gapl and gap2, in the second STAT about gap3 and gap4, in the third STAT about gap 5 and gapl, and so on. FIG. 7 shows an example of Algorithm 2, according to this embodiment. It is assumed that the NACK field can report about at most two missing ranges. When the first STAT is sent, there are 3 missing ranges: 2-3, 5-6 and 8-9. The NACK field of this STAT reports about the first 2 missing ranges. When the second STAT is sent, there are 4 missing ranges: 2-3, 5-6, 8-9 and 11. Since the first 2 ranges were reported in the first STAT, the second STAT report about the next 2 ranges. When the third STAT is sent, there is only one missing range, and this range is reported.
Due to sending only partial information in the NACK field, the ACK field has to be adjusted accordingly. For this reason, the second STAT has ack=l. This STAT says that all the packets until number 1 have been received (i.e., only packet 1), and that 8-9 and 11-1 lare missing. This STAT does not convey further information. However, since the previous STAT indicated that all the packets up to packet number 7, except 2-3 and 5-6, have been received, the receiver already knows that packets 1, 4 and 7 have been correctly received.
That is, optionally, at least one of the one or more status messages 502 may further comprise an indication, which indicates that information included in the at least one status message is partial information. Accordingly, the first network device 500 may be further configured to transmit one or more following status messages 502 including the remaining information to the second network device 510.
Algorithm 3 :
According to an embodiment of this disclosure, in this algorithm, when the first network device 500 needs to send a STAT with up to X NACK ranges, but it has N>X missing ranges, it randomly chooses X ranges from the N missing ranges and reports about them.
For example, suppose that when a STAT has to be sent, the missing ranges are gapl, gap2, gap3, gap4 and gap5, but the receiver can report only about two missing ranges. It randomly chooses 2 ranges, for example gap3 and gap5 and reports about them. When it has to send the next STAT, the missing ranges are gapl, gap2, gap3, gap4, gap6 and gap7. It randomly chooses 2 ranges, for example gap3 and gap7 and reports about them.
Algorithm 4:
This algorithm is similar to Algorithm 2, except that the first network device 500 assigns different weights to different missing ranges, according to an embodiment of this disclosure. For example, when a STAT message has to be sent, the missing ranges are gapl, gap2, gap3, gap4 and gap5. The first network device 500 can report only about two missing ranges. It is assumed that the first network device 500 wants to report about early missing ranges with higher probability compared to late missing range. It can therefore assign the probabilities as follows: gapl 0.6, gap2 0.2, gap3 0.1, gap4 0.08 and gap5 0.02 (note that the sum of the probabilities is 1). The first range is chosen randomly using the above probabilities, and then the second range is chosen. If the first range is chosen again, the algorithm may make another random selection until a different range is chosen. Alternatively, the probabilities may be adjusted according to the first selection.
Algorithm 5:
According to an embodiment of this disclosure, the Algorithm 5 aims to maximize the amount of information sent in a STAT message. Thus, the first network device 500 may choose the ranges with maximum missing packets.
For example, if packets 1-10, 20-25 and 40-60 are missing, and only one range can be included. The first network device 500 may choose to include the last range 40-60 in the status message 502. Optionally, the information may be sent as a bitmap, and the full information at the first network device 500 is that the next expected packet is number 500, and from this packet the full bitmap is shown as:
Figure imgf000019_0001
For instance, if the status message 502 can contain a bitmap of 6 bits. Then, a possibly way for the first network device 500 is to send information about 500-505 (0 0 1 1 0 1).
Algorithm 6:
It may be desired to use STAT messages to report about the maximum number of missing ranges, rather than focusing on the first missing ranges. However, it is sometimes important to guarantee that the information about the first ranges will be delivered successfully, even if STAT messages are lost. According to a previous embodiment of this disclosure, Algorithm 1 allows the first network device 500 to decide that the first X missing ranges reported by the STAT will be those with the minimum sequence numbers. In addition, if the STAT message can contain Y>X ranges, according to this embodiment, the remaining Y-X ranges can be further chosen in a round robin.
In an example, the missing ranges are gapl, gap2, gap3, gap4 and gap5, X=1 and Y=2. According to this embodiment, the first STAT message will report about gapl and gap2, the second one will report about gapl and gap3, the third one will report about gapl and gap4, the fourth one will report about gapl and gap5, the fifth one will report about gapl and gap2 and so on.
Algorithm 7:
According to an embodiment of this disclosure, this algorithm is similar to Algorithm 6, except that the remaining Y-X ranges are chosen randomly among the missing ranges that are not the first X ranges.
Algorithm 8:
According to an embodiment of this disclosure, this algorithm is similar to Algorithm 6 or 7, except that the remaining Y-X ranges are chosen according to the “maximum ranges” as described in Algorithm 5.
Algorithm 9:
According to an embodiment of this disclosure, in this algorithm for each poll message sent, a few STAT messages could be sent back. In particular, the STAT message may hold a special internal sequence indicating that the few STAT messages are incremental. That is, a previous STAT could indicate whether there are additional packets coming (“pointer” to next packet).
As aforementioned, existing protocols propose sending multiple STAT messages back-to-back, or by reporting the last NACK ranges in addition to the sequence number of the first missing packet. By contrast, embodiments of this disclosure describe ranges that are transmitted in STAT messages in response to poll messages. The same solution can be applied to ACK messages that are sent periodically (without poll messages), or in response to data messages (as in TCP). Notably, the ranges that were described throughout this disclosure can be either positive ranges, specifying packets that were received, or negative ranges, specifying packets that were not received. Further, the ACK ranges can be sent in STAT messages, or they can be a piggybacked onto data packets (as in TCP selective ACK (SACK)).
FIG. 8 shows a second network device 510 according to an embodiment of the disclosure. The second network device 510 may comprise processing circuitry (not shown) configured to perform, conduct or initiate the various operations of the first network device 500 described herein. The processing circuitry may comprise hardware and software. The hardware may comprise analog circuitry or digital circuitry, or both analog and digital circuitry. The digital circuitry may comprise components such as application-specific integrated circuits (ASICs), field-programmable arrays (FPGAs), digital signal processors (DSPs), or multi-purpose processors. The second network device 510 may further comprise memory circuitry, which stores one or more instruction(s) that can be executed by the processor or by the processing circuitry, in particular under control of the software. For instance, the memory circuitry may comprise a non-transitory storage medium storing executable software code which, when executed by the processor or the processing circuitry, causes the various operations of the second network device 510 to be performed. In one embodiment, the processing circuitry comprises 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 which, when executed by the one or more processors, causes the second network device 510 to perform, conduct or initiate the operations or methods described herein.
In particular, the second network device 510 is configured to transmit data packets 501 to a first network device 500. Thus, the second network device 510 may be referred to as “sender” and the first network device 500 as “receiver”, particularly in comparison with the sender and receiver shown in the previous figures. Further, the second network device 510 is configured to receive one or more status messages 502 from the first network device 500. In particular, the one or more status messages 502 indicate a subset of a set of data packets, wherein the set of data packets has not been correctly received at the first network device 500. Accordingly, the second network device 510 is configured to retransmit the subset of data packets to the first network device 500. Possibly, the first network device 500 is the first network device as shown in FIG. 5, and the second network device 510 may be the second network device 510 as shown in FIG. 5. The second network device 510 (sender) may obtain status messages acknowledging a part of the missing packets. Accordingly, the reported missing packets should be retransmitted to the first network device 500 (receiver).
Optionally, the second network device 510 may be further configured to transmit, one or more requests for status messages 502, to the first network device 500. Further, the second network device 510 may be configured to receive, in response to each request, one or more status messages 502 from the first network device 500.
In particular, at least one of the one or more requests may be a poll message or a data message.
Possibly, the second network device 510 may further be configured to receive one or more data packets from the first network device 500, wherein the one or more status messages 502 are piggybacked onto the one or more data packets.
Notably, at least one of the one or more status messages 502 may further comprise an indication, which indicates that information included in the at least one status message 502 is partial information. In particular, the second network device 510 is further configured to receive one or more following status messages 502 including the remaining information from the first network device 500.
It can be seen that, traffic is bidirectional, and thus each endpoint is both a sender and a receiver. Possibly, the first network device 500 shown in FIG. 5 may be the second network device 510 shown in FIG. 8 in a specific implementation.
FIG. 9 shows a method 900 according to an embodiment of the disclosure. In a particular embodiment of the disclosure, the method 900 is performed by a first network device 500 shown in FIG. 5. The method 900 comprises: a step 901 of receiving data packets 501 from a second network device 510; a step 902 of determining a set of data packets that have not been correctly received at the first network device 500; and a step 903 of transmitting one or more status messages 502 to the second network device 510, wherein the one or more status messages 502 indicate a subset of the set of data packets. Possibly, the second network device 510 is the second network device shown in FIG. 5 or FIG. 8.
FIG. 10 shows a method 1000 according to an embodiment of the disclosure. In a particular embodiment of the disclosure, the method 1000 is performed by a second network device 510 shown in FIG. 8. The method 1000 comprises: a step 1001 of transmitting data packets 501 to a first network device 500; and a step 1002 of receiving one or more status messages 502 from the first network device 500, wherein the one or more status messages 502 indicate a subset of a set of data packets, wherein the set of data packets has not been correctly received at the first network device 500; and a step 1003 of retransmitting the subset of data packets 501 to the first network device 500. Possibly, the first network device 500 is the first network device shown in FIG. 5 or FIG. 8.
The present disclosure has been described in conjunction with various embodiments as examples as well as implementations. However, other variations can be understood and effected by those persons skilled in the art and practicing the claimed disclosure, from the studies of the drawings, this disclosure and the independent claims. In the claims as well as in the description the word “comprising” does not exclude other elements or steps and the indefinite article “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 the mutual different dependent claims does not indicate that a combination of these measures cannot be used in an advantageous implementation.
Furthermore, any method according to embodiments of the disclosure may be implemented in a computer program, having code means, which when run by processing means causes the processing means to execute the steps of the method. The computer program is included in a computer readable medium of a computer program product. The computer readable medium may comprise essentially any memory, such as a ROM (Read-Only Memory), a PROM (Programmable Read-Only Memory), an EPROM (Erasable PROM), a Flash memory, an EEPROM (Electrically Erasable PROM), or a hard disk drive.
Moreover, it is realized by the skilled person that embodiments of the first network device 500 and the second network device 510, respectively, comprises the necessary communication capabilities in the form of e.g., functions, means, units, elements, etc., for performing the solution. Examples of other such means, units, elements and functions are: processors, memory, buffers, control logic, encoders, decoders, rate matchers, de-rate matchers, mapping units, multipliers, decision units, selecting units, switches, interleavers, de-interleavers, modulators, demodulators, inputs, outputs, antennas, amplifiers, receiver units, transmitter units, DSPs, trellis-coded modulation (TCM) encoder, TCM decoder, power supply units, power feeders, communication interfaces, communication protocols, etc. which are suitably arranged together for performing the solution. Especially, the processor(s) of the first network device 500 and the second network device 510, respectively, may comprise, e.g., one or more instances of a Central Processing Unit (CPU), a processing unit, a processing circuit, a processor, an Application Specific Integrated Circuit (ASIC), a microprocessor, or other processing logic that may interpret and execute instructions. The expression “processor” may thus represent a processing circuitry comprising a plurality of processing circuits, such as, e.g., any, some or all of the ones mentioned above. The processing circuitry may further perform data processing functions for inputting, outputting, and processing of data comprising data buffering and device control functions, such as call processing control, user interface control, or the like.

Claims

1. A first network device (500), configured to: receive data packets (501) from a second network device (510); determine a set of data packets that have not been correctly received at the first network device (500); and transmit one or more status messages (502) to the second network device (510), wherein the one or more status messages (502) indicate a subset of the set of data packets.
2. The first network device (500) according to claim 1, wherein the set of data packets comprises N ranges, N being a positive integer, each range comprising one or more contiguous data packets, and the one or more status messages (502) indicate a subset of the N ranges.
3. The first network device (500) according to claim 1 or 2, wherein the one or more status messages (502) further indicate a last received data packet.
4. The first network device (500) according to claim 2 or 3, configured to: select the first X ranges from the N ranges as the subset indicated in the one or more status messages (502), X being a positive integer less than N.
5. The first network device (500) according to claim 4, wherein a maximum number of ranges that can be indicated in the one or more status messages (502) is Y, Y being a positive integer, and if Y is greater than X, the first network device (500) is further configured to: further select Y-X ranges from the N ranges using a round robin policy, or further randomly select Y-X ranges from the N ranges; and use the selected first X ranges and Y-X ranges as the subset indicated in the one or more status messages (502).
6. The first network device (500) according to claim 2 or 3, configured to: select X ranges from the N ranges as the subset indicated in the one or more status messages (502), using a round robin policy, X being a positive integer less than N.
7. The first network device (500) according to claim 2 or 3, configured to: randomly select X ranges from the N ranges as the subset indicated in the one or more status messages (502), X being a positive integer less than N.
8. The first network device (500) according to claim 7, wherein each range of the N ranges is associated with a probability parameter, and the first network device (500) is configured to: randomly select X ranges from the N ranges based on the probability parameters.
9. The first network device (500) according to one of the claims 2 to 8, configured to: indicate a missing range in the N ranges by indicating a sequence of a first missing packet of the missing range and a number of missing packets after the first missing packet of the missing range; or indicating a sequence of a first missing packet of the missing range and a sequence of a last missing packet of the missing range.
10. The first network device (500) according to one of the claims 1 to 9, configured to: receive one or more requests for status messages (502) from the second network device (510); and transmit, in response to each request, one or more status messages (502) to the second network device (510).
11. The first network device (500) according to claims 10, wherein at least one of the one or more requests is a poll message or a data message.
12. The first network device (500) according to one of the claims 1 to 11, configured to: periodically transmit the one or more status messages (502) to the second network device (510).
13. The first network device (500) according to one of the claims 1 to 12, configured to: piggyback the one or more status messages (502) onto one or more data packets to the second network device (510).
14. The first network device (500) according to one of the claims 1 to 13, wherein at least one of the one or more status messages (502) further comprises an indication, which indicates that information included in the at least one status message (502) is partial information, and the first network device (500) is further configured to: transmit one or more following status messages (502) including the remaining information to the second network device (510).
15. The first network device (500) according to one of the claims 1 to 14, wherein the one or status messages (502) comprise a bitmap, which indicates the subset of data packets and optionally indicates one or more data packets that were received at the first network device (500).
16. A second network device (510), configured to: transmit data packets (501) to a first network device (500); receive one or more status messages (502) from the first network device (500), wherein the one or more status messages (502) indicate a subset of a set of data packets, wherein the set of data packets has not been correctly received at the first network device (500); and retransmit the subset of data packets (501) to the first network device (500).
17. The second network device (510) according to claim 16, configured to: transmit, one or more requests for status messages (502), to the first network device (500); and receive, in response to each request, one or more status messages (502) from the first network device (500).
18. The second network device (510) according to claims 17, wherein at least one of the one or more requests is a poll message or a data message.
19. The second network device (510) according to claim 16, configured to: receive one or more data packets from the first network device (500), wherein the one or more status messages (502) are piggybacked onto the one or more data packets.
20. The second network device (510) according to one of the claims 16 to 19, wherein at least one of the one or more status messages (502) further comprises an indication, which indicates that information included in the at least one status message (502) is partial information, and the second network device (510) is further configured to: receive one or more following status messages (502) including the remaining information from the first network device (500).
21. A method (900) comprising: receiving (901) data packets (501) from a second network device (510); determining (902) a set of data packets that have not been correctly received at the first network device (500); and transmitting one or more status messages (502) to the second network device (510), wherein the one or more status messages (502) indicate a subset of the set of data packets.
22. A method (1000) comprising: transmitting (1001) data packets (501) to a first network device (500); receiving (1002) one or more status messages (502) from the first network device (500), wherein the one or more status messages (502) indicate a subset of a set of data packets, wherein the set of data packets has not been correctly received at the first network device (500); and retransmitting (1003) the subset of data packets to the first network device (500).
23. A computer program product comprising a program code for carrying out, when implemented on a processor, the method according to claim 21 or 22.
PCT/EP2020/062425 2020-05-05 2020-05-05 Device and method for delivering acknowledgment in network transport protocols WO2021223853A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202080017528.3A CN113906700B (en) 2020-05-05 2020-05-05 Apparatus and method for delivering acknowledgements in a network transport protocol
PCT/EP2020/062425 WO2021223853A1 (en) 2020-05-05 2020-05-05 Device and method for delivering acknowledgment in network transport protocols

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 (1)

Publication Number Publication Date
WO2021223853A1 true WO2021223853A1 (en) 2021-11-11

Family

ID=70554072

Family Applications (1)

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

Country Status (2)

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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000062466A2 (en) * 1999-04-09 2000-10-19 Telefonaktiebolaget Lm Ericsson (Publ) Method for minimizing feedback responses in arq protocols
EP3353930A1 (en) * 2015-09-25 2018-08-01 Nokia Solutions and Networks Oy Enhancement of pdcp status report
WO2018203305A1 (en) * 2017-05-05 2018-11-08 Nokia Technologies Oy Radio link control status reporting
EP3445020A1 (en) * 2016-05-18 2019-02-20 Samsung Electronics Co., Ltd. Method and apparatus for performing efficient layer 2 function in mobile communication system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101084135B1 (en) * 2005-05-04 2011-11-17 엘지전자 주식회사 method of receiving and transmitting for status PDU in wireless communication system
JP2009520389A (en) * 2005-11-30 2009-05-21 ノキア コーポレイション Apparatus, method, and computer program for providing retransmission using a plurality of ARQ mechanisms
CN101132259B (en) * 2006-08-23 2011-11-09 上海贝尔阿尔卡特股份有限公司 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
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
CN107204834B (en) * 2017-05-25 2020-07-07 复旦大学 Control method for high-speed network reliable transmission based on UDT protocol
US10355827B2 (en) * 2017-08-08 2019-07-16 Telefonaktiebolaget Lm Ericsson (Publ) Status reporting in a wireless communication system
CN109905447B (en) * 2017-12-11 2022-05-13 华为技术有限公司 Information transmission method and device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000062466A2 (en) * 1999-04-09 2000-10-19 Telefonaktiebolaget Lm Ericsson (Publ) Method for minimizing feedback responses in arq protocols
EP3353930A1 (en) * 2015-09-25 2018-08-01 Nokia Solutions and Networks Oy Enhancement of pdcp status report
EP3445020A1 (en) * 2016-05-18 2019-02-20 Samsung Electronics Co., Ltd. Method and apparatus for performing efficient layer 2 function in mobile communication system
WO2018203305A1 (en) * 2017-05-05 2018-11-08 Nokia Technologies Oy Radio link control status reporting

Also Published As

Publication number Publication date
CN113906700A (en) 2022-01-07
CN113906700B (en) 2023-09-12

Similar Documents

Publication Publication Date Title
US10430374B2 (en) Selective acknowledgement of RDMA packets
US9178665B2 (en) Communication apparatus, communication system, absent packet detecting method and absent packet detecting program
EP1125389B1 (en) Method and apparatus for discarding packets in a data network having automatic repeat request
US7305486B2 (en) System and method for fast, reliable byte stream transport
US6621796B1 (en) Discard mechanism for selective repeat automatic repeat request
US7596091B2 (en) Unified congestion notification mechanism for reliable and unreliable protocols by augmenting ECN
US7103674B2 (en) Apparatus and method of reducing dataflow distruption when detecting path maximum transmission unit (PMTU)
US20230421657A1 (en) Reliable Transport Protocol and Hardware Architecture for Datacenter Networking
US11463339B2 (en) Device and method for delivering acknowledgment in network transport protocols
US20060262738A1 (en) Administering acknowledgment messages in the transmission control protocol
US20050038899A1 (en) Method, system and article for client application control of network transmission loss tolerance
US10461892B2 (en) Low latency communications
US20020057687A1 (en) High speed interconnection for embedded systems within a computer network
WO2021249651A1 (en) Device and method for delivering acknowledgment in network transport protocols
Maisuria et al. Overview of techniques for improving QoS of TCP over wireless links
WO2021223853A1 (en) Device and method for delivering acknowledgment in network transport protocols
WO2023016646A1 (en) A device and method for remote direct memory access
US20230327812A1 (en) Device and method for selective retransmission of lost packets
WO2023011712A1 (en) A device and method for remote direct memory access
WO2023222235A1 (en) Switch controller, sending controller and methods for use in switch controller and sending controller in reliable multicast communication
Grover Simulation of TCP Layer
Le Boudec The Transport Layer: TCP and UDP

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20724080

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20724080

Country of ref document: EP

Kind code of ref document: A1