Determining an efficient keep-alive interval for a network connection
First Claim
1. A method for use in communication between a plurality of clients and a server, via respective networking devices, comprising:
- at the server, providing a data store configured to store efficient keep-alive intervals received from the plurality of clients via the respective networking devices;
selecting a test group from among the plurality of clients, wherein the test group are client devices connected to the server via a same or related networking device;
receiving an individual efficient keep-alive interval from each client in the test group;
if a statistical variance between the individual efficient keep-alive intervals determined for the clients in the test group is below a threshold value, then computing an aggregate efficient keep-alive interval based on the test group, and storing the aggregate efficient keep-alive interval in the data store of the server as an efficient keep-alive interval for use with other client devices connected to the server via the same or related networking device;
receiving a request for a data connection from a requesting client connected to the server via a first networking device;
querying the data store to determine if a cached efficient keep-alive interval for the first networking device is present in the data store;
if the cached efficient keep-alive interval is present, sending the cached efficient keep-alive interval from the server to the requesting client for application to the data connection.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for use in communication between a client and a server, via a networking device, are provided. The method may include sending a request to establish a data connection from the client to the server via the networking device, setting a data connection keep-alive interval for the data connection to a predetermined safe value, and sending a request to establish a test connection between the client and the server. The method may further include determining an efficient keep-alive interval for communication between the client and server via the networking device, using the test connection, setting the data connection keep-alive interval to the efficient keep-alive interval determined using the test connection, and uploading the efficient keep-alive interval from the client to the server in an efficient keep-alive interval notification message, for communication to other clients connected to the server.
36 Citations
15 Claims
-
1. A method for use in communication between a plurality of clients and a server, via respective networking devices, comprising:
-
at the server, providing a data store configured to store efficient keep-alive intervals received from the plurality of clients via the respective networking devices; selecting a test group from among the plurality of clients, wherein the test group are client devices connected to the server via a same or related networking device; receiving an individual efficient keep-alive interval from each client in the test group; if a statistical variance between the individual efficient keep-alive intervals determined for the clients in the test group is below a threshold value, then computing an aggregate efficient keep-alive interval based on the test group, and storing the aggregate efficient keep-alive interval in the data store of the server as an efficient keep-alive interval for use with other client devices connected to the server via the same or related networking device; receiving a request for a data connection from a requesting client connected to the server via a first networking device; querying the data store to determine if a cached efficient keep-alive interval for the first networking device is present in the data store; if the cached efficient keep-alive interval is present, sending the cached efficient keep-alive interval from the server to the requesting client for application to the data connection. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for use in communication between a plurality of clients and a server, via respective networking devices, comprising:
-
at the server, providing a data store configured to store efficient keep-alive intervals received from the plurality of clients via the respective networking devices; selecting a test group from among the plurality of clients, wherein the test group are client devices connected to the server via a same or related networking device; receiving an individual efficient keep-alive interval from each client in the test group; if a statistical variance between the individual efficient keep-alive intervals determined for the clients in the test group is below a threshold value, then computing an aggregate efficient keep-alive interval based on the test group, and storing the aggregate efficient keep-alive interval in the data store of the server as an efficient keep-alive interval for use with other client devices connected to the server via the same or related networking device; receiving a first request for a first data connection from a first requesting client connected to the server via a first networking device; querying the data store to determine if a cached efficient keep-alive interval for the first networking device is present in the data store; upon determining that no cached efficient keep-alive interval is present in the data store, then; sending a predetermined safe keep-alive value from the server to the first requesting client, to cause the first requesting client to set the keep-alive value for the data connection to the predetermined safe keep-alive value; receiving a request to establish a test connection between the server and the first requesting client; determining an efficient keep-alive interval for communication between the first requesting client and the server via the networking device using the test connection, by, on each of one or more passes through a control loop; receiving a keep-alive message from the client at the server, at an increasingly incremented test connection keep-alive interval, over the test connection while concurrently exchanging data over the data connection, until no more keep-alive messages are received on the test connection; sending an acknowledgment to the first requesting client in response to each keep-alive message successfully received on the test connection; and after completion of the control loop, receiving from the first requesting client a new efficient keep-alive interval determined by the first requesting client, which is set to a largest value for the test connection keep-alive interval at which an acknowledgement was sent by the server during the control loop; caching the efficient keep-alive interval in the data store for availability to other requesting clients; receiving a second request for a second data connection from a second requesting client connected to the server via a same or a related networking device as the first requesting client; querying the data store to determine if a cached efficient keep-alive interval is present in the data store which has been received from the first requesting client connected to the same or the related networking device and stored in the data store; and upon determining that the cached efficient keep-alive interval is present in the data store, sending the cached efficient keep-alive interval from the server to the second requesting client for application to the data connection.
-
-
9. A computing system, comprising:
- a server comprising a data store configured to store efficient keep-alive intervals received from a plurality of clients via respective networking devices, and a processor coupled to memory, the processor configured to;
select a test group from among the plurality of clients, wherein the test group are client devices connected to the server via a same or related networking device;
receive an individual efficient keep-alive interval from each client in the test group;
determine a statistical variance between the individual efficient keep-alive intervals determined for the clients in the test group;
if the statistical variance is below a threshold value, then compute an aggregate efficient keep-alive interval based on the test group, and store the aggregate efficient keep-alive interval in the data store of the server as an efficient keep-alive interval for use with other client devices connected to the server via the same or related networking device;
receive a request for a data connection from a requesting client connected to the server via a first networking device;
determine if a cached efficient keep-alive interval for the first networking device is present in the data store;
if the cached efficient keep-alive interval is present, send the cached efficient keep-alive interval to the requesting client for application to the data connection. - View Dependent Claims (10, 11, 12, 13, 14, 15)
- a server comprising a data store configured to store efficient keep-alive intervals received from a plurality of clients via respective networking devices, and a processor coupled to memory, the processor configured to;
Specification