Dynamic bandwidth throttling
First Claim
Patent Images
1. A computer implemented method for dynamic bandwidth throttling, comprising:
- recording, by a sender computer, transit times for packets in a network connection between the sender computer and a receiver computer over a predetermined period of time;
determining, by the sender computer, a baseline transit time value based on the recorded transit times;
recording, by the sender computer, a latest transit time for a packet sent to the receiver computer using the network connection;
determining, by the sender computer, a capacity metric and a lateness metric based on the latest transit time and the baseline transit time value;
determining, by the sender computer, a penalty based on the capacity metric and the lateness metric;
determining, by the sender computer, a delay time for a subsequent packet to be transmitted from the sender computer to the receiver computer using the network connection based on the penalty; and
delaying, by the sender computer, the subsequent packet according to the delay time to limit a rate of data transmission by the sender computer on the network connection.
3 Assignments
0 Petitions
Accused Products
Abstract
An approximation of the bandwidth of the narrowest link in a network is determined by watching how fast data gets to the other end and then back again. The rate of data transmission is limited according to this approximation. Dynamic capacity of the link, i.e. the amount of data that can be in-flight at the same time, neglecting any buffers, is also tracked. The technique looks at how much data is in-flight and, if there is more data in flight than the dynamic capacity of the network, the data transmission rate is slowed down.
-
Citations
20 Claims
-
1. A computer implemented method for dynamic bandwidth throttling, comprising:
-
recording, by a sender computer, transit times for packets in a network connection between the sender computer and a receiver computer over a predetermined period of time; determining, by the sender computer, a baseline transit time value based on the recorded transit times; recording, by the sender computer, a latest transit time for a packet sent to the receiver computer using the network connection; determining, by the sender computer, a capacity metric and a lateness metric based on the latest transit time and the baseline transit time value; determining, by the sender computer, a penalty based on the capacity metric and the lateness metric; determining, by the sender computer, a delay time for a subsequent packet to be transmitted from the sender computer to the receiver computer using the network connection based on the penalty; and delaying, by the sender computer, the subsequent packet according to the delay time to limit a rate of data transmission by the sender computer on the network connection. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A dynamic bandwidth throttling apparatus, comprising:
-
a processor; and a memory coupled to the processor, wherein the memory comprises instructions which, when executed by the processor, cause the processor to; record transit times for packets in a network connection between a sender computer and a receiver computer over a predetermined period of time; determine a baseline transit time value based on the recorded transit times; record a latest transit time for a packet sent to the receiver computer using the network connection; determine a capacity metric and a lateness metric based on the latest transit time and the baseline transit time value; determine a penalty based on the capacity metric and the lateness metric; determine a delay time for a subsequent packet to be transmitted from the sender computer to the receiver computer using the network connection based on the penalty; and delay the subsequent packet according to the delay time to limit a rate of data transmission by the sender computer on the network connection. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A computer program product comprising a non-transitory computer readable storage medium having a computer readable program stored therein, wherein the computer readable program, when executed on a computing device, causes the computing device to
record transit times for packets in a network connection between a sender computer and a receiver computer over a predetermined period of time; -
determine a baseline transit time value based on the recorded transit times; record a latest transit time for a packet sent to the receiver computer using the network connection; determine a capacity metric and a lateness metric based on the latest transit time and the baseline transit time value; determine a penalty based on the capacity metric and the lateness metric; determine a delay time for a subsequent packet to be transmitted from the sender computer to the receiver computer using the network connection based on the penalty; and delay the subsequent packet according to the delay time to limit a rate of data transmission by the sender computer on the network connection. - View Dependent Claims (17, 18, 19, 20)
-
Specification