[JDEV] Keep-Alives

Matthias Wimmer m at tthias.net
Mon Jul 1 11:46:29 CDT 2002


Hi Thomas!

Thomas Muldowney wrote:

>I believe the problems I found when playing with this were the large
>timeout and you lose the data you've pushed into the buffer.  Basically
>you have to be idle before it kicks in.  The data loss is the more
>important case so we need a smaller spacing in the tests.
>
The timeouts just default to a very long time. They can be configured 
with the sysctl interface (tcp_keepalive_probes and tcp_keepalive_time). 
At Linux you can also change the timeout by accessing the proc 
filesystem (/proc/sys/net/ipv4/tcp_keepalive_*).

>If you have
>the Stevens book take a look at section 21.5.  It has a pretty nifty
>client-server heartbeat example.  It uses the TCP OOB data (sometimes
>called urgent) to send heartbeats to one another.  This could be used at
>regular intervals to ensure minimal data loss.  The problem is that a
>lot of the higher level socket implementations (Java pre 1.4 included)
>don't support OOB data well.  At least not that I've figured out.  If we
>could guarantee that most languages could use this, then I would support
>it.
>
Yeah I know. Even with Java there was a discussion if it should be 
implemented or not. But I think the bigger problem with OOB is that 
there was a big bug in windows. Older versions of Windows (pre Windows 
NT sp 4 I think) can be kicked by sending them OOB data. This has been 
fixed by Microsoft, but I expect that many unfixed Win95/98 are still 
out and we would kick our user's systems if the server starts sending OOB.
As far as I know OOB is also tracked by some intrusion detection systems 
and they will kick your connection if you use it with a protocol that is 
not known to use OOB (and I don't think Jabber is known by them). This 
would make it harder for our service to be used behind corporate firewalls.


Tot kijk
   Matthias

-- 
Fon: +49-700 77007770		http://matthias-wimmer.de/
Fax: +49-89 312 88654		jabber://mawis@charente.de





More information about the JDev mailing list