Welcome to the blog of Can Sar, a Stanford CS major. This blog is made up of my thoughts on Computer Science and the computer industry, as well as ever exciting tales from my life.

September 14, 2004

Linux Networking

I'm currently reading through the documentation for the Linux Networking Code, and having read the TCP/IP Illustrated Series is really helping me here. It is now more than a year since I read those 3 books, and I did not understand all the details of the code in Volume 2. But I remember enough to be able to get acquainted with the code quickly. Most importantly, I just found that Linux does something that was not a good design back in the days of the original BSD releases. Alan Cox put it best in this article on the Networking Layer:

In systems such as BSD unix you don't need to know in advance how much space you will need as it uses chains of small buffers (mbufs) for its network buffers. Linux chooses to use linear buffers and save space in advance (often wasting a few bytes to allow for the worst case) because linear buffers make many other things much faster.

I've been looking for an example of such a system for a while now (TCP Illustrated hinted there were some) and its really only a small change with great benefits (now that memories are bigger).

Posted by Can Sar at September 14, 2004 01:27 PM to category Computer Science | TrackBack
Comments
Post a comment









Remember personal info?