Creating An Extensible Internet Through Interposition
In the past decade, the construction of Internet-scale distributed applications has been a battle between the immovable object of the Internet architecture and the irresistible force of the need for better application performance and control. In order to achieve the desired results without changing the underlying Internet, the ecosystem has turned to inserting additional functionality in more limited and thus more malleable settings, ranging from the global-scale user-facing private networks of large cloud and content providers to the very local deployments of service meshes inside datacenters. Both of these innovations achieve their desired functionality by interposing nontrivial processing between clients and servers, a measure not envisioned by either the canonical Internet architecture or the traditional client-server model.
While these departures from previously prevailing practices have led to significantly better performance (in terms of client-experienced latency and availability) and control (in terms of operator-implemented access control and load balancing), they have fragmented our global communication and computational infrastructures into disjointed components. Our challenge is to to preserve the progress in performance and control while restoring a greater degree of coherence in our global infrastructures. This project focuses on a possible approach to achieving these dual goals: the Extensible Internet (EI). EI is designed around three principles:
- Interposition of functionality between client and server should be an inherent component in any new Internet architecture. Interposition is not just a short-term hack but a long-term necessity to achieve the desired level of performance and control.
- Internet functionality should be extensible, not static. Designing for the needs of the present is not enough; we must architect the Internet so that it can meet future needs.
- New Internet designs must be deployed in a backwards compatible manner. This does not mean that no changes are required to deploy EI, only that components that have not changed will continue to function using the current Internet architecture.
EI accomplishes these three principles by inserting a new layer, called the Interposition Layer (IL), above IP in the Internet stack. This new layer accommodates an agreed-upon but extensible set of software-based functionality (which can be accelerated by hardware, but is defined by software) in what are called service nodes near the edge of the network which run a standardized execution environment. EI requires no changes to the traditional layers, nor their infrastructure, so the legacy Internet continues to function as EI is rolled out. This approach creates an Internet that can support the functionality currently found in the private user-facing networks, and exceeds their capabilities by providing far better security (e.g., attestation), greater flexibility (supporting everything from load balancing to DDoS protection to diagnostics to radically different service models such as information-centric networking), and more application-oriented features (such as extending service meshes to incorporate client networks). In addition, the standardized execution environment can serve as a common platform for deploying custom functionality for private WANs.
This project is funded by a grant from NSF, the National Science Foundation, and is collaborative research with PI James A McCauley, an ICSI alum now at Mount Holyoke College.