Some of high tech's biggest names - Microsoft, HP and Intel among them - are starting to embrace a technology called network coding in an effort to boost throughput, scalability and efficiency of everything from content distribution to wireless networks.
Network coding, largely shrouded in university and vendor labs since it was proposed seven years ago by a handful of researchers, is essentially an algorithm that proponents say can potentially more than double network throughput while also improving reliability and resistance to attacks. Network coding's most ardent supporters say the technology could spark networking's next revolution, while others say network coding is more likely to quietly infiltrate network architectures based on existing routing schemes. Read the latest WhitePaper - Experiencing Network Hang-ups?
Network coding works by separating messages into smaller bits of "evidence" that can then be deduced by the destination node without transmitting, retransmitting or replicating the entire message. It enables this evidence to traverse multiple paths to and from intermediary nodes which then send it on to the endstation. It does not require additional capacity or routes - it simply mixes evidence of messages into bit streams already supported by an existing network infrastructure.
"It's like eavesdropping: You listen to what's going on around you, you form an opinion, and then you improve the overall throughput and capacity by actually remembering and using the information you have," says Sumeet Sandhu, principal investigator for cooperative wireless communication at Intel Research.
Network coding could work its way into any number of products from routers to wireless systems or take the form of entirely new devices dubbed network coders. Intel sees the potential for the technology to extend the range of wireless base stations. Microsoft is already trialing network coding to make its content distribution system more efficient (read "Microsoft's network coding plan"). Other big network players, such as Cisco, are keeping their plans hush hush for now and declined to say more than this, through a spokesman: "We are investigating network coding as the theory helps distinguish a variety of different types of traffic, then prioritizes them to help increase the capacity of the network. Right now we do not offer any specific network coding products."
Decoding network coding
To give you a better feel for what network coding is all about, here's a further technical explanation.
Network coding manipulates the data inside the packet itself through what's called a "bitwise exclusive or" (xor) operation to combine the information with that of another packet. A bitwise xor takes two bit patterns and performs the logical operation on each pair of corresponding bits, assigning a number "1" if the two bits are different and "0" if they are the same.
These 1s and 0s are the codes, or evidence, by which an endstation or any node with the intelligence to do so can deduce the message received from the sender. In this manner, network coding effectively allows destination nodes to receive multiple messages without an increase in the number of packets it receives or in overall network capacity.
"You're using the algebraic nature of the data in order to give yourself more freedom with what you can do with the packets," says Muriel Medard, an associate professor in the Electrical Engineering and Computer Science department at MIT, and a leading researcher in the field of network coding. "You can do things within the network that allow you to use it more efficiently or in different ways."
Proponents like Medard say network coding is particularly beneficial in shared router infrastructures - such as the Internet -- peer-to-peer content distribution and wireless mesh networks. In an article describing the concept, Medard and other researchers state that network coding has the potential to dramatically speed up and improve the reliability of all manner of communications systems and may well spark the next revolution in the field.
How a network operator implements network coding depends on what the operator is looking to accomplish, Medard says. It differs from MPLS traffic engineering - another, widely implemented method for increasing network capacity and efficiency - in that MPLS does not change the data within a packet; it adds an appendage, or label, to the packet ("MPLS explained").