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:
- programmers can rapidly build and (re)program networks using the
hardware and software platforms they’re most familiar with – that
of the general-purpose computer.
- network software and hardware can be decoupled allowing independent
evolution of both, a form of layering enabling huge innovation for
Internet services. Network functionality can be modified through a
software-only upgrade.
- networks inherit the many benefits of the general-purpose PC ecosystem
-- low-cost high-volume manufacturing, widespread supply/support,
state-of-the-art power management.
- specialized network appliances (firewalls, IDS, caches, etc.) can be
consolidated decreasing cost, power, and complexity.
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:
- `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 and customized for
to different customers and applications (video, gaming), akin to how
data-centers used virtualization to launch cloud-computing.
- ISPs and data centers differentiate by quickly reprogramming, deploying
new services and security responses.
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:
- 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.
- leverage the PC ecosystem: network operators benefit from the
high-volume manufacturing and widespread supply/support for general-purpose
PCs.
- 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.
- easy scalability: network operators can scale the capacity of a
routebricks router by adding more servers to the routebricks cluster.
- 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.