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.<p>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.
I think that the control/signal separation may have come from radio originally, where these would be broadcast on distinct frequencies.<p>Similarly, in phone systems the control and signal circuits are often physically distinct to prevent blueboxing.<p>(Source: vaguely remembered snippets of conversation with my radio-and-phones-and-microwave-and-satellites-and-fibre-and-coax specialist father)