IP Library Granted Patent US 12,003,796
Granted Patent B2
US 12,003,796 · App. 16/843,825 · Granted Jun 4, 2024

Context-aware content delivery

Inventors: Subramanian Varadarajan (Los Gatos, CA); Rosarin Jolly Roy Antonyraj (Santa Clara, CA); Kumaravel Senthivel (San Jose, CA)
Assignee: Palo Alto Networks, Inc.
H04N21/2393H04N21/2343H04N21/235H04N21/2385H04N21/2387H04N21/2402H04N21/47217H04N21/8166H04N21/84H04N21/8545
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,003,796
App. No.
16/843,825
Granted
Jun 4, 2024
Kind
B2
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 (75)

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.

2. 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.

3. 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.

4. 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.

5. 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.

6. 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.

7. 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.

8. 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.

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.

10. 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.

11. 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.

12. 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.

13. 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.

14. 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.

15. 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.

16. 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.

Assignments (5)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE LEGAL NAME OF THE 2ND INVENTOR PREVIOUSLY RECORDED AT REEL: 62790 FRAME: 264. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 3, 2024
From: VARADARAJAN, SUBRAMANIAN; ANTONYRAJ, ROSARIN JOLLY ROY
To: ZYCADA NETWORKS, INC.
Reel/Frame 066990/0347 →
NUNC PRO TUNC ASSIGNMENT Recorded Apr 3, 2024
From: SENTHIVEL, KUMARAVEL
To: ZYCADA NETWORKS, INC.
Reel/Frame 066991/0915 →
CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY DATA PREVIOUSLY RECORDED ON REEL 063900 FRAME 0586. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Aug 14, 2023
From: ZYCADA NETWORKS, INC.
To: PALO ALTO NETWORKS, INC.
Reel/Frame 064585/0057 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 8, 2023
From: ZYCADA NETWORKS, INC.,
To: ZYCADA NETWORKS, INC.; PALO ALTO NETWORKS, INC.
Reel/Frame 063900/0586 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2023
From: VARADARAJAN, SUBRAMANIAN; ANTONYRAJ, ROSARIN R.
To: ZYCADA NETWORKS, INC.
Reel/Frame 062790/0264 →
Continuity (2)
Provisional Application 62831150 · Apr 8, 2019
Related Publication 20200413111A1 · Dec 31, 2020