Multipath TCP was designed and implemented as a backward compatible replacement for TCP. For this reason, it exposes the standard socket API to the applications that cannot control the utilisation of the different paths. This is a key feature for applications that are unaware of the multipath nature of the network. On the contrary, this is a limitation for applications that could benefit from specific knowledge to use multiple paths in a way that fits their needs. As the specific knowledge of an application can not be known in advance, we propose a Multipath TCP path manager that delegates the management of the paths to the applications. This path manager enables applications to control how the different paths are used to transfer data. We implement this path manager above the Linux Multipath TCP kernel. It is composed of a kernel part that exposes events and commands to an userspace application that controls the key functions of Multipath TCP such as the creation/suppression of subflows or reactions to retransmissions. We demonstrate the benefits of this path manager on different use cases.
['Benjamin Hesmans', 'Gregory Detal', 'Sébastien Barré', 'R. Bauduin', 'Olivier Bonaventure']
SMAPP: towards smart multipath TCP-enabled applications