That's not because TCP is perfect or because computer scientists have had trouble finding possible alternatives; it's because those alternatives are too difficult to test. Routers in data center networks have their traffic management protocols hard-coded into them. Testing a new protocol means replacing existing network hardware with reconfigurable chips, which require a lot of programming work, or software-controlled routers, which are so slow that large-scale testing is impossible.

Researchers at MIT's Computer Science and Artificial Intelligence Laboratory have unveiled a system for testing new traffic management protocols that requires no alteration to network hardware. Instead, it operates at realistic speeds, approximately 20 times faster than software-controlled router networks.
The system maintains a compact and efficient computational model of a network running the new protocol, with virtual data packets bouncing between virtual routers. Based on this model, they schedule transmissions on the real network to produce the same traffic patterns. Researchers can then run real web applications on network servers and gain a precise understanding of how the new protocol would impact their performance.

"The way it works is, when one end wants to send a data packet, it first sends a request to this centralized emulator," explains Amy Ousterhout, a graduate student in electrical and computer engineering (EECS) and first author of the new paper. "The emulator emulates in software the scheme you want to experiment with on your network. It then tells the end when to send the packet so that it reaches its destination by traversing a network running the programmed scheme."
Ousterhout wrote the research paper with the help of her advisor, Hari Balakrishnan, a Fujitsu professor of electrical and computer engineering; Jonathan Perry, a graduate student in EECS; and Petr Lapukhov of Facebook.

Traffic Control:
Every data packet sent across a computer network has two parts: the header and the payload. The payload contains the data the recipient is interested in: image data, audio data, text data, etc. The header contains the sender's address, the recipient's address, and other information that routers and end users can use to manage transmissions.

When multiple packets reach a router simultaneously, they are placed in a queue and processed sequentially. With TCP, if the queue becomes too long, subsequent packets are simply dropped, never reaching their destinations. When a sending computer realizes its packets are being lost, it halves its transmission rate, then slowly increases it again.
A better protocol might allow a router to shift bits in packet headers to alert end users that the network is congested, so they can increase transmission rates before packets are dropped. Or it could assign different types of packets different priorities and maintain transmission rates until high-priority traffic is still being sent. These are the kinds of strategies computer scientists are interested in testing on real networks.

Rapid Simulation:
With the new system developed by MIT researchers, called Flexplane, the router that models a network running the new protocol uses only the packet header data, reducing its computational load. In fact, it doesn't necessarily use all the header data, only the fields relevant to implementing the new protocol.
When a server on the real network wants to transmit data, it sends a request to the emulator, which sends a dummy packet through a virtual network governed by the new protocol. When the dummy packet reaches its destination, the emulator tells the real server that it can proceed and send its actual packet.

If, while traversing the virtual network, a dummy packet has some of its header bits reversed, the real server flips the corresponding bits into the real packet before sending it. If a router in the virtual network becomes congested and drops a dummy packet, the corresponding real packet is never sent. And if, in the virtual network, a higher-priority dummy packet reaches a router after a lower-priority packet but jumps ahead of it in the queue, then in the real network, the higher-priority packet is sent first.

The network servers, therefore, see the same packets in the same sequence as they would if the actual routers were running the new protocol. There is a slight delay between the first request issued by the first server and the first transmit instruction issued by the emulator. But from then on, the servers send packets at normal network speeds.

The ability to use real servers running real web applications offers a significant advantage over another popular technique for testing new network management schemes: software simulation, which generally uses statistical patterns to characterize application behavior in a computationally efficient way.

Author: Larry Hardesty, MIT News Office