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