New Abstractions for Mobile Connectivity and Resource Management
Abstract:
Mobile devices have become an important—and for many, primary—means of connecting
to the Internet. They offer great flexibility in how and where they are used,
even with constraints like battery life and data caps. However, their network stack
and operating system are lacking when it comes to network mobility and managing
their limited resources. First, mobility, if even addressed by devices and apps, is
done in an ad-hoc manner to “hide” connectivity issues rather than fix underlying
shortcomings. Second, resource management is dealt with in broad strokes, scattered
among various app and device settings pages.
In this thesis, we provide new abstractions addressing these issues. To better
handle mobility in the network stack, we need to remove the overloading of IP/port
as both app-level connection identifiers and network addresses, thereby allowing apps
to maintain a connection even when addresses change. To that end, we present
ECCP, a protocol that splits the current transport layer into two: one for connection
management (e.g., startup, teardown, migration) and one for data delivery semantics
(e.g., reliable, best-effort, etc). ECCP is part of a larger network architecture,
Serval, which addresses several pain points with today’s networked systems, consisting
of replicated backend services and mobile, multi-homed clients. We derive a
state machine for ECCP supporting migration and multipath, and through Serval, we
demonstrate ECCP’s value in scenarios utilizing mobility (e.g., VM migration) while
achieving par performance with TCP.
To utilize better mobility support, devices need a more expressive resource management
system. Currently, network choice and resource management is limited to
broad decisions (e.g., if cellular network usage is allowed). Users must either choose
“good enough” settings or else micromanage their device and apps, e.g., turning WiFi
on/off while streaming music between hotspots. Instead, we introduce Tango, a programmatic,
policy-based network resource management platform, that works at the
iii
device and app levels to offer more flexiblity. Users and apps define policies that
dynamically monitor device state to adjust resource usage on their behalf. Using
Tango, a user can, e.g., minimize cellular data while streaming music (using it only
to prevent playback pauses), saving up to 60-95%.