Application-layer multipath data transfer via TCP: Schemes and performance tradeoffs
For applications involving data transmission from multiple sources, an important problem is: when sources are allowed to use multiple paths, how does one select paths and control the sending rates on the paths to maximize the aggregate sending rate of the sources? We consider this problem in the context of an overlay network by allowing a source to send data over k ( k ? 1 ) overlay paths to its destination. This problem is NP-hard, and we develop an iterative distributed heuristic to solve it. In each iteration, we first select paths and then control the sending rates on the multiple paths to maximize the aggregate sending rate of the sources. For rate control, we develop an application-level multipath rate controller via TCP. This controller is easy to deploy and maximizes the aggregate sending rate of the sources in certain settings. To the best of our knowledge, this is the first distributed application-level controller with such an optimality property. For path selection, we prove that the problem of optimal overlay path selection is NP-hard and propose randomized path-selection algorithms. Our performance evaluation demonstrates that our iterative heuristic performs very well in a wide range of settings. Furthermore, a small number of paths, 24, and a small amount of extra bandwidth in the network are sufficient to realize most of the performance gains.
multipath data transfer path selection application-level rate control