# US 12,003,796 B2 · Context-aware content delivery

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

- Number: US 12,003,796 B2
- Document ID: US12003796B2
- Status: Granted
- Kind: B2
- Application number: 16/843,825
- Filed: 2020-04-08
- Published: 2020-12-31
- Granted: 2024-06-04
- Earliest claimed: 2019-04-08
- Assignees: Palo Alto Networks, Inc.
- Applicants: Palo Alto Networks, Inc.
- Inventors: Subramanian Varadarajan; Rosarin Jolly Roy Antonyraj; Kumaravel Senthivel
- Web page: https://patentgrep.com/patent/US12003796B2

## CPC

- H04L 65/80: Responding to QoS
- H04N 21/2393: {involving handling client requests (scheduling or organising the servicing of application requests H04L67/60)}
- H04L 65/612: for unicast
- H04L 65/752: adapting media to network capabilities
- H04L 65/765: {intermediate}
- H04L 67/101: based on network conditions
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- H04N 21/2343: involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements {(video transcoding H04N19/40; media packet handling at the source H04L65/762)}
- H04N 21/235: Processing of additional data, e.g. scrambling of additional data or processing content descriptors
- H04N 21/2385: Channel allocation (H04N21/266 takes precedence); Bandwidth allocation (H04N21/24 takes precedence {; allocation of channels according to the instantaneous demands of the users in time-division multiplex systems H04J3/1682; admission control, resource allocation in open networks H04L12/5692; arrangements for maintenance or administration in data switching networks involving bandwidth and capacity management H04L41/0896; negotiating bandwidth in wireless networks H04W28/16})
- H04N 21/2387: Stream processing in response to a playback request from an end-user, e.g. for trick-play
- H04N 21/2402: {Monitoring of the downstream path of the transmission network, e.g. bandwidth available (traffic monitoring in data switching networks H04L43/00; monitoring data switching networks utilization H04L43/0876)}
- H04N 21/47217: {for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks (specific graphical features in visual interfaces H04N21/4312)}
- H04N 21/8166: {involving executable data, e.g. software (arrangements for executing specific programs G06F9/44; broadcasting computer programmes in broadcast systems H04H20/91; involving the movement of software or configuration parameters H04L67/34)}
- H04N 21/84: Generation or processing of descriptive data, e.g. content descriptors {(systems specially adapted for using meta-information in broadcast systems H04H60/73)}
- H04N 21/8545: for generating interactive applications
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

This present application relates to delivery of data content across a mesh network of proxy servers based on network context. In some embodiments, optimal paths for delivering the application or data content are computed and selected dynamically based upon context of network traffic. In some embodiments, large data content, such as video content, is segmented dynamically based on network context to reduce delay between a request for the video content by a client device and start of playback of the requested video content at the client device. In some embodiments, a server determines a segmentation profile for segmenting the video content into a plurality of video segments each having a segment size determined based on link performance metrics, generates a manifest file referencing the plurality of video segments in a temporal order and provide the manifest file to a client device.

## Claims

### Claim 1

A server comprising:
one or more processors configured to:
receive, from a first application executing on a first client device, a first request to provide first content to the first client device;
determine a first context for delivering the first content to the first client device, wherein the first context is based, at least partly, on network performance metrics of a mesh network of proxy servers, type of the first content, and performance information of the first client device;
determine a first segmentation profile for segmenting the first content into a first plurality of segments based on the first context;
generate a first manifest file based, at least in part, on the first segmentation profile; and
deliver the first content based on the first manifest file.

### Claim 2 (depends on 1)

The server of claim 1, wherein the one or more processors are further configured to:
receive, from a second application executing on a second client device, a second request to provide the first content to the second client device;
determine a second context for delivering the first content to the second client device, wherein the second context is based, at least partly, on network performance metrics of the mesh network of proxy servers, type of the first content, and performance information of the second client device;
determine a second segmentation profile for segmenting the first content into a second plurality of segments based on the second context;
generate a second manifest file based, at least in part, on the second segmentation profile; and
deliver the first content based on the second manifest file.

### Claim 3 (depends on 2)

The server of claim 2, wherein the one or more processors are further configured to:
receive, from the first application executing on the first client device, a third request to provide a second content to the first client device;
determine a third context for delivering the second content to the first client device, wherein the third context is based, at least partly, on the network performance metrics of the mesh network, type of the second content, and the performance information of the first client device;
determine a third segmentation profile for segmenting the second vidco content into a third plurality of segments based on the third context;
generate a third manifest file based, at least in part, on the third segmentation profile; and
deliver the second content based on the third manifest file.

### Claim 4 (depends on 2)

The server of claim 2, wherein the one or more processors are further configured to, for each respective segment in the first plurality of segments:
determine a respective segment size of the respective segment based on the first context;
determine if a respective segment file corresponding to the respective segment is present in one or more storage devices accessible by the server; and
generate the respective segment file in response to the determination that the respective segment file is not present in the one or more storage devices.

### Claim 5 (depends on 4)

The server of claim 4, wherein the first manifest file includes the respective segment size and a respective network location for the respective segment file corresponding to each respective segment in the first plurality of segments.

### Claim 6 (depends on 1)

The server of claim 1, wherein the network performance metrics include one or more of:
bytes transmitted per second and per connection through each respective node in the mesh network;
bytes received per second and per connection by the respective node;
requests per second per connection in first links of the mesh network;
incoming packet loss per network address in the first links;
outgoing packet loss per network address in the first links;
latency per network address in the first links;
bandwidth per network address in the first links;
jitter per network address in the first links; and
network utilization in the first links.

### Claim 7 (depends on 1)

The server of claim 1, wherein the performance information of the first client device is based on historical signals of past interactions between the first client device and the server, the historical signals including some or all of request cadence, re-transmission requests and performance information collected by the server.

### Claim 8 (depends on 1)

The server of claim 1, wherein the one or more processors are further configured to:
determine a network path from the server to the first client device; and
determine the first network links in the mesh network based the network path.

### Claim 9

A method comprising:
receiving, by a server from a first application executing on a first client device, a first request to provide first content to the client device;
determining a first context for delivering the first content to the first client device, wherein the first context is based, at least partly, on network performance metrics of a mesh network of proxy servers, type of the first content and performance information of the first client device;
determining a first segmentation profile for segmenting the first content into a first plurality of segments based on the first context;
generating a first manifest file based on the first segmentation profile; and
delivering the first content based on the first manifest file.

### Claim 10 (depends on 9)

The method of claim 9, further comprising,
receiving, from a second application executing on a second client device, a second request to provide the first content to the second client device;
determining a second context for delivering the first content to the second client device, wherein the second context is based, at least partly, on network performance metrics of the mesh network, the type of the first content, and performance information of the second client device;
determining a second segmentation profile for segmenting the first content into a second plurality of segments based on the second context;
generating a second manifest file based on the second segmentation profile; and
delivering the first content based on the second manifest file.

### Claim 11 (depends on 10)

The method of claim 10, further comprising:
receiving, from the first application executing on the first client device, a third request to provide a second content to the first client device;
determining a third context for delivering the second content to the first client device, wherein the third context is based, at least partly, on the network performance metrics of the mesh network, type of the second content, and the performance information of the first client device;
determining a third segmentation profile for segmenting the second content into a third plurality of segments based on the third context;
generating a third manifest file based on the third segmentation profile; and
delivering the second content based on the third manifest file.

### Claim 12 (depends on 10)

The method of claim 10, further comprising, for each respective segment in the first plurality of segments:
determining a respective segment size of the respective segment based on the first context;
determining if a respective segment file corresponding to the respective segment is present in one or more storage devices accessible by the server; and
generating the respective segment file in response to the determination that the respective segment file is not present in the one or more storage devices.

### Claim 13 (depends on 12)

The method of claim 12, wherein the first manifest file includes the respective segment size and a respective network location for the respective segment file corresponding to the respective segment in the first plurality of segments.

### Claim 14 (depends on 9)

The method of claim 9, wherein the network performance metrics include one or more of:
bytes transmitted per second and per connection through each respective node in the mesh network;
bytes received per second and per connection by the respective node;
requests per second per connection in first links of the mesh network;
incoming packet loss per network address in the first links;
outgoing packet loss per network address in the first links;
latency per network address in the first links;
bandwidth per network address in the first links;
jitter per network address in the first links; and
network utilization in the first links.

### Claim 15 (depends on 9)

The method of claim 9, wherein the performance information of the first client device is based on historical signals of past interactions between the first client device and the server, the historical signals including some or all of request cadence, re-transmission requests and performance information collected by the server.

### Claim 16 (depends on 9)

The method of claim 9, further comprising:
determining a network path from the server to the first client device; and
determining first network links in the mesh network based on the network path.
