Messages in this thread |  | | From | (Alan Cox) | Subject | Re: Proposal: merged system calls | Date | Mon, 27 May 1996 18:48:40 +0100 (BST) |
| |
> While there are bugs in the now current linux code, there are some big > names that trashed mbufs. Van Jacobson has a BSD based stack that > he's heavily hacked to *NOT* use mbufs, but a scheme that escapes me > at the moment. He also did the hyperoptimizations of the checksum > calculations for the m68k (I believe).
Van came up with a whole load of very clever pieces of code and design. He is the source of the copy/checksum ideas, the man who really put the boot into mbufs (and even more so streams) and the person who did the very elegant header prediction code. Much of the 1.2->2.0 improvements are down to his work. Some of the stuff post 2.0 that people are hacking on is also very much down to him.
> Why do people like them? mbufs are good enough to get decent > performance on most available hardware and they are in a stack that is > relatively solid. The linux crowd knows well the pitfalls of trying
Mbufs are a great tradeoff on a machine with low memory. If I was writing tcp/ip stacks for 2Mb BSD VAX 11/750's I'd have gone the same way. On PC class machines they are a very performance poor way to do things as its better to throw a few more bytes at the problem.
> to reinvent the TCP wheel :-).
It has to be said that there are two big problems with re-inventing the TCP wheel.
1. Lack of good standards. Half of the current optimisations and TCP algorithms are UNDOCUMENTED (thankfully Richard Stevens has now documented most of them). The BSD socket standard is undocumented in all its weirder areas, and changes every release.
2. There are so many broken terminal servers and PC stacks out there that assume BSD behaviour (like acks being updated on retransmitted frames), that you spend a long time hunting them out.
Alan
|  |