October 28, 2008

New Technology Makes Internet Switches, Routers Open and Programmable

People playing an online game have to be nimble to keep up with the action. To ensure the best performance, the network should be similarly agile, but the current nature of the Internet is inflexible in many ways. On Oct. 30, however, a consortium of academic researchers will demonstrate a prototype-stage technology called OpenFlow that could enable programmers to infuse the Internet infrastructure with new capabilities.

At the National Science Foundation-sponsored Global Environment for Network Innovations (GENI) Engineering Conference at HP Labs in Palo Alto, the Stanford-based team will show how it can use OpenFlow to make a virtual server roam in real-time between networks in the U.S. and Japan to ensure that computational resources are always closest to the most active players in an online game. Far from just being about gaming, the demonstration aims to show that OpenFlow can be used to program how switches and routers on the Internet direct packets of data, even when those devices are not compatible and have no overt programming interface. OpenFlow, which is freely available at www.openflowswitch.org, offers researchers and commercial application developers a way to create new network technologies using existing networks.

"It's been very difficult for anybody to innovate in the network," said Nick McKeown, an associate professor of electrical engineering and computer science at Stanford. "In order for us to develop new ideas, having a means to test out those ideas is very important."

The OpenFlow Consortium includes researchers from several universities. Helping the consortium's efforts are Cisco, Deutsche Telekom, Hewlett Packard, Juniper Networks, and NEC.

Hacking away at barriers

What OpenFlow does is make switches and routers programmable. It does this by providing an interface that is uniform across a wide variety of devices deployed around the Internet. OpenFlow takes programs written to its standard, transmits instructions to each device via a secure channel, and then implements them in a part of a router or switch called a "flow table." Flow tables are where devices store instructions on what to do with data packets. They are programmable, but are poorly exposed to developers, and each vendor's flow tables are different. OpenFlow provides a common set of functions and makes them explicit.

For the demo at the GENI conference, consortium engineers created a server to run a first-person shooter-style game to be played by volunteers at Stanford and in Japan. The engineers used OpenFlow to program the networks' switches and routers on Japan's JGN2plus network and on Internet2, to optimize the traffic between the server and the game players, keeping network latency to a minimum. In essence, they implemented algorithms that could move the server code to an optimal location to suit the needs of the gamers, without ever disconnecting users as the code roamed.

A smaller-scale version of the demo, contained entirely within the network of the Gates Computer Science building at Stanford, won the best demo award at the ACM Sigcomm conference in Seattle in August.

Guido Appenzeller, a consulting professor at Stanford, said the technology could be applicable to the notion of "cloud computing," in which users harness remote, networked computers to provide their computational resources.

"If you think about the new vision of cloud computing, this allows you to take a server running an application that has very onerous, real-time constraints, and optimize the position of this virtualized server in the global network," Appenzeller said. "We can move it to a server close to you to optimize your experience."

Guru Parulkar, executive director of the Clean Slate Design for the Internet at Stanford, an umbrella program dedicated to reimagining Internet infrastructure, said that other developers and researchers are encouraged to explore the potential of OpenFlow.

"By giving it away to a lot of other people, we're expecting a lot of other innovations to happen, which is something the NSF's GENI program is trying to promote as well," Parulkar said.

The Clean Slate program is supported by Cisco, Deutsche Telekom, DOCOMO USA Labs, NEC, Xilinx and the National Science Foundation.

Key links:

For OpenFlow: http://www.openflowswitch.org

For GENI and the conference: http://www.geni.net/GEC3/GEC3.html

For the Clean Slate program: http://cleanslate.stanford.edu