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.

Beschreibung

Bearbeiten

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:

  • Wiederaufsetzen der Netzwerkverbindung bei bestehendem Protokoll (z. B. Fortsetzen eines Dateidownloads, Sitzungsmanagement bei HTTP- und VPN-Verbindungen),
  • erneute Verbindungsaufnahme unter Neustart des Protokolls (z. B. E-Mail-Versand über SMTP),
  • endgültige Verbindungsaufgabe (Timeout), d. h. Beendigung des Protokolls mit einer Fehlermeldung,
  • Löschen von Leitweginformationen aus Routing-Tabellen.

TCP Keepalives

Bearbeiten

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]:

  • Die Haltezeit ist die Dauer zwischen zwei Keepalive-Übertragungen im Ruhezustand. Das TCP Keepalive-Intervall muss konfigurierbar sein und ist standardmäßig auf nicht weniger als 2 Stunden eingestellt.
  • Das Keepalive-Intervall ist die Dauer zwischen zwei aufeinanderfolgenden Keepalive-Wiederholungen, wenn keine Bestätigung der vorherigen Keepalive-Übertragung empfangen wird.
  • Keepalive retry ist die Anzahl der Wiederholungen, die durchgeführt werden müssen, bevor erklärt wird, dass das Remote-End nicht verfügbar ist.

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.

Einzelnachweise

Bearbeiten
  1. Keepalive. In: techopedia.com. Abgerufen am 30. Mai 2019 (englisch).
  2. RFC: 1122 – Requirements for Internet Hosts – Communication Layers. Oktober 1989, Abschnitt 4.2.3.6: TCP Keep-Alives. (englisch).
  3. Using TCP keepalive under Linux. In: tldp.org. Abgerufen am 31. Mai 2019 (englisch).