# US 7,079,546 B2 · Adaptive bandwidth throttling for network services

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

- Number: US 7,079,546 B2
- Document ID: US7079546B2
- Status: Granted
- Kind: B2
- Application number: 11/153,057
- Filed: 2005-06-15
- Published: 2005-11-03
- Granted: 2006-07-18
- Earliest claimed: 1996-07-02
- Assignees: Microsoft Corporation
- Inventors: Murali R. Krishnan
- Web page: https://patentgrep.com/patent/US7079546B2

## CPC

- H04L 69/163: In-band adaptation of TCP data exchange; In-band control procedures
- H04J 3/1682: {Allocation of channels according to the instantaneous demands of the users, e.g. concentrated multiplexers, statistical multiplexers}
- H04L 47/10: Flow control; Congestion control
- H04L 47/11: Identifying congestion
- H04L 47/15: {in relation to multipoint traffic (arrangements for broadcast or multicast in data networks H04L12/18)}
- H04L 47/19: at layers above the network layer (network arrangements for networked applications for scheduling or organising the servicing of application requests H04L67/60)
- H04L 47/2425: for supporting services specification, e.g. SLA
- H04L 47/26: using explicit feedback to the source, e.g. choke packets
- H04L 47/29: {using a combination of thresholds}
- H04L 47/32: by discarding or delaying data units, e.g. packets or frames
- H04L 47/70: Admission control; Resource allocation
- H04L 47/745: {Reaction in network}
- H04L 47/822: {Collecting or measuring resource availability data}
- H04L 47/825: {Involving tunnels, e.g. MPLS}
- H04L 67/61: taking into account QoS or priority requirements
- H04L 69/16: Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04J: MULTIPLEX COMMUNICATION (transmission in general H04B; peculiar to transmission of digital information H04L5/00; systems for the simultaneous or sequential transmission of more than one television signal H04N7/08; in exchanges H04Q11/00; stereophonic systems H04S)

## Abstract

The adaptive bandwidth throttling system implements a graceful diminution of services to the clients by delaying a first class of services provided by a network server in response to the effective bandwidth utilized by this network server exceeding a first threshold. If the demand for the bandwidth by this network server exceeds a second threshold, the bandwidth throttling system escalates the throttling response and blocks the first class of services from execution and can also concurrently delay execution of a second class of services. The implementation of the throttling process can be varied, to include additional levels of response or finer gradations of the response, to include subsets of a class of services. In addition, the threshold levels of bandwidth used to trigger the throttling response can be selected as desired by the system administrator.

## Claims

### Claim 1

One or more computer-readable media having stored thereon a plurality of instructions that, when executed by one or more processors of a computer, cause the one or more processors to:
generate a bandwidth value indicating an average bandwidth used by a server to perform previous server operations;
receive a request for the server to perform an additional server operation;
compare the bandwidth value to a threshold; and
restrict the request in a first manner if the bandwidth value exceeds the threshold, wherein to restrict the request in the first manner is to prevent the request from being presented to the server.

### Claim 2 (depends on 1)

One or more computer-readable media as recited in claim 1, wherein the previous server operations and the additional server operation include one or more of read operations, write operations, and transmit operations.

### Claim 3

A host system comprising:
at least one network server;
an asynchronous thread queue to receive a request from a client process, to be performed by one of the at least one network server; and
a bandwidth throffling system, coupled to the asynchronous thread queue, to determine whether performance of the request by the network server is to be restricted based at least in part on an average bandwidth used by the network sewer in performing previous operations.

### Claim 4 (depends on 3)

A host system as recited in claim 3, further comprising an ancillary function driver, coupled to the asynchronous thread queue, to couple the host system to a network.

### Claim 5

A method comprising:
generating a value indicating a bandwidth used by a sewer to perform previous server operations;
receiving a request for the server to perform an additional server operation; and
restricting the request in a first manner if the value exceeds a first threshold but does not exceed a second threshold, and restricting the request in a second manner if the value exceeds the second threshold, wherein the restricting comprises restricting the request in the first manner or the second manner only if the request is of first type.

### Claim 6 (depends on 5)

A method as recited in claim 5, wherein the first manner comprises delaying the request.

### Claim 7 (depends on 5)

A method as recited in claim 5, wherein the second manner comprises blocking the request.

### Claim 8

A method as recited in etaim 5, wherein the restricting the request in the first manner comprises preventing the request from being presented to the server.

### Claim 9 (depends on 9)

A method as recited in claim 9, wherein the restricting the request in the first manner comprises preventing the request from entering a request queue of the server.

### Claim 10 (depends on 5)

A method as recited in claim 5, wherein the value indicates an average bandwidth used by the server.

### Claim 11 (depends on 5)

A method as recited in claim 5, wherein the first type comprises a read operation.

### Claim 12 (depends on 5)

A method as recited in claim 5, wherein the first type comprises a write operation.

### Claim 13 (depends on 5)

A method as recited in claim 5, wherein the first type comprises a transmit operation.
