Enabling Innovation Below the Communication API
- Ganesh Ananthanarayanan ,
- Kurtis Heimerl ,
- Matei Zaharia ,
- Michael Demmer ,
- Teemu Koponen ,
- Arsalan Tavakoli ,
- Scott Shenker ,
- Ion Stoica
|
Innovation in the network is notoriously difficult due to the
need to support legacy applications. We argue that this difficulty
stems from the API used to access the network. The
ubiquitous Sockets API lets applications choose from a number
of communication mechanisms, but binds them tightly
to their chosen mechanism (e.g. specifying a destination using
IPv4). Applications must therefore be modified in order
to benefit from new network technologies. To address
this problem, we propose a new communication API called
NetAPI that lets applications specify their communication
intents without binding to particular network mechanisms,
enabling evolution below the API. We have built a NetAPI
prototype for the iPhone, and use it to show that we can add
disconnection tolerance, content shaping and power saving
policies under NetAPI without application modifications.