IP Library Granted Patent US 9,577,935
Granted Patent B2
US 9,577,935 · App. 14/252,974 · Granted Feb 21, 2017

Unified congestion control for real-time media support

Inventors: Xiaoqing Zhu (Austin, TX); Rong Pan (Saratoga, CA)
Assignee: Cisco Technology, Inc.
H04L47/12H04L47/11H04L47/283H04L47/38H04L47/801H04L65/80
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,577,935
App. No.
14/252,974
Granted
Feb 21, 2017
Kind
B2
Abstract

Various implementations disclosed herein enable congestion control systems and methods that are agnostic of the availability of congestion notification types, and are simultaneously responsive to multiple types of network congestion indicators—including both implicit (e.g., loss and delay) and explicit (e.g., marking) congestion indicators. For example, some implementations include a congestion control method that includes obtaining a composite congestion indicator value associated with multiple types of network congestion indicators, and determining a reference rate value based on a function of the composite congestion indicator value. The composite congestion indicator value represents a combination of one or more delay values associated with respective types of network congestion indicators. The reference rate value is representative of a baseline transmission rate from the first device that at least partially mitigates network congestion signaled by the network congestion indicators.

Claims (40)

1. A method of congestion control comprising:

at a first device configured to at least transmit data over a network, the first device including a processor and non-transitory memory:

obtaining a composite congestion indicator value, wherein the composite congestion indicator value is representative of a combination of two or more delay values associated with two or more respective types of network congestion indicators;

determining a reference rate value based on a function of the composite congestion indicator value, wherein the reference rate value is representative of a baseline transmission rate from the first device that at least partially mitigates network congestion indicated by the composite congestion indicator value;

determining a target encoder rate value based on a function of the reference rate value and one or more performance constraint values of at least one of a data source or a data service provided over the network; and

providing the target encoder rate value to a video encoder in order to adjust the encoding rate of the video encoder.

2. The method of claim 1 , wherein the reference rate value is constrained by one or more performance constraint values of at least one of the data source and the data service.

3. The method of claim 1 , further comprising:

adjusting a sending rate value of the first device in order to set the sending rate value within a capacity available to the first device from the network, wherein the sending rate value is determined as a function of the reference rate value and one or more performance constraint values.

4. The method of claim 1 , wherein the one or more performance constraint values include at least one of a dynamic range associated with a video encoder provided as the data source, a priority weight value, an estimate of expected one-way propagation path delay and an estimate of the size of a rate shaping buffer.

5. The method of claim 1 , wherein the one or more performance constraint values include an estimate of the size of a rate shaping buffer.

6. The method of claim 5 , wherein the target encoder rate value is less than the reference rate value in proportion to the estimate of the size of the rate shaping buffer.

7. The method of claim 1 , wherein an output rate of the video encoder tracks the target encoder rate.

8. The method of claim 1 , wherein determining the reference rate value comprises:

determining a delay correction value using a difference between respective timestamps of a pair of packets associated with a data service; and

calculating the reference rate value based on a function including the delay correction value.

9. The method of claim 8 , wherein the delay correction value is determined using a linear prediction function.

10. The method of claim 1 , wherein the two or more types of network congestion indicator values include at least one of an estimate of per-packet drops, an estimate of one way transmission delay, an estimate of round-trip transmission delay, an implicit congestion notification indicator value, or an explicit congestion notification marking.

11. The method of claim 1 , wherein obtaining the composite congestion indicator value includes receiving the composite congestion indicator value in response to a data transmission from the first device.

12. The method of claim 11 , wherein obtaining the composite congestion indicator value includes receiving the composite congestion indicator from a second device configured to receive data transmissions from the first device.

13. The method of claim 1 , wherein obtaining the composite congestion indicator value includes determining an equivalent delay value as a function of the two or more respective delay values.

14. The method of claim 13 , wherein obtaining the composite congestion indicator value includes determining the composite congestion indicator value using a time-smoothing function of the equivalent delay value.

15. The method of claim 14 , wherein determining the time-smoothing function includes determining an exponential averaging function of the equivalent delay value.

16. The method of claim 1 , further comprising:

determining two or more respective delay values associated with two or more types of network congestion indicator values; and

generating a composite congestion indicator value, wherein the composite congestion indicator value is representative of a combination of two or more respective delay values associated with two or more types of network congestion indicator values.

17. The method of claim 16 , further comprising transmitting the composite congestion indicator value to a transmitting device.

18. The method of claim 1 , wherein the target encoder rate value is less than the reference rate value.

19. Software encoded on a non-transitory memory, the software including instructions that when executed cause a first device to:

obtain a composite congestion indicator value, wherein the composite congestion indicator value is representative of a combination of two or more delay values associated with two or more respective types of network congestion indicators;

determine a reference rate value based on a function of the composite congestion indicator value, wherein the reference rate value is representative of a baseline transmission rate from the first device that at least partially mitigates network congestion indicated by the composite congestion indicator value;

determining a target encoder rate value based on a function of the reference rate value and one or more performance constraint values of at least one of a data source or a data service provided over the network; and

providing the target encoder rate value to a video encoder in order to adjust the encoding rate of the video encoder.

20. A first device comprising:

one or more processors; and

non-transitory memory including one or more module software modules, that when executed by the one or more processors, cause the first device to:

obtain a composite congestion indicator value, wherein the composite congestion indicator value is representative of a combination of two or more delay values associated with two or more respective types of network congestion indicators;

determine a reference rate value based on a function of the composite congestion indicator value, wherein the reference rate value is representative of a baseline transmission rate from the first device that at least partially mitigates network congestion indicated by the composite congestion indicator value;

determining a target encoder rate value based on a function of the reference rate value and one or more performance constraint values of at least one of a data source or a data service provided over the network; and

providing the target encoder rate value to a video encoder in order to adjust the encoding rate of the video encoder.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2014
From: ZHU, XIAOQING; PAN, RONG
To: CISCO TECHNOLOGY, INC.
Reel/Frame 032674/0154 →
Continuity (1)
Related Publication 20150295827A1 · Oct 15, 2015