From owner-freebsd-net Tue Jul 4 15:41:11 2000 Delivered-To: freebsd-net@freebsd.org Received: from netplex.com.au (adsl-63-207-30-186.dsl.snfc21.pacbell.net [63.207.30.186]) by hub.freebsd.org (Postfix) with ESMTP id 8659537B8C9 for ; Tue, 4 Jul 2000 15:40:49 -0700 (PDT) (envelope-from peter@netplex.com.au) Received: from netplex.com.au (peter@localhost [127.0.0.1]) by netplex.com.au (8.9.3/8.9.3) with ESMTP id PAA54662; Tue, 4 Jul 2000 15:40:45 -0700 (PDT) (envelope-from peter@netplex.com.au) Message-Id: <200007042240.PAA54662@netplex.com.au> X-Mailer: exmh version 2.1.1 10/15/1999 To: Charlie Younghusband Reply-To: freebsd-net@FreeBSD.ORG Cc: "'freebsd-net@freebsd.org'" Subject: Re: supported features in BSD TCP In-Reply-To: Message from Charlie Younghusband of "Tue, 04 Jul 2000 17:53:21 EDT." <39625CD1.57B64231@xiphos.ca> Date: Tue, 04 Jul 2000 15:40:45 -0700 From: Peter Wemm Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org Charlie Younghusband wrote: > Hi folks, > > My company is considering working on some extensions to TCP for space > communications. So I'm shopping around for a good modifiable TCP stack, > with many questions I haven't found concisely in any docs > > Does the FreeBSD TCP implementation support: > -Full RFC 1122 (general good behaviour for internet hosts), 768 (UDP) > and 793 (standard TCP circa '81) Yes. > -RFC 1323 "TCP Extensions for High Performance" aka big fat pipes, > including round trip time measurement and PAWS Yes, controllable by a sysctl on/off switch. > -T/TCP -- TCP Extensions for Transactions (RFC 1644) Yes, controllable by a sysctl on/off switch. > -TCP Vegas No. (General opinion of this is that it would be bad for the internet) > -Selective Negative Acknowledgements (SNACKs) If you mean SACK, yes (patches available, not yet integrated). SNACK I had not heard of. We have a TCP newreno implementation as well. > -TCP Header compression (RFC 1144) Yes. Some others: - Precision TCP timers. We use our enhanced callout mechanism to provide precise scalable performance with large connection counts. Traditional BSD network stacks have a 1/2 second "service" list where all the connections are serviced from. Under load (hundreds of thousands of connections) our stack stands up better than most BSD stacks. (Which is why it is used at Yahoo). - kqueue (this is more a FreeBSD feature than a TCP stack feature though) - IPV6 - TCP checksum offloading - Experimental patches for zero-copy TCP/IP are around. - Can be made to saturate a gigabit ethernet link. > And the BSD newbie questions: > -What's the deal with FreeBSD/NetBSD/OpenBSD? Which one should I be > using? (not intended to be flamebait, sorry...) I believe neither NetBSD/OpenBSD have T/TCP. I am not certain about rfc1323. I believe NetBSD are about to implement TCP timers. > -What are my options if I make modifications to the TCP stack (and new > code) regarding licensing? I'm told that I can repackage it and sell > it? (My boss wants to keep our options open, free open source is harder > to pay my salary ;) You can pretty much do whatever you like, but remember that copyright on large chunks is still held by UC Berkeley. > And any other suggestions as to what direction I should take with > this...the work will involve some custom space-standard services (aka > breaking the normal TCP stack) as well as trying to fill out the TCP > stack with high performance options described above...I looked briefly > at some of the FreeBSD TCP source which seemed readable but a little too > simple to include some of the features I hoped to start with... Code does not have to be complicated to have features. Just be sure you are looking at a recent version - the older stuff was pretty light. (ie: 4.x at a minimum, 5.0 preferably) > TIA > Charlie Cheers, -Peter -- Peter Wemm - peter@FreeBSD.org; peter@yahoo-inc.com; peter@netplex.com.au "All of this is for nothing if we don't go to the stars" - JMS/B5 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message