TCP Keep-Alive Messages
Ein Keep-Alive Telegramm ist eine Bestätigungsnachricht bzw. ein Acknowledge. Damit kann im Hintergrund überprüft werden, ob ein Kommunikationspartner, welcher eine Verbindung hergestellt hat, noch aktiv ist und somit noch an der Kommunikation teilnimmt. Sollte ein Kommunikationspartner nicht mehr aktiv sein, wird der Kommunikationskanal sauber und regulär geschlossen, um für einen neuen Teilnehmer frei zu sein.
Keep-Alive unter Windows
Keep-Alive kann unter Windows durch die Schlüssel „KeepAliveTime“ und „KeepAliveInterval“ in der Registrierung konfiguriert werden. Der Defaultwert für die Keep-Alive-Time ist auf zwei Stunden eingestellt, die Interval-Time, also die Zeit bis zur Wiederholung einer nicht beantworteten Alive-Anfrage, liegt Default bei einer Sekunde. Alle Werte werden in Millisekunden angegeben. Wenn die entsprechenden Schlüssel noch nicht in der Registrierung vorhanden sind, müssen sie wie folgt angelegt werden.
Es handelt sich nicht um TwinCAT Einstellungen, sondern um spezifische Einstellungen des Betriebssystems. Weiterführende Informationen finden Sie daher in der Betriebssystemdokumentation z. B. auf der Microsoft Internetseite. |
Unter Windows W2K, XP, Windows Embedded Standard:
- Im Ordner HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ muss ein Objekt mit dem Namen KeepAliveTime als DWORD angelegt werden. Fügen Sie dazu unter Edit > New > DWORD Value ein. Stellen Sie hier als Wert 0x4E20 ein, entspricht dies 20 Sekunden.
- Im Ordner HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ muss ein Objekt mit dem Namen KeepAliveInterval als DWORD angelegt werden. Fügen Sie dazu unter Edit > New > DWORD Value ein. Stellen Sie hier als Wert 0x1388 ein, entspricht dies 5 Sekunden.
Unter Windows CE:
- Im Ordner HKEY_LOCAL_MACHINE\Comm\TcpIp\Parms\ muss ein Objekt mit dem Namen KeepAliveTime als DWORD angelegt werden. Fügen Sie dazu unter Edit > New > DWORD Value ein. Stellen Sie hier als Wert 0x4E20 ein, entspricht dies 20 Sekunden.
- Im Ordner HKEY_LOCAL_MACHINE\Comm\TcpIp\Parms\ muss ein Objekt mit dem Namen KeepAliveInterval als DWORD angelegt werden. Fügen Sie dazu unter Edit > New > DWORD Value ein. Stellen Sie hier als Wert 0x1388 ein, entspricht dies 5 Sekunden.
Keep-Alive unter TC/BSD
Es werden die "sysctl" Parameter vom Betriebssystem verwendet, um TCP-Keep-Alive-Messages zu konfigurieren.
keepidle
: Amount of time, in milliseconds, that the connection must be idle before keepalive probes (if enabled) are sent. The default is 7200000 msec (2 hours).keepintvl
: The interval, in milliseconds, between keepalive probes sent to remote machines, when no response is received on a keepidle probe. The default is 75000 msec.
> sysctl -d net.inet.tcp | grep -e keep
net.inet.tcp.keepidle: time before keepalive probes begin
net.inet.tcp.keepintvl: time between keepalive probes
net.inet.tcp.keepinit: time to establish connection
net.inet.tcp.keepcnt: Number of keepalive probes to send
net.inet.tcp.always_keepalive: Assume SO_KEEPALIVE on all TCP connections
Beispiel:
keepidle wid auf 4000 (ms) und keepintvl auf 4000 (ms) gesetzt.
sysctl net.inet.tcp.keepidle=4000
sysctl net.inet.tcp.keepintvl=4000
Eine dauerhafte (persistente) Konfiguration der TCP-Keep-Alive-Meldungen wird in der Datei /etc/sysctl.conf vorgenommen.
Siehe auch hier: https://www.freebsd.org/cgi/man.cgi?query=tcp