System Design for Software Packet Processing
Sangjin Han
EECS Department, University of California, Berkeley
Technical Report No. UCB/EECS-2019-112
August 14, 2019
http://www2.eecs.berkeley.edu/Pubs/TechRpts/2019/EECS-2019-112.pdf
The role of software in computer networks has never been more crucial than today, with the advent of Internet-scale services and cloud computing. The trend toward software- based network dataplane—as in network function virtualization—requires software packet processing to meet challenging performance requirements, such as supporting exponentially increasing link bandwidth and microsecond-order latency. Many architectural aspects of existing software systems for packet processing, however, are decades old and ill-suited to today’s network I/O workloads. In this dissertation, we explore the design space of high-performance software packet processing systems in the context of two application domains. First, we start by discussing the limitations of BSD Socket, which is a de-facto standard in network I/O for server ap- plications. We quantify its performance limitations and propose a clean-slate API, called MegaPipe, as an alternative to BSD Socket. In the second part of this dissertation, we switch our focus to in-network software systems for network functions, such as network switches and middleboxes. We present Berkeley Extensible Software Switch (BESS), a modular frame- work for building extensible network functions. BESS introduces various novel techniques to achieve high-performance software packet processing, without compromising on either programmability or flexibility.
Advisors: Sylvia Ratnasamy
BibTeX citation:
@phdthesis{Han:EECS-2019-112, Author= {Han, Sangjin}, Title= {System Design for Software Packet Processing}, School= {EECS Department, University of California, Berkeley}, Year= {2019}, Month= {Aug}, Url= {http://www2.eecs.berkeley.edu/Pubs/TechRpts/2019/EECS-2019-112.html}, Number= {UCB/EECS-2019-112}, Abstract= {The role of software in computer networks has never been more crucial than today, with the advent of Internet-scale services and cloud computing. The trend toward software- based network dataplane—as in network function virtualization—requires software packet processing to meet challenging performance requirements, such as supporting exponentially increasing link bandwidth and microsecond-order latency. Many architectural aspects of existing software systems for packet processing, however, are decades old and ill-suited to today’s network I/O workloads. In this dissertation, we explore the design space of high-performance software packet processing systems in the context of two application domains. First, we start by discussing the limitations of BSD Socket, which is a de-facto standard in network I/O for server ap- plications. We quantify its performance limitations and propose a clean-slate API, called MegaPipe, as an alternative to BSD Socket. In the second part of this dissertation, we switch our focus to in-network software systems for network functions, such as network switches and middleboxes. We present Berkeley Extensible Software Switch (BESS), a modular frame- work for building extensible network functions. BESS introduces various novel techniques to achieve high-performance software packet processing, without compromising on either programmability or flexibility.}, }
EndNote citation:
%0 Thesis %A Han, Sangjin %T System Design for Software Packet Processing %I EECS Department, University of California, Berkeley %D 2019 %8 August 14 %@ UCB/EECS-2019-112 %U http://www2.eecs.berkeley.edu/Pubs/TechRpts/2019/EECS-2019-112.html %F Han:EECS-2019-112