Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!know!samsung!munnari.oz.au!mtiame!ubeaut!mwp From: mwp@ubeaut.OZ.AU (Michael Paddon) Newsgroups: comp.protocols.tcp-ip Subject: Re: Are Commercial TCPs Berkeley Code Or Custom? Message-ID: <108@ubeaut.OZ.AU> Date: 1 Aug 90 05:40:34 GMT References: <32140@cup.portal.com> Organization: Digital Equipment Corp., Melbourne, Australia Lines: 55 From article <32140@cup.portal.com>, by Will@cup.portal.com (Will E Estes): > Are most of the commercial TCP/IPs sold by companies like Wollongong, Excelan, > and FTP software written from scratch, or is the code basically just modified > Berkeley code? Why is it so difficult to write a good TCP/IP? I am > amazed that there are companies whose entire R&D seems to center around > writing the TCP/IP protocol and supporting applications. Is it really that > difficult? You would think that if you started with the Berkeley stuff it > wouldn't be that difficult to improve it, or do legal restrictions prevent > you from using the Berkeley stuff as a base? (You would think that it would > be pretty easy to license the Berkeley code from the owner if it isn't > public domain already....) The Berkeley code is not public domain; it is copyrighted by the Regents of the University of California. However, the BSD code *is* freely available as source. Obviously you can't sell it, but you can sell any modifications you make to it. A fair amount of the socket layer is missing from the BSD distribution because there is AT&T code embedded in it. From what I've seen of the Exelan and Wollongong IP implementations, much has been borrowed from the BSD code, so it is likely that they are both based on it originally. As for how easy it is to port... I've been doing this for the last six months, on and off, onto NCR towers under System V. We rewrote the socket interface as a library/driver combination, pulled out unix domain sockets and the NS protocols and hacked select severely. The SLIP driver needed a complete reworking because it is far too BSD dependent. The mbuf code required extensive thought. Inetd, syslogd, rsh, rcp and other utilities needed to be hacked. Another problem was that the BSD code is not bug free. Has anybody noticed how in_losing() interacts with SLIP? Getting all that working was about 2-3 man months worth of effort. Since then, we've been porting to the 850 multiprocessor tower. This is much more difficult because the BSD code never (and could never) be designed with that architecture in mind. In summary, porting IP from BSD sources is straightforward but not trivial. Michael ------------------------------------------------------------------- | | EasyNet: meo78b::paddon | | | Internet: paddon@meo78b.enet.dec.com | | Michael Paddon | ACSnet: mwp@ubeaut.oz.au | | | ACSnet: mwp@munnari.oz.au | | | Voice: +61 3 895 9392 | -------------------------------------------------------------------