🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fa.tcp-ip
Article #342

Re: A Noop Strategy for TCP

#342
From: tcp-ip
Date: Fri, 26 Jul 1985 03:52
49 lines
3099 bytes
From: imagen!geof@su-shasta.ARPA


It seems that every now and then someone new brings up the topic of
keep-alives again.  I guess that I'll be the one (probably of many) to
answer this time.

TCP is a general purpose protocol, which is used over networks where
bandwidth is cheap and over networks where bandwidth is expensive. 
Since a major goal of the Internet protocol is to abstract the exact
nature of the network(s) in use, it is almost always impossible for a
host to know what networks a TCP connection is using (Indeed, the
connection may be using more than one set of networks).

The only way to verify that a TCP connection is working is to send a
packet over the connection.  On some networks, this costs money.  On
others it costs processing time in loaded gateways.  In short, it would
unacceptably expensive for TCP implementations that use SOME parts of
the Internet to probe the connection every so often just to verify that
the connection is still there.  Since an implementation has no way of
knowing what parts of the Internet it is using, this sort of probe was
left out of TCP-IP.

This means that probing the connection is left as a higher-level issue,
one that TCP explicitly does not deal with.  This is actually a good
idea for another reason.  Some protocols don't need to verify that an
idle connection is still around, because they always push data through
that connection.  Other implementations don't need to determine that
the connection has gone down until they are actually needed again.  For
example, a TAC never times out its TCP connection -- it relies on the
human user (which is always present) to decide for himself that the
connection is dead.

If you need to generate timeouts on your telnet programs, the place to
do it is within telnet itself.  Now you can understand why the telnet
specification suggests sending bogus option negotiations (the other
thing to do is to send AYT's, but some hosts do silly things with them,
like converting them into random control characters that are sent to an
application).

One more thing: at MIT we used to have problems with gateways crashing.
Sometimes (in the early days) a gateway would crash for ten or fifteen
minutes.  How elated were we that TCP does not send keep-alive probes,
since they would have determined (in their cleverness) that the
connection should have been reset, while we human users had higher level
information (Mr. Chiappa yelling down the hall) that the connection
would soon return to good health.

- Geof
Technical Details
Message-ID: <9340@ucbvax.ARPA>
Path: arc1-ca.pugleaf.net!utzoo!watmath!clyde!burl!ulysses!ucbvax!tcp-ip

Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.3 4.3bsd-beta 6/6/85; site ucbvax.ARPA
Path: arc1-ca.pugleaf.net!utzoo!watmath!clyde!burl!ulysses!ucbvax!tcp-ip
From: tcp-ip@ucbvax.ARPA
Newsgroups: fa.tcp-ip
Subject: Re: A Noop Strategy for TCP
Message-ID: <9340@ucbvax.ARPA>
Date: Thu, 25-Jul-85 23:52:17 EDT
Article-I.D.: ucbvax.9340
Posted: Thu Jul 25 23:52:17 1985
Date-Received: Sat, 27-Jul-85 03:01:41 EDT
Sender: daemon@ucbvax.ARPA
Organization: University of California at Berkeley
Lines: 49