Adjusting to network latency changes
AssigneeMicrosoft Corporation
InventorsMurari Sridharan, Sanjay N. Kaniyar, Deepak Bansal
Life of this patent
Estimating the term…
Abstract
Techniques are provided for adjusting to changes to the latency for a connection between two nodes on a network. In accordance with some embodiments, when a transmitting node encounters a retransmission timeout for a packet sent to a receiving node, the latency for the connection is newly measured and used to calculate a new retransmission timeout period for subsequent transmissions by the transmitting node. In some embodiments, the latency is not newly measured if the transmitting node receives a selective acknowledgement from the receiving node, since a selective acknowledgement may indicate that congestion on the network is only temporary.
Claims20
A transmitting node for use in a system comprising the transmitting node, a receiving node, and a network which provides a connection over which the transmitting node and receiving node may communicate data, the network employing a protocol which provides that the receiving node sends an acknowledgement to the transmitting node for each packet sent by the transmitting node and received by the receiving node, a latency of the connection being defined as a time between when a packet is sent by the transmitting node over the connection to the receiving node and when an acknowledgement sent by the receiving node for the packet over the connection is received by the transmitting node, the transmitting node being configured to execute programmed instructions defining acts of:
- (A) transmitting a first packet to the receiving node over the connection;
- (B) in response to having not received an acknowledgement for the first packet from the receiving node within a retransmission timeout period based at least in part on the latency of the connection prior to the act (A), determining a new latency for the connection;
- (C) determining a new retransmission timeout period based at least in part on the new latency for the connection;
- and
- (D) employing the new retransmission timeout period in transmitting a second packet to the receiving node over the connection.
A computer-readable medium encoded with instructions which, when executed by a transmitting node in a system comprising the transmitting node, a receiving node, and a network which provides a connection over which the transmitting node and receiving node communicate data, the network employing a protocol which provides that the receiving node sends a selective acknowledgement to the transmitting node when the receiving node receives one of a sequenced set of packets but not another of the sequenced set of packets, a latency of the connection being defined as a time between when a packet is sent by the transmitting node over the connection to the receiving node and when an acknowledgement sent by the receiving node for the packet is received by the transmitting node over the connection, performs a method for adjusting to a change in a latency of the connection, the method comprising acts of:
- (A) transmitting a sequenced set of packets to the receiving node over the connection;
- (B) in response to having not received a selective acknowledgement for any of the sequenced set of packets from the receiving node within a retransmission timeout period which is based at least in part on the latency of the connection prior to the act (A), determining a new latency for the connection;
- (C) determining a new retransmission timeout period based at least in part on the new latency for the connection;
- and
- (D) employing the new retransmission timeout period in transmitting a second sequenced set of packets to the receiving node over the connection.
In a system comprising a transmitting node, a receiving node, and a network which provides a connection over which the transmitting node and receiving node may communicate data, the network employing a protocol which provides that the receiving node sends an acknowledgement to the transmitting node for each packet sent by the transmitting node and received by the receiving node, a latency of the connection being defined as a time between when a packet is sent by the transmitting node over the connection to the receiving node and when an acknowledgement sent by the receiving node for the packet over the connection is received by the transmitting node, a method, performed by the transmitting node, for adjusting to a change in a latency of the connection, comprising acts of:
- (A) transmitting a first packet to the receiving node over the connection;
- (B) in response to having not received an acknowledgement for the first packet from the receiving node within a retransmission timeout period based at least in part on the latency of the connection prior to the act (A), transmitting a probe packet to the receiving node;
- (C) receiving an acknowledgement from the receiving node for the probe packet;
- (D) determining the new latency for the connection, equal to a time which elapses between performing the act of transmitting the probe packet and the act of receiving the acknowledgement for the probe packet;
- (E) determining a new retransmission timeout period based at least in part on the new latency for the connection;
- and
- (F) employing the new retransmission timeout period in transmitting a second packet to the receiving node over the connection.
Dependencies are inferred from the claim text.