Path: utzoo!attcan!uunet!samsung!zaphod.mps.ohio-state.edu!wuarchive!mit-eddie!bbn.com!craig From: craig@bbn.com (Craig Partridge) Newsgroups: comp.protocols.tcp-ip Subject: Re: Reliable Datagram ??? Protocols Message-ID: <60340@bbn.BBN.COM> Date: 25 Oct 90 14:08:17 GMT References: <9010231728.AA03948@braden.isi.edu> < <12632159446.18.BILLW@mathom.cisco.com>> <1662@ruunsa.fys.ruu.nl> Sender: news@bbn.com Reply-To: craig@ws6.nnsc.nsf.net.BBN.COM (Craig Partridge) Organization: Bolt Beranek and Newman Inc., Cambridge MA Lines: 31 >There may well be another reason not to use TCP. I for example am busy >with distributing programs over dozens of workstations. Every program >must be able to talk to any other one, 30 TCP connections is often the >maximum possible. >I could automatically close a connection if a new one must be opened, but >how do I know if no data is to be read, or underway, to the connection >I want to close? From a protocol designer's point of view this is a terrible argument (from an implementer's perspective, I understand the issues, but allow me to wear my designer hat for a while). To develop a "reliable UDP", you'll need state information (sequence number, retransmission counts, round-trip time estimator), in principle you'll need just about all the information currently in the TCP connection block. So building a "reliable UDP" is essentially as difficult as doing a TCP. And the only reason to do it is that your operating system constrains the number of connection blocks you can get, while the UDP interface allows you more connection blocks, because you can put the connection blocks in your application's memory space, rather than your kernel space (which is putting dumb restrictions on you). In the long run, you would almost certainly be better off fixing enhancing the kernel to support more connection blocks, than doing a "reliable UDP." You'll get a more flexible kernel, access to the protocol you really want, and won't get caught in the quagmire of maintaining yet another reliable protocol. Craig