Kernel Bypass Networking
Discussions focus on high-performance networking techniques that bypass the kernel stack, such as DPDK, AF_XDP, XDP, and Netmap, comparing their speed advantages, use cases, and trade-offs against traditional kernel networking.
Activity Over Time
Top Contributors
Keywords
Sample Comments
will this compete with the performance of kernel bypass networking? (and potentially obsolete it someday?)
I believe they are talking about "user space networking", like Intel's DPDK. Skipping the kernel and context switches, etc.
What I think you're describing here is AF_XDP (just for a simpler search term).
Any reason this article completely skipped over the userspace tools like DPDK and Netmap (there are many others). Considering cloudflare uses a customer version of nginx using the dpdk stack?
What is the performance, does it bypass the kernel for the network stack or it's just a linux bundled with compatible hardware?
You're correct. I don't know why you're downvoted. Anything you can do to get performance with kernel bypass techniques can be done inside the kernel as well.
For network io, an userspace accelerated network stack is probably better though.
Wouldn't it be more efficient to just have all or nearly all packets bypass the network kernel? Why compromise?
That's the point of DPDK: to get the kernel out of the way of packet processing.Userland packet processing (in network context) is much more flexible and less brittle than forcing certain functionality to exist solely in the Kernel layer. However things do exist that allow you to (mostly) transparently re-jigger a standard app's TCP/IP calls. One such example is using LD_PRELOAD to "hijack" the sys-calls for certain things and snake it to your (super high performance)
That's not the reality. The kernel network stack does a lot of things that for some applications are not needed, so DPDK is used for those cases when they need very high performance. For example, packet capture, routing, packet generation... I don't think I've seen anyone rewriting what the kernel does precisely because when you use DPDK you don't want to do what the kernel does.