Control of Background Data Transfers
First Claim
1. A method of controlling a background data transfer over a network at a receiver node having a receive window, comprising:
- measuring a time period to receive from a sender node a first data sequence of a size corresponding to a first window size for the receive window;
evaluating available network capacity based on the time period;
calculating a second window size based on the available network capacity; and
changing the receive window size from the first window size to the second window size and communicating the second window size to the sender node subsequent to receiving the first data sequence.
2 Assignments
0 Petitions
Accused Products
Abstract
Control of background data transfers is described. In an embodiment, a background data transfer is controlled at a receiver node by measuring a time period taken to receive from a sender node a data sequence of the same size as a receive window. The time period is used to evaluate available network capacity, and the network capacity used to calculate a new window size. The new window size is applied and communicated to the sender node. In another embodiment, a background data transfer is controlled at a receiver node by measuring a quantity of data received from a sender node during a first control interval. The measured quantity is used to evaluate available network capacity, and the network capacity used to calculate a new receive window size and a second control interval duration. The new window size is applied for the second control interval, and communicated to the sender node.
49 Citations
20 Claims
-
1. A method of controlling a background data transfer over a network at a receiver node having a receive window, comprising:
-
measuring a time period to receive from a sender node a first data sequence of a size corresponding to a first window size for the receive window; evaluating available network capacity based on the time period; calculating a second window size based on the available network capacity; and changing the receive window size from the first window size to the second window size and communicating the second window size to the sender node subsequent to receiving the first data sequence.
-
-
2. A method according to claim 0, wherein the second window size is communicated to the sender node using an acknowledgement message sent responsive to receiving a final segment of the first data sequence.
-
3. A method according to claim 0, wherein the step of changing the receive window size comprises updating the receive window from the first window size to the second window size in a plurality of stages.
-
4. A method according to claim 0, wherein each of the plurality of stages comprises a change in the receive window size of a predetermined multiple of a maximum segment size.
-
5. A method according to claim 0, wherein the predetermined multiple of a maximum segment size is one maximum segment size.
-
6. A method according to claim 0, wherein the second window size is communicated to the sender node using a plurality of acknowledgment messages corresponding to the plurality of stages.
-
7. A method according to claim 0, further comprising the step of measuring a time period to receive from the sender node a second data sequence of a size corresponding to the second window size for the receive window.
-
8. A method according to claim 0, wherein the start of the time period to receive the second data sequence is a receipt time of a segment sent from the sender node responsive to the communication of the second window size.
-
9. A method according to claim 0, wherein the step of evaluating available network capacity based on the time period comprises determining whether the time period is within a threshold value of a minimum round trip time.
-
10. A method according to claim 0, wherein:
-
if the time period is within the threshold value of the minimum round trip time, the step of calculating the second window size based on the available network capacity comprises increasing the first window size; and if the time period is not within the threshold value of the minimum round trip time, the step of calculating the second window size based on the available network capacity comprises decreasing the first window size.
-
-
11. A method according to claim 0, wherein the step of calculating the second window size based on the available network capacity comprises determining an amount by which to increase or decrease the first window size to obtain a target window size.
-
12. A method according to claim 0, wherein the second window size is set to the largest integral multiple of a maximum segment size that is less than the target window size.
-
13. A method according to claim 0, wherein the step of determining the amount by which to increase or decrease the first window size to obtain the target window size comprises a binary search.
-
14. A method according to claim 0, wherein the step of calculating the second window size further comprises determining whether the target window size is less than a predefined multiple of a maximum segment size, and, if so, setting the second window size to zero;
- and the method further comprises starting a timer for a randomly selected time interval subsequent to communicating the second window size to the sender node.
-
15. A method according to claim 0, further comprising, on expiry of the timer, setting the receive window size to a non-zero multiple of the maximum segment size, communicating the receive window size to the sender node, determining a time interval until a segment is received from the sender node, and comparing the time interval to a minimum round trip time value to determine if the network is congested.
-
16. A method of controlling a background data transfer over a network at a receiver node having a receive window, comprising:
-
measuring a quantity of data received from a sender node during a first control interval in which the receive window has a first window size; evaluating available network capacity based on the quantity of data; calculating a second window size based on the available network capacity; calculating a duration for a second control interval based on the available network capacity; and changing the receive window size from the first window size to the second window size for the second control interval and communicating the second window size to the sender node.
-
-
17. A method according to claim 0, wherein the duration for the second control interval is selected from a plurality of predefined control interval durations.
-
18. A method according to claim 0, wherein the step of evaluating available network capacity comprises estimating a current round trip time for the data.
-
19. A method according to claim 0, wherein the duration for the second control interval is selected to be the smallest duration in the plurality of predefined control interval durations within a predefined multiple of the current round trip time.
-
20. A method of controlling a background transport control protocol data transfer over a network at a receiver node having a receive window, comprising:
-
measuring a time period to receive from a sender node a first data sequence of a size corresponding to a first window size for the receive window; comparing the time period to a stored minimum round trip time value to determine available network capacity; calculating a second window size based on the available network capacity, such that the second window size is decreased relative to the first window size if the available network capacity indicates network congestion and the second window size is increased relative to the first window size if the available network capacity indicates an absence of network congestion; and changing the receive window size from the first window size to the second window size and communicating the second window size to the sender node subsequent to receiving the first data sequence.
-
Specification