There are many applications, such as streaming media, which require network throughput to be stable. In general, there are a number of ways to provide throughput in a network configuration such as a local area network (LAN), wide area network (WAN), Internet, and the like. A traditional approach to address varying throughput is to employ adaptation at the transmitting source to modulate throughput requirements of the source according to prevailing network conditions. For multimedia data, this typically requires media to be somehow rate-scalable. For live content, this often assumes the form of adaptive encoding. For stored content, mid-stream switching between multiple copies of the same content at different bit-rates is often employed.
However, some of the problems of the adaptive source schemes include complexity of producing and managing multiple copies, and large fluctuation in media quality as prevailing throughput varies. More importantly, most content exists in a stored, single-rate format, and is not compatible with the adaptive source model.
Another way to satisfy the throughput requirements of applications is to use multiple transmission paths simultaneously for a single data or streaming source. In such a way, if one path involves a throughput bottleneck, it is possible to bypass that bottleneck by using other paths
Many of today's networks offer connectivity as a basic service, and traffic between two end-points traverse a prescribed default path. However, there are many practical settings in which the simultaneous use of multiple paths in addition to the default path is practical. For example, the next generation Internet Protocol, IPv6, supports “source routing” which allows transmitting source to explicitly specify the path traversed by every packet. The current public Internet does not support such source routing, however, the advent of more advanced network infrastructures in various forms of overlay networks and peer-to-peer networks, provide a platform in which data delivery using multiple paths may be practical. Specifically, these advanced infrastructures provide addition nodes that can relay traffic. In such a way, multiple paths can be realized by using different nodes for relaying traffic.
An example of overlay network is Content Distribution Networks (CDN), which is a caching infrastructure inside the Internet to improve response time and reduce network resource usage for Web traffic. It is called an overlay network because it relies on the Internet to deliver traffic to and from the nodes of the CDN.
The use of multiple paths can potentially lead to better quality of service. Nevertheless, in a system in which end applications are given free choices to use multiple paths, each instance of an application will allocate traffic among the available paths in a “selfish” way. That is, to maximize their own gain without regard to impact on other instances of the same or different applications. When selfish allocation is adopted by an application, a system that admits the flexibility of using multiple paths may perform worse than a system that allows only a single path. Thus, the flexibility in choosing paths that promise to improve performance can actually lead to inferior performance when coupled with the selfish behavior of end-applications.
The fact that choices coupled with selfish behavior can lead to inferior performance has been known for a long time in various contexts. Specifically, it has been known and observed for a long time in road traffic engineering that the construction of a new road may actually lead to longer driving times, a phenomenon often referred to as Braess' Paradox. Similar behavior has also been reported in many different contexts, including telephone networks in which call-blocking probability increases with added new lines.