Path: utzoo!attcan!uunet!husc6!mailrus!ukma!gatech!dcatla!dnwcv From: dnwcv@dcatla.UUCP (William C. VerSteeg) Newsgroups: comp.protocols.tcp-ip Subject: Re: Needed: timeouts for connections to dead/dying hosts Keywords: timeout keepalive Message-ID: <11494@dcatla.UUCP> Date: 28 Nov 88 19:00:28 GMT References: <196@bnr-fos.UUCP> Reply-To: dnwcv@sune.UUCP (William C. VerSteeg) Organization: DCA Inc., Alpharetta, GA Lines: 49 In article <196@bnr-fos.UUCP> tpc@bnr-fos.UUCP (Tom Chmara) writes: >...but 6 minutes to timeout on unacknowledged traffic? >Sounds kind of high, even for Internet applications with their long-haul >lines. Two questions spring to mind: > >1) What am I misreading? >2) If this is correct, is it the same for other flavours of TCP-IP? > If not, has someone got ballpark figures for other implementations? > To me, six minutes is not a bad figure for a general purpose computer. For non-interactive connections, (mail,file transfer) this figure would allow for a flaky link to stabilize. For interactive connections, (Telnet, etc) the user can abort the connection attempt himself if he doesn't want to wait this long. However, in dedicated systems (Terminal servers), this interval should be MUCH shorter. Something on the order of 10-20 seconds would be reasonable. Asking a user to wait for a connection much longer than this is generally counter-productive. The user will typically abort login attempts after a few seconds anyway. Another issue relating to timers and terminal servers is how to disconnect sessions in the absence of data. When a users on system A logs into system B, then system A crashes, system B has no good way to end the session. If no data is sent from system B, it will never know that system A is dead. The only way that I can think of to close such circuits is to run a timer on all idle circuits. When the timer fires, system B could send "are you there" messages to system A. B would then close dead connections. There are problems with this, though. Some Telnet implementations don't handle "are you there" well. This method also doesn't close sessions that have been abandoned by users. A way around this would be to close any circuit that has been inactive for a configurable amount of time. However, this also is not very elegent. Are there any standard ways of handling this? In our line of statistical multiplexor-based products, we can configure inactivity timers and can sense loss of physical media. We can then make rational circuit disconnection decisions. In the Telnet world, inactivty timers are feasible. But is there a good method to determine if the other end of a circuit is dead? Thanks Bill VerSteeg