Sangjin Han

EECS Department, University of California, Berkeley

Technical Report No. UCB/EECS-2019-112

August 14, 2019

This publication is archived. It is kept only for reference purposes, so it is no longer being updated and may not meet accessibility standards. If you need this content in a different format, please email webteam@eecs.berkeley.edu.

http://www2.eecs.berkeley.edu/Pubs/TechRpts/2019/Archive/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