WO2021249651A1 - 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
WO2021249651A1
WO2021249651A1 PCT/EP2020/066263 EP2020066263W WO2021249651A1 WO 2021249651 A1 WO2021249651 A1 WO 2021249651A1 EP 2020066263 W EP2020066263 W EP 2020066263W WO 2021249651 A1 WO2021249651 A1 WO 2021249651A1
Authority
WO
WIPO (PCT)
Prior art keywords
network device
sequence number
data packets
data packet
message
Prior art date
Application number
PCT/EP2020/066263
Other languages
French (fr)
Inventor
Reuven Cohen
Ben-Shahar BELKAR
Amit GERON
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 PCT/EP2020/066263 priority Critical patent/WO2021249651A1/en
Priority to CN202080101997.3A priority patent/CN115812284A/en
Publication of WO2021249651A1 publication Critical patent/WO2021249651A1/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
    • H04L1/1628List acknowledgements, i.e. the acknowledgement message consisting of a list of identifiers, e.g. of sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1685Details of the supervisory signal the supervisory signal being transmitted in response to a specific request, e.g. to a polling signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1864ARQ related signaling

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 requesting and delivering acknowledgment information, particularly applied for an out-of-order delivery of packets.
  • 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 re-transmits 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.
  • embodiments of the present disclosure aim to introduce an extension of existing protocols for ensuring data reliability, particularly to the case where data packets are received out-of-order.
  • an objective is to provide an out-of-order tolerance for network transport protocols.
  • embodiments of this disclosure propose dynamic approaches for sending poll messages.
  • embodiments of this disclosure also propose dynamic approaches for sending status messages.
  • a first aspect of the disclosure provides a first network device, configured to: obtain a parameter K, wherein K is a positive integer; receive a sequence of data packets from a second network device; determine that a data packet with sequence number j is missing, when a data packet with sequence number i is received before the data packet with sequence number j, wherein i and j are positive integers, and wherein i > j + K; and transmit an unsolicited status message to the second network device, when it is determined that the data packet with sequence number j is missing.
  • the first network device (receiver), by being configured to decide to transmit an unsolicited status message based on a parameter K, enables an out-of-order tolerance, i.e., a tolerance for receiving out-of-order packets.
  • the parameter K may represent an out-of- order tolerance distance (between packets). That is, data packets may be received out-of- order, for instance, a data packet with sequence number 1 may be received after receiving a data packet with sequence number 2. To determine whether a data packet j is really missing, the first network device will wait until the data packet j + K + 1 is received.
  • the first network device is configured to receive a first poll message from the second network device, wherein the first poll message comprises the parameter K and a positive integer M, wherein M is a maximum sequence number of the sequence of data packets, and wherein the first poll message indicates the first network device to report missing data packets until a data packet with sequence number M - K; and transmit, in response to the first poll message, a first status message to the second network device, wherein the first status message indicates which of the data packets sent before the data packet with sequence number M - K are missing at the first network device.
  • the sender would add to a poll message the maximum sequence number M of the sequence of data packets, to request the receiver to report about the missing data packets until sequence number M.
  • an implementation of this disclosure instead proposes to add a value of M and the parameter K to the poll message, rather than the value of M.
  • the first network device the receiver may report missing data packet until sequence number M - K.
  • the first network device is configured to receive a second poll message from the second network device, wherein the second poll message comprises a positive integer M, wherein M is a maximum sequence number of the sequence of data packets, wherein the second poll message indicates the first network device to report missing data packets until a data packet with sequence number M; and transmit, in response to the second poll message and after receiving another K data packets, a second status message to the second network device, wherein the second status message indicates which of the data packets sent before the data packet with sequence number M are missing at the first network device.
  • M is a maximum sequence number of the sequence of data packets
  • the above-mentioned implementation considering the out-of-order distance K can also be implemented at the receiver side.
  • the poll message may be sent in a conventional manner, that is, the maximum sequence number M of the sequence of data packets may be indicated in the poll message.
  • the first network device does not report about the missing data packets immediately after receiving the poll message.
  • the first network device may report about the missing data packets, until another K data packets have been received. In this way, even if the last data packet of the sequence of data packet is received out-of-order, but within the out-of-order distance K, it can still be reported in the status message.
  • the first or the second poll message comprises a sequence number s, wherein s is a positive integer, and wherein the first network device is further configured to: receive a third poll message from the second network device, and ignore the third poll message, if the third poll message has a sequence number smaller than s.
  • two poll messages can be received out-of-order.
  • the first network device may ignore the later received poll message, for instance, may not respond with a status message.
  • the parameter K is negotiated during a connection setup between the first network device and the second network device.
  • the parameter K may be negotiated during a connection setup.
  • K may be negotiated during the connection setup between the first network device and the second network device.
  • the parameter K may also be negotiated during a connection setup between the first network device/the second network device and another network device such as a network controller.
  • the parameter K is a static parameter, or is a dynamic parameter.
  • the parameter K may be a fixed number.
  • the parameter K may be a dynamically updated number, which may be notified to both of the sender and receiver upon change.
  • the first network device is configured to obtain an updated parameter K, and indicate the updated parameter K to the second network device.
  • the first network device is configured to obtain the parameter K from a network controller.
  • the parameter K may be communicated to both of the sender and receiver by the network controller.
  • a second aspect of the disclosure provides a second network device, being configured to obtain a parameter K, wherein K is a positive integer; transmit a sequence of data packets to a first network device; transmit a first poll message to the first network device, wherein the first poll message comprises the parameter K and a positive integer M, wherein M is a maximum sequence number of the sequence of data packets, and wherein the first poll message indicates the first network device to report missing data packets until a data packet with sequence number M - K; and receive, in response to the first poll message, a first status message from the first network device, wherein the first status message indicates which of the data packets sent before the data packet with sequence number M - K are missing at the first network device.
  • the sender would add to a poll message the maximum sequence number M of the sequence of data packets, to request the receiver to report about the missing data packets until sequence number M.
  • an implementation of this disclosure proposes to add instead a value of M and the parameter K to the poll message, rather than the value of M.
  • Such poll message is used to indicate the receiver, i.e., the first network device, to report missing data packet until sequence number M - K.
  • the second network device is further configured to retransmit, in response the first status message, the missing data packets to the first network device.
  • the decision of whether to retransmit a data packet reported missing by the status message is similar to that of the conventional CPM protocol.
  • the second network device is further configured to receive one or more unsolicited status messages from the first network device, wherein the one or more unsolicited status messages indicate one or more missing data packets at the first network device; and retransmit, in response the one or more unsolicited status messages, the one or more missing data packets to the first network device.
  • the decision of whether to retransmit a data packet reported missing by the unsolicited status message is also similar to that of the conventional CPM protocol.
  • the second network device after transmitting the first poll message, is further configured to transmit a further poll message to the first network device, after at least K - 1 new data packets have been transmitted to the first network device since a retransmission of a missing data packet.
  • the sender may further send a poll message.
  • the poll message may be received by the receiver before receiving the retransmitted packet.
  • the receiver may report again the same retransmitted packet, which may be received soon.
  • the sender i.e., the second network device, may send at least K- 1 new data packets between the last retransmission and the next poll message.
  • the second network device after transmitting the first poll message, is further configured to transmit a further poll message to the first network device, after at least T milliseconds since a retransmission of a missing data packet, wherein T is a positive number.
  • the sender i.e., the second network device
  • it may wait at least T milliseconds instead.
  • T is a difference between a maximum round-trip-time, RTT, and a minimum RTT, wherein the maximum and the minimum RTT are network RTTs or are RTTs between the first network device and the second network device.
  • a third aspect of the disclosure provides a method performed by a first network device, wherein the method comprises obtaining a parameter K, wherein K is a positive integer; receiving a sequence of data packets from a second network device; determining that a data packet with sequence number j is missing, when a data packet with sequence number i is received before the data packet with sequence number j, wherein i and j are positive integers, and wherein i > j + K; and transmitting an unsolicited status message to the second network device, when it is determined that the data packet with sequence number j is missing.
  • Implementation forms of the method of the third aspect may correspond to the implementation forms of the 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 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: obtaining a parameter K, wherein K is a positive integer; transmitting a sequence of data packets to a first network device; transmitting a first poll message to the first network device, wherein the first poll message comprises the parameter K and a positive integer M, wherein M is a maximum sequence number of the sequence of data packets, and wherein the first poll message indicates the first network device to report missing data packets until a data packet with sequence number M - K; and receiving, in response to the first poll message, a first status message from the first network device, wherein the first status message indicates which of the data packets sent before the data packet with sequence number M - K are missing at the first network device.
  • Implementation forms of the method of the fourth aspect may correspond to the implementation forms of the 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 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.
  • FIG. 1 shows an example of go-back-N approach.
  • FIG. 2 shows an example of Selective-Repeat approach.
  • FIG. 3 shows an ambiguity problem of Selective-Repeat approach.
  • FIG. 4 shows an example of Selective-Repeat approach.
  • FIG. 5 shows an example of Selective-Repeat approach.
  • FIG. 6 shows an example of Checkpoint mode approach.
  • FIG. 7 shows an example where in-order delivery is not guaranteed.
  • FIG. 8 shows a first network device according to an embodiment of the disclosure.
  • FIG. 9 shows a second network device according to an embodiment of the disclosure.
  • FIG. 10 shows a method according to an embodiment of the disclosure.
  • FIG. 11 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.
  • a sender sends packets 1-5, and only packet number 3 is lost.
  • the sender will retransmit packets 3-5, while in a Selective-Repeat scenario, the sender will retransmit only packet number 3.
  • FIG. 1 shows a case where in go-back-N, the sender sends 103 packets before it is informed by a negative ACK (NACK) that packet 2 is missing.
  • NACK negative ACK
  • the sender therefore has to retransmit not only packet 2, but also packets 3-103. Only after that, the sender can continue transmitting new packets (from 104 and up).
  • FIG. 2 An example depicted in FIG. 2 shows a similar situation, but with Selective-Repeat.
  • the sender when the sender is informed that packet number 2 is missing, it retransmits only this packet (i.e., packet number 2), and then it can continue transmitting new 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. 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.
  • a Selective-Repeat sender always has the difficulty of deciding whether or not to obey a retransmission request. For example, a situation is as shown in FIG. 3. 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 may inform the sender of this. It could send a NACK, 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 referred to 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.
  • the sender receives this ACK/NACK, it does not know what the status of the retransmitted copy of packet 3 is. 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. 4 shows the situation that the sender sending a NACK only for a new gap. Notably, a gap occurs when the packets are not contiguous.
  • 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 a ACK) within a timeout period, it will be repeated.
  • An example is shown in FIG. 5. It should be noted that, FIG. 5 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.
  • 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.
  • poll messages which are periodically sent by the sender
  • status (STAT) messages which are sent by the receiver as a response to the received POLL messages
  • 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, anew 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, namely, the sender retransmits the data packets reported missing by the USTAT message. 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 point-to-point Layer 2 data link control (DLC) protocol, and it is assumed 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.
  • DLC Layer 2 data link control
  • FIG. 6 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.
  • a PDU is either a data packet sent from the sender to the receiver, or a control message, sent either from the sender to the receiver (e.g., poll messages) or vice versa (STAT or USTAT messages).
  • the CPM protocol was designed as a point-to-point Layer 2 DLC protocol. It works under the assumption that all the PDUs that are not lost are received in the same order as they were sent. For example, as shown in FIG. 6, it can be seen that the sender sends data packets 1-7 and then a poll message. Some of the data packets are received, some are lost and are retransmitted later. However, the data packets that have been received retain their transmission order. Similarly, the poll message is received after all data packets that were sent before it and were not lost.
  • the CPM protocol can be used as part of a Transport (Layer 4) protocol, such as User Datagram Protocol (UDP).
  • the CPM protocol sits over the Network layer (such as IP). In such case, changes in the routing tables may violate in-order delivery of PDUs.
  • FIG. 7 shows an example where in-order delivery of PDUs is not guaranteed. Notably, this is shown in FIG. 7 for the PDUs sent by the sender, but the same problem exists for the PDUs sent by the receiver. It can be seen that, data packet 1 is received after data packets 2-4, although it was transmitted before them. Also, the poll message is sent after data packets 1-7, but it is received before data packet 7.
  • the main reason for PDUs being received out-of-order is that the routing layer may route different PDUs not necessarily over the same route. For example, data packet 1 is routed along one route and data packets 2-4 are routed along a different route. If the second route is faster than the first, e.g., because it is less congested or because it is shorter, then it is possible that data packets 2-4 (or any prefix of them) will be received before data packet 1.
  • CPM is a protocol whose role is to guarantee that the data packets are delivered to the receiver’s application in the same order as they were issued by the sender’s application, and with no loss, duplication or disorder. Thus, it should be able to cope with loss of PDUs and with PDUs being received out-of-order.
  • the way CPM was designed is that it assumes that PDUs may be lost but when they are received, they must be received in order.
  • CPM protocol relies on in-order delivery of PDUs in the following cases:
  • embodiments of this disclosure propose an extension of CPM protocol to the case where PDUs might be received out-of- order, which provides the CPM protocol with out-of-order tolerance, thus allows the CPM protocol to be used in a higher layer (e.g., Layer 4).
  • PDU(i) and PDU(j) there are two PDUs: PDU(i) and PDU(j), where i > j. That is, the sender sends PDU(j) before PDU(i), however, the receiver receives PDU(i) before PDU(j).
  • the out-of-order distance as i - j. For example, if PDU(6) is received before PDU(4), then the out-of-order distance is 2. This means that a PDU has bypassed two previously sent PDUs.
  • PDUs can be received out-of-order, but there is a maximum distance between every two out-of-order received PDUs. The value of the maximum distance is a variable K, where K > 0.
  • FIG. 8 shows a first network device 800 according to an embodiment of the disclosure.
  • the first network device 800 may comprise processing circuitry (not shown) configured to perform, conduct or initiate the various operations of the first network device 800 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 800 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 800 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 800 to perform, conduct or initiate the operations or methods described herein.
  • the first network device 800 is configured to obtain a parameter K 801, wherein K is a positive integer. Further, the first network device 800 is configured to receive a sequence of data packets 802 from a second network device 900.
  • the first network device 800 may be referred to as “receiver” and the second network device 900 as “sender”, particularly in comparison with the sender and receiver shown in the previous figures.
  • the first network device 800 is configured to determine that a data packet with sequence number j is missing, when a data packet with sequence number i is received before the data packet with sequence number j, wherein i and j are positive integers, and wherein i > j + K. Then, the first network device 800 is configured to transmit an unsolicited status message 803 to the second network device 900, when it is determined that the data packet with sequence number j is missing.
  • the CPM protocol may be modified in a manner that: at the receiver, when data packet i is received before data packet j, where i > j, if i - j > K, a USTAT that informs that data packet j should be retransmitted is sent to the receiver; if i - j ⁇ K, a USTAT is not sent.
  • the first network device 800 receives data packet 1, then it receives data packet 4 and then data packet 5.
  • the first network device 800 when the first network device 800 receives data packet 4, it does not send a USTAT for data packet 2, and obviously not for data packet 3. But when the first network device 800 receives data packet 5, it sends a USTAT for data packet 2, because 5 - 2 > 2.
  • the sender adds the Max-MSN to the poll messages, namely, the poll messages indicates the sequence number M of the largest data packet in the sequence of data packets, in order to get a STAT that indicates the status of all data packets up to data packet M.
  • the second network device 900 may indicate the value of M and also the parameter K in the poll messages. Accordingly, the CPM protocol may also be modified in the way of sending poll messages and/or sending STAT messages.
  • the first network device 800 may be further configured to receive a first poll message from the second network device 900.
  • the first poll message comprises the parameter K 801 and a positive integer M, wherein M is a maximum sequence number of the sequence of data packets.
  • the first poll message indicates the first network device 800 to report missing data packets until a data packet with sequence number M - K.
  • the first network device 800 may be configured to transmit a first status message to the second network device 900, wherein the first status message indicates which of the data packets sent before the data packet with sequence number M - K are missing at the first network device 800.
  • the first network device 800 may be further configured to receive a second poll message from the second network device 900, wherein the second poll message comprises a positive integer M, wherein M is a maximum sequence number of the sequence of data packets.
  • the second poll message is used to indicate the first network device 800 to report missing data packets until a data packet with sequence number M.
  • the second poll message is sent in a conventional manner.
  • the first network device 800 does not report about the missing data packets immediately after receiving the poll message.
  • the first network device 800 may be configured to, after receiving another K data packets, transmit a second status message to the second network device 900, wherein the second status message indicates which of the data packets sent before the data packet with sequence number M are missing at the first network device 800.
  • the first network device 800 will report about the missing data packets, until another K data packets have been received. In this way, even if the last data packet of the sequence of data packet is received out-of-order, but within the out-of-order distance K, it can still be reported in the status message.
  • FIG. 9 shows a second network device 900 according to an embodiment of the disclosure.
  • the second network device 900 is configured to obtain a parameter K 801, wherein K is a positive integer.
  • second network device 900 is further configured to transmit a sequence of data packets 802 to a first network device 800.
  • the second network device 900 may be referred to as “sender” and the first network device 800 as “receiver”, particularly in comparison with the sender and receiver shown in the previous figures.
  • the second network device 900 is configured to transmit a first poll message 901 to the first network device 800.
  • the first poll message 901 comprises the parameter K 801 and a positive integer M, wherein M is a maximum sequence number of the sequence of data packets 802.
  • the first poll message 901 is used to indicate the first network device 800 to report missing data packets until a data packet with sequence number M - K.
  • the second network device 900 is configured to receive, in response to the first poll message 901, a first status message 902 from the first network device 800, wherein the first status message 902 indicates which of the data packets sent before the data packet with sequence number M - K are missing at the first network device 800.
  • the first network device 800 is the first network device as shown in FIG. 8.
  • the sender adds the Max-MSN to the poll messages, namely, the poll messages indicates the sequence number M of the largest data packet in the sequence of data packets, in order to get a STAT that indicates the status of all data packets up to data packet M.
  • the second network device 900 may indicate the value of M and also the parameter K in the poll messages.
  • the second network device 900 may send the value of Max-MSN minus K rather than the value of Max-MSN in the poll messages.
  • Such poll message is used to indicate the receiver, i.e., the first network device 800, to report missing data packet until sequence number M - K.
  • the decision of whether to retransmit a data packet reported missing by a STAT or a USTAT is similar to that of the conventional CPM protocol.
  • each USTAT message is always obeyed by the sender, i.e., the second network device 900, unless the sender has already retransmitted the data packet(s) reported as missing. In particular, this may happen when a data packet X is lost, and before sending data packet X + 1, the sender sends a poll message; hence the first report about the missing data packet X is received by a STAT rather than by a USTAT. This is to guarantee that, for each of these retransmitted data packets, if it is received by the receiver, this is the first time that the receiver receives this data packet.
  • the sender i.e., the second network device 900, retransmits this data packet if and only if the PMSN associated with this data packet is smaller than the PMSN associated with the poll/STAT handshake.
  • the second network device 900 may be further configured to retransmit, in response the first status message 902, the missing data packets to the first network device 800.
  • the second network device 900 may be further configured to receive one or more unsolicited status messages 803 from the first network device 800.
  • the one or more unsolicited status messages 803 indicate one or more missing data packets at the first network device 800.
  • the second network device 900 may be further configured to retransmit, in response the one or more unsolicited status messages 803, the one or more missing data packets to the first network device 800.
  • the sender i.e., the second network device 900
  • sends a retransmission packet it may further send a poll message.
  • the poll message may be received by the receiver, i.e., the first network device 800, before receiving the retransmitted packet. In such case, the receiver may report in a STAT that the retransmitted data packet is still missing, then this packet will be unnecessarily retransmitted again by the sender.
  • the sender i.e., the second network device 900
  • the sender i.e., the second network device 900
  • T is a network parameter, which is sufficiently large to guarantee that PDUs sent until a time t cannot be received after PDUs that are sent after t + T.
  • One way to determine T is as the difference between the maximum and the minimum RTT.
  • RTT is the network RTT, or the RTT between each specific sender-receiver pair, namely, between the first network device 800 and the second network device 900.
  • two poll messages may also be received out-of-order.
  • poll messages will be transmitted with a minimum delay of t millisecond between each other. This guarantees that they will be received in- order.
  • the second way is that out-of-order poll messages are ignored by the receiver.
  • the first or the second poll message may comprise a sequence number s, wherein s is a positive integer.
  • the first network device 800 may be further configured to receive a third poll message from the second network device, and ignore the third poll message, if the third poll message has a sequence number smaller than s.
  • the value of K is known to both sides (receiver and sender, namely, the first network device 800 and the second network device 900). Some possible ways for both sides to agree on the value of K may include:
  • It can be a static network parameter.
  • the parameter K 801 may be negotiated during the connection setup between the first network device and the second network device.
  • the parameter K can also be negotiated during a connection setup between the first network device/the second network device and another network device such as a network controller.
  • the parameter K may be a fixed number.
  • the parameter K may be a dynamically updated number, which may be notified to both of the sender and receiver upon change.
  • the first network device 800 may be configured to obtain an updated parameter K, and indicate the updated parameter K to the second network device 900.
  • the second network device 900 may be configured to obtain an updated parameter K, and indicate the updated parameter K to the first network device 800.
  • the first network device 800 includes only information about Max-MSN - K.
  • traffic is bidirectional, and thus each endpoint is both a sender and a receiver.
  • the first network device 800 shown in FIG. 8 may be the second network device 900 shown in FIG. 9 in a specific implementation.
  • FIG. 10 shows a method 1000 according to an embodiment of the disclosure.
  • the method 1000 is performed by a first network device 800 shown in FIG. 8.
  • the method 1000 comprises: a step 1001 of obtaining a parameter K 801, wherein K is a positive integer; a step 1002 of receiving a sequence of data packets 802 from a second network device 900; a step 1003 of determining that a data packet with sequence number j is missing, when a data packet with sequence number i is received before the data packet with sequence number j, wherein i and j are positive integers, and wherein i > j + K; and a step 1004 of transmitting an unsolicited status message 803 to the second network device 900, when it is determined that the data packet with sequence number j is missing.
  • the second network device 900 is the second network device shown in FIG. 8 or FIG. 9.
  • FIG. 11 shows a method 1100 according to an embodiment of the disclosure.
  • the method 1100 is performed by a second network device 900 shown in FIG. 9.
  • the method 1100 comprises: a step 1101 obtaining a parameter K 801, wherein K is a positive integer; a step 1102 of transmitting a sequence of data packets 802 to a first network device 800; a step 1103 of transmitting a first poll message 901 to the first network device 800, wherein the first poll message 901 comprises the parameter K 801 and a positive integer M, wherein M is a maximum sequence number of the sequence of data packets 802, and wherein the first poll message 901 indicates the first network device 800 to report missing data packets until a data packet with sequence number M - K; and a step 1104 of receiving, in response to the first poll message 901 , a first status message 902 from the first network device 800, wherein the first status message 902 indicates which of the data packets sent before the data packet with sequence number M - K are
  • 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 800 and the second network device 900 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 800 and the second network device 900 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.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

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: obtain a parameter K, wherein K is a positive integer; receive a sequence of data packets from a second network device; determine that a data packet with sequence number j is missing, when a data packet with sequence number i is received before the data packet with sequence number j, wherein i and j are positive integers, and i > j + K; and transmit an unsolicited status message to the second network device, when it is determined that the data packet with sequence number j is missing. Further, this disclosure also proposes a second network device being configured to: transmit a sequence of data packets to a first network device; and transmit a first poll message to the first network device.

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 requesting and delivering acknowledgment information, particularly applied for an out-of-order delivery of packets.
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 re-transmits 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 + 1. If packet N + 1 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 + 1 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.
However, the existing solutions are only applicable to point-to-point Layer 2 networks, in which the delay is constant and packets are delivered in order.
SUMMARY
In view of the above-mentioned limitations, embodiments of the present disclosure aim to introduce an extension of existing protocols for ensuring data reliability, particularly to the case where data packets are received out-of-order. In particular, an objective is to provide an out-of-order tolerance for network transport protocols.
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.
This disclosure contributes in two main aspects. In particular, embodiments of this disclosure propose dynamic approaches for sending poll messages. In addition, embodiments of this disclosure also propose dynamic approaches for sending status messages.
A first aspect of the disclosure provides a first network device, configured to: obtain a parameter K, wherein K is a positive integer; receive a sequence of data packets from a second network device; determine that a data packet with sequence number j is missing, when a data packet with sequence number i is received before the data packet with sequence number j, wherein i and j are positive integers, and wherein i > j + K; and transmit an unsolicited status message to the second network device, when it is determined that the data packet with sequence number j is missing.
The first network device (receiver), by being configured to decide to transmit an unsolicited status message based on a parameter K, enables an out-of-order tolerance, i.e., a tolerance for receiving out-of-order packets. In particular, the parameter K may represent an out-of- order tolerance distance (between packets). That is, data packets may be received out-of- order, for instance, a data packet with sequence number 1 may be received after receiving a data packet with sequence number 2. To determine whether a data packet j is really missing, the first network device will wait until the data packet j + K + 1 is received.
In an implementation form of the first aspect, the first network device is configured to receive a first poll message from the second network device, wherein the first poll message comprises the parameter K and a positive integer M, wherein M is a maximum sequence number of the sequence of data packets, and wherein the first poll message indicates the first network device to report missing data packets until a data packet with sequence number M - K; and transmit, in response to the first poll message, a first status message to the second network device, wherein the first status message indicates which of the data packets sent before the data packet with sequence number M - K are missing at the first network device.
Conventionally, the sender would add to a poll message the maximum sequence number M of the sequence of data packets, to request the receiver to report about the missing data packets until sequence number M. To be tolerant to an out-of-order distance K, an implementation of this disclosure instead proposes to add a value of M and the parameter K to the poll message, rather than the value of M. In response to such a poll message, the first network device (the receiver) may report missing data packet until sequence number M - K.
In an implementation form of the first aspect, the first network device is configured to receive a second poll message from the second network device, wherein the second poll message comprises a positive integer M, wherein M is a maximum sequence number of the sequence of data packets, wherein the second poll message indicates the first network device to report missing data packets until a data packet with sequence number M; and transmit, in response to the second poll message and after receiving another K data packets, a second status message to the second network device, wherein the second status message indicates which of the data packets sent before the data packet with sequence number M are missing at the first network device.
Optionally, the above-mentioned implementation considering the out-of-order distance K can also be implemented at the receiver side. In particular, the poll message may be sent in a conventional manner, that is, the maximum sequence number M of the sequence of data packets may be indicated in the poll message. The first network device does not report about the missing data packets immediately after receiving the poll message. The first network device may report about the missing data packets, until another K data packets have been received. In this way, even if the last data packet of the sequence of data packet is received out-of-order, but within the out-of-order distance K, it can still be reported in the status message.
In an implementation form of the first aspect, the first or the second poll message comprises a sequence number s, wherein s is a positive integer, and wherein the first network device is further configured to: receive a third poll message from the second network device, and ignore the third poll message, if the third poll message has a sequence number smaller than s.
Theoretically, two poll messages can be received out-of-order. Optionally, if a poll message with a smaller sequence number is received after a poll message with a larger sequence number, the first network device may ignore the later received poll message, for instance, may not respond with a status message.
In an implementation form of the first aspect, the parameter K is negotiated during a connection setup between the first network device and the second network device.
Optionally, the parameter K may be negotiated during a connection setup. For instance, K may be negotiated during the connection setup between the first network device and the second network device. Alternatively, the parameter K may also be negotiated during a connection setup between the first network device/the second network device and another network device such as a network controller.
In an implementation form of the first aspect, the parameter K is a static parameter, or is a dynamic parameter.
Notably, the parameter K may be a fixed number. Alternatively, the parameter K may be a dynamically updated number, which may be notified to both of the sender and receiver upon change.
In an implementation form of the first aspect, the first network device is configured to obtain an updated parameter K, and indicate the updated parameter K to the second network device.
In an implementation form of the first aspect, the first network device is configured to obtain the parameter K from a network controller. Optionally, the parameter K may be communicated to both of the sender and receiver by the network controller.
A second aspect of the disclosure provides a second network device, being configured to obtain a parameter K, wherein K is a positive integer; transmit a sequence of data packets to a first network device; transmit a first poll message to the first network device, wherein the first poll message comprises the parameter K and a positive integer M, wherein M is a maximum sequence number of the sequence of data packets, and wherein the first poll message indicates the first network device to report missing data packets until a data packet with sequence number M - K; and receive, in response to the first poll message, a first status message from the first network device, wherein the first status message indicates which of the data packets sent before the data packet with sequence number M - K are missing at the first network device.
Conventionally, the sender would add to a poll message the maximum sequence number M of the sequence of data packets, to request the receiver to report about the missing data packets until sequence number M. To be tolerant to an out-of-order distance K, an implementation of this disclosure proposes to add instead a value of M and the parameter K to the poll message, rather than the value of M. Such poll message is used to indicate the receiver, i.e., the first network device, to report missing data packet until sequence number M - K.
In an implementation form of the second aspect, the second network device is further configured to retransmit, in response the first status message, the missing data packets to the first network device.
When receiving a status message, the decision of whether to retransmit a data packet reported missing by the status message is similar to that of the conventional CPM protocol.
In an implementation form of the second aspect, the second network device is further configured to receive one or more unsolicited status messages from the first network device, wherein the one or more unsolicited status messages indicate one or more missing data packets at the first network device; and retransmit, in response the one or more unsolicited status messages, the one or more missing data packets to the first network device. Notably, when receiving an unsolicited status message, the decision of whether to retransmit a data packet reported missing by the unsolicited status message is also similar to that of the conventional CPM protocol.
In an implementation form of the second aspect, after transmitting the first poll message, the second network device is further configured to transmit a further poll message to the first network device, after at least K - 1 new data packets have been transmitted to the first network device since a retransmission of a missing data packet.
Notably, after the sender sends a retransmitted packet, the sender may further send a poll message. However, the poll message may be received by the receiver before receiving the retransmitted packet. In such a case, the receiver may report again the same retransmitted packet, which may be received soon. To avoid unnecessarily retransmitting the same packet, the sender, i.e., the second network device, may send at least K- 1 new data packets between the last retransmission and the next poll message.
In an implementation form of the second aspect, after transmitting the first poll message, the second network device is further configured to transmit a further poll message to the first network device, after at least T milliseconds since a retransmission of a missing data packet, wherein T is a positive number.
In case that the sender, i.e., the second network device, does not have K-l new data packets to send between the last retransmission and the next poll message, it may wait at least T milliseconds instead.
In an implementation form of the second aspect, T is a difference between a maximum round-trip-time, RTT, and a minimum RTT, wherein the maximum and the minimum RTT are network RTTs or are RTTs between the first network device and the second network device.
A third aspect of the disclosure provides a method performed by a first network device, wherein the method comprises obtaining a parameter K, wherein K is a positive integer; receiving a sequence of data packets from a second network device; determining that a data packet with sequence number j is missing, when a data packet with sequence number i is received before the data packet with sequence number j, wherein i and j are positive integers, and wherein i > j + K; and transmitting an unsolicited status message to the second network device, when it is determined that the data packet with sequence number j is missing.
Implementation forms of the method of the third aspect may correspond to the implementation forms of the 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 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: obtaining a parameter K, wherein K is a positive integer; transmitting a sequence of data packets to a first network device; transmitting a first poll message to the first network device, wherein the first poll message comprises the parameter K and a positive integer M, wherein M is a maximum sequence number of the sequence of data packets, and wherein the first poll message indicates the first network device to report missing data packets until a data packet with sequence number M - K; and receiving, in response to the first poll message, a first status message from the first network device, wherein the first status message indicates which of the data packets sent before the data packet with sequence number M - K are missing at the first network device.
Implementation forms of the method of the fourth aspect may correspond to the implementation forms of the 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 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 example of go-back-N approach.
FIG. 2 shows an example of Selective-Repeat approach.
FIG. 3 shows an ambiguity problem of Selective-Repeat approach.
FIG. 4 shows an example of Selective-Repeat approach.
FIG. 5 shows an example of Selective-Repeat approach.
FIG. 6 shows an example of Checkpoint mode approach.
FIG. 7 shows an example where in-order delivery is not guaranteed.
FIG. 8 shows a first network device according to an embodiment of the disclosure.
FIG. 9 shows a second network device according to an embodiment of the disclosure.
FIG. 10 shows a method according to an embodiment of the disclosure.
FIG. 11 shows a method according to an embodiment of the disclosure.
DETAILED DESCRIPTION OF EMBODIMENTS
Illustrative embodiments of methods, devices, 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.
Protocols for ensuring data reliability can be classified into three main categories: Stop- and-Wait, go-back-N and Selective-Repeat.
For example, a sender sends packets 1-5, and only packet number 3 is lost. In a go-back-N scenario, the sender will retransmit packets 3-5, while in a Selective-Repeat scenario, the sender will retransmit only packet number 3.
FIG. 1 shows a case where in go-back-N, the sender sends 103 packets before it is informed by a negative ACK (NACK) that packet 2 is missing. The sender therefore has to retransmit not only packet 2, but also packets 3-103. Only after that, the sender can continue transmitting new packets (from 104 and up).
An example depicted in FIG. 2 shows a similar situation, but with Selective-Repeat. Here, when the sender is informed that packet number 2 is missing, it retransmits only this packet (i.e., packet number 2), and then it can continue transmitting new 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. For example, a situation is as shown in FIG. 3. 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 may inform the sender of this. It could send a NACK, 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 referred to 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 the status of the retransmitted copy of packet 3 is. 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. 4 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 a ACK) within a timeout period, it will be repeated. An example is shown in FIG. 5. It should be noted that, FIG. 5 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. First, it requires many logical timers. The operation of these timers is difficult, especially when implementing the protocol on hardware. Second, the protocol needs to adjust the time-out, which is a very difficult task. This is especially because an RTT may vary very often in practice. 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, anew 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, namely, the sender retransmits the data packets reported missing by the USTAT message. 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 point-to-point Layer 2 data link control (DLC) protocol, and it is assumed 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. 6 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 packet 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 leams that the last transmission has been lost, and it transmits this packet for the third time.
For the following discussion, it is assumed that the sender and the receiver exchange protocol data units (PDUs). A PDU is either a data packet sent from the sender to the receiver, or a control message, sent either from the sender to the receiver (e.g., poll messages) or vice versa (STAT or USTAT messages).
As indicated before, the CPM protocol was designed as a point-to-point Layer 2 DLC protocol. It works under the assumption that all the PDUs that are not lost are received in the same order as they were sent. For example, as shown in FIG. 6, it can be seen that the sender sends data packets 1-7 and then a poll message. Some of the data packets are received, some are lost and are retransmitted later. However, the data packets that have been received retain their transmission order. Similarly, the poll message is received after all data packets that were sent before it and were not lost.
However, in-order delivery of PDUs is not always guaranteed. In particular, the CPM protocol can be used as part of a Transport (Layer 4) protocol, such as User Datagram Protocol (UDP). The CPM protocol sits over the Network layer (such as IP). In such case, changes in the routing tables may violate in-order delivery of PDUs.
FIG. 7 shows an example where in-order delivery of PDUs is not guaranteed. Notably, this is shown in FIG. 7 for the PDUs sent by the sender, but the same problem exists for the PDUs sent by the receiver. It can be seen that, data packet 1 is received after data packets 2-4, although it was transmitted before them. Also, the poll message is sent after data packets 1-7, but it is received before data packet 7.
The main reason for PDUs being received out-of-order is that the routing layer may route different PDUs not necessarily over the same route. For example, data packet 1 is routed along one route and data packets 2-4 are routed along a different route. If the second route is faster than the first, e.g., because it is less congested or because it is shorter, then it is possible that data packets 2-4 (or any prefix of them) will be received before data packet 1.
It should be noted that, CPM is a protocol whose role is to guarantee that the data packets are delivered to the receiver’s application in the same order as they were issued by the sender’s application, and with no loss, duplication or disorder. Thus, it should be able to cope with loss of PDUs and with PDUs being received out-of-order. However, the way CPM was designed is that it assumes that PDUs may be lost but when they are received, they must be received in order.
CPM protocol relies on in-order delivery of PDUs in the following cases:
1. Between received data packets: for example, if data packet 5 is received after data packet 3, a USTAT is sent for data packet 4, because if this packet was not lost, it would have been received before data packet 5;
2. Between received poll messages and data packets: for example, if the sender sends a poll message with Max-MSN = 10, but the last data packet received by the receiver is 9, the receiver reports that data packet 10 has been lost, because if it was not lost, it would have been received before the poll message; and
3. Between received poll messages and retransmitted data packets: for example, if the receiver sends a retransmission of data packet 8 and then a poll message, but the poll message is received before the retransmission of data packet 8, the receiver informs that data packet 8 is still missing, and the sender will have to retransmit this packet unnecessarily.
To address the aforementioned limitations and deficiencies, embodiments of this disclosure propose an extension of CPM protocol to the case where PDUs might be received out-of- order, which provides the CPM protocol with out-of-order tolerance, thus allows the CPM protocol to be used in a higher layer (e.g., Layer 4).
For instance, there are two PDUs: PDU(i) and PDU(j), where i > j. That is, the sender sends PDU(j) before PDU(i), however, the receiver receives PDU(i) before PDU(j). It is defined that the out-of-order distance as i - j. For example, if PDU(6) is received before PDU(4), then the out-of-order distance is 2. This means that a PDU has bypassed two previously sent PDUs. It should be noted that, it is assumed that PDUs can be received out-of-order, but there is a maximum distance between every two out-of-order received PDUs. The value of the maximum distance is a variable K, where K > 0. K = 0 is the special case where PDUs are always received in order. In a case that a receiver receives PDU(2) and then PDU(6), if K = 2, it is possible for PDU(6) to be received before PDU(4) and PDU(5), but not before PDU(3). Therefore, the receiver can determine that PDU(3) has been lost. However, if K = 3, when receiving PDU(6), the receiver cannot decide yet whether PDU(3) or PDU(4) or PDU(5) is lost.
FIG. 8 shows a first network device 800 according to an embodiment of the disclosure. The first network device 800 may comprise processing circuitry (not shown) configured to perform, conduct or initiate the various operations of the first network device 800 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 800 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 800 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 800 to perform, conduct or initiate the operations or methods described herein.
In particular, the first network device 800 is configured to obtain a parameter K 801, wherein K is a positive integer. Further, the first network device 800 is configured to receive a sequence of data packets 802 from a second network device 900. Thus, the first network device 800 may be referred to as “receiver” and the second network device 900 as “sender”, particularly in comparison with the sender and receiver shown in the previous figures. The first network device 800 is configured to determine that a data packet with sequence number j is missing, when a data packet with sequence number i is received before the data packet with sequence number j, wherein i and j are positive integers, and wherein i > j + K. Then, the first network device 800 is configured to transmit an unsolicited status message 803 to the second network device 900, when it is determined that the data packet with sequence number j is missing.
To work with out-of-order distance of at most K, the CPM protocol may be modified in a manner that: at the receiver, when data packet i is received before data packet j, where i > j, if i - j > K, a USTAT that informs that data packet j should be retransmitted is sent to the receiver; if i - j < K, a USTAT is not sent.
For example, it is assumed that K = 2. The first network device 800 receives data packet 1, then it receives data packet 4 and then data packet 5. According to an embodiment of this disclosure, when the first network device 800 receives data packet 4, it does not send a USTAT for data packet 2, and obviously not for data packet 3. But when the first network device 800 receives data packet 5, it sends a USTAT for data packet 2, because 5 - 2 > 2.
In the standard CPM protocol (K = 0), the sender adds the Max-MSN to the poll messages, namely, the poll messages indicates the sequence number M of the largest data packet in the sequence of data packets, in order to get a STAT that indicates the status of all data packets up to data packet M.
To be tolerant to an out-of-order distance of K, the second network device 900, according to embodiments of the disclosure, may indicate the value of M and also the parameter K in the poll messages. Accordingly, the CPM protocol may also be modified in the way of sending poll messages and/or sending STAT messages.
Optionally, the first network device 800, may be further configured to receive a first poll message from the second network device 900. In particular, the first poll message comprises the parameter K 801 and a positive integer M, wherein M is a maximum sequence number of the sequence of data packets. The first poll message indicates the first network device 800 to report missing data packets until a data packet with sequence number M - K. Accordingly, in response to the first poll message, the first network device 800 may be configured to transmit a first status message to the second network device 900, wherein the first status message indicates which of the data packets sent before the data packet with sequence number M - K are missing at the first network device 800. Alternatively, according to an embodiment of this disclosure, the first network device 800 may be further configured to receive a second poll message from the second network device 900, wherein the second poll message comprises a positive integer M, wherein M is a maximum sequence number of the sequence of data packets. The second poll message is used to indicate the first network device 800 to report missing data packets until a data packet with sequence number M. Notably, the second poll message is sent in a conventional manner. However, the first network device 800 does not report about the missing data packets immediately after receiving the poll message. In particular, the first network device 800 may be configured to, after receiving another K data packets, transmit a second status message to the second network device 900, wherein the second status message indicates which of the data packets sent before the data packet with sequence number M are missing at the first network device 800.
That is, the first network device 800 will report about the missing data packets, until another K data packets have been received. In this way, even if the last data packet of the sequence of data packet is received out-of-order, but within the out-of-order distance K, it can still be reported in the status message.
FIG. 9 shows a second network device 900 according to an embodiment of the disclosure. In particular, the second network device 900 is configured to obtain a parameter K 801, wherein K is a positive integer. Then, second network device 900 is further configured to transmit a sequence of data packets 802 to a first network device 800. Thus, the second network device 900 may be referred to as “sender” and the first network device 800 as “receiver”, particularly in comparison with the sender and receiver shown in the previous figures. Further, the second network device 900 is configured to transmit a first poll message 901 to the first network device 800. In particular, the first poll message 901 comprises the parameter K 801 and a positive integer M, wherein M is a maximum sequence number of the sequence of data packets 802. The first poll message 901 is used to indicate the first network device 800 to report missing data packets until a data packet with sequence number M - K. Further, the second network device 900 is configured to receive, in response to the first poll message 901, a first status message 902 from the first network device 800, wherein the first status message 902 indicates which of the data packets sent before the data packet with sequence number M - K are missing at the first network device 800. Possibly, the first network device 800 is the first network device as shown in FIG. 8. As above discussed, in the standard CPM protocol (K = 0), the sender adds the Max-MSN to the poll messages, namely, the poll messages indicates the sequence number M of the largest data packet in the sequence of data packets, in order to get a STAT that indicates the status of all data packets up to data packet M. To be tolerant to an out-of-order distance of K, the second network device 900, according to embodiments of the disclosure, may indicate the value of M and also the parameter K in the poll messages. Optionally, the second network device 900 may send the value of Max-MSN minus K rather than the value of Max-MSN in the poll messages. Such poll message is used to indicate the receiver, i.e., the first network device 800, to report missing data packet until sequence number M - K.
At the sender, i.e., the second network device 900, when receiving a STAT or USTAT, the decision of whether to retransmit a data packet reported missing by a STAT or a USTAT is similar to that of the conventional CPM protocol.
For instance, each USTAT message is always obeyed by the sender, i.e., the second network device 900, unless the sender has already retransmitted the data packet(s) reported as missing. In particular, this may happen when a data packet X is lost, and before sending data packet X + 1, the sender sends a poll message; hence the first report about the missing data packet X is received by a STAT rather than by a USTAT. This is to guarantee that, for each of these retransmitted data packets, if it is received by the receiver, this is the first time that the receiver receives this data packet.
When a STAT message is received, for each data packet reported missing, the sender, i.e., the second network device 900, retransmits this data packet if and only if the PMSN associated with this data packet is smaller than the PMSN associated with the poll/STAT handshake.
Optionally, according to an embodiment of the disclosure, the second network device 900 may be further configured to retransmit, in response the first status message 902, the missing data packets to the first network device 800.
Optionally, according to an embodiment of the disclosure, the second network device 900 may be further configured to receive one or more unsolicited status messages 803 from the first network device 800. The one or more unsolicited status messages 803 indicate one or more missing data packets at the first network device 800. Further, the second network device 900 may be further configured to retransmit, in response the one or more unsolicited status messages 803, the one or more missing data packets to the first network device 800. Notably, after the sender, i.e., the second network device 900, sends a retransmission packet, it may further send a poll message. However, the poll message may be received by the receiver, i.e., the first network device 800, before receiving the retransmitted packet. In such case, the receiver may report in a STAT that the retransmitted data packet is still missing, then this packet will be unnecessarily retransmitted again by the sender.
To avoid unnecessarily retransmitting the same packet, the sender, i.e., the second network device 900, may send at least K - 1 new data packets between the last retransmission and the next poll message. That is, after transmitting the first poll message 901, the second network device 900 may be further configured to transmit a further poll message to the first network device 800, after at least K - 1 new data packets have been transmitted to the first network device 800 since a retransmission of a missing data packet.
If the sender, i.e., the second network device 900, does not have K-l new data packets to send between the last retransmission and the next poll message, it may wait at least T milliseconds between the last retransmission and the next poll message, where T is a positive number. T is a network parameter, which is sufficiently large to guarantee that PDUs sent until a time t cannot be received after PDUs that are sent after t + T. One way to determine T is as the difference between the maximum and the minimum RTT. RTT is the network RTT, or the RTT between each specific sender-receiver pair, namely, between the first network device 800 and the second network device 900.
Theoretically, two poll messages may also be received out-of-order. There are two ways to address this problem. The first is that poll messages will be transmitted with a minimum delay of t millisecond between each other. This guarantees that they will be received in- order. The second way is that out-of-order poll messages are ignored by the receiver. For example, the sender may send a poll message (PMSN = i), and then a further poll message (PMSN = i + 1). In case that the receiver receives the second poll message (PMSN = i + 1) first, when the poll message (PMSN = i) is received by the receiver, it is not responded by a STAT.
Optionally, according to an embodiment of the disclosure, the first or the second poll message may comprise a sequence number s, wherein s is a positive integer. Then, the first network device 800 may be further configured to receive a third poll message from the second network device, and ignore the third poll message, if the third poll message has a sequence number smaller than s. It should be noted that, in some embodiments of this disclosure, the value of K is known to both sides (receiver and sender, namely, the first network device 800 and the second network device 900). Some possible ways for both sides to agree on the value of K may include:
1. It can be negotiated during connection setup.
2. It can be a static network parameter.
3. It can be a dynamically changing number, notified to the end points upon change
4. It can be communicated to both sides by a network controller.
For instance, the parameter K 801 may be negotiated during the connection setup between the first network device and the second network device. Alternatively, the parameter K can also be negotiated during a connection setup between the first network device/the second network device and another network device such as a network controller. Notably, the parameter K may be a fixed number. Alternatively, the parameter K may be a dynamically updated number, which may be notified to both of the sender and receiver upon change. Optionally, the first network device 800, may be configured to obtain an updated parameter K, and indicate the updated parameter K to the second network device 900. Optionally, the second network device 900, may be configured to obtain an updated parameter K, and indicate the updated parameter K to the first network device 800.
In an alternative embodiment, it is possible that only the receiver, i.e., the first network device 800, is aware of the parameter K, namely, the number of out-of-order packets it is willing to tolerate. In such case, the sender, i.e., the second network device 900, does not subtract K from the value of Max-MSN. Instead, the first network device 800, upon receiving a poll message, includes only information about Max-MSN - K.
Notably, traffic is bidirectional, and thus each endpoint is both a sender and a receiver. Possibly, the first network device 800 shown in FIG. 8 may be the second network device 900 shown in FIG. 9 in a specific implementation.
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 first network device 800 shown in FIG. 8. The method 1000 comprises: a step 1001 of obtaining a parameter K 801, wherein K is a positive integer; a step 1002 of receiving a sequence of data packets 802 from a second network device 900; a step 1003 of determining that a data packet with sequence number j is missing, when a data packet with sequence number i is received before the data packet with sequence number j, wherein i and j are positive integers, and wherein i > j + K; and a step 1004 of transmitting an unsolicited status message 803 to the second network device 900, when it is determined that the data packet with sequence number j is missing. Possibly, the second network device 900 is the second network device shown in FIG. 8 or FIG. 9.
FIG. 11 shows a method 1100 according to an embodiment of the disclosure. In a particular embodiment of the disclosure, the method 1100 is performed by a second network device 900 shown in FIG. 9. The method 1100 comprises: a step 1101 obtaining a parameter K 801, wherein K is a positive integer; a step 1102 of transmitting a sequence of data packets 802 to a first network device 800; a step 1103 of transmitting a first poll message 901 to the first network device 800, wherein the first poll message 901 comprises the parameter K 801 and a positive integer M, wherein M is a maximum sequence number of the sequence of data packets 802, and wherein the first poll message 901 indicates the first network device 800 to report missing data packets until a data packet with sequence number M - K; and a step 1104 of receiving, in response to the first poll message 901 , a first status message 902 from the first network device 800, wherein the first status message 902 indicates which of the data packets sent before the data packet with sequence number M - K are missing at the first network device 800. Possibly, the first network device 800 is the first network device shown in FIG. 8 or FIG. 9.
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 800 and the second network device 900, 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 800 and the second network device 900, 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

Claims
1. A first network device (800), configured to: obtain a parameter K (801), wherein K is a positive integer; receive a sequence of data packets (802) from a second network device (900); determine that a data packet with sequence number j is missing, when a data packet with sequence number i is received before the data packet with sequence number j, wherein i and j are positive integers, and wherein i > j + K; and transmit an unsolicited status message (803) to the second network device (900), when it is determined that the data packet with sequence number j is missing.
2. The first network device (800) according to claim 1, further configured to: receive a first poll message from the second network device (900), wherein the first poll message comprises the parameter K (801) and a positive integer M, wherein M is a maximum sequence number of the sequence of data packets, and wherein the first poll message indicates the first network device to report missing data packets until a data packet with sequence number M - K; and transmit, in response to the first poll message, a first status message to the second network device (900), wherein the first status message indicates which of the data packets sent before the data packet with sequence number M - K are missing at the first network device (800).
3. The first network device (800) according to claim 1, further configured to: receive a second poll message from the second network device (900), wherein the second poll message comprises a positive integer M, wherein M is a maximum sequence number of the sequence of data packets, wherein the second poll message indicates the first network device (800) to report missing data packets until a data packet with sequence number M; and transmit, in response to the second poll message and after receiving another K data packets, a second status message to the second network device (900), wherein the second status message indicates which of the data packets sent before the data packet with sequence number M are missing at the first network device (800).
4. The first network device (800) according to claim 2 or 3, wherein the first or the second poll message comprises a sequence number s, wherein s is a positive integer, and wherein the first network device (800) is further configured to: receive a third poll message from the second network device (900); and ignore the third poll message, if the third poll message has a sequence number smaller than s.
5. The first network device (800) according to one of the claims 1 to 4, wherein K is negotiated during a connection setup between the first network device (800) and the second network device (800).
6. The first network device (800) according to one of the claims 1 to 5, wherein K is a static parameter, or is a dynamic parameter.
7. The first network device (800) according to one of the claims 1 to 6, further configured to: obtain an updated parameter K, and indicate the updated parameter K to the second network device (900).
8. The first network device (800) according to one of the claims 1 to 7, further configured to: obtain the parameter K (801) from a network controller.
9. A second network device (900), configured to: obtain a parameter K (801), wherein K is a positive integer; transmit a sequence of data packets (802) to a first network device (800); transmit a first poll message (901) to the first network device (800), wherein the first poll message (901) comprises the parameter K (801) and a positive integer M, wherein M is a maximum sequence number of the sequence of data packets (802), and wherein the first poll message (901) indicates the first network device (800) to report missing data packets until a data packet with sequence number M - K; and receive, in response to the first poll message (901), a first status message (902) from the first network device (800), wherein the first status message (902) indicates which of the data packets sent before the data packet with sequence number M - K are missing at the first network device (800).
10. The second network device (900) according to claim 9, further configured to: retransmit, in response the first status message (902), the missing data packets to the first network device (800).
11. The second network device (900) according to claim 9 or 10, further configured to: receive one or more unsolicited status messages (803) from the first network device (800), wherein the one or more unsolicited status messages (803) indicate one or more missing data packets at the first network device (800); and retransmit, in response the one or more unsolicited status messages (803), the one or more missing data packets to the first network device (800).
12. The second network device (900) according to claim 10 or 11, wherein after transmitting the first poll message (901), the second network device (900) is further configured to: transmit a further poll message to the first network device (800), after at least K - 1 new data packets have been transmitted to the first network device (800) since a retransmission of a missing data packet.
13. The second network device (900) according to claim 10 or 11, wherein after transmitting the first poll message (901), the second network device (900) is further configured to: transmit a further poll message to the first network device (800), after at least T milliseconds since a retransmission of a missing data packet, wherein T is a positive number.
14. The second network device (900) according to claim 13, wherein T is a difference between a maximum round-trip-time, RTT and a minimum RTT, wherein the maximum and the minimum RTT are network RTTs or are RTTs between the first network device (800) and the second network device (900).
15. A method (1000) comprising: obtaining (1001) a parameter K (801), wherein K is a positive integer; receiving (1002) a sequence of data packets (802) from a second network device
(900); determining (1003) that a data packet with sequence number j is missing, when a data packet with sequence number i is received before the data packet with sequence number j, wherein i and j are positive integers, and wherein i > j + K; and transmitting (1004) an unsolicited status message (803) to the second network device (900), when it is determined that the data packet with sequence number j is missing.
16. A method (1100) comprising: obtaining (1101) a parameter K (801), wherein K is a positive integer; transmitting (1102) a sequence of data packets (802) to a first network device
(800); transmitting (1103) a first poll message (901) to the first network device (800), wherein the first poll message (901) comprises the parameter K (801) and a positive integer M, wherein M is a maximum sequence number of the sequence of data packets (802), and wherein the first poll message (901) indicates the first network device (800) to report missing data packets until a data packet with sequence number M - K; and receiving (1104), in response to the first poll message (901), a first status message (902) from the first network device (800), wherein the first status message (902) indicates which of the data packets sent before the data packet with sequence number M - K are missing at the first network device (800).
17. A computer program product comprising a program code for carrying out, when implemented on a processor, the method according to claim 15 or 16.
PCT/EP2020/066263 2020-06-12 2020-06-12 Device and method for delivering acknowledgment in network transport protocols WO2021249651A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/EP2020/066263 WO2021249651A1 (en) 2020-06-12 2020-06-12 Device and method for delivering acknowledgment in network transport protocols
CN202080101997.3A CN115812284A (en) 2020-06-12 2020-06-12 Apparatus and method for transmitting acknowledgements in a network transport protocol

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2020/066263 WO2021249651A1 (en) 2020-06-12 2020-06-12 Device and method for delivering acknowledgment in network transport protocols

Publications (1)

Publication Number Publication Date
WO2021249651A1 true WO2021249651A1 (en) 2021-12-16

Family

ID=71094343

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2020/066263 WO2021249651A1 (en) 2020-06-12 2020-06-12 Device and method for delivering acknowledgment in network transport protocols

Country Status (2)

Country Link
CN (1) CN115812284A (en)
WO (1) WO2021249651A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4231562A1 (en) * 2022-02-22 2023-08-23 Schneider Electric USA, Inc. Systems and methods for detecting lost packets in an event-based communication system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016024148A1 (en) * 2014-08-15 2016-02-18 Telefonaktiebolaget L M Ericsson (Publ) Rohc optimizations for burst losses
WO2016105568A1 (en) * 2014-12-23 2016-06-30 Interdigital Patent Holdings, Inc. Methods for wifi integration in cellular systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016024148A1 (en) * 2014-08-15 2016-02-18 Telefonaktiebolaget L M Ericsson (Publ) Rohc optimizations for burst losses
WO2016105568A1 (en) * 2014-12-23 2016-06-30 Interdigital Patent Holdings, Inc. Methods for wifi integration in cellular systems

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4231562A1 (en) * 2022-02-22 2023-08-23 Schneider Electric USA, Inc. Systems and methods for detecting lost packets in an event-based communication system

Also Published As

Publication number Publication date
CN115812284A (en) 2023-03-17

Similar Documents

Publication Publication Date Title
US10430374B2 (en) Selective acknowledgement of RDMA packets
US8190960B1 (en) Guaranteed inter-process communication
US8233483B2 (en) Communication apparatus, communication system, absent packet detecting method and absent packet detecting program
US9692560B1 (en) Methods and systems for reliable network communication
CN114520711B (en) Selective retransmission of data packets
US20110078313A1 (en) Method and system for managing a connection in a connection oriented in-order delivery environment
US20220337675A1 (en) Reliable Transport Protocol And Hardware Architecture For Datacenter Networking
US11463339B2 (en) Device and method for delivering acknowledgment in network transport protocols
US20240187482A1 (en) Device and method for remote direct memory access
US20060262738A1 (en) Administering acknowledgment messages in the transmission control protocol
US8578040B2 (en) Method, system and article for client application control of network transmission loss tolerance
WO2021249651A1 (en) Device and method for delivering acknowledgment in network transport protocols
WO2018155406A1 (en) Communication system, communication device, method, and program
EP4002734A1 (en) Selective retransmission of packets
US20230327812A1 (en) Device and method for selective retransmission of lost packets
WO2021223853A1 (en) Device and method for delivering acknowledgment in network transport protocols
US11134020B1 (en) Flow control of two TCP streams between three network nodes
WO2023011712A1 (en) A device and method for remote direct memory access
Liqing et al. TCP optimization implementation of a small embedded system
König et al. 5 Protocol functions
Dreibholz et al. Network Working Group P. Amer Internet-Draft University of Delaware Intended status: Experimental M. Becke Expires: November 30, 2015 University of Duisburg-Essen
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: 20732849

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: 20732849

Country of ref document: EP

Kind code of ref document: A1