Todd’s Typically Long-Winded Intro to New Topics: The New Networking Stack and Why It’s So Important To You
As many of you know and are more than likely less than thrilled about, Microsoft’s Vista has been out for a while now. Old news. On a much fresher note, I’m guessing a whole lot less of you are actually familiar with Server 2008 that’s just now starting to sneak it’s way into computer server rooms. For those of you that are, I know there’s a ton of division there in the ranks, so for now and maybe never, I’m not going down the interface path. Let’s just agree that that some like it, some hate it, and some really don’t give a rip. It is what it is—‘nuff said, because you know what? Core Server 2008, which I happen to think is very cool indeed, doesn’t even have an interface—so much for that noise!
Okay, what I’m all excited about is the new networking stack that lives inside of both Vista and Server 2008. Yes, you could play masochist for a day and update XP and Server 2003 with the Scalable Networking Stack, but only if you’re into pain and suffering. I’ve never seen that result in anything but an ugly crop of nasty problems suddenly making their way onto systems. This isn’t the case with Vista and Server 2008. Now stop—I don’t have my head in the sand or anywhere else nasty. I’m not maintaining that for sure, Vista and Server 2008 can, and have given us grief, but if you really think about it, not to the systems themselves. Instead, any death or destruction you experienced, whether mild or major, occurred mostly on your old, antiquated networks, didn’t it?
To be straight with you, I’ve really never been excited about any product from Microsoft, and I mean any product ( be honest, have you?) but then, this new networking stack is truly a different story—I tell you no lies! It’s just not the same old song and dance. This stack actually provides LAN, WAN and career enhancing changes without smoke, mirrors or looking for a good deal on a straight jacket.
Now you probably already know that the MTU on a segment of data has been stuck at 64k MTU for, like, no less than about 30 years now, right? It’s definitely a serious and totally limiting problem with our old IPv4 networking stack. So yes, IPv4 is obsolete—it sucks and badly! It’s chock full of security holes, cramped with sorely inadequate segment sizes, besieged with legions of retransmissions—oh, not to mention that tiny, little issue of running out of addresses! Let’s face it, using the old windowing flow control has majorly constricted our lives like a hungry anaconda wrapped around our collective neck, we just didn’t know it. No, wait—I’ll be fair. Some of us did, it’s just that there weren’t exactly crowds of people listening—or even interested in doing so. Most people just don’t like change.
Well my friends, those, “that’s the way we’ve always done it”, days are gone…Vista/Sever 2008 networking is going to make you sit up and listen finally, whether you want to or not. Your only real choice is whether you opt to get a head start on this now, or pitifully bring up the rear later!
To wit, let me ask you this: Why break up our data streams into segments, create a window size, and then receive an acknowledgment from a remote host after that window size has been sent, then just keep repeating this process over and over and over again until all the data has been sent? If you answered, “well, because Todd, that’s how we do it”, you would be sort of right…Yes, that’s how we did it. Take a look at the figure and pay close attention to the encapsulation method—everyone should recognize it (click to enlarge):
Step-by-step, the network data is encapsulated and processed by the host.
Moving on: It’s the dreadful truth… By default, Windows and Vista are predators. They seek to and strive to bring down your innocent, vulnerable little network, and they’ll do it in a flash of gore given the teensiest window of opportunity! How? Stay tuned for next week’s blog and find out.
But what about the good part of Vista/Server 2008? Well, Windows and Vista want to send data streams from your application to your new, shiny, expensive network card—a TCP Offload Engine (TOE)— and full on skip the network stack all together. Doing this is called Chimney and it can be enabled on both Vista and Server 2008, and BTW, I highly recommend implementing this on all you servers—really! The reason why is that Chimney is proven to provide 60% more throughput on your server and an 800% (yes, 800%!) processor efficiency increase for your applications! Interested yet? Probably, but you may be wondering, “how does the data get from one host to another if we don’t use TCP and IP?” Gnomes/faeries/miracles? Well, kind of… you see, Chimney uses something called Vents that allow both TCP and IP to communicate to the remote host(s) and well to me, vents are pretty close to miraculous—check out the next figure:
All of the network stack processing has been lifted from the host processors and instead are all processed on the network card.
Intel has a somewhat competitive, similar product out called Net Direct Memory Access (NetDMA), and it works the same way—sort of. But know that you can’t use Chimey and NetDMA together so don’t get duped into shelling out some serious capitol for a super pricey server with Intel I/O Acceleration Technology (I/O AT) if you have a TOE card. Sad but true, I’d say it’s a good bet although that a lot of companies will foolishly end up with servers that have both technologies thanks to ingenious marketing/sales traps!
And there’s more! Another great feature of the new networking stack is called receive side scaling (RSS) that works like this: When packets are received on a host, they’re placed into a buffer then processed through the networking stack. In order for this to happen, they must go through the processor. So, what if you’ve got a bunch of processors on your host or server? All packets being processed for the network stack can only be handled by one processor. Multiple processors are there to process the application data. The issue we all commonly face is that we require tons of network stack processing to be completed on an already busy, even overloaded server. But with an RSS capable network interface card, the network stack processing can be offloaded to multiple processors—something that Microsoft claims to provide an increase of 50% more requests per second on your server. Just imagine the exponentially increased performance in larger networking environments—wow!
So you can see there’s some pretty fascinating and seriously practical aspects loaded inside Vista/Server 2008—and I’ve only just begun talking about them! Just wait… Very soon, I’ll be telling you a couple more super cool and highly powerful features as well as about the great new logical networking stack called IPv6 that’s enabled by default on Vista/Server 2008. Added to what I’ve told you so far, these new features and IPV6 can truly make a serious improvement in your networking life now and the future!
I know you’re probably thinking I’m pretty confused, after all, what in the world am I doing talking about Microsoft stuff!? WHY are these Microsoft improvements important—relevant enough to warrant putting this on my Cisco blog? I’ll tell you that next week.
Chat soon,
Cheers!
