Dynamic bandwidth control
Abstract
One or more non-transitory media instructions, which are executable by one or more processors. The instructions may include a bandwidth controller that includes a quality analyzer to provide a quality measurement for a given outgoing network connection from one network node to another of network node. The bandwidth controller provides a bandwidth control command that is dynamically adjusted over time based on the quality measurement and at least one of throughput or demand for bandwidth of the given outgoing network connection. The instructions may also include a rate limiter to adjust a rate limit for the given outgoing network connection based on the bandwidth control command.
Claims
exact text as granted — not AI-modified1 . One or more non-transitory media to store machine readable instructions, which are executable by one or more processors, the instructions comprising:
bandwidth controller code that includes a quality analyzer programmed to provide a quality measurement for a given outgoing network connection from one network node to another of network node, the bandwidth controller to provide a bandwidth control command that is dynamically adjusted over time based on the quality measurement and at least one of throughput or demand for bandwidth of the given outgoing network connection; and rate limiter code programmed to adjust a rate limit for the given outgoing network connection based on the bandwidth control command.
2 . The media of claim 1 , wherein the quality analyzer further comprises:
a statistical analyzer programmed to accumulate statistical information to characterize a distribution of quality measurements over a plurality of measurement intervals; a measurement component programmed to compute the quality measurement from measurement data acquired over N consecutive of the measurement intervals, where N is a positive integer greater than or equal to 1; a comparator programmed to compare each computed quality measurement to a threshold derived from N and the accumulated statistical information; and a quality detector programmed to determine a quality condition based on the comparison, the bandwidth controller providing the bandwidth control command to one of increase, decrease or not adjust the rate limit based on the quality condition.
3 . The media of claim 2 , wherein each of the measurement intervals is greater than one second.
4 . The media of claim 2 , wherein the measurement component comprises a latency calculator programmed to compute latency of a packet communicated over the given outgoing network connection for each of the plurality of measurement intervals, the computed latency corresponding to the quality measurement for each measurement interval,
wherein the packet communicated over the given outgoing network connection comprises a request message that is sent via a control message protocol from the one network node to the other network node and a corresponding reply message sent via the control message protocol from the other network node to the one network node, the latency calculator computing the latency of the packet based on a round trip time for the request message and the corresponding reply message.
5 . (canceled)
6 . (canceled)
7 . The media of claim 1 , further comprising a bandwidth demand detector programmed to determine the demand for additional bandwidth based on detecting a number dropped packets from the outgoing traffic sent from the one network node via the given outgoing network connection, the bandwidth controller providing the bandwidth control command to increase the rate limit if the determined quality condition is good and based on detecting at least the number of dropped packets.
8 . The media of claim 6 , further comprising a throughput detector programmed to determine if the throughput of the given outgoing network connection exceeds a throughput threshold, the bandwidth controller providing the bandwidth control command to decrease the rate limit if the determined quality condition is poor and based on detecting the throughput is above the throughput threshold.
9 . The media of claim 6 , wherein in response to detecting a first instance of high latency condition over N measurement intervals, N being a positive integer, the bandwidth controller providing the bandwidth control command to reduce the rate limit and a bandwidth range control setting a tentative upper bound for the rate limit,
wherein, in response to detecting a low latency condition, the bandwidth controller providing the bandwidth control command to set the rate limit to the tentative upper bound, and wherein, in response to detecting a second instance of high latency condition during a subsequent consecutive measurement interval before detecting a low latency condition, the bandwidth range control confirming the tentative upper bound and setting the tentative upper bound as the upper bound for the rate limit.
10 . The media of claim 4 , wherein the latency calculator further comprises:
a latency measurement component programmed to compute at least N latency measurements, corresponding to the quality measurement, over N consecutive measurement intervals, where N is a positive integer; a latency comparator programmed to compare each computed latency measurement to a corresponding one of N thresholds; and a quality detector programmed to provide the determined quality condition based on at least one of the N latency comparisons satisfying its corresponding threshold, wherein the comparator comprises a low latency comparator programmed to compare each of the N computed latency measurements to a corresponding low latency threshold, the latency calculator further comprising a high latency comparator programmed to compare each of P computed latency measurements to a corresponding high latency threshold, where P is a positive integer, wherein the quality detector provides the determined quality condition based on either of the low latency or the high latency thresholds being satisfied.
11 . (canceled)
12 . The media of claim 1 , wherein the bandwidth controller further comprises a bandwidth range component programmed to set an upper bound to be greater than or equal to the rate limit and a lower bound to be less than or equal to the rate limit, the upper bound and the lower bound being employed to adjust the bandwidth control command.
13 . The media of claim 12 , wherein the bandwidth range component further comprises a lower bound calculator programmed to adjust the lower bound by one of (i) decreasing the lower bound based on the rate limit and in response to setting the rate limit to a value that is below the lower bound or (ii) increasing the lower bound based on a measured throughput for the given outgoing network connection and in response to determining that the quality measurement indicates a good quality for at least one measurement interval,
wherein the bandwidth range component further comprises an upper bound calculator programmed to adjust the upper bound by one of (i) decreasing the upper bound in response to detecting high latency at the rate limit or (ii) increasing the upper bound up to the rate limit in response to setting the rate limit above the upper bound.
14 . (canceled)
15 . The media of claim 1 , wherein the instructions further comprise a bandwidth demand detector programmed to determine demand for bandwidth based on detecting a number of packets dropped by a network interface that supplies outgoing data traffic to the given outgoing network connection.
16 . The media of claim 1 , wherein the instructions further comprise a throughput detector programmed to compute a current value representing throughput of the outgoing traffic from the one network node via the given outgoing network connection.
17 . The media of claim 1 , wherein the given outgoing network connection comprises at least one respective tunnel between network interfaces at each of the one network node and the other network node to encapsulate communication of the data traffic between the one network node and the other network node.
18 . The media of claim 1 , wherein the given outgoing network connection is one of a plurality of available network connections, the wherein the instructions further comprise a network assignment control to at least one of assign a session of data traffic to the given outgoing network connection or to re-assign the session of data traffic to another of the plurality of available network connections based on the quality measurement.
19 - 20 . (canceled)
21 . An apparatus comprising:
a network interface associated with a node (node A) to communicate bi-directional data traffic via a network connection between the apparatus another network interface associated with another node (node B); one or more non-transitory media to store data, the data including machine readable instructions; one or more processors to access the one or more media and execute the instructions to perform a method, the method comprising:
determining a quality condition associated with a given outgoing network connection from node A to node B based on quality measurements associated with the network connection;
generating a bandwidth control command that is dynamically adjusted over time based on the quality condition and at least one of throughput or demand for bandwidth of the given outgoing network connection; and
adjusting a rate limit of the network interface for the given outgoing network connection based on the bandwidth control command.
22 - 25 . (canceled)
26 . The apparatus of claim 21 , wherein adjusting the rate limit further comprises:
setting an upper bound for the rate limit to be greater than or equal to the rate limit and a lower bound for the rate limit to be less than or equal to the rate limit; adjusting the lower bound by one of (i) decreasing the lower bound based on the rate limit and in response to setting the rate limit to a value that is below the lower bound or (ii) increasing the lower bound based on a measured throughput for the given outgoing network connection and in response to determining that the quality measurement indicates a good quality for at least one measurement interval; and adjusting the upper bound by one of (i) decreasing the upper bound in response to detecting high latency at the rate limit or (ii) increasing the upper bound up to the rate limit in response to setting the rate limit above the upper bound, wherein the bandwidth control command is generated based on the upper bound and the lower bound.
27 . The apparatus of claim 21 , wherein the given outgoing network connection comprises at least one respective tunnel between the network interfaces at node A and node B to encapsulate communication of the data traffic between node A and node B.
28 . The apparatus of claim 21 , wherein the method further comprises assigning or reassigning a session of the data traffic provided from node A to node B via the given outgoing network connection to one of a plurality of available network connections based on the quality measurement.
29 . A system comprising:
the apparatus of claim 21 ; and another apparatus comprising:
the other network interface associated with node B to communicate bi-directional data traffic with node A via the network connection;
one or more non-transitory media to store data, the data including machine readable instructions;
one or more processors to access the one or more media and execute the instructions to perform a method, the method comprising:
determining a quality condition associated with another given outgoing network connection from node B to node A based on quality measurements associated with the other given outgoing network connection;
generating a respective bandwidth control command that is dynamically adjusted over time based on the quality condition and at least one of throughput or demand for bandwidth of the other given outgoing network connection from node B; and
adjusting a rate limit of the network interface associated with node B for the other given outgoing network connection based on the respective bandwidth control command.
30 . The system of claim 29 , wherein generating the bandwidth control command at node A and generating the bandwidth control command at node B operate at different rates.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.