Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!tut.cis.ohio-state.edu!ucbvax!LCS.MIT.EDU!MAP From: MAP@LCS.MIT.EDU (Michael A. Patton) Newsgroups: comp.protocols.tcp-ip Subject: SO_KEEPALIVE considered harmful? Message-ID: <8906072222.AA25735@gaak.LCS.MIT.EDU> Date: 7 Jun 89 22:22:40 GMT References: <8905301407.AA03344@uunet.uu.net> Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 44 From: prisma!mo@uunet.uu.net Date: Tue, 30 May 89 08:07:02 -0600 [...] According to the advertising copy, TCP provides reliable virtual circuits. In my book, knowing that the other end has croaked is part of the definition of "reliable." But just because you aren't getting replies does NOT mean the other end "croaked", just that something did. If it's internal to the network, it should recover and you can continue. The indication that the other end "croaked" is receiving a RST! How an application deals with being temporarily partitioned has to be up to that application. There are just too many possibilities. Since this is mechanism that is going to have to be reinvented by lots of protocols, it makes sense to get it right ONCE [...] But there isn't one right answer so how can we "get it right ONCE"? The whole argument here is that the BSD implementation goes against the design of TCP in that they chose one specific requirement and implemented a solution to it ONCE, but what I want is NOT what they provide and what the guy in the next office wants is not what I want. No strategy that is built into the TCP layer will be right for all applications, and it can get in the way of applications that want some other specific type of handling for these cases. [...] so people don't have to (1) reinvent all the bugs and (2) can just use it for what they really want to be doing. But you don't have to break TCP (oops, I mean add to it) to prevent people from reinventing things. Provide them with a library of different techniques for handling various network problems. If I want one of the standard techniques, I just use it. If I want something special, I write it (and if it's of general use, it's an addition to the library). __ /| /| /| \ Michael A. Patton, Network Manager / | / | /_|__/ Laboratory for Computer Science / |/ |/ |atton Massachusetts Institute of Technology Disclaimer: The opinions expressed above are a figment of the phosphor on your screen and do not represent the views of MIT, LCS, or MAP. :-)