# US 10,455,046 B2 · Choreographed caching

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

- Number: US 10,455,046 B2
- Document ID: US10455046B2
- Status: Granted
- Kind: B2
- Application number: 15/676,607
- Filed: 2017-08-14
- Published: 2017-11-30
- Granted: 2019-10-22
- Earliest claimed: 2014-09-22
- Assignees: Belkin International, Inc.
- Applicants: Belkin International, Inc.
- Inventors: Ryan Yong Kim
- Web page: https://patentgrep.com/patent/US10455046B2

## CPC

- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- H04L 12/2834: {Switching of information between an external network and a home network (access arrangements H04L12/2856)}
- H04L 45/742: {Route cache; Operation thereof}
- H04L 49/252: {Store and forward routing}
- H04L 63/0428: {wherein the data content is protected, e.g. by encrypting or encapsulating the payload}
- H04L 63/0464: {using hop-by-hop encryption, i.e. wherein an intermediate entity decrypts the information and re-encrypts it before forwarding it}
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L 67/2885: Hierarchically arranged intermediate devices, e.g. for hierarchical caching
- H04L 67/5681: Pre-fetching or pre-delivering data based on network characteristics
- H04L 67/5682: Policies or rules for updating, deleting or replacing the stored data
- H04L 67/60: Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources (admission control or resource allocation H04L47/70)
- H04L 63/0471: {applying encryption by an intermediary, e.g. receiving clear information at the intermediary and encrypting the received information at the intermediary before forwarding}
- H04L 63/168: {above the transport layer}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A routing device capable of performing application layer data caching is described. Application data caching at a routing device can alleviate the bottleneck that an application data host may experience during high demands for application data. Requests for the application data can also be fulfilled faster by eliminating the network delays for communicating with the application data host. The techniques described can also be used to perform analysis of the underlying application data in the network traffic transiting though a routing device.

## Claims

### Claim 1

A computer implemented method comprising:
monitoring, by a computing device, requests received on a plurality of routing devices for application data corresponding to a network resource identifier;
aggregating the requests received over a caching time window to derive an aggregated set of past application data including the requests received on the plurality of routing devices;
determining, using the set of past application data, one or more data request patterns associated with the plurality of routing devices and the application data;
determining, using the data request patterns, a forecast of demand for future application data; and
in response to determining the forecast of demand for the future application data, transmitting a communication including a preemptive notification to one or more of the plurality of routing devices to cache future application data based on the forecast of demand, wherein the communication is transmitted to the one or more of the plurality of routing devices before demand for the application data is expected.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
notifying one or more additional routing devices that have not received a request for the application data to cache the application data.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
instructing one or more of the plurality of routing devices to push the application data to the one or more additional routing devices.

### Claim 4 (depends on 1)

The method of claim 1, wherein notifying the one or more of the plurality of routing devices to cache the application data includes notifying each of the one or more of the plurality of routing devices to cache a different portion of the application data.

### Claim 5 (depends on 1)

The method of claim 1, wherein the computing device is a routing device of the plurality of routing devices.

### Claim 6

A system, comprising: one or more data processors; and
a non-transitory computer readable storage medium containing instructions which when executed on the one or more data processors, cause the one or more data processors to perform operations including:
monitoring, by a computing device, requests received on a plurality of routing devices for application data corresponding to a network resource identifier;
aggregating the requests received over a caching time window to derive an aggregated set of past application data including the requests received on the plurality of routing devices;
determining, using the set of past application data, one or more data request patterns associated with the plurality of routing devices and the application data;
determining, using the set of data request patterns, a forecast of demand for future application data; and
in response to determining the forecast of demand for the future application data, transmitting a communication including a preemptive notification to one or more of the plurality of routing devices to cache future application data based on the forecast of demand, wherein the communication is transmitted to the one or more of the plurality of routing devices before demand for the application data is expected.

### Claim 7 (depends on 6)

The system of claim 6, wherein the operations further include:
notifying one or more additional routing devices that have not received a request for the application data to cache the application data.

### Claim 8 (depends on 7)

The system of claim 7, wherein the operations further include:
instructing one or more of the plurality of routing devices to push the application data to the additional routing devices.

### Claim 9 (depends on 6)

The system of claim 6, wherein notifying the one or more of the plurality of routing devices to cache the application data includes notifying each of the one or more of the plurality of routing devices to cache a different portion of the application data.

### Claim 10 (depends on 6)

The system of claim 6, wherein the computing device is a routing device of the plurality of routing devices.

### Claim 11

A computer-program product tangibly embodied in a non-transitory machine-readable storage medium, including instructions configured to cause a data processing apparatus to perform operations comprising:
monitoring, by a computing device, requests received on a plurality of routing devices for application data corresponding to a network resource identifier;
aggregating the requests received over a caching time window to derive an aggregated set of past application data including the requests received on the plurality of routing devices;
determining, using the set of past application data, one or more data request patterns associated with the plurality of routing devices and the application data;
determining, using the data request patterns, a forecast of demand for future application data; and
in response to determining the forecast of demand for the future application data, transmitting a communication including a preemptive notification to one or more of the plurality of routing devices to cache future application data based on the forecast of demand, wherein the communication is transmitted to the one or more of the plurality of routing devices before demand for the application data is expected.

### Claim 12 (depends on 11)

The computer-program product of claim 11, wherein the operations further include:
notifying one or more additional routing devices that have not received a request for the application data to cache the application data.

### Claim 13 (depends on 12)

The computer-program product of claim 12, wherein the operations further include:
instructing one or more of the plurality of routing devices to push the application data to the additional routing devices.

### Claim 14 (depends on 11)

The computer-program product of claim 11, wherein notifying the one or more of the plurality of routing devices to cache the application data includes notifying each of the one or more of the plurality of routing devices to cache a different portion of the application data.

### Claim 15 (depends on 11)

The computer-program product of claim 11, wherein the computing device is a routing device of the plurality of routing devices.
