IP Library Granted Patent US 8,750,155
Granted Patent B2
US 8,750,155 · App. 13/595,904 · Granted Jun 10, 2014

Conditional protocol control

Inventors: Bradley B. Harvell (Chandler, AZ); Joseph D. DePalo (Peoria, AZ); Michael M. Gordon (Paradise Valley, AZ); Jason L. Wolfe (Gilbert, AZ)
Assignee: Limelight Networks, Inc.
H04L47/193
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 8,750,155
App. No.
13/595,904
Granted
Jun 10, 2014
Kind
B2
Abstract

Techniques for modifying the performance of a transport layer protocol in response to a request for content are disclosed. A connection can be established between a content distribution server and an end user computer according to preconfigured parameters. When a request for content is received over the connection, the content distribution server can determine one or more parameters relating to the performance of the connection using information from the request. The content distribution server can modify the connection at the transport layer according to the one or more parameters. Thereafter, the transport layer can manage delivery of the requested content to the end user computer in accordance with the modified parameters. In various embodiments, the content distribution server includes a modified TCP protocol stack which adjusts timing, pacing, and buffer allocation associated with a connection in response to requests from an application-layer data source.

Claims (49)

1. A method for managing delivery of content in a system comprising a server and an end user computer, comprising:

establishing a first connection at the server for communicating with the end user computer;

receiving a request for content from the end user computer over the first connection, the request include a universal resource locator (URL);

determining one or more parameters relating to the performance of the first connection using information from the request, wherein the determined one or more parameters relate to utilization of available processing or memory capabilities of part or all of a system supporting the first connection;

determining one or more first values of attributes based on the URL and the one or more parameters;

modifying second values of attributes for the first connection at a transport layer to result in the determined one or more first values, the second values of the attributes for the first connection thereafter influencing utilization of the available processing or memory capabilities of the part or all of the system supporting the first connection;

changing, on a connection-specific basis, a connection protocol stack operator based upon the modified values of the attributes; and

sending the requested content from the server to the end user computer such that the transport layer manages delivery of the content in accordance with the modified second values of the attributes.

2. The method of claim 1 , wherein the one or more first values of attributes are further based on an estimated location of the end user computer.

3. The method of claim 1 , further comprising determining a latency characteristic of the first connection, wherein at least one of the second values of the attributes for the first connection is modified based on the latency characteristic.

4. The method of claim 1 , further comprising:

determining a connection type of the end user computer; and

determining a latency characteristic associated with the connection type, wherein at least one of the second values of the attributes for the first connection is modified based on the latency characteristic associated with the connection type of the end user computer.

5. The method of claim 1 , further comprising:

determining the size of the requested content; and

measuring a round trip travel time between the server and the end user computer when the data size exceeds a predetermined value, wherein at least one of the second values of the attributes for the first connection is modified based on the size of the requested content and the round trip travel time.

6. The method of claim 1 , further comprising determining an autonomous system from which the first connection is received, wherein at least one of the second values of the attributes for the first connection is modified based on network characteristics of the autonomous system.

7. The method of claim 1 , further comprising determining a link utilization between the server and an autonomous system of the end user computer, wherein at least one of the second values of the attributes for the first connection is modified based on the link utilization.

8. The method of claim 1 , further comprising determining a predetermined performance profile for the first connection using the information from the request, wherein at least one of the second values of the attributes for the first connection is modified based on the predetermined performance profile.

9. The method of claim 1 , further comprising:

determining whether the requested content is available at the server;

obtaining the requested content from a second server when the requested content is not available at the server; and

caching the requested content at the server for at least a predetermined time.

10. The method of claim 1 , wherein modifying the second values of the attributes for the first connection thereafter adjusts a timing of data transmission at the transport layer in accordance with the one or more parameters.

11. The method of claim 1 , wherein modifying the second values of the attributes for the first connection thereafter adjusts a transport layer send window associated with the first connection.

12. The method of claim 1 , wherein modifying the second values of the attributes for the first connection thereafter adjusts a burst size of the first connection so as to pace data transmission according to the one or more parameters.

13. A content distribution server, comprising:

a network interface having a plurality of ports configured to send and receive data over a connecting network;

a processor coupled to the network interface and configured to manage a plurality of connections to end user computers;

a protocol handler configured to establish the plurality of connections with the end user computers according to predetermined transport layer parameters of the content distribution server and to manage data transmission over the plurality of connections; and

a data source configured to supply requested content to the end user computers over the plurality of connections, wherein the data source is configured to monitor a first connection for a request to:

determine one or more parameters for the first connection based on the request, the determined one or more transport layer parameters relating to utilization of available processing or memory capabilities of part or all of a system supporting the first connection;

determine one or more first values of attributes based on a URL and the one or more parameters, the request including the URL;

direct the protocol handler to modify second values of attributes for the first connection to result in the determined one or more first values, the second values of the attributes for the first connection thereafter influencing utilization of the available processing or memory capabilities of the part or all of the system supporting the first connection; and

change a connection protocol stack operator based upon the modified second values of the attributes.

14. The content distribution server of claim 13 , wherein the one or more first values of attributes are further based on an estimated location of the end user computer.

15. The content distribution server of claim 13 , further comprising a protocol attribute information store having information relating data associated with a content request to one or more connection parameters, wherein the data source determines at least one of the first values based on information retrieved from the protocol attribute information store.

16. The content distribution server of claim 13 , wherein the data source determines a geographic region corresponding to a destination address of the first connection, and wherein at least one of the one or more first values is further based on the geographic region.

17. The content distribution server of claim 13 , wherein the data source determines an autonomous system associated with the first connection, and wherein at least one of the one or more first values is further based on network characteristics of the autonomous system.

18. The content distribution server of claim 13 , wherein the data source determines a latency characteristic associated with the first connection based on the information from the request and directs the protocol attribute selector to modify at least one of the second values of the attributes based on the latency characteristic.

19. The content distribution server of claim 13 , wherein the protocol handler is configured to adjust a timing of data transmission at a transport layer based on the one or more first values.

20. A computer program product comprising a non-transitory computer-readable medium encoded with one or more sequences of one or more instructions which, when executed by a processor, cause a computer to:

establishing a first connection at the server for communicating with an end user computer;

receiving a request for content from the end user computer over the first connection, the request include a universal resource locator (URL);

determining one or more parameters relating to the performance of the first connection using information from the request, wherein the determined one or more parameters relate to utilization of available processing or memory capabilities of part or all of a system supporting the first connection;

determining one or more first values of attributes based on the URL and the one or more parameters;

modifying second values of attributes for the first connection at a transport layer to result in the determined one or more first values, the second values of the attributes for the first connection thereafter influencing utilization of the available processing or memory capabilities of the part or all of the system supporting the first connection;

changing, on a connection-specific basis, a connection protocol stack operator based upon the modified values of the attributes; and

sending the requested content from the server to the end user computer such that the transport layer manages delivery of the content in accordance with the modified second values of the attributes.

Assignments (9)
RELEASE OF PATENT SECURITY AGREEMENT [RECORDED AT REEL/FRAME 065597/0406] Recorded Jul 9, 2025
From: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
To: UPLYNK, INC. (F/K/A EDGIO, INC.)
Reel/Frame 071875/0105 →
RELEASE OF PATENT SECURITY AGREEMENT [RECORDED AT REEL/FRAME 068763/0276] Recorded Jul 3, 2025
From: LYNROCK LAKE MASTER FUND LP
To: UPLYNK, INC. (F/K/A EDGIO, INC.); MOJO MERGER SUB, LLC
Reel/Frame 071818/0022 →
RELEASE OF PATENT SECURITY AGREEMENT [RECORDED AT REEL/FRAME 065597/0212] Recorded Jul 3, 2025
From: LYNROCK LAKE MASTER FUND LP
To: UPLYNK, INC. (F/K/A EDGIO, INC.); MOJO MERGER SUB, LLC
Reel/Frame 071817/0877 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2025
From: EDGIO, INC.
To: DRNC HOLDINGS, INC.
Reel/Frame 070071/0327 →
CHANGE OF NAME Recorded Sep 9, 2024
From: LIMELIGHT NETWORKS, INC.
To: EDGIO, INC.
Reel/Frame 068898/0281 →
PATENT SECURITY AGREEMENT Recorded Aug 23, 2024
From: EDGIO, INC.; MOJO MERGER SUB, LLC
To: LYNROCK LAKE MASTER FUND LP [LYNROCK LAKE PARTNERS LLC, ITS GENERAL PARTNER]
Reel/Frame 068763/0276 →
PATENT SECURITY AGREEMENT Recorded Nov 15, 2023
From: EDGIO, INC.; MOJO MERGER SUB, LLC
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
Reel/Frame 065597/0406 →
PATENT SECURITY AGREEMENT Recorded Nov 15, 2023
From: EDGIO, INC.; MOJO MERGER SUB, LLC
To: LYNROCK LAKE MASTER FUND LP [LYNROCK LAKE PARTNERS LLC, ITS GENERAL PARTNER]
Reel/Frame 065597/0212 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2014
From: HARVELL, BRADLEY B.; DEPALO, JOSEPH D.; GORDON, MICHAEL M.; WOLFE, JASON L.
To: LIMELIGHT NETWORKS, INC.
Reel/Frame 032788/0089 →
Continuity (3)
Continuation 12572981 · Oct 2, 2009
Continuation In Part PCTUS2009038361 · Mar 26, 2009
Related Publication 20130060893A1 · Mar 7, 2013