setsockopt() should have an option called SO_KEEPALIVE to
enable keepalives at the TCP level. Is this really what Mark
is looking for, though? I mean, I know they have the same
name -- but are they the same thing?

I'm using

setsockopt(socketdev->socket(), SOL_SOCKET, SO_KEEPALIVE,
&optval, sizeof(optval));

in one of my project, but this keep-alive is at a lower ISO-level
than we need here. It basically tells the TCP/IP of Linux (BSD,
etc) to every so often send a ACK for a null-data-area.

I had to use it to circumvent a broken firewall. The firewall had
a very low TCP-session timeout (1 hour or so) and after this one
hour without traffic the firewall was closing the connection,
but not sending any rejection messages back. So Linux didn't
knew and kept retrying the TCP-Packets. And with the exponential
backoff time and a retry count of 13 this then took around 30
minutes until user-space was notified about the problem.

So I turned TCP-Level keepalive on, this helped with that case.

However, an AS/400 has some system configuration where the
machine can be told to terminate a running session if there
hasn't been some data exchange for some time. A TCP-level
keep-alive won't help here.

Maybe a TELNET-level NOOP or KEEPALIVE will help here, I haven't
tested this yet.

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2021 by and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.