Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!bbn!bbn.com!mckenzie From: mckenzie@bbn.com (Alex McKenzie) Newsgroups: comp.protocols.tcp-ip Subject: Re: terminating connections Message-ID: <35454@bbn.COM> Date: 1 Feb 89 16:42:45 GMT References: <8901311831.AA27258@tove.umd.edu> Sender: news@bbn.COM Reply-To: mckenzie@labs-n.bbn.com (Alex McKenzie) Organization: Bolt Beranek and Newman Inc., Cambridge MA Lines: 27 TCP and ISO TP handle the closing of a connection differently because of different assumptions about the environment in which they will be embedded. TCP assumes that it (alone) is responsible for the reliability of the data transport; a user application which doesn't want to be concerned with transport reliability may be built directly on top of it. This might even be an application which has only a one-way data flow. The application can just hand a lot of data to the TCP module and the give the module a command like "when you are done sending the data, close the connection". So TCP better be sure that all the data has been correctly received by the receiver befor the connection is closed and the TCP resources are deallocated. ISO TP assumes that it is in the middle of a protocol stack. It is responsible for ensuring reliable transmission (let's not argue about this phrase - I know it is not literally correct) but that higher layers of protocol will be doing their own handshaking to be sure their resources are not prematurely deallocated. In particular, since the Transport layer "knows" that the Session layer will perform a handshake which must be completed before either Session entity asks the Transport layer to close the connection, no value is added by having the Transport entities also shake hands; the pipe is truely empty when the "Close Transport" command comes down from Session. Hope this helps, Alex McKenzie