IP Library Granted Patent US 9,794,181
Granted Patent B2
US 9,794,181 · App. 14/561,775 · Granted Oct 17, 2017

Dynamic initial congestion window modification

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 9,794,181
App. No.
14/561,775
Granted
Oct 17, 2017
Kind
B2
Abstract

Some embodiments increase throughput across a connection between a host and a client by initializing the congestion window for that connection dynamically using a previously settled value from a prior instance of the connection established between the same or similar endpoints. An initialization agent tracks congestion window values for previously established connections between a host and various clients. For the tracked congestion window values of each monitored connection, the initialization agent stores an address identifying the client endpoint. When establishing a new connection, the initialization agent determines if the new connection is a recurring connection. A new connection is recurring when the new connection client address is similar or related to an address identified for a previous monitored connection. For a recurring connection, the initialization agent initializes the new connection congestion window using a value derived from the tracked congestion window values of the recurring connection.

Claims (20)

1. A system comprising:

a memory storing computer-executable instructions; and

a computer processor in communication with the memory, the computer-executable instructions programming the computer processor in:

monitoring a congestion window of a first connection that is established with a first client, wherein the first connection congestion window regulates a number of outstanding segments sent to the first client over the first connection;

recording after terminating the first connection, a first connection congestion value of the first connection in conjunction with an address associated with the first client as a result of said monitoring; and

establishing a second connection with a second client, wherein establishing the second connection comprises (i) performing a connection establishment handshake with the second client, (ii) identifying the second connection as a recurring connection related to the first connection based on an address of the second client and the address associated with the first client, and (iii) initializing based on said identifying, a congestion window of the second connection with the first connection congestion window value of the first connection as part of said connection establishment handshake for the second connection and in advance of sending a first data packet to the second client over the second connection.

2. The system of claim 1 , wherein the first client and the second client are the same client and the second connection is established after the first connection.

3. The system of claim 1 , wherein the second client is a different client having an address within a same address subnet as the first client.

4. The system of claim 1 , wherein the second client is related to the first client as a result of operating in a same service region as the first client.

5. The system of claim 1 , wherein said monitoring comprises tracking different values of the first connection congestion window at different points in time during data transmission to the first client.

6. The system of claim 5 , wherein recording the first connection congestion window value of the first connection comprises deriving said first connection congestion window value from the different values resulting from said tracking.

7. The system of claim 6 , wherein deriving said first connection congestion window value comprises computing an average of the different values resulting from said tracking.

8. The system of claim 1 , wherein the computer-executable instructions further program the computer processor in adjusting the second connection congestion window after initialization per standard protocol congestion control procedures.

9. The system of claim 1 , wherein said first connection congestion window value used in initializing the congestion window of the second connection is greater than a Transmission Control Protocol (TCP) default starting congestion window value used in initializing the congestion window of the first connection.

10. The system of claim 9 , wherein recording the first connection congestion window value of the first connection comprises recording a time-to-live (TTL) parameter with said first connection congestion window value.

11. The system of claim 10 , wherein establishing the second connection further comprises initializing the congestion window of the second connection with the first connection congestion window value of the first connection in response to the TTL having not expired and initializing the congestion window of the second connection with the TCP default starting congestion window value in response to the TTL having expired.

12. A computer-implemented method performed by execution of a processor of at least one machine, the method comprising: tracking a first connection congestion window value used in regulating outstanding bytes sent from a host over an established first connection to a first client; recording an address associated with the first client in conjunction with recording the first connection congestion window value; terminating the first connection; receiving a request to establish a second connection with the host from a second client; and establishing the second connection during a connection establishment handshake (i) with the first connection congestion window value in response to identifying the second connection as a recurring connection related to the first connection based on an address of the second client establishing the second connection matching to the address of the first client having established the first connection, and (ii) with a default starting value in response to the address of the second client establishing the second connection not matching to the address of the first client having established the first connection, and wherein the default starting value is not based on the first connection congestion window value and the default starting value is less than the first connection congestion window value.

13. The computer-implemented method of claim 12 further comprising identifying an address of a first client that is an endpoint of the first connection.

14. The computer-implemented method of claim 13 , wherein establishing the second connection comprises selecting between the first connection congestion window value and the default starting value in initializing a congestion window of the second connection as a result of comparing the address of the first client with an address of the second client that is an endpoint of the second connection.

15. The computer-implemented method of claim 12 , wherein establishing the second connection by initializing the second connection with the first connection congestion window value comprises modifying a routing table of the host by creating a new route and by configuring the first connection congestion window value as the congestion window of the new route.

Assignments (11)
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 →
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 21, 2022
From: EDGECAST INC.
To: EDGIO, INC.
Reel/Frame 061738/0972 →
CHANGE OF NAME Recorded Mar 15, 2022
From: VERIZON DIGITAL MEDIA SERVICES INC.
To: EDGECAST INC.
Reel/Frame 059367/0990 →
CHANGE OF NAME Recorded Apr 25, 2016
From: EDGECAST NETWORKS, INC
To: VERIZON DIGITAL MEDIA SERVICES INC.
Reel/Frame 038511/0045 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2014
From: FLORES, MARCEL ERIC SCHECHNER; KHAKPOUR, AMIR REZA; PETERS, ROBERT J.
To: EDGECAST NETWORKS, INC.
Reel/Frame 034390/0770 →