Dynamic bandwidth detection and response for online games
First Claim
1. A method of communicating data from a sender system to a receiver system via a network connection, the method comprising:
- communicating data from the sender system to the receiver system in a first mode over the network connection, wherein communicating the data in the first mode comprises;
(a) determining an available bandwidth estimate for the network connection;
(b) determining a bandwidth target that is a fraction of the available bandwidth estimate, such that the bandwidth target is less than the available bandwidth estimate;
(c) communicating data from the sender system via the network connection using an unreliable protocol at a data rate that is substantially equal to the bandwidth target;
(d) monitoring latency associated with the network connection;
repeating (a), (b), (c), and (d) until a condition for exiting the first mode is satisfied; and
exiting the first mode upon determining that the condition for exiting the first mode is satisfied;
computing a latency threshold (latencythreshold) for the network connection, wherein the latency threshold computed for the network is computed as is set to a greater of (a) a minimum latency threshold value; and
(b) the smaller of the latency associated with the network connection plus a constant times a latency deviation value and a first latency value;
communicating data from the sender system to the receiver system in a second mode over the network connection, wherein communicating the data in the second mode comprises;
(e) determining an available bandwidth estimate for the network connection;
(f) determining a bandwidth target that is substantially equal to the available bandwidth estimate;
(g) communicating data from the sender system via the network connection using an unreliable protocol at a data rate that is substantially equal to or greater than the bandwidth target;
(h) monitoring latency associated with the network connection;
repeating (e), (f), (g), and (h) until a condition for exiting the second mode is satisfied; and
exiting the second mode upon determining that the condition for exiting the second mode is satisfied; and
alternating between the first mode and the second mode over the network connection.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques for optimizing bandwidth usage while controlling latency. A latency mitigating congestion avoidance and control technique is described that is suitable for use with unreliable transport protocols. Embodiments of the present invention facilitate communication of data for applications that communicate using unreliable communication protocols and that would like to maximize use of available bandwidth but cannot tolerate high latencies. Techniques are described for preventing latency from exceeding a certain level, without destroying the ability of an application or system to probe for additional available bandwidth and maximize bandwidth usage.
-
Citations
31 Claims
-
1. A method of communicating data from a sender system to a receiver system via a network connection, the method comprising:
-
communicating data from the sender system to the receiver system in a first mode over the network connection, wherein communicating the data in the first mode comprises; (a) determining an available bandwidth estimate for the network connection; (b) determining a bandwidth target that is a fraction of the available bandwidth estimate, such that the bandwidth target is less than the available bandwidth estimate; (c) communicating data from the sender system via the network connection using an unreliable protocol at a data rate that is substantially equal to the bandwidth target; (d) monitoring latency associated with the network connection; repeating (a), (b), (c), and (d) until a condition for exiting the first mode is satisfied; and exiting the first mode upon determining that the condition for exiting the first mode is satisfied; computing a latency threshold (latencythreshold) for the network connection, wherein the latency threshold computed for the network is computed as is set to a greater of (a) a minimum latency threshold value; and
(b) the smaller of the latency associated with the network connection plus a constant times a latency deviation value and a first latency value;communicating data from the sender system to the receiver system in a second mode over the network connection, wherein communicating the data in the second mode comprises; (e) determining an available bandwidth estimate for the network connection; (f) determining a bandwidth target that is substantially equal to the available bandwidth estimate; (g) communicating data from the sender system via the network connection using an unreliable protocol at a data rate that is substantially equal to or greater than the bandwidth target; (h) monitoring latency associated with the network connection; repeating (e), (f), (g), and (h) until a condition for exiting the second mode is satisfied; and exiting the second mode upon determining that the condition for exiting the second mode is satisfied; and alternating between the first mode and the second mode over the network connection. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of communicating data from a sender system via a plurality of network connections using an unreliable protocol, the method comprising:
-
communicating data from the sender system over the plurality of connections in a first mode, wherein communicating the data in the first mode comprises; (a) determining an available bandwidth estimate for each network connection in the plurality of network connections; (b) determining, for each network connection in the plurality of network connections, a bandwidth target that is a fraction of the available bandwidth estimate for the network connection, such that the bandwidth target is less than the available bandwidth estimate; (c) communicating, for each network connection in the plurality of network connections, data via the network connection using an unreliable protocol at a data rate that is substantially equal to the bandwidth target determined for the network connection; (d) monitoring latency associated with the plurality of network connections; repeating (a), (b), (c), and (d) until a condition for exiting the first mode is satisfied; and exiting the first mode upon determining that the condition for exiting the first mode is satisfied; computing a latency threshold (latencythreshold) for each network connection in the plurality of network connections, wherein the latency threshold is computed as is set to a greater of (a) a minimum latency threshold value; and
(b) the smaller of the latency associated with the network connection plus a constant times a latency deviation value and a first latency value;communicating data from the sender system over a first network connection of the plurality of network connections in a second mode, wherein communicating the data in the second mode comprises; (e) determining an available bandwidth estimate for each network connection in the plurality of network connections; (f) determining a penalty for the first network connection; (g) determining a bandwidth target for the first network connection based upon the available bandwidth estimate and the penalty determined for the first network connection; (h) communicating data via the first network connection using an unreliable protocol at a data rate that is substantially equal to or greater than the bandwidth target determined for the first network connection; (i) monitoring latency associated with the first network connection; repeating (e), (f), (g), (h), and (i) until a condition for exiting the second mode is satisfied; and exiting the second mode upon determining that a condition for exiting the second mode is satisfied; and alternating between the first mode and the second mode over the first network connection. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A system for communicating data to a receiver system using a network connection, the system comprising:
-
a processor; a memory coupled to the processor, the memory configured to store a set of instructions which when executed by the processor cause the processor to; communicate data to the receiver system in a first mode over the network connection, wherein communicating the data in the first mode comprises; (a) determining an available bandwidth estimate for the network connection; (b) determining a bandwidth target that is a fraction of the available bandwidth estimate, such that the bandwidth target is less than the available bandwidth estimate; (c) communicating data to the receiver system via the network connection using an unreliable protocol at a data rate that is substantially equal to the bandwidth target; (d) monitoring latency associated with the network connection; repeating (a), (b), (c), and (d) until a condition for exiting the first mode is satisfied; and exiting the first mode upon determining that the condition for exiting the first mode is satisfied; computing a latency threshold (latencythreshold) for the network connection, wherein the latency threshold computed for the network is set to a greater of value of (a) a minimum latency threshold value; and
(b) the smaller of the latency associated with the network connection plus a constant times a latency deviation value and a first latency value;communicate data to the receiver system in a second mode over the network connection, wherein communicating the data in the second mode comprises; (e) determining an available bandwidth estimate for the network connection; (f) determining a bandwidth target that is substantially equal to the available bandwidth estimate; (g) communicating data to the receiver system via the network connection using an unreliable protocol at a data rate that is substantially equal to or greater than the bandwidth target; (h) monitoring latency associated with the network connection; repeating (e), (f), (g), and (h) until a condition for exiting the second mode is satisfied; and exiting the second mode upon determining that the condition for exiting the second mode is satisfied; and alternate between the first mode and the second mode over the network connection. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
-
25. A system for communicating data using a plurality of network connections, the system comprising:
-
a processor; and a memory coupled to the processor, the memory configured to store a set of instructions which when executed by the processor cause the processor to; communicate data over the plurality of connections in a first mode, wherein communicating the data in the first mode comprises; (a) determining an available bandwidth estimate for each network connection in the plurality of network connections; (b) determining, for each network connection in the plurality of network connections, a bandwidth target that is a fraction of the available bandwidth estimate for the network connection, such that the bandwidth target is less than the available bandwidth estimate; (c) communicating, for each network connection in the plurality of network connections, data via the network connection using an unreliable protocol at a data rate that is substantially equal to the bandwidth target determined for the network connection; (d) monitoring latency associated with the plurality of network connections; repeating (a), (b), (c), and (d) until a condition for exiting the first mode is satisfied; and exiting the first mode upon determining that the condition for exiting the first mode is satisfied; computing a latency threshold (latencythreshold) for each network connection in the plurality of network connections, wherein the latency threshold computed for the network connection is set to a greater of value of (a) a minimum latency threshold value; and
(b) the smaller of the latency associated with the network connection plus a constant times a latency deviation value and a first latency value;communicating data over a first network connection of the plurality of network connections in a second mode, wherein communicating the data in the second mode comprises; (e) determining an available bandwidth estimate for each network connection in the plurality of network connections; (f) determining a penalty for the first network connection; (g) determining a bandwidth target for the first network connection based upon the available bandwidth estimate and the penalty determined for the first network connection; (h) communicating data via the first network connection using an unreliable protocol at a data rate that is substantially equal to or greater than the bandwidth target determined for the first network connection; (i) monitoring latency associated with the first network connection; repeating (e), (f), (g), (h), and (i) until a condition for exiting the second mode is satisfied; and exiting the second mode upon determining that a condition for exiting the second mode is satisfied; and alternating between the first mode and the second mode over the first network connection. - View Dependent Claims (26, 27, 28, 29, 30, 31)
-
Specification