Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!tut.cis.ohio-state.edu!rutgers!bellcore-2!envy!karn From: karn@envy.bellcore.com (Phil R. Karn) Newsgroups: comp.protocols.tcp-ip Subject: re: Are Commercial TCPs Berkeley Code Or Custom? Message-ID: <1990Aug1.013502.25874@bellcore-2.bellcore.com> Date: 1 Aug 90 01:35:02 GMT References: <32140@cup.portal.com> <9007272321.AA09325@asylum.sf.ca.us> Sender: usenet@bellcore-2.bellcore.com (Poster of News) Reply-To: karn@thumper.bellcore.com Organization: Packet Communications Research Group (Bellcore) Lines: 39 In article <9007272321.AA09325@asylum.sf.ca.us>, romkey@asylum.sf.ca.us (John Romkey) writes: |> Phil Karn rolled his own [TCP] in KA9Q (he'll correct |> me if I'm wrong). True. My TCP was written from scratch starting in late 1985. Its first platform, believe it or not, was the Xerox 820, a 64K CPM Z-80 system. It moved fairly quickly to the PC after that. In the next several years various refinements such as the Van Jacobson mods were added. It is fairly stable now, although I recently improved the slow-start code. My TCP is probably the only one that was written essentially on a dare. In 1985 the amateur packet radio community was swept by a raging protocol war that would bring smiles of recognition to this group. In one camp were the connection-oriented ISO/CCITT/X.25 lackeys, and in the other were the Internet TCP/IP people, the only ones who knew what they were doing (nah, I'm not biased :-)). One of the more rabid members of the opposing camp stridently argued that TCP was so incredibly complicated that I could NEVER cram it into anything less than a full-blown VAX, to say nothing of personal computer hardware that could be afforded by the average radio ham. Not one to be told I couldn't do something, I sat down with RFC-793 and started coding. I had it limping along in a month or two, in time to show at the ARRL Computer Networking Conference in February 1986. However, the whole project quickly got into my blood, and over 5 years later I'm still at it. And the guy who had originally challenged me has still not conceded defeat. I *strongly* agree that you can't write a good TCP in a vacuum. Much of my early testing took place over a SLIP link which revealed some, uh, gaps in RFC-793's wisdom on round trip timing algorithms. Our CSNET/X.25Net connection to ARPANET at the time was marvelous for stress testing my IP reassembly and TCP retransmission and resequencing code. And running on a slow, memory starved machine gave one a strong incentive to write tight code... Phil