Data transport acceleration and management within a network communication system
First Claim
1. A method of transferring data from a sender to a receiver in a communication network, the method comprising:
- establishing a connection between the sender and the receiver;
measuring round trip times of data packets sent from the sender to the receiver;
determining a congestion window parameter that specifies a maximum number of unacknowledged data packets that may be sent to the receiver; and
transmitting additional data packets to the receiver in response to expiration of a transmit timer, the period of the transmit timer based on the round trip time measurements and the congestion window parameter.
10 Assignments
0 Petitions
Accused Products
Abstract
Improved data transport and management within a network communication system may be achieved by utilizing a transmit timer incorporated within the sender device and exploiting host-level statistics for a plurality of connections between a sender and receiver. The period of the transmit timer may be periodically adjusted based on a ratio of the smoothed round-trip time and the smoothed congestion window, thereby reducing or eliminating bursty data transmission commonly associated with conventional TCP architectures. For applications having a plurality of connections between a sender and a receiver that share a common channel, such as web applications, the congestion window and smoothed round trip time estimates for all active connections may be used to initialize new connections and allocate bandwidth among existing connections. This aspect of the present invention may reduce the destructive interference that may occur as different connections compete with one another to maximize the bandwidth of each connection without regard to other connections serving the same application. Error recovery may also be improved by incorporating a short timer and a long timer that are configured to reduce the size of the congestion window and the corresponding transmission rate in response to a second packet loss with a predefined time period in order to increase resilience to random packet loss.
317 Citations
54 Claims
-
1. A method of transferring data from a sender to a receiver in a communication network, the method comprising:
-
establishing a connection between the sender and the receiver;
measuring round trip times of data packets sent from the sender to the receiver;
determining a congestion window parameter that specifies a maximum number of unacknowledged data packets that may be sent to the receiver; and
transmitting additional data packets to the receiver in response to expiration of a transmit timer, the period of the transmit timer based on the round trip time measurements and the congestion window parameter. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 43)
-
-
15. A method for responding to packet loss, the method comprising:
-
setting a short timer and a long timer in response to transmission of a data packet, the long timer having a longer period than the short timer;
if a number of unacknowledged data packets does not exceed a predetermined threshold, retransmitting the data packet at a first transmission rate in response to each expiration of the short timer;
resetting the short timer and the long timer in response to each retransmission of the data packet; and
reducing the first transmission rate, if the long timer expires before receipt of a corresponding acknowledgement for the data packet.
-
-
26. A method for adjusting a rate of data transmission within a communication network, the method comprising:
-
transmitting data packets at a transmission rate based on a size of a congestion window;
measuring a round trip time for each of the data packets;
increasing the size of the congestion window at a first rate until a smoothed round trip time of the round trip time measurements exceeds a predetermined threshold; and
increasing the size of the congestion window at a second rate after the smoothed round trip time of the round trip time measurements exceeds the predetermined threshold, the second rate being smaller than the first rate.
-
-
36. A method for avoiding congestion within a communication network, the method comprising:
-
transmitting data packets at a transmission rate determined based on a size of a congestion window;
measuring a round trip time for each of the data packets;
determining whether a change in round trip time measurements exceeds a threshold value;
increasing the transmission rate by increasing the size of the congestion window in response to the change in round trip time measurements not exceeding the threshold value; and
reducing the transmission rate by reducing the size of the congestion window in response to the change in round trip time measurements exceeding the threshold value.
-
-
44. A method for managing a plurality of connections between a sender and a receiver, the method comprising:
-
determining a transmission rate for the plurality of connections;
calculating a weight for each of the plurality of connections based on a respective congestion window parameter associated with each connection; and
transmitting a data packet associated with a selected one of the plurality of connections having the highest weight to provide a weight-based allocation of the transmission rate among the plurality of connections. - View Dependent Claims (45, 46, 47, 48, 49)
-
-
50. A system for transferring data from a sender to a receiver in a communication network, the system comprising:
-
a processor; and
a memory unit operably coupled to the processor, the memory unit storing instructions which when executed by the processor cause the processor to operate so as to;
establish a connection between the sender and the receiver;
measure round trip times of data packets sent from the sender to the receiver;
determine a congestion window parameter that specifies a maximum number of unacknowledged data packets that may be sent to the receiver; and
transmit additional data packets to the receiver in response to expiration of a transmit timer, the period of the transmit timer based on the round trip time measurements and the congestion window parameter.
-
-
51. A system for responding to packet loss, the system comprising:
-
a processor; and
a memory unit operably coupled to the processor, the memory unit storing instructions which when executed by the processor cause the processor to operate so as to;
set a short timer and a long timer in response to transmission of a data packet, the long timer having a longer period than the short timer;
if a number of unacknowledged data packets does not exceed a predetermined threshold, retransmit the data packet at a first transmission rate in response to each expiration of the short timer;
reset the short timer and the long timer in response to each retransmission of the data packet; and
reduce the first transmission rate, if the long timer expires before receipt of a corresponding acknowledgement for the data packet.
-
-
52. A system for adjusting a rate of data transmission within a communication network, the system comprising:
-
a processor; and
a memory unit operably coupled to the processor, the memory unit storing instructions which when executed by the processor cause the processor to operate so as to;
transmit data packets at a transmission rate based on a size of a congestion window;
measure a round trip time for each of the data packets;
increase the size of the congestion window at a first rate until a smoothed round trip time of the round trip time measurements exceeds a predetermined threshold; and
increase the size of the congestion window at a second rate after the smoothed round trip time of the round trip time measurements exceeds the predetermined threshold, the second rate being smaller than the first rate.
-
-
53. A system for avoiding congestion within a communication network, the system comprising:
-
a processor; and
a memory unit operably coupled to the processor, the memory unit storing instructions which when executed by the processor cause the processor to operate so as to;
transmit data packets at a transmission rate determined based on a size of a congestion window;
measure a round trip time for each of the data packets;
determine whether a change in round trip time measurements exceeds a threshold value;
increase the transmission rate by increasing the size of the congestion window in response to the change in round trip time measurements not exceeding the threshold value; and
reduce the transmission rate by reducing the size of the congestion window in response to the change in round trip time measurements exceeding the threshold value.
-
-
54. A system for managing a plurality of connections between a sender and a receiver, the system comprising:
-
a processor; and
a memory unit operably coupled to the processor, the memory unit storing instructions which when executed by the processor cause the processor to operate so as to;
determine a transmission rate for the plurality of connections;
calculate a weight for each of the plurality of connections based on a respective congestion window parameter associated with each connection; and
transmit a data packet associated with a selected one of the plurality of connections having the highest weight to provide a weight-based allocation of the transmission rate among the plurality of connections.
-
Specification