The term “keepalive” refers to a process by which a signal is sent between two connected systems, often through a network such as the Internet, to keep the connection between those two systems active. When a user at a computer, for example, accesses a webpage, then his or her computer sends a request for information from the computer, or client, to the server for that webpage. After the information is accessed and sent to the client by the server, there is typically a set amount of time after which the connection between the client and server will be terminated. When a keepalive signal is sent, however, it keeps that connection active.
In general, the term “keepalive” is typically used to refer to both the signal that is sent and the process of sending it. The signal itself usually contains no data other than the request for a response from the server, which means little bandwidth is used in sending this type of message. Once the server receives the signal, it replies with an acknowledgment, or ACK, signal, which is received by the client. The programming for a keepalive protocol on a client will typically establish a timer that determines when the next message is sent.
There are a number of reasons for using a keepalive signal, though it is typically used to test a connection or to keep a connection from being terminated. When used to test a connection, the signal is sent by the client based on a timer that is set in the script for the keepalive protocol. As long as the signal is acknowledged, the system continues operating as normal. If the signal is not received, however, than a notification can be given to the user of the client indicating that the connection is no longer active.
Many networks, especially large networks such as the Internet, are designed with servers that automatically terminate the connection to a client after a set period of time. This is done to allow new connections to be established, since client-server connections are finite in number. A keepalive signal can also be utilized to keep this automatic termination from occurring. When the client sends a keepalive signal to the server, it indicates that the connection is still in use, which prevents the server from automatically terminating the connection. This is often done on websites that allow for persistent connections, though this is not a guaranteed method for ensuring ongoing connectivity.