Intelligent Design Enables Architectural Evolution #
Looking at the Internet’s development over the last decades, we have seen plenty of innovation on the access and application layer. In contrast, the address (IP) and transport layer (UDP/TCP) have seen practically none. The only noteworthy development is the still-ongoing and painful switch from IPv4 to IPv6. This lack of innovation is why the address and transport layer is frequently referred to as “ossified.” The ossification—or architectural rigidity—prevents us from addressing emergent needs that the original designers of TCP/IP could not foresee, such as security and mobility. Some research has started to propose future Internet architectures that avoid these very issues by being evolvable. So far, these proposals were not straightforward.
claims that an evolvable network architecture is easier to achieve than previously thought. In fact, it’s right in front of our eyes and can be built with well-known design principles such as indirection, modularity, and extensibility. While the ingredients are simple, the process of upgrading is still a challenge, though. On end hosts, evolvability can be implemented by having applications use a “version number” when using the operating system’s network stack. While legacy applications would remain functional, newer applications can use newer version numbers to leverage future Internet architectures. The naming system (currently mostly DNS) can be upgraded similarly; together with a name, applications should use a namespace identifier when using APIs such as
gethostbyname(). Applications don’t need to understand names. Instead, they can treat them as opaque byte arrays.
Routers are a bit more complicated than end hosts, but ultimately rely on the same principle of indirection. When end hosts send network packets, they must add a “packet identifier” that determines the interdomain routing system that is to be used by the network. Then, this very routing system takes over and forwards the packet to routers that implement the system the end host intends to use.
In this paper, the authors took a bottom-up approach, meaning that they first thought about the low-level engineering challenges that are necessary to achieve evolvability. Past work has also looked into a top-down approach, and to the authors’ delight, the conclusions were similar. Finally, the paper argues that security is an orthogonal problem and can be implemented entirely by end hosts, without any support by the network.