Keepalive (deutsch: „Aufrechterhaltung“) ist ein Mechanismus bei der Datenübertragung mit den Zielen, eine Netzwerkverbindung aufrechtzuhalten und sich selbst von Erreichbarkeit und Funktion eines Kommunikationspartners zu überzeugen.
Keepalives sind in der Regel spezifische Pakete eines Netzwerkprotokolls. Ein Keepalive-Signal wird oft in vordefinierten Abständen gesendet. Wird nach dem Senden eines Signals keine Antwort empfangen, wird davon ausgegangen, dass die Verbindung unterbrochen ist, oder zukünftige Daten über einen anderen Weg geleitet werden, bis die Verbindung wieder aufgebaut ist. Ein Keepalive-Signal kann auch verwendet werden, um der Internet-Infrastruktur anzuzeigen, dass die Verbindung erhalten bleiben soll. Ohne ein Keepalive-Signal können NAT-fähige Zwischenrouter die Verbindung nach einem Timeout beenden.[1]
Da der einzige Zweck darin besteht, Links zu finden, die nicht funktionieren, oder Verbindungen anzugeben, die erhalten bleiben sollen, sind Keepalive-Nachrichten in der Regel kurz und benötigen nicht viel Bandbreite. Ihr genaues Format und ihre Verwendung hängen jedoch vom Kommunikationsprotokoll ab.
Andere Interpretationsweisen einer ausbleibenden Antwort auf ein Keepalive-Paket können sein:
Im TCP-Protokoll sind Keepalives optional, wenn sie allerdings enthalten sind, dann müssen sie standardmäßig deaktiviert sein. Außerdem sollten Keep-alive-Pakete nur gesendet werden, wenn innerhalb eines Intervalls keine Daten- oder Bestätigungspakete für die Verbindung empfangen wurden. Dieses Intervall muss konfigurierbar sein. Die Voreinstellung darf nicht weniger als zwei Stunden betragen.[2]
Das Keepalive-Paket enthält keine Daten. Es gibt drei Parameter, die sich auf Keepalive beziehen[3]:
Wenn zwei Hosts über ein Netzwerk über TCP/IP verbunden sind, können TCP Keepalive Packets verwendet werden, um festzustellen, ob die Verbindung noch gültig ist, und sie bei Bedarf zu beenden.