IP Library Granted Patent US 8,274,909
Granted Patent B2
US 8,274,909 · App. 12/572,981 · Granted Sep 25, 2012

Conditional protocol control

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,274,909
App. No.
12/572,981
Granted
Sep 25, 2012
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 (59)

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;

determining a set of parameters relating to the performance of the first connection using information from the request, wherein the determined set of parameters relate to utilization of available processing or memory capabilities of part or all of a system supporting the first connection, link capacity, and a size or type of the content;

modifying values of attributes for the first connection at a transport layer based on the set of parameters, the 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 values of the attributes.

2. The method of claim 1 , further comprising:

determining a latency characteristic of the first connection; and

modifying at least one of the values of the attributes for the first connection at the transport layer based on the latency characteristic.

3. The method of claim 1 , further comprising:

determining a connection type of the end user computer;

determining a latency characteristic associated with the connection type; and

modifying at least one of the values of the attributes for the first connection at the transport layer based on the latency characteristic associated with the connection type of the end user computer.

4. The method of claim 1 , further comprising:

determining the size of the requested content;

measuring a round trip travel time between the server and the end user computer when the data size exceeds a predetermined value; and

modifying at least one of the values of the attributes for the first connection at the transport layer based on the size of the requested content and the round trip travel time.

5. The method of claim 1 , further comprising:

determining an autonomous system (AS) from which the first connection is received; and

modifying at least one of the values of the attributes for the first connection based on network characteristics of the autonomous system.

6. The method of claim 1 , further comprising:

determining a link utilization between the server and an autonomous system of the end user computer; and

modifying at least one of the values of the attributes for the first connection based on the link utilization.

7. The method of claim 1 , further comprising:

determining a predetermined performance profile for the first connection using the information from the request; and

modifying at least one of the values of the attributes for the first connection based on the predetermined performance profile.

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

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

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

11. The method of claim 1 , wherein modifying the attributes for the first connection thereafter adjusts a burst size of the first connection so as to pace data transmission according to the set of parameters.

12. 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 a set of transport layer parameters for the first connection based on the request, the determined set of transport layer parameters relating to utilization of available processing or memory capabilities of part or all of a system supporting the first connection, link capacity, and a size or type of the content,

direct the protocol handler to modify values of attributes for the first connection based on the set of transport layer parameters independently of other connections of the content distribution server, the 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 values of the attributes.

13. The content distribution server of claim 12 , 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 one or more transport layer parameters of the set of transport layer parameters based on information retrieved from the protocol attribute information store.

14. The content distribution server of claim 12 , wherein the data source determines a geographic region corresponding to a destination address of the first connection, and wherein at least one parameter of the set of the transport layer parameters is determined based on the geographic region.

15. The content distribution server of claim 12 , wherein the data source determines an autonomous system (AS) associated with the first connection, and wherein at least one parameter of the set of transport layer parameters is determined based on network characteristics of the autonomous system.

16. The content distribution server of claim 12 , 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 values of the attributes for the first connection at the transport layer based on the latency characteristic.

17. The content distribution server of claim 12 , wherein the protocol handler is configured to adjust a timing of data transmission at the transport layer based on the one or more parameters of the set of transport layer parameters.

18. The content distribution server of claim 12 , wherein the protocol handler is configured to adjust a size of a transport layer send window associated with the first connection.

19. The content distribution server of claim 12 , wherein the protocol handler is configured to adjust a burst size of the first connection so as to pace data transmission according to the set of transport layer parameters.

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

determining a set of parameters relating to the performance of the first connection using information from the request, wherein determined set of parameters relate to utilization of available processing or memory capabilities of part or all of a system supporting the first connection, link capacity, and a size or type of the content;

modifying values of attributes for the first connection at the transport layer based on the set of parameters, the 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 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 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 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 →
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 →
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: LYNROCK LAKE MASTER FUND LP [LYNROCK LAKE PARTNERS LLC, ITS GENERAL PARTNER]
Reel/Frame 065597/0212 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2009
From: HARVELL, BRADLEY B.; DEPALO, JOSEPH D.; GORDON, MICHAEL M.; WOLFE, JASON L.
To: LIMELIGHT NETWORKS, INC.
Reel/Frame 023453/0641 →