Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!tut.cis.ohio-state.edu!ucbvax!A.ISI.EDU!CERF From: CERF@A.ISI.EDU Newsgroups: comp.protocols.tcp-ip Subject: Re: SO_KEEPALIVE considered harmful? Message-ID: <[A.ISI.EDU]28-May-89.14:23:38.CERF> Date: 28 May 89 18:23:00 GMT References: <2681@elxsi.UUCP> Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 24 When TCP was first designed, and for all subsequent versions, it was thought inappropriate to impose any kind of semantics on the logical connections extablished by TCP. In particular, no sense of absolute timeout for the severing of a connection was desired. We thought that such notions of "impatience" or "time to give up" ought to be the choice of the upper level protocol using TCP as the basis merely for reliable delivery. A part of this view stemmed from the fact that the networks over which TCP had to function, for the DoD applications we had in mind, were potentially very unpredictable as to loss and delay. Mobile packet radio systems had to function under jamming and radio shadow effects, for instance. TCP never unilaterally severed connections but only reported failure to achieve positive acknowledgement after a time which could be controlled by the application or upper-level protocol. It was up to the application to decide whether to sever the connection and, even then, the choice to do so gracefully or abruptly was also left to the application. The use of a feature (X-level NOP) to test the liveness of a TCP connection is consonant with the model against which the TCP was designed. Vint Cerf