The Case for Intentional Networking
Jason Flinn, T. J. Giuli, Brett Higgins, Brian Noble, Azarias Reda, and David Watson
Abstract
Wireless infrastructures are increasingly diverse, complex, and
difficult to manage. Those who restrict themselves to homogeneous,
managed campus or corporate networks are a vanishing breed. In the
wild, users are confronted with many overlapping infrastructures with
a broad variety of strengths and weaknesses. Such diversity of
infrastructure is both a challenge and an opportunity. The challenge
lies in presenting the alternatives to applications and users in a way
that provides the best possible utility to both. However, by managing
these many alternatives, we can provide significant benefits,
exploiting multiple networks concurrently and planning future
transmissions intelligently.
To this end, we are developing Intentional Networking---a set
of interfaces and mechanisms that allow applications, users, and the
operating system to proactively manage current and expected future
connectivity. We do this through extensions to the networking API.
Applications can classify sockets or individual transmissions with a
\emph{label}, a qualitative statement about the flow. The operating
system can then best match each flow with network capabilities. In
some cases this requires a re-ordering of the application's send
order; our API offers both blocking and event-based interfaces to
allow this reordering.