The RouterBricks project seeks to enable networks that are easy to build, program and evolve. Networks have traditionally been built using special-purpose hardware and software which makes them difficult to extend, program or otherwise experiment with. Routerbricks instead allows ordinary programmers to rapidly build and (re)program networks using the hardware and software platforms they are most familiar with that of the general-purpose PC. To achieve this, we are exploring a novel network architecture in which network packets are processed in software running on clusters of general-purpose PC hardware. This approach allows us to achieve high network processing speeds while offering significant advantages over specialized network equipment: lower costs due to large-volume manufacturing, a widespread supply/support chain, and, most importantly, programmability and extensibility.
In recent years, there has been significant concern within the computer science community over the inflexibility of the Internet’s infrastructure. Simply put – the original designers of the Internet never anticipated its astounding success. Consequently, traditional network design took a fairly narrow view of the functionality that network equipment (e.g., network routers or switches) must support. However, it has become increasingly clear that this traditional approach to building network equipment can no longer keep pace with the growing demands being placed on the Internet’s underlying infrastructure.
The RouterBricks project is exploring a simple, but radical solution: that networks be built from general-purpose computers, rather than the narrowly specialized equipment used today. If feasible, this could lead to a whole new approach to building networks – one that leverages the familiarity and flexibility of the PC ecosystem to reshape the world of network equipment and services. By changing how networks are architected, new models for networked applications can be brought to the data center, internet, and networking infrastructure world. In short, what the PC did for computing could be extended to network infrastructure and programming.
But this isn’t just about recreating current networks with new building blocks. A transition from specialized networks to general-purpose ‘open’ infrastructure will pave the way for new network-centric services and business models – just as the PC broke the stranglehold mainframes had on the fledgling computer market. For example: “server-only” datacenters where compute servers do double duty as switches, with a fluid boundary between application and network processing; isolated “virtual” networks that can be leased to (and customized for) different customers and applications (video, gaming), akin to how data-centers used virtualization to launch cloud-computing; ISPs and data centers that can differentiate by quickly reprogramming their networks, deploying new services or implementing new security mechanisms.
In the RouterBricks project we have designed a software router architecture that achieves scalability by parallelizing router functionality both across multiple servers and across multiple cores within a single server. We have build a fully programmable 4-server prototype RouterBricks router (or “RB4”, as we call it) using the familiar Click/Linux environment and only off-the-shelf, general-purpose Intel server hardware. We are currently developing a set of applications to fully exploit the potential of the RouterBricks architecture, including content delivery, power management in enterprises, new data-center architectures and so forth.