Resource pooling with multipath TCP

Trilogy annual review, Brussels, 11 March 2010 [slides pptx] [slides pdf] [demos nb]
Politecnico di Torino, May 2010 [slides pptx] [slides pdf]

Abstract.

Resource pooling means making a collection of resources behave like a single resource. In the Trilogy project, we have designed and implemented a multipath version of TCP. It has the goal of achieving resource pooling in the Internet by balancing its traffic across several paths. I will describe the concept of resource pooling, how to measure the extent of resource pooling in a network given its topology and multipath routing and traffic matrix, and how to build a congestion controller for achieving as much resource pooling as possible while ensuring it is no more aggressive than standard single-path TCP.
When several flows share a single link (left), TCP is able to share the link's capacity fairly between them. When the flows use several links, and some are able to balance themselves, the multipath TCP algorithm that we have developed can achieve the same outcome. This is called "resource pooling".

To get good resource pooling, we need sufficiently many flows to have access to paths of sufficient diversity. We also need a multipath congestion control algorithm that can balance its traffic appropriately.