Do you have a question? Post it now! No Registration Necessary. Now with pictures!
April 5, 2011, 4:14 pm
rate this thread
I am working on an application that needs to be able to rapidly detect
a lost connection between an ssh client and ssh server. I am using
ssh to do local and remote port forwarding, and sending data across
the forwarded ports. I was originally relying upon the TCPKeepAlive
probes, but found that I could not consistently detect a lost
detection. Using the ServerAliveInterval and ServerAliveCountMax
options, however, I am able to consistently detect a lost connection.
The problem is, if I am using a low-bandwidth connection (cellular
modem), and I am pushing a significant amount of data across, it seems
that this hinders the communication between the client and server with
the ServerAlive messages. In other words, when I am actually USING
the connection, my application can mistakenly detect the connection as
lost because the ServerAliveInterval x ServerAliveCountMax is exceeded
without a response from the server. I was surprised at this behavior,
since I expected the ServerAlive probes to only start after data flow
between the client and server machines across that connection had
ceased, but perhaps I am misunderstanding. I do not have much leeway
as to how the server is configured. Can someone recommend a way to be
able to both (1) quickly detect a lost connection [which, seems to
require the interval and countmax be small], but not mistakenly detect
the connection as lost when it is being used?
Thank you for any assistance.
- » Want a script to log into ssh server automatically with anti-idle function.
- — Previous thread in » Secure Shell Forum
- » ssh on command line: force using a group size (prime size) of 1024 (and no...
- — Newest thread in » Secure Shell Forum