6 comments

[ 3.1 ms ] story [ 24.6 ms ] thread
A kernel resident network stack works well when you're running multiple user-space applications on your machine and need some sort of fairness guarantees across all those applications' network usage. For dedicated servers running a single high performance network app, moving network processing (and indeed all I/O, e.g. Flash storage) to user-space is close to being a standard practice now, at least in the server appliance marketplace.

Wish cloud providers like EC2 and others would get into the act. As a bonus, they could provide a user-space network stack as libraries so the client apps don't really need to know much below the socket interface (perhaps with some extra setsockopt options etc.) It could actually be a big differentiator for whichever cloud provider pulls it off.

As someone attempting to get into systems programming - thank you! Very insightful article - maybe it would deserve a punchier headline though.
I think that the control/signal separation may have come from radio originally, where these would be broadcast on distinct frequencies.

Similarly, in phone systems the control and signal circuits are often physically distinct to prevent blueboxing.

(Source: vaguely remembered snippets of conversation with my radio-and-phones-and-microwave-and-satellites-and-fibre-and-coax specialist father)

Network switches are the most common case now I suspect.
I know very little about network programming, but this article was remarkably easy to understand.
It also has remarkably little information.

I know it is supposed to be just introduction post, but still some research data and/or actual implementation should have been available. Now it is just "Intel has done that" and people should believe this is true.