Dynamic initial congestion window modification
First Claim
1. A method comprising:
- storing in memory of a particular server, a first congestion window value used in transmitting data packets over a first network connection to a first client device, wherein the first congestion window value is larger than a default initial congestion value used to initialize said first network connection;
establishing a different second network connection between the particular server and a second client, wherein said establishing comprises (i) initializing a congestion window of the second network connection with the first congestion window value from the first network connection in response to commonality in addressing between the first client and the second client, and (ii) initializing the congestion window of the second network connection with the default initial congestion window value in response to no commonality in the addressing between the first client and the second client;
regulating, with the first congestion window value, transmission of an initial set of data packets from the particular server to the second client over the second network connection in response to said commonality in addressing between the first client and the second client; and
regulating, with the default initial congestion value, transmission of said initial set of data packets from the particular server to the second client over the second network connection in response to no commonality in addressing between the first client and the second client.
6 Assignments
0 Petitions
Accused Products
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.
-
Citations
18 Claims
-
1. A method comprising:
-
storing in memory of a particular server, a first congestion window value used in transmitting data packets over a first network connection to a first client device, wherein the first congestion window value is larger than a default initial congestion value used to initialize said first network connection; establishing a different second network connection between the particular server and a second client, wherein said establishing comprises (i) initializing a congestion window of the second network connection with the first congestion window value from the first network connection in response to commonality in addressing between the first client and the second client, and (ii) initializing the congestion window of the second network connection with the default initial congestion window value in response to no commonality in the addressing between the first client and the second client; regulating, with the first congestion window value, transmission of an initial set of data packets from the particular server to the second client over the second network connection in response to said commonality in addressing between the first client and the second client; and regulating, with the default initial congestion value, transmission of said initial set of data packets from the particular server to the second client over the second network connection in response to no commonality in addressing between the first client and the second client. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method comprising:
-
storing in memory of a particular server, a first congestion window value used in transmitting data packets over a first network connection to a first client device, wherein the first congestion window value is larger than a default initial congestion value used to initialize network connections according to a network protocol; transmitting based on the first congestion window value, an initial first set of unacknowledged data packets from the particular server to a second client over a different second network connection in response to commonality in addressing between the first client and the second client, wherein the initial first set of unacknowledged data packets are transmitted from the particular server prior to the second client acknowledging any data packet in the initial first set of unacknowledged packets; and transmitting based on the default initial congestion window value, an initial second set of unacknowledged data packets from the particular server to the second client over the second network connection in response to no commonality in addressing between the first client and the second client, wherein the initial first set of data packets transmitted based on the first congestion window value has more unacknowledged data packets than the initial second set of data packets transmitted based on the default initial congestion window value, and wherein the initial second set of unacknowledged data packets are transmitted from the particular server prior to the second client acknowledging any data packet in the initial second set of unacknowledged packets. - View Dependent Claims (9, 10, 11)
-
-
12. A method comprising:
-
establishing a first network connection prior to passing a first data packet over said first network connection, wherein said establishing the first network comprises initializing a congestion window of the first network connection with a first congestion window value from a different second network connection; initiating transmission of data packets over the first network connection by sending a first number of unacknowledged data packets based on said first congestion window value; establishing a third network connection prior to passing a first data packet over said third network connection, wherein said establishing the third network connection comprises initializing a congestion window of the third network connection with a different second congestion window value from a different fourth network connection; and initiating transmission of data packets over the third network connection by sending a different second number of unacknowledged data packets based on said second congestion window value, wherein the second number of unacknowledged data packets is greater than the first number of unacknowledged data packets. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A device comprising:
-
a non-transitory computer-readable medium storing a set of processor-executable instructions; and one or more processors configured to execute the set of processor-executable instructions, wherein executing the set of processor-executable instructions causes the one or more processors to; store in the non-transitory computer-readable medium, a first congestion window value used in transmitting data packets over a first network connection to a first client device, wherein the first congestion window value is larger than a default initial congestion value used to initialize network connections according to Transmission Control Protocol (TCP); establish a different second network connection with a second client prior to sending any data packets over the second network connection, wherein said establishing comprises processor-executable instructions to; override a congestion window value set by the TCP in response to commonality in the addressing between the first client and the second client, and retain the congestion window value set by the TCP in response to no commonality in the addressing between the first client and the second client; transmit based on the first congestion window value, an initial first set of unacknowledged data packets to the second client over a different second network connection in response to commonality in addressing between the first client and the second client; and transmit based on the default initial congestion window value, an initial second set of unacknowledged data packets to the second client over the second network connection in response to no commonality in addressing between the first client and the second client, wherein the initial first set of data packets transmitted based on the first congestion window value has more unacknowledged data packets than the initial second set of data packets transmitted based on the default initial congestion window value.
-
Specification