Best TCP/IP Stack Implementation?
paultantk asks: "This mailing list suggests that the FreeBSD TCP/IP stack is sub-par. It was the best in the 90's, but not anymore. So the question is, which operating system now holds the title for the best TCP/IP stack implementation?"
That's easy. Windows.
mmm..mmmmm..mmmmMMHAHAHAHAHAHAHHAHAHAHAHAHAHA!!!
Damn...couldn't keep a straight face. ^_^
Seriously, though, if FreeBSD is no longer king of the mountain, my vote would have to go with NetBSD (it's always been the BSDs, hasn't it?), although the term "best" is rather open-ended, and subject to serious variations of interpretation. Perhaps before we set about answering this question, we ought to decide just what we mean by "best".
____
~ |rip/\/\aster /\/\onkey
From TFA:
Required for full three month are US$18,900 (15,600 or CHF24,000)
26. July 2005: Pair Networks, pledged US$14,000 Thank you very much!
Go Pair Networks!
I don't see how the linked document suggests the stack is sub-par. All it says is that the guy wants money to fund optimization, like PHK's done before.
If the page started with "OMG Linux is fastar than us!" then, yes. But I don't see how you reached your conclusions based on this material.
you have to put things in context
security ? - OpenBSD / NetBSD / Linux
performance ? - MS Windows 2003 / Linux / FreeBSD
(windows has been showen to support very nice acceleration card NAPI on linux has been showen 2.6 kernel slower than 2.4 at the recent kernel summit and freeBSD is still up there on exsisting hardware the rewrite is about supporting new models )
Portability ? NetBSD / Linux / OpenBSD
context is everything
regards
John Jones
Agreed, I don't read that post to say that described the stack as "sub par".
I did notice something interesting. If you look through the sponsorships he received, a significant amount ($14,000) was pledged was by Pair Networks. They are one of the larger hosting providers in the U.S. and hundreds FreeBSD servers at their data center in Pittsburgh. It is unlikely that they would grant 14 stacks of high society at something they did not research and find to be of direct benefit. I am not an employee of Pair, but I have been a customer for seven years.
By the way, Pair's Mirrors are quite handy.
In the good old days before OpenTransport and well before OSX, we had MacTCP. It was just fantastic.
Ignorance is the Agent of Fear; Fear Is the Agent of Violence - >1
- "my OS is better than yours, so therefore my stack is better".
- "I've got this obscure stack for my old/obsolete/obscure machine, so it r0x!"
- Linux, of course!
- OS X, of course!
etc..I'd be interested in seeing WHY a stack is better, and this means real data or stories like performance numbers or efficiency observations, etc.
On the other hand, machines built since 1998 have been fast enough and stacks have probably been optimized enough that we don't even notice anymore. For example, it was huge when Solaris 2.5.1 was replaced by Solaris 2.6; the stack was reworked because of "we're the dot in dot.com" web serving duties in 1997. However, those days people were still running SPARCstation 5/10/20's for their webs (read: 40MHz CPUs) and it made a difference. Today, your 500MHz+ CPUs don't really hiccup that much from stack inefficiencies. Sure, slashdot the darn box and you'll see some numbers, but the sites that are regularly hosting that kind of traffic are probably running heavier-duty machines.
My rant, anyway :-)
Never hit your grandmother with a shovel, for it leaves a bad impression on her mind...
Solaris 10's new stack is supposed to be the new top dog of the TCP/IP world.
09f911029d74e35bd84156c5635688c0
All the transmission throughput speed records are held by NetBSD. Hence, it should be fairly obvious which TCP/IP stack is the best. :) Okay, maybe not the best, but definitely the fastest.
http://www.sun.com/software/solaris/get.jsp
For details on the network stack improvements, start here:
http://www.sun.com/bigadmin/content/networkperf/
No, seriously. Vista apparently has a completely rewritten network stack that's supposed to build on the work done with Windows Server 2003 (offloading work to network hardware, primarily) and was designed for IPv6 from the ground up.
Since the TCP/IP stack is only as good as the operating system it's attached to, why don't we come right out and determine, once and for all, the best operating system ever created? I think this will be a grand, insightful discussion, completely devoid of flames.
rooooar
But maybe the fact that NetBSD twice made the Internet2 land speed record holds for something, handling ~6GBit/s from host to host on a production network. See link to more data.
There are also a number of products which use the NetBSD stack: Sony PSP (other link), Avocent KVM-over-IP switches, QNX uses NetBSD's IP stack, there are several switches sold by IBM and HP that use NetBSD, many network access points and smaller routers, etc.
See the BSDrouter homepage for more data.
Dunno if that makes the stack good, but at least it seems to get used.
- Hubert
Without a doubt, DragonFlyBSD has the best TCP/IP stack. It already has all the RFC improvements that Andre wants to add. It has a correct working SACK implementation. DragonFlyBSD is a more stable faster version of FreeBSD. Why would anyone want to pay money to do what's already in DragonFlyBSD? I would encourage any FreeBSD user to just upgrade to DragonFlyBSD.
To me the best network stack is one that can handle many simultaneous open sockets without problems. Performance is of secondary importance after robustness. I understand a stack will at least stall out when it tries to do more than the hardware can support, but it should pick right back up where it left off when sufficient resources are available again.
I love Linux, and I've standardized on it as my platform of choice, but I have run into some problems with 2.4's network stack when >1000 sockets were simultaneously open and active, problems that don't go away until the system is rebooted. I've devised workarounds, but I'd rather not.
I still need to stress-test 2.6 .. been putting it off because I don't trust early minor-revision releases, they tend to be buggy. But from what I've read it's about ready for consideration.
But is there something better? What is the most scalable, reliable TCP/IP stack out there? Is there something that will let me open 10,000 sockets and hammer at them all at once without coming apart like wet tissue paper?
Since I'm going to be stress-testing 2.6, I'll probably do FreeBSD and Solaris10 at the same time. Does anyone have other contenders to suggest? Not necessarily something that screams like a mofo on one socket or five, but rather something that will never, ever misbehave.
-- TTK
Your downstream bandwidth is limited by your upstream bandwidth in corner cases - TCP/IP rate limiting works based on the time between ACKs. If your P2P program is using up all of your upstream bandwidth, then you may find that everything else is failing. Try throttling your P2P app to 80% or so of your available bandwidth, and see if that makes a difference. Also, consider using OpenBSD's ALTQ framework (now ported to FreeBSD and NetBSD) to prioritise ACKs.
I am TheRaven on Soylent News