WO2023241770A1 - Efficient rerouting of a selective-repeat connection - Google Patents

Efficient rerouting of a selective-repeat connection Download PDF

Info

Publication number
WO2023241770A1
WO2023241770A1 PCT/EP2022/065934 EP2022065934W WO2023241770A1 WO 2023241770 A1 WO2023241770 A1 WO 2023241770A1 EP 2022065934 W EP2022065934 W EP 2022065934W WO 2023241770 A1 WO2023241770 A1 WO 2023241770A1
Authority
WO
WIPO (PCT)
Prior art keywords
data packets
information
data packet
connection
path
Prior art date
Application number
PCT/EP2022/065934
Other languages
French (fr)
Inventor
Reuven Cohen
Ben-Shahar BELKAR
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/EP2022/065934 priority Critical patent/WO2023241770A1/en
Publication of WO2023241770A1 publication Critical patent/WO2023241770A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers

Definitions

  • the present disclosure relates to rerouting of a selective-repeat connection.
  • the disclosure provides a sender device, which is configured to send data packets on a connection to a receiver device, and which is able to change the connection from an old path between the sender device and the received device to a new path.
  • the sender device can also determine, whether to retransmit missing packets.
  • transmitted data packets can be lost due to congestion of paths.
  • a protocol for reliable transmission of data packets such as remote direct memory access (RDMA)
  • RDMA remote direct memory access
  • the protocol uses the concept of selective-repeat.
  • Selective-repeat allows a sender device of data packets to retransmit only lost data packets.
  • this requires the receiver device of the data packets to allocate, for example, a bitmap for marking data packets that are received out of order, and to report to the sender device such data packets, in order to identify missing data packets.
  • the sender device may, in this case, learn about a better path between the sender device and the receiver device, for instance, by exploring alternative paths using in-band telemetry, or by receiving information from a network controller. Then, the sender device may change the active connection to a new path for transmitting the data packets, in order to improve the connection performance.
  • the sender device is S and the receiver device is R.
  • the sender device starts sending data packets over a first path 101. After some time, it decides that the first path 101 does not have enough bandwidth, and that a second path 102 is better.
  • the sender device can then decide to stop sending data packets over the first path 101 (old path) and to send them over the second path 102 (new path) instead.
  • new path By sending new data packets on a different path, it is possible that data packets are received by the receiver device not in the same order in which they were transmitted. For example, if a first data packet is transmitted over the old path 101, and then a second data packet is transmitted over the new path 102, it is possible that the second data packet is received before the first data packet.
  • the sender device retransmits the first data packet. This means that each time the sender device switches from one path to another, it is possible that it will have to unnecessarily retransmit data packets that have been received correctly, but out of order.
  • a goal is to provide a protocol that guarantees that the sender device does not unnecessarily retransmit data packets that have been correctly received, but lost their relative order due to an intentional change of the connection between the sender device and the receiver device from one path to another.
  • another goal is to enable the sender device to distinguish between, on the one hand, a data packet that is only temporarily missing, due to the change of the connection and, on the other hand, a data packet that was actually lost.
  • the sender device should not retransmit the data packet, and in the second case it should retransmit the data packet.
  • a first aspect of this disclosure provides a sender device for sending data packets on a connection to a receiver device, the sender device being configured to: maintain first information, wherein the first information indicates whether the connection was changed from an old path to a new path between the sender device and the receiver device; maintain second information, wherein the second information indicates a sequence number of a last data packet transmitted on the old path between the sender device and the receiver device; receive a feedback message from the receiver device, wherein the feedback message indicates one or more data packets that have been received by the receiver device and/or one or more missing data packets that are missing at the receiver device; and if one or more missing data packets are indicated by the feedback message, determine whether to consider the one or more missing data packets lost and whether to retransmit the one or more missing data packets based on the first information, the second information, and one or more rules of an underlying transport protocol used for sending the data packets.
  • the sender device of the first aspect has at least two further advantages. First, it is fully transparent to the receiver device. That is, the receiver device does not need to know that the connection is changed (also referred to as rerouted) from the old path to the new path. Second, the sender device may use any underlying transport protocol for sending the data packets, which protocol uses selective-repeat. According to such a protocol, the receiver device may remember, which data packet was received and which packet is missing, and may report this information, for instance, periodically, to the sender device.
  • a missing data packet may be a data packet that was not received at the receiver device, although a data packet with a higher sequence number has been received.
  • a missing data packet may be considered lost by the sender device, and in this case it may be retransmitted by the sender device.
  • the sender device is configured to, if the first information indicates that the connection was not changed to a new path: retransmit each of the one or missing data packets, if retransmission is required by the one or more rules of the underlying transport protocol used for sending the data packets.
  • the sender device is configured to, if the first information indicates that the connection was changed to a new path, and if the feedback message indicates that the last data packet transmitted on the old path was received by the receiver device: consider each of the one or missing data packets lost, and retransmit each of the one or missing data packets if retransmission is required by the one or more rules of the underlying transport protocol used for sending the data packets; and set the first information to indicate that the connection was not changed to a new path.
  • the sender device is configured to, if the first information indicates that the connection was changed to a new path, and if the feedback message indicates that no data packet with a sequence number equal to or larger than the sequence number of the last data packet transmitted on the old path was received by the receiver device: consider each of the one or missing data packets lost, retransmit each of the one or missing data packets, if retransmission is required by the one or more rules of the underlying transport protocol used for sending the data packets; and leave the first information unchanged to indicate that the connection was changed to a new path.
  • the sender device is configured to, if the first information indicates that the connection was changed to a new path, and if the feedback message indicates that the last data packet transmitted on the old path is missing at the receiver device and that at least one data packet with a sequence number larger than the last data packet transmitted on the old path was received by the receiver device: consider each of the one or more missing data packets that has a sequence number smaller than the sequence number of the last data packet transmitted on the old path lost, if there is a received data packet that has a sequence number larger than that of the missing data packet but smaller than that of the last data packet transmitted on the old path, and retransmit each of the one or more missing data packets considered lost, if this is required by the one or more rules of the underlying transport protocol used for sending the data packets; not consider lost and not retransmit each of the one or more missing data packets that has a sequence number smaller than the sequence number of the last data packet transmitted on the old path, if there is no received data packet that has a
  • the sender device is further configured to retransmit each missing data packet that has a sequence number larger than the sequence number of the last data packet transmitted on the old path if retransmission is required by the one or more rules of the underlying transport protocol used for sending the data packets.
  • the second information is a variable that comprises the sequence number of the last data packet transmitted on the old path.
  • the feedback message is an acknowledgement (ACK) message, or a negative ACK (NACK) message, or a selective ACK (SACK) message.
  • the feedback message comprises one or more sequence numbers, and an indication for each sequence number, whether a data packet with this sequence number has been received by the receiver device or is missing at the receiver device.
  • the method comprises, if the first information indicates that the connection was not changed to a new path: retransmitting each of the one or missing data packets, if retransmission is required by the one or more rules of the underlying transport protocol used for sending the data packets.
  • the method comprises, if the first information indicates that the connection was changed to a new path, and if the feedback message indicates that no data packet with a sequence number equal to or larger than the sequence number of the last data packet transmitted on the old path was received by the receiver device: consider each of the one or missing data packets lost, and retransmit these one or more data packets if retransmission is required by the one or more rules of the underlying transport protocol used for sending the data packets; and leaving the first information unchanged to indicate that the connection was changed to a new path.
  • the method comprises considering lost each missing data packet that has a sequence number larger than the sequence number of the last data packet transmitted on the old path, and retransmitting this data packet if retransmission is required by the one or more rules of the underlying transport protocol used for sending the data packets.
  • the method comprises, if the first information indicates that the connection was changed to a new path, and if the one or more rules of the underlying transport protocol used for sending the data packets indicates that there is a retransmission time-out of a timer: retransmitting all the missing data packets; and set the first information to indicate that the connection was not changed to a new path.
  • each retransmitted data packet is retransmitted on the new path, if the connection was changed to the new path.
  • the second information is a variable that comprises the sequence number of the last data packet transmitted on the old path.
  • the feedback message is an ACK message, or a NACK message, or a SACK message.
  • the method of the second aspect and its implementation forms achieve the same advantages as the sender device of the first aspect and its respective implementation forms.
  • the sender device 200 is further configured to receive a feedback message 211 from the receiver device 210.
  • the feedback message 211 may, for example, be an ACK message, or a NACK message, or a SACK message.
  • the feedback message 211 indicates at least one of one or more data packets that have been received by the receiver device 210, and one or more data packets that are missing at the receiver device 210.
  • the feedback message 211 may comprise a bitmap for indicating the received and/or missing data packets, for example, for indicating their sequence numbers.
  • the sender device 200 is configured to determine, whether to consider the one or more missing data packets lost and whether to retransmit the one or more missing data packets or not, based on the first information 201, the second information 202, and based on one or more rules of an underlying transport protocol used for sending the data packets. For instance, the sender device 200 may be configured to retransmit the one or more missing data packets, if this is required for lost data packets by the underlying transport protocol, and if the first information indicates no connection change. In case that the first information indicates a connection change, the sender device 200 may further determine whether to retransmit the one or more missing data packets based on the sequence number indicated by the second information 202.
  • the sender device 200 transmits a packet with the sequence number 10 on the old path 202a, and then retransmits a packet with the sequence number 6 on the old path 202b, and then the sender device 200 starts using the new path 202b, the variable Old Path last PSN is equal to 10.
  • the receiver device 210 may send this bitmap, or similar information, in a SACK message as the feedback message 211.
  • the receiver device 200 may send the feedback message 211 periodically (i.e., multiple feedback messages 211 are sent in fact).
  • the feedback message 211 may be sent after each data packet is received.
  • the sender device 200 may first check the rerouting flag. If this rerouting flag is set to 0, the feedback message 201 may be processed in a normal way. That is, any missing packet may be considered lost and retransmitted according to the one or more rules of the underlying selective-repeat protocol (notably, different selective-repeat protocols may have different strategies, regarding to when to retransmit a data packet which is considered lost).
  • the received feedback message 211 reports that the data packet, whose sequence number is equal to the variable Old Path last PSN, has been received by the receiver device 210.
  • the feedback message 211 is processed in a normal way, and the rerouting flag is cleared (is set to 0). This is, because any data packet sent over the old path 202a should have been received, and if it is missing, this is not due to the change of the connection, but due to the data packet being lost in the network.
  • the received feedback message 211 does not report that any data packet with a sequence number equal to or larger than the variable Old Path last PSN has been received.
  • the sender device 200 processes the received feedback message 211 in a normal way, but does not clear the rerouting flag (leaves it at 1). This is, because the feedback message 211 does not report about any data packet that was transmitted over the new path 202b, and therefore, there is no confusion between data packets received over the old path 202a and data packets received over the new path 202b.
  • the received feedback message 211 reports that the data packet, whose sequence number is equal to the variable Old Path last PSN, is still missing, but there is a data packet whose sequence number is larger than the variable Old Path last PSN that has been received.
  • a feedback message 211 (e.g., a SACK message) received by the sender device 200 may indicate:
  • the convention is that all the sequence numbers smaller that the first reported one (i.e. 5 in the above table) have been correctly received, and all the sequence numbers larger than the last reported one (i.e. 9 in the above table) have not been received.
  • the above rule (2) is applicable. This implies that the data packet with the sequence number 5 and the data packet with the sequence number 8 are considered lost, and that the status of all the data packets whose sequence number is larger than 9 is still unknown even if they are reported as missing. Moreover, the rerouting flag remains 1.
  • a second example is that the feedback message 211 received by the sender device 200 indicates:
  • a third example is that the received feedback message 211 indicates:
  • the above rule (3) is applicable, because the data packet with the sequence number 10 is reported as missing, but a data packet with the larger sequence number 12 is reported as accepted. This implies that the missing data packet with the sequence number 11 is considered lost, and that the status of the data packets with the sequence numbers 8, 9 and 10 is still unknown although they are reported as missing.
  • the rerouting flag remains 1.
  • FIG. 3 shows a method 300 for sending data packets on a connection from a sender device 200 to a receiver device 210.
  • the method 300 may be performed by the sender device 200.
  • the method 300 comprises a step 301 of receiving a feedback message 211 from the receiver device 210.
  • the feedback message 211 indicates one or more data packets that have been received by the receiver device 210 and/or indicates one or more data packets that are missing at the receiver device. If one or more missing data packets are indicated by the feedback message 211, the method 300 comprises a step 302 of determining, whether to consider the one or more missing data packets lost based on first information 201, and whether to retransmit the one or more missing data packets based on first information 201, second information 202, and one or more rules of an underlying transport protocol for sending the data packets.
  • the first information 201 indicates whether the connection was changed from an old path 202a to a new path 202b between the sender device 200 and the receiver device 210.
  • the second information 201 indicates a sequence number of a last data packet transmitted, for the first time (that is, not retransmitted), on the old path 202a between the sender device 200 and the receiver device 210.

Abstract

This disclosure relates to rerouting of a selective repeat connection. The disclosure provides a sender device, which sends data packets on a connection to a receiver device, and which can change the connection from an old path to a new path. The sender device maintains first information, which indicates whether the connection was changed from an old path to a new path, and maintains second information, which indicates a sequence number of a last data packet transmitted, for the first time, on the old path. The sender device receives a feedback message from the receiver device, which indicates one or more data packets that have been received and/or that are missing at the receiver device. If missing data packets are indicated, the sender device determines whether to retransmit the missing data packets based on the first information, the second information, and a rule of an underlying transport protocol.

Description

EFFICIENT REROUTING OF A SELECTIVE-REPEAT CONNECTION
TECHNICAL FIELD
The present disclosure relates to rerouting of a selective-repeat connection. The disclosure provides a sender device, which is configured to send data packets on a connection to a receiver device, and which is able to change the connection from an old path between the sender device and the received device to a new path. The sender device can also determine, whether to retransmit missing packets.
BACKGROUND
In modem datacenters, for example, transmitted data packets can be lost due to congestion of paths. Further, a protocol for reliable transmission of data packets, such as remote direct memory access (RDMA), is likely to be implemented in such datacenters, wherein the protocol uses the concept of selective-repeat. Selective-repeat allows a sender device of data packets to retransmit only lost data packets. However, this requires the receiver device of the data packets to allocate, for example, a bitmap for marking data packets that are received out of order, and to report to the sender device such data packets, in order to identify missing data packets.
When a path between the sender device and the receiver device over which the connection is currently routed is congested, the throughput can become very low. The sender device may, in this case, learn about a better path between the sender device and the receiver device, for instance, by exploring alternative paths using in-band telemetry, or by receiving information from a network controller. Then, the sender device may change the active connection to a new path for transmitting the data packets, in order to improve the connection performance.
This disclosure is related such a change of the connection from an old path to a new path for transmitting data packets from a sender device to a receiver device, without deactivating the connection. The disclosure is also related to a determination of which data packets to retransmit, if such a path change occurs. SUMMARY
The disclosure and its solutions are based further on the consideration of the benefits of using a protocol for reliable transmission between the sender device and the receiver device, and also the following considerations.
For example, in FIG. 1, the sender device is S and the receiver device is R. The sender device starts sending data packets over a first path 101. After some time, it decides that the first path 101 does not have enough bandwidth, and that a second path 102 is better. The sender device can then decide to stop sending data packets over the first path 101 (old path) and to send them over the second path 102 (new path) instead. However, by sending new data packets on a different path, it is possible that data packets are received by the receiver device not in the same order in which they were transmitted. For example, if a first data packet is transmitted over the old path 101, and then a second data packet is transmitted over the new path 102, it is possible that the second data packet is received before the first data packet. If the receiver device reports that the second data packet has been accepted, and that the first data packet is missing, the sender device retransmits the first data packet. This means that each time the sender device switches from one path to another, it is possible that it will have to unnecessarily retransmit data packets that have been received correctly, but out of order.
This disclosure aims to prevent the above situation. A goal is to provide a protocol that guarantees that the sender device does not unnecessarily retransmit data packets that have been correctly received, but lost their relative order due to an intentional change of the connection between the sender device and the receiver device from one path to another. To this end, another goal is to enable the sender device to distinguish between, on the one hand, a data packet that is only temporarily missing, due to the change of the connection and, on the other hand, a data packet that was actually lost. In the first case, the sender device should not retransmit the data packet, and in the second case it should retransmit the data packet.
The above goals are achieved by the solution of this disclosure as described in the independent claims. Advantageous implementations are described in the dependent claims.
A first aspect of this disclosure provides a sender device for sending data packets on a connection to a receiver device, the sender device being configured to: maintain first information, wherein the first information indicates whether the connection was changed from an old path to a new path between the sender device and the receiver device; maintain second information, wherein the second information indicates a sequence number of a last data packet transmitted on the old path between the sender device and the receiver device; receive a feedback message from the receiver device, wherein the feedback message indicates one or more data packets that have been received by the receiver device and/or one or more missing data packets that are missing at the receiver device; and if one or more missing data packets are indicated by the feedback message, determine whether to consider the one or more missing data packets lost and whether to retransmit the one or more missing data packets based on the first information, the second information, and one or more rules of an underlying transport protocol used for sending the data packets.
The sender device of the first aspect does not have to unnecessarily retransmit data packets that have been correctly received, but that lost their relative order due to the changing of the connection from the old path to the new path between the sender device and the receiver device. By maintaining the first information and the second information, the sender device can distinguish between, on the one hand, a data packet that is only temporarily missing, due to the change of the connection and, on the other hand, a data packet that was actually lost.
The sender device of the first aspect has at least two further advantages. First, it is fully transparent to the receiver device. That is, the receiver device does not need to know that the connection is changed (also referred to as rerouted) from the old path to the new path. Second, the sender device may use any underlying transport protocol for sending the data packets, which protocol uses selective-repeat. According to such a protocol, the receiver device may remember, which data packet was received and which packet is missing, and may report this information, for instance, periodically, to the sender device.
Notably, a missing data packet may be a data packet that was not received at the receiver device, although a data packet with a higher sequence number has been received. A missing data packet may be considered lost by the sender device, and in this case it may be retransmitted by the sender device. However, due to the possibility of the connection being changed from an old path to a new path, not each missing data packet at the receiver device has to be considered lost by the sender device. In an implementation form of the first aspect, the sender device is configured to, if the first information indicates that the connection was not changed to a new path: retransmit each of the one or missing data packets, if retransmission is required by the one or more rules of the underlying transport protocol used for sending the data packets.
In an implementation form of the first aspect, the sender device is configured to, if the first information indicates that the connection was changed to a new path, and if the feedback message indicates that the last data packet transmitted on the old path was received by the receiver device: consider each of the one or missing data packets lost, and retransmit each of the one or missing data packets if retransmission is required by the one or more rules of the underlying transport protocol used for sending the data packets; and set the first information to indicate that the connection was not changed to a new path.
In an implementation form of the first aspect, the sender device is configured to, if the first information indicates that the connection was changed to a new path, and if the feedback message indicates that no data packet with a sequence number equal to or larger than the sequence number of the last data packet transmitted on the old path was received by the receiver device: consider each of the one or missing data packets lost, retransmit each of the one or missing data packets, if retransmission is required by the one or more rules of the underlying transport protocol used for sending the data packets; and leave the first information unchanged to indicate that the connection was changed to a new path.
In an implementation form of the first aspect, the sender device is configured to, if the first information indicates that the connection was changed to a new path, and if the feedback message indicates that the last data packet transmitted on the old path is missing at the receiver device and that at least one data packet with a sequence number larger than the last data packet transmitted on the old path was received by the receiver device: consider each of the one or more missing data packets that has a sequence number smaller than the sequence number of the last data packet transmitted on the old path lost, if there is a received data packet that has a sequence number larger than that of the missing data packet but smaller than that of the last data packet transmitted on the old path, and retransmit each of the one or more missing data packets considered lost, if this is required by the one or more rules of the underlying transport protocol used for sending the data packets; not consider lost and not retransmit each of the one or more missing data packets that has a sequence number smaller than the sequence number of the last data packet transmitted on the old path, if there is no received data packet that has a sequence number larger than that of the missing data packet but smaller than that of the last data packet transmitted on the old path,; and leave the first information unchanged to indicate that the connection was changed to a new path.
In an implementation form of the first aspect, the sender device is further configured to retransmit each missing data packet that has a sequence number larger than the sequence number of the last data packet transmitted on the old path if retransmission is required by the one or more rules of the underlying transport protocol used for sending the data packets.
In an implementation form of the first aspect, the sender device is further configured to, if the first information indicates that the connection was changed to a new path, and if the one or more rules of the underlying transport protocol used for sending the data packets indicates that there is a retransmission time-out of a timer: retransmit all the missing data packets; and set the first information to indicate that the connection was not changed to a new path.
According to the above implementation forms of the first aspect, if a data packet is only temporarily missing, due to the change of the connection from the old path to the new path, the sender device may not retransmit the data packet. If a data packet that was actually lost, the sender device may retransmit the data packet.
In an implementation form of the first aspect, each retransmitted missing data packet is retransmitted on the new path, if the connection was changed to the new path.
In an implementation form of the first aspect, the first information comprises a rerouting flag; a first value of the rerouting flag indicates that the connection was changed from an old path to a new path; and a second value of the rerouting flag indicates that the connection was not changed from an old path to a new path.
In an implementation form of the first aspect, the second information is a variable that comprises the sequence number of the last data packet transmitted on the old path.
In an implementation form of the first aspect, the feedback message is an acknowledgement (ACK) message, or a negative ACK (NACK) message, or a selective ACK (SACK) message. In an implementation form of the first aspect, the feedback message comprises one or more sequence numbers, and an indication for each sequence number, whether a data packet with this sequence number has been received by the receiver device or is missing at the receiver device.
A second aspect of this disclosure provides a method for sending data packets on a connection from a sender device to a receiver device, the method comprising: receiving a feedback message from the receiver device, wherein the feedback message indicates one or more data packets that have been received by the receiver device and/or one or more data packets that are missing at the receiver device; and if one or more missing data packets are indicated by the feedback message, determine whether to consider the one or more missing data packets lost and whether to retransmit the one or more missing data packets based on first information, second information, and one or more rules of an underlying transport protocol used for sending the data packets; wherein the first information indicates whether the connection was changed from an old path to a new path between the sender device and the receiver device, and wherein the second information indicates a sequence number of a last data packet transmitted on the old path between the sender device and the receiver device.
In an implementation form of the second aspect, the method comprises, if the first information indicates that the connection was not changed to a new path: retransmitting each of the one or missing data packets, if retransmission is required by the one or more rules of the underlying transport protocol used for sending the data packets.
In an implementation form of the second aspect, the method comprises, if the first information indicates that the connection was changed to a new path, and if the feedback message indicates that the last data packet transmitted on the old path was received by the receiver device: consider each of the one or missing data packets lost, and retransmit these one or more data packets if retransmission is required by the one or more rules of the underlying transport protocol used for sending the data packets; and setting the first information to indicate that the connection was not changed to a new path.
In an implementation form of the second aspect, the method comprises, if the first information indicates that the connection was changed to a new path, and if the feedback message indicates that no data packet with a sequence number equal to or larger than the sequence number of the last data packet transmitted on the old path was received by the receiver device: consider each of the one or missing data packets lost, and retransmit these one or more data packets if retransmission is required by the one or more rules of the underlying transport protocol used for sending the data packets; and leaving the first information unchanged to indicate that the connection was changed to a new path.
In an implementation form of the second aspect, the method comprises, if the first information indicates that the connection was changed to a new path, and if the feedback message indicates that the last data packet transmitted on the old path is missing at the receiver device and that at least one data packet with a sequence number larger than the last data packet transmitted on the old path was received by the receiver device: consider each of the one or more missing data packets that has a sequence number smaller than the sequence number of the last data packet transmitted on the old path lost, if there is a received data packet that has a sequence number larger than that of the missing data packet but smaller than that of the last data packet transmitted on the old path, and retransmit these one or more data packets if this is required by the one or more rules of the underlying transport protocol used for sending the data packets; not considering lost each of the one or more missing data packets that has a sequence number smaller than the sequence number of the last data packet transmitted on the old path, if there is no received data packet that has a sequence number larger than that of the missing data packet but smaller than that of the last data packet transmitted on the old path,; and leaving the first information unchanged to indicate that the connection was changed to a new path.
In an implementation form of the second aspect, the method comprises considering lost each missing data packet that has a sequence number larger than the sequence number of the last data packet transmitted on the old path, and retransmitting this data packet if retransmission is required by the one or more rules of the underlying transport protocol used for sending the data packets.
In an implementation form of the second aspect, the method comprises, if the first information indicates that the connection was changed to a new path, and if the one or more rules of the underlying transport protocol used for sending the data packets indicates that there is a retransmission time-out of a timer: retransmitting all the missing data packets; and set the first information to indicate that the connection was not changed to a new path. In an implementation form of the second aspect, each retransmitted data packet is retransmitted on the new path, if the connection was changed to the new path.
In an implementation form of the second aspect, the first information comprises a rerouting flag; a first value of the rerouting flag indicates that the connection was changed from an old path to a new path; and a second value of the rerouting flag indicates that the connection was not changed from an old path to a new path.
In an implementation form of the second aspect, the second information is a variable that comprises the sequence number of the last data packet transmitted on the old path.
In an implementation form of the second aspect, the feedback message is an ACK message, or a NACK message, or a SACK message.
In an implementation form of the second aspect, the feedback message comprises one or more sequence numbers, and an indication for each sequence number, whether a data packet with this sequence number has been received by the receiver device or is missing at the receiver device.
The method of the second aspect and its implementation forms achieve the same advantages as the sender device of the first aspect and its respective implementation forms.
A third aspect of this disclosure provides a computer program comprising instructions which, when the program is executed by a computer, cause the computer to perform the method according to the second aspect or any implementation form thereof.
A fourth aspect of this disclosure provides a storage medium storing executable program code which, when executed by a processor, causes the method according to the second aspect or any of its implementation forms to be performed.
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 will be explained in the following description of specific embodiments in relation to the enclosed drawings, in which
FIG. 1 shows an example of a change of a connection between a sender device and a receiver device from an old path to a new path.
FIG. 2 shows a sender device according to this disclosure.
FIG. 3 shows a method for sending data packets according to this disclosure.
DETAILED DESCRIPTION OF EMBODIMENTS
FIG. 1 shows a sender device 200 according to this disclosure. The sender device 200 is configured to send data packets on a connection to a receiver device 210. The sender device 200 may be configured to change the connection from an old path 202a, over which the data packets are sent to the receiver device 210 up to the moment of the change, to a new path 202b, over which the data packets are sent from the moment of the change. This change of the connection may also be referred to as a rerouting of the connection (from the old path 202a to the new path 202b). The sender device 200 may be further configured to send the data packets to the receiver device 210 by using an underlying transport protocol that involves selective- repeat.
The sender device 200 is configured maintain first information 201, wherein the first information 201 indicates whether the connection was changed from an old path 202a to a new path 202b between the sender device 200 and the receiver device 210. The first information 201 may be stored at the sender device 200, or stored in another device connected to the sender device 200. The first information 201 may comprise a flag (referred to as rerouting flag) or a bit. For example, a first value of the rerouting flag or bit - e.g. a value of 1 - may indicate that the connection was changed from an old path 202a to a new path 202b, while a second value of the rerouting flag or bit - e.g. a value of 0 - may indicate that the connection was not changed from an old path 202a to a new path 202b. The sender device 200 may be configured to change the value of the first information, e.g., from 1 to 0 and vice versa.
The sender device 200 is further configured to maintain second information 202, wherein the second information 202 indicates a sequence number of a last data packet transmitted, for the first time (i.e., not retransmitted), on the old path 202a between the sender device 200 and the receiver device 210. The second information 201 may be stored at the sender device 200, or stored in another device connected to the sender device 200. The second information 201 may be a variable, and may be stored at the sender device 200. The variable may comprise the sequence number of the last data packet transmitted on the old path 202a, or may comprise a number that indicates this sequence number.
The sender device 200 is further configured to receive a feedback message 211 from the receiver device 210. The feedback message 211 may, for example, be an ACK message, or a NACK message, or a SACK message. The feedback message 211 indicates at least one of one or more data packets that have been received by the receiver device 210, and one or more data packets that are missing at the receiver device 210. For instance, the feedback message 211 may comprise a bitmap for indicating the received and/or missing data packets, for example, for indicating their sequence numbers.
If one or more missing data packets are indicated by the feedback message 211, the sender device 200 is configured to determine, whether to consider the one or more missing data packets lost and whether to retransmit the one or more missing data packets or not, based on the first information 201, the second information 202, and based on one or more rules of an underlying transport protocol used for sending the data packets. For instance, the sender device 200 may be configured to retransmit the one or more missing data packets, if this is required for lost data packets by the underlying transport protocol, and if the first information indicates no connection change. In case that the first information indicates a connection change, the sender device 200 may further determine whether to retransmit the one or more missing data packets based on the sequence number indicated by the second information 202.
The sender device 200 may comprise a processor or processing circuitry (not shown) configured to perform, conduct or initiate the various operations of the sender device 200 described herein. The processing circuitry may comprise hardware and/or the processing circuitry may be controlled by software. The hardware may comprise analog circuitry or digital circuitry, or both analog and digital circuitry. The digital circuitry may comprise components such as applicationspecific integrated circuits (ASICs), field-programmable arrays (FPGAs), digital signal processors (DSPs), or multi-purpose processors. The sender device 200 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 sender device 200 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 sender device 200 to perform, conduct or initiate the operations or methods described herein.
In an example of the sender device 200, and in order to implement the above-described scheme, the sender device 200 may maintain two variables: the rerouting flag (as the first information 201), and a variable (as the second information 202) called Old Path last PSN.
When the sender device 200 decides to move its connection with the receiver device 210 from an old path 202a to a new path 202b (e.g., for the reasons explained with respect to FIG. 1), it may set the rerouting flag to 1. The variable Old Path last PSN holds the sequence number of the last data packet transmitted for the first time on the old path 202a, before the sender device 202 reroutes its data packet traffic to a new path 202b. The sender device 200 may set and/or modify this variable. For example, if the sender device 200 transmits a packet with the sequence number 10 on the old path 202a, and then retransmits a packet with the sequence number 6 on the old path 202b, and then the sender device 200 starts using the new path 202b, the variable Old Path last PSN is equal to 10.
A property of the solutions of this disclosure is that the receiver device 210 does not need to know that the sender device 200 switches to a new path 202b. The receiver device 210 may continue to receive data packets, and the receiver device 210 may indicate in its feedback message 211, which data packets (e.g., which sequence numbers) were received at the receiver device 210, and which are missing at the receiver device 210. For example, the feedback message 211 may comprise one or more sequence numbers of data packets, and may comprise an indication for each of these one or more sequence numbers, whether a data packet with one of the sequence numbers has been received by the receiver device 210, or is missing at the receiver device 210. The feedback message 211 may, for instance, be a bitmap, which indicates the aforementioned. The receiver device 210 may send this bitmap, or similar information, in a SACK message as the feedback message 211. For example, the receiver device 200 may send the feedback message 211 periodically (i.e., multiple feedback messages 211 are sent in fact). As a typical example, the feedback message 211 may be sent after each data packet is received.
When the sender device 200 receives, for example, a SACK message or an ACK message as the feedback message 211 (indicating which data packets have been received, and which data packets are missing), the sender device 200 may first check the rerouting flag. If this rerouting flag is set to 0, the feedback message 201 may be processed in a normal way. That is, any missing packet may be considered lost and retransmitted according to the one or more rules of the underlying selective-repeat protocol (notably, different selective-repeat protocols may have different strategies, regarding to when to retransmit a data packet which is considered lost).
When the rerouting flag is 1, there are three possible cases:
(1) The received feedback message 211 reports that the data packet, whose sequence number is equal to the variable Old Path last PSN, has been received by the receiver device 210. In this case, the feedback message 211 is processed in a normal way, and the rerouting flag is cleared (is set to 0). This is, because any data packet sent over the old path 202a should have been received, and if it is missing, this is not due to the change of the connection, but due to the data packet being lost in the network.
(2) The received feedback message 211 does not report that any data packet with a sequence number equal to or larger than the variable Old Path last PSN has been received. In this case, the sender device 200 processes the received feedback message 211 in a normal way, but does not clear the rerouting flag (leaves it at 1). This is, because the feedback message 211 does not report about any data packet that was transmitted over the new path 202b, and therefore, there is no confusion between data packets received over the old path 202a and data packets received over the new path 202b. (3) The received feedback message 211 reports that the data packet, whose sequence number is equal to the variable Old Path last PSN, is still missing, but there is a data packet whose sequence number is larger than the variable Old Path last PSN that has been received. In this case, all the data packets whose sequence numbers are smaller than the variable Old Path last PSN, but are larger than the previous sequence number that was reported as accepted, are still not considered lost, because there is a chance that they will be correctly received. The rerouting flag remains 1 in this case.
In addition, protocols for reliable transmission of data may use a timer, either for all the outstanding data packets together, or independently for each data packet. This timer is also known as retransmission time-out (RTO). If the rerouting flag is 1 and a data packet sequence number that is equal to Old Path last PSN is retransmitted, due to the RTO, this data packet (as well as any other data packet that is retransmitted due to this RTO) is retransmitted over the new path 202b. In this case, the rerouting flag is set to 0.
The following provides a few examples for the above-described rules (1), (2), and (3). For instance, it may be supposed that the sender device 200 performs a rerouting of the connection from an old path 202a to a new path 202b, and that the variable Old Path last PSN is equal to 10. A feedback message 211 (e.g., a SACK message) received by the sender device 200 may indicate:
Figure imgf000015_0001
In these examples, and the above table, the convention is that all the sequence numbers smaller that the first reported one (i.e. 5 in the above table) have been correctly received, and all the sequence numbers larger than the last reported one (i.e. 9 in the above table) have not been received.
In this case, the above rule (2) is applicable. This implies that the data packet with the sequence number 5 and the data packet with the sequence number 8 are considered lost, and that the status of all the data packets whose sequence number is larger than 9 is still unknown even if they are reported as missing. Moreover, the rerouting flag remains 1. A second example is that the feedback message 211 received by the sender device 200 indicates:
Figure imgf000016_0001
In this case, the above rule (1) is applicable, because the data packet with the sequence number 10 is reported as correctly received. This implies that the data packets with the sequence numbers 5, 8 and 11 that are missing can be considered lost. In addition, the rerouting flag is cleared. The decision if and when to retransmit the lost data packets depends then on the rules of the specific underlying transport protocol.
A third example is that the received feedback message 211 indicates:
Figure imgf000016_0002
In this case, the above rule (3) is applicable, because the data packet with the sequence number 10 is reported as missing, but a data packet with the larger sequence number 12 is reported as accepted. This implies that the missing data packet with the sequence number 11 is considered lost, and that the status of the data packets with the sequence numbers 8, 9 and 10 is still unknown although they are reported as missing. The rerouting flag remains 1.
Notably, all the data packets that are transmitted for the first time, or are retransmitted, when the rerouting flag is set to 1, are transmitted over the new path 202b. The old path 202a is not used any more. When the rerouting flag is set to 0, the sender device 200 can decide to switch to another new path 202b.
FIG. 3 shows a method 300 for sending data packets on a connection from a sender device 200 to a receiver device 210. The method 300 may be performed by the sender device 200.
The method 300 comprises a step 301 of receiving a feedback message 211 from the receiver device 210. The feedback message 211 indicates one or more data packets that have been received by the receiver device 210 and/or indicates one or more data packets that are missing at the receiver device. If one or more missing data packets are indicated by the feedback message 211, the method 300 comprises a step 302 of determining, whether to consider the one or more missing data packets lost based on first information 201, and whether to retransmit the one or more missing data packets based on first information 201, second information 202, and one or more rules of an underlying transport protocol for sending the data packets. The first information 201 indicates whether the connection was changed from an old path 202a to a new path 202b between the sender device 200 and the receiver device 210. The second information 201 indicates a sequence number of a last data packet transmitted, for the first time (that is, not retransmitted), on the old path 202a between the sender device 200 and the receiver device 210.
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 matter, 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.

Claims

1. A sender device (200) for sending data packets on a connection to a receiver device (210), the sender device (200) being configured to: maintain first information (201), wherein the first information (201) indicates whether the connection was changed from an old path (202a) to a new path (202b) between the sender device (200) and the receiver device (210); maintain second information (202), wherein the second information (202) indicates a sequence number of a last data packet transmitted on the old path (202a) between the sender device (200) and the receiver device (210); receive a feedback message (211) from the receiver device (210), wherein the feedback message (211) indicates one or more data packets that have been received by the receiver device (210) and/or one or more missing data packets that are missing at the receiver device (210); and if one or more missing data packets are indicated by the feedback message (211), determine whether to consider the one or more missing data packets as lost and whether to retransmit the one or more missing data packets based on the first information (201), the second information (202), and one or more rules of an underlying transport protocol used for sending the data packets.
2. The sender device (200) according to claim 1, configured to, if the first information (201) indicates that the connection was not changed to a new path (202b): retransmit each of the one or missing data packets, if retransmission is required by the one or more rules of the underlying transport protocol used for sending the data packets.
3. The sender device (200) according to claim 1 or 2, configured to, if the first information (201) indicates that the connection was changed to a new path (202b), and if the feedback message (211) indicates that the last data packet transmitted on the old path (202a) was received by the receiver device (210): consider each of the one or more data packets as lost, and retransmit each of the one or missing data packets, if retransmission is required by the one or more rules of the underlying transport protocol used for sending the data packets; and set the first information to (201) indicate that the connection was not changed to a new path (202b).
4. The sender device (200) according to one of the claims 1 to 3, configured to, if the first information (201) indicates that the connection was changed to a new path (202b), and if the feedback message (211) indicates that no data packet with a sequence number equal to or larger than the sequence number of the last data packet transmitted on the old path (202a) was received by the receiver device (210): consider each of the one or more data packets as lost, and retransmit each of the one or missing data packets, if retransmission is required by the one or more rules of the underlying transport protocol used for sending the data packets; and leave the first information (201) unchanged to indicate that the connection was changed to a new path (202b).
5. The sender device (200) according to one of the claims 1 to 4, configured to, if the first information (201) indicates that the connection was changed to a new path (202b), and if the feedback message (211) indicates that the last data packet transmitted on the old path (202a) is missing at the receiver device (210) and that at least one data packet with a sequence number larger than the last data packet transmitted on the old path (202a) was received by the receiver device (210): consider each of the one or more missing data packets that has a sequence number smaller than the sequence number of the last data packet transmitted on the old path (202a) as lost, if there is a received data packet that has a sequence number larger than that of the missing data packet but smaller than that of the last data packet transmitted on the old path (202a), and retransmit each of the one or more missing data packets considered lost, if this is required by the one or more rules of the underlying transport protocol used for sending the data packets; not consider as lost and not retransmit each of the one or more missing data packets that has a sequence number smaller than the sequence number of the last data packet transmitted on the old path (202a), if there is no received data packet that has a sequence number larger than that of the missing data packet but smaller than that of the last data packet transmitted on the old path (202a); and leave the first information (201) unchanged to indicate that the connection was changed to a new path (202b).
6. The sender device (200) according to claim 5, further configured to retransmit each missing data packet that has a sequence number larger than the sequence number of the last data packet transmitted on the old path (202a) if retransmission is required by the one or more rules of the underlying transport protocol used for sending the data packets.
7. The sender device (200) according to one of the claims 1 to 6, configured to, if the first information (201) indicates that the connection was changed to a new path (202b), and if the one or more rules of the underlying transport protocol used for sending the data packets indicates that there is a retransmission time-out of a timer: retransmit all the missing data packets; and set the first information (201) to indicate that the connection was not changed to a new path (202b).
8. The sender device (200) according to one of the claims 1 to 7, wherein each retransmitted missing data packet is retransmitted on the new path (202b), if the connection was changed to the new path (202b).
9. The sender device (200) according to one of the claims 1 to 8, wherein: the first information (201) comprises a rerouting flag; a first value of the rerouting flag indicates that the connection was changed from an old path (202a) to a new path (202b); and a second value of the rerouting flag indicates that the connection was not changed from an old path (202a) to a new path (202b).
10. The sender device (200) according to one of the claims 1 to 9, wherein the second information (201) is a variable that comprises the sequence number of the last data packet transmitted on the old path (202a).
11. The sender device (200) according to one of the claims 1 to 10, wherein the feedback message (211) is an acknowledgement, ACK, message, or a negative ACK, NACK, message, or a selective ACK, SACK, message.
12. The sender device (200) according to one of the claims 1 to 11, wherein the feedback message (211) comprises one or more sequence numbers, and an indication for each sequence number, whether a data packet with this sequence number has been received by the receiver device (210) or is missing at the receiver device (210).
13. A method (300) for sending data packets on a connection from a sender device (200) to a receiver device (210), the method (300) comprising: receiving (301) a feedback message (211) from the receiver device (210), wherein the feedback message (211) indicates one or more data packets that have been received by the receiver device (210) and/or one or more missing data packets that are missing at the receiver device (210); and if one or more missing data packets are indicated by the feedback message (211), determine whether to consider the one or more missing data packets as lost and whether to retransmit the one or more missing data packets based on first information (201), second information (202), and one or more rules of an underlying transport protocol used for sending the data packets; wherein the first information (201) indicates whether the connection was changed from an old path (202a) to a new path (202b) between the sender device (200) and the receiver device (210), and wherein the second information (202) indicates a sequence number of a last data packet transmitted on the old path (202a) between the sender device (200) and the receiver device (210).
14. A computer program comprising instructions which, when the program is executed by a computer, cause the computer to perform the method (300) according to claim 13.
PCT/EP2022/065934 2022-06-13 2022-06-13 Efficient rerouting of a selective-repeat connection WO2023241770A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/EP2022/065934 WO2023241770A1 (en) 2022-06-13 2022-06-13 Efficient rerouting of a selective-repeat connection

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2022/065934 WO2023241770A1 (en) 2022-06-13 2022-06-13 Efficient rerouting of a selective-repeat connection

Publications (1)

Publication Number Publication Date
WO2023241770A1 true WO2023241770A1 (en) 2023-12-21

Family

ID=82358406

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2022/065934 WO2023241770A1 (en) 2022-06-13 2022-06-13 Efficient rerouting of a selective-repeat connection

Country Status (1)

Country Link
WO (1) WO2023241770A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017117259A1 (en) * 2015-12-29 2017-07-06 Amazon Technologies, Inc. Networking technologies

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017117259A1 (en) * 2015-12-29 2017-07-06 Amazon Technologies, Inc. Networking technologies

Similar Documents

Publication Publication Date Title
US11641387B2 (en) Timely delivery of real-time media problem when TCP must be used
AU644800B2 (en) Data communication method and system
EP2681880B1 (en) Controlling network device behavior
EP1161810B1 (en) Data discard mechanism for selective repeat protocol
US9178665B2 (en) Communication apparatus, communication system, absent packet detecting method and absent packet detecting program
US8284669B2 (en) Data acknowledgement apparatus and method
US7693070B2 (en) Congestion reducing reliable transport packet retry engine
US6760766B1 (en) Data transmission method and device
US7496038B2 (en) Method for faster detection and retransmission of lost TCP segments
KR101139996B1 (en) Data flow control with duplicate acknowledgment
JP2006287981A (en) Error correcting communication method to transmit data packet in network communication system
JP5935940B2 (en) COMMUNICATION METHOD, COMMUNICATION DEVICE, AND COMMUNICATION PROGRAM
US9037935B2 (en) Apparatus and method for retransmitting message in message transmission system
CN109981385B (en) Method, device and system for realizing packet loss detection
JP2007053588A (en) Packet retransmission method, packet retransmission system, packet retransmission program, and program recording medium
CN112383622A (en) Reliable transport protocol and hardware architecture for data center networking
WO2023241770A1 (en) Efficient rerouting of a selective-repeat connection
EP3031159B1 (en) Retransmission control network node and related method
Maisuria et al. Overview of techniques for improving QoS of TCP over wireless links
KR20150048489A (en) Data communications using connectionless-oriented protocol
US20230327812A1 (en) Device and method for selective retransmission of lost packets
EP1733527B1 (en) Technique for handling outdated information units
WO2019015931A1 (en) Point-to-point transmitting method based on the use of an erasure coding scheme and a tcp/ip protocol
WO2023247005A1 (en) Receiver-agnostic scheme for reliable delivery of data over multipath
KR20060112517A (en) Apparatus and method of packet relay in wireless network, mac layer data structure therein

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

Country of ref document: EP

Kind code of ref document: A1