# US 12,003,532 B2 · Traffic-shaping HTTP proxy for denial-of-service protection

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

- Number: US 12,003,532 B2
- Document ID: US12003532B2
- Status: Granted
- Kind: B2
- Application number: 18/465,028
- Filed: 2023-09-11
- Published: 2023-12-28
- Granted: 2024-06-04
- Earliest claimed: 2021-05-27
- Assignees: Pantheon Systems, Inc.
- Applicants: Pantheon Systems, Inc.
- Inventors: David Timothy Strauss
- Web page: https://patentgrep.com/patent/US12003532B2

## CPC

- H04L 63/0281: {Proxies}
- H04L 63/1458: {Denial of Service}
- H04L 47/562: {Attaching a time tag to queues}
- H04L 47/622: {Queue service order}
- H04L 47/70: Admission control; Resource allocation
- H04L 47/724: at intermediate nodes, e.g. resource reservation protocol [RSVP]
- H04L 63/1425: {Traffic logging, e.g. anomaly detection}
- H04L 47/826: {Involving periods of time}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

In accordance with some aspects of the present disclosure, an apparatus is disclosed. In some embodiments, the apparatus includes a processor and a memory. In some embodiments, the memory includes programmed instructions that, when executed by the processor, cause the apparatus to receive a request from a client; determine family of metrics; schedule the request based on the family of metrics; and in response to satisfying one or more scheduling criteria, send the request to a backend server.

## Claims

### Claim 1

An apparatus comprising a processor and a memory, wherein the memory includes programmed instructions that, when executed by the processor, cause the apparatus to:
receive a request from a client;
determine a family of metrics, wherein the family of metrics includes numerically scored measures of backend responsiveness;
schedule the request based on the family of metrics; and
in response to satisfying one or more scheduling criteria, send the request to a backend server, wherein the family of metrics includes a sum of one or more backend times, wherein each backend time is associated with a respective one of one or more other requests, and wherein more recent backend times are weighted more heavily than less recent backend times.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein the family of metrics includes a cumulative backend utilization time.

### Claim 3 (depends on 1)

The apparatus of claim 1, wherein the family of metrics includes a cumulative backend queue time.

### Claim 4 (depends on 1)

The apparatus of claim 1, wherein the sum values more recent backend times more substantially than less recent backend times.

### Claim 5 (depends on 1)

The apparatus of claim 1, wherein the memory includes programmed instructions that, when executed by the processor, cause the apparatus to:
receive a response from the backend server; and
update the family of metrics at least based on a backend time of the request.

### Claim 6 (depends on 5)

The apparatus of claim 5, wherein the memory includes programmed instructions that, when executed by the processor, cause the apparatus to:
calculate the backend time using a time value received from the backend server as part of the response.

### Claim 7 (depends on 1)

The apparatus of claim 1, wherein scheduling includes assigning a delay, and wherein satisfying one or more scheduling criteria includes the delay elapsing.

### Claim 8 (depends on 7)

The apparatus of claim 7, wherein satisfying one or more scheduling criteria includes a rescheduling counter meeting or exceeding a rescheduling counter threshold when the delay elapses.

### Claim 9 (depends on 1)

The apparatus of claim 1, wherein satisfying one or more scheduling criteria includes determining that a buffer is out of space between an assigned location of the buffer and an end of the buffer.

### Claim 10

A non-transitory computer readable storage medium comprising instructions stored thereon that, when executed by a processor, cause the processor to:
receive a request from a client;
determine a family of metrics, wherein the family of metrics includes numerically scored measures of backend responsiveness;
schedule the request based on the family of metrics; and
in response to satisfying one or more scheduling criteria, send the request to a backend server, wherein the family of metrics includes a sum of one or more backend times, wherein each backend time is associated with a respective one of one or more other requests, and wherein more recent backend times are weighted more heavily than less recent backend times.

### Claim 11 (depends on 10)

The medium of claim 10, wherein the family of metrics includes a cumulative backend utilization time.

### Claim 12 (depends on 10)

The medium of claim 10, wherein the family of metrics includes a cumulative backend queue time.

### Claim 13 (depends on 10)

The medium of claim 10, wherein the sum values more recent backend times more substantially than less recent backend times.

### Claim 14 (depends on 10)

The medium of claim 10, wherein the memory includes programmed instructions that, when executed by the processor, cause the apparatus to:
receive a response from the backend server; and
update the family of metrics at least based on a backend time of the request.

### Claim 15 (depends on 14)

The medium of claim 14, further comprising instructions stored thereon that, when executed by the processor, cause the processor to:
calculate the backend time using a time value received from the backend server as part of the response.

### Claim 16

A computer-implemented method comprising:
receiving a request from a client;
determining a family of metrics, wherein the family of metrics includes numerically scored measures of backend responsiveness;
scheduling the request based on the family of metrics; and
in response to satisfying one or more scheduling criteria, sending the request to a backend server, wherein the family of metrics includes a sum of one or more backend times, wherein each backend time is associated with a respective one of one or more other requests, and wherein more recent backend times are weighted more heavily than less recent backend times.

### Claim 17 (depends on 16)

The method of claim 16, wherein the family of metrics includes a cumulative backend utilization time.

### Claim 18 (depends on 16)

The method of claim 16, wherein the family of metrics includes a cumulative backend queue time.

### Claim 19 (depends on 16)

The method of claim 16, wherein the sum values more recent backend times more substantially than less recent backend times.

### Claim 20 (depends on 16)

The method of claim 16, further comprising:
receiving a response from the backend server; and
updating the family of metrics at least based on a backend time of the request.
