Bringing Innovation and Growth to the Networked World
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. In recent years 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 RouteBricks 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.

The traditional perception however, is that what we're proposing cannot be done -- that general-purpose systems are too slow for high-speed network processing. Our solution is a novel router architecture in which network packets are processed in software running on clusters of general-purpose PC hardware. This cluster-based architecture has been made possible by the recent changes in Intel’s server platform (integrated memory controllers, Intel QuickPath Technolopgy, etc.) that have resulted in a 2-3x improvement in the packet processing capability of an individual server. By clustering multiple such servers together, we can build software routers that are simultaneously flexible (since network functionality can be modified through a software upgrade) and yet high performance (achieving 1+ Tbps by adding more servers to the cluster).

Some of the benefits of our proposed network architecture include:

In a nutshell, RouteBricks could enable networks that are simpler and more cost-effective to build, operate and evolve.

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:

The above is just a short introduction to the potential for dramatically changing the way networked applications and devices are architected, deployed, and sold. Please see our research papers for additional technical detail.

Frequently Asked Questions
What are the benefits of a RouteBricks router?

There are several:

  1. extensibility: network operators can easily modify/evolve network functionality (e.g., to implement new security features, application optimization, privacy protection, etc.). This is because a RouteBricks router is a software router which means that all packet processing is implemented in software. Our routers are thus fully programmable and network processing can be modified through a software upgrade. No custom hardware redesign or development is required.
  2. leverage the PC ecosystem: network operators benefit from the high-volume manufacturing and widespread supply/support for general-purpose PCs.
  3. familiar development environment: ordinary programmers can easily build and program a RouteBricks router since our hardware and software environment is that of a general-purpose computer.
  4. easy scalability: network operators can scale the capacity of a routebricks router by adding more servers to the routebricks cluster.
  5. consolidation: if a network operator needs some new form of in-network functionality (e.g., P2P caching), she can achieve this by upgrading the software on a RouteBricks router, rather than buying an additional specialized network appliance.

Have the RouteBricks ideas been prototyped?

Yes. We have built the RB4, a RouteBricks router built from a cluster of four servers. The router acts as a 4-port, 10Gbps per port IPv4 router that implements IP forwarding compliant with RFC 1812. RB4 is built from four dual-socket Nehalem-EP servers and eight 10 Gbps Intel Ethernet NICs.

Can I build (say) a 1Tbps RouteBricks router?

Yes. As long as a single server can process packets at speeds at least twice that of a single router “port”, we can scale-up the router capacity by adding more servers. So, for example, if one server can process 20Gbps, then we can build a 1Tbps router from 100 servers (of course, one would want to package these 100 servers intelligently!). In more formal terms: if one server can process packets at a rate of cR bits-per-sec (bps); then we’d need N/c servers to build a router with N ports and a per-port speed of R bps (note that the requirement on the per-server capability is independent of N!).

How is the RB4 programmed?

Using Click, a modular router software package originally developed at MIT. Click offers an elegant software architecture in which new packet processing functions are implemented as modular “elements” that are then tied together through a high-level configuration script.

What applications have been implemented for the RB4?

So far, we have implemented a few basic forms of packet processing (simple forwarding, IPv4 routing, filtering based on access control lists, packet encryption, etc.) as well as a few cutting-edge forms of in-network processing (an energy-management firewall, a network monitoring system and a clean-slate new IP forwarding architecture).

What other network-processing applications could I potentially implement with the RB4?

Any application you like. The beauty of a software router is that -- since packet processing is implemented in software -- you can essentially implement any form of packet processing by just writing the code to do so. Of course, different levels of processing complexity will result in corresponding performance levels; see our research papers for a few experimental results on what tradeoffs are achievable.

Is RouteBricks commercially available?

No. Or at least, not yet! :). We are a research group and the RB4 is a research prototype. We are happy to discuss possible (research or commercial) uses with interested parties.