Kernel-bypass networking reduces network-data-path overhead by moving packet processing out of the operating-system network stack. It can avoid kernel crossings, context switches, copies, and per-packet allocation costs. section 3.3.3 section 7.5.3
Packet processing can move to different places:
- Userspace software can implement the TCP/IP stack and receive packets directly into userspace memory. section 3.3.3
- Hardware approaches include RDMA, which enables direct access to memory on another machine, and SR-IOV, which exposes virtual NICs to virtual machines. section 3.3.3
- NIC offload can move protocol processing or application logic onto the NIC. XDP supports programmable packet processing early in the network path, either in the Linux kernel or on dedicated hardware. section 3.3.3
Userspace TCP/IP
F-Stack runs the FreeBSD network stack in userspace with DPDK, allowing an application to process packets without sending them through the kernel network stack. section 3.3.3
