User Space TCP - Getting LKL Ready for the Prime Time

Running the networking stack in the user space is not new. The conventional wisdom is that the network stack must bypass the kernel in order to meet the performance requirements of a class of applications that demand super-low latency. This paper describes an experiment we’ve undertaken to provide a productionstrength user space TCP stack for a different use case inside Googles internal production network. We choose a Linux based open source project called Linux Kernel Library (LKL) as a base for our effort, and have made significant contribution to it since late last year, improving both its quality and performance. During the time, we discovered a number of architectural constraints inherited in the LKL’s current design and implementation, and gained valuable insights into the pros and cons of the different approaches to user space TCP.

[1]  Ryo Nakamura,et al.  Library Operating System with Mainline Linux Network Stack , 2015 .

[2]  Hsiao-Keng Jerry Chu,et al.  Zero-Copy TCP in Solaris , 1996, USENIX Annual Technical Conference.

[3]  Jeff Dike,et al.  A user-mode port of the Linux kernel , 2000, Annual Linux Showcase & Conference.

[4]  Nicolae Tapus,et al.  LKL: The Linux kernel library , 2010, 9th RoEduNet IEEE International Conference.