# US 8,570,864 B2 · Kernel awareness of physical environment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,570,864 B2
- Document ID: US8570864B2
- Status: Granted
- Kind: B2
- Application number: 12/970,952
- Filed: 2010-12-17
- Published: 2012-06-21
- Granted: 2013-10-29
- Earliest claimed: 2010-12-17
- Assignees: Microsoft Corporation
- Applicants: Jin Li; Hua Chen; Sourabh Jain; Sanjeev Mehrotra
- Inventors: Jin Li; Hua Chen; Sourabh Jain; Sanjeev Mehrotra
- Web page: https://patentgrep.com/patent/US8570864B2

## CPC

- H04L 41/0816: the condition being an adaptation, e.g. in response to network events
- H04L 43/04: Processing captured monitoring data, e.g. for logfile generation
- H04L 43/0894: Packet rate
- H04L 47/263: Rate modification at the source after receiving feedback
- H04L 47/12: Avoiding congestion; Recovering from congestion
- H04L 47/193: at the transport layer, e.g. TCP related
- H04L 47/20: Traffic policing
- H04L 47/22: Traffic shaping
- H04L 47/2408: for supporting different services, e.g. a differentiated services [DiffServ] type of service
- H04L 47/2416: Real-time traffic
- H04L 47/2441: relying on flow classification, e.g. using integrated services [IntServ]
- H04L 47/34: ensuring sequence integrity, e.g. using sequence numbers
- Y02D 30/50: in wire-line communication networks, e.g. low power modes or reduced link rate
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

Described are techniques to use adaptive learning to control bandwidth or rate of transmission of a computer on a network. Congestion observations such as packet delay and packet loss are used to compute a congestion signal. The congestion signal is correlated with information about actual congestion on the network, and the transmission rate is adjusted according to the degree of correlation. Transmission rate may not adjust when packet delay or packet loss is not strongly correlated with actual congestion. The congestion signal is adaptively learned. For instance, the relative effects of loss and delay on the congestion signal may change over time. Moreover, an operating congestion level may be minimized by adaptive adjustment.

## Claims

### Claim 1

A method performed by a transmitting computer that originally transmits over a network comprised of links to receiving computers, the method comprising:
transmitting packets over the network to destination computers, wherein the transmitting is performed at a transmitting rate that changes over time;
obtaining network observations that at times indicate congestion of a portion of the network carrying packets transmitted by the transmitting computer; and
changing the transmitting rate of the transmitting computer by correlating the network observations with previous rates of transmission of the transmitting computer, wherein a congestion level signal is computed based on the network observations, and wherein the changing is performed such that an amount of rate adaptation is proportional to a computed degree of correlation between the congestion level signal and computed actual congestion, and wherein an operating congestion level used for changing the transmitting rate corresponds to a rate of transmission at or above which transmitted packets will experience observable loss and/or delay as a result of congestion of the portion of the network.

### Claim 2 (depends on 1)

A method according to claim 1, wherein the network observations comprise information about loss of packets transmitted by the transmitted computer, or information about delay of packets transmitted by the transmitting computer, or ECN (explicit congestion notification) marking, or a combination thereof.

### Claim 3 (depends on 1)

A method according to claim 1, wherein the changing the transmitting rate comprises dynamically adapting the operating congestion level of the transmitting computer; and
whenever the current congestion level signal is above the operating congestion level, the transmitting rate is decreased;
whenever the current congestion level signal is below the operating congestion level, the transmitting rate is increased.

### Claim 4 (depends on 1)

A method according to claim 1, further comprising finding a lowest achievable congestion level based on statistics of the network observations during periods of time determined to have no network congestion.

### Claim 5 (depends on 4)

A method according to claim 4, further comprising finding correlation between the congestion level signal and congestion level during periods of congestion by using the congestion level signal as a predictor of the rate of transmitting.

### Claim 6

One or more computer-readable storage media storing information to enable a computer to perform a process, the process comprising:
performing rate control to control rate of transmission of the computer onto a network, wherein the rate control controls the rate of transmission according to a target operating congestion level; and
dynamically adjusting parameters of a utility maximization framework executing on the computer to dynamically adapt the target operating congestion level, wherein the target operating congestion level comprises a level of congestion such that if current measured congestion is below the operating congestion level then increasing the rate of transmission will not increase congestion and if the current measured congestion is above the operating congestion level then decreasing the rate of transmission will decrease congestion, and wherein the adjusting the parameters alters both the target operating congestion level and alters how the rate of transmission is adapted.

### Claim 7 (depends on 6)

One or more computer-readable storage media according to claim 6, wherein the adjusting causes the operating congestion level to increase when new transmission control protocol (TCP) flows start.

### Claim 8 (depends on 7)

One or more computer-readable storage media according to claim 7, wherein the adjusting causes the operating congestion level to lower when the TCP flows finish.

### Claim 9 (depends on 6)

One or more computer-readable storage media according to claim 6, the process further comprising decreasing the operating congestion level to a lowest achievable bound in the presence of conforming flows, conforming flows comprising flows on the network that are rate-controlled by other instances of the process executing on other computers on the network.

### Claim 10 (depends on 6)

One or more computer-readable storage media according to claim 6, further comprising adjusting the parameters at a first frequency, and adjusting the operating rate of transmission, according to the parameters, at a second frequency.

### Claim 11 (depends on 10)

One or more computer-readable storage media according to claim 10, wherein the second frequency is greater than the first frequency, whereby the rate of transmission is updated more frequently than the parameters.

### Claim 12 (depends on 6)

One or more computer-readable storage media according to claim 6, wherein the target congestion level is independent of the rate of transmission.

### Claim 13

A method performed by a computer transmitting packets on a network, the method comprising:
repeatedly obtaining network information comprising information indicating delay and/or loss of packets transmitted by the computer;
using the network information to adaptively learn how to form a congestion signal that is used to control a rate of transmission of the computer according to an operating congestion level, the congestion signal comprising information about queue times of packets or about packet loss; and
automatically learning the operating congestion level, wherein the rate of transmission is lowered and raised according to whether a current congestion level is above or below the operating congestion level.

### Claim 14 (depends on 13)

A method according to claim 13, wherein the learning comprises adjusting parameters of a regression computation to control the rate of transmission.

### Claim 15 (depends on 13)

A method according to claim 13, wherein the network information comprises at least a first factor and a second factor, respectively comprising a different one of: loss information, delay information, explicit congestion notification (ECN) markings, or round trip times.

### Claim 16 (depends on 15)

A method according to claim 15, wherein, according to the adaptive learning, the first and second factors have varying relative contribution to the congestion signal.

### Claim 17 (depends on 13)

A method according to claim 13, wherein the using the network information to adaptively learn how to form a congestion signal comprises:
measuring loss, delay, and ECN (explicit congestion notification) marking at different transmission rates;
performing a linear regression to calculate a change rate of loss, delay, and ECN marking with regard to the change rate; and
forming the congestion signal by using the change rate to combine loss, delay, and ECN marking into an aggregated congestion signal.
