MPTCP Performance with Various Configurations, Path Failures and Recovery
Sunit Kumar Nandi · 2018
Multipath TCP (MPTCP) is ongoing effort to enable simultaneous usage of multiple interfaces or IP addresses for a TCP session. It provides regular TCP to applications and distributes segments across multiple subftows to achieve the desired goal of reliability in the face of failure of a path and goodput equal to the sum of throughput available on all link-layer paths. All of the reported works on the behavioural study of this new extension to TCP focus on the performance of default MPTCP configuration. A broader experimental evaluating MPTCP behaviour under the combinations of four congestion control algorithms, two schedulers, three client-server applications, and the presence or absence of link failure on possible links is reported here. Two important observations are noticed. First, the CUBIC congestion control algorithm is unable to balance traffic evenly across all subflows and demonstrates poor recovery from path failures. Second, iPerf does not utilize MPTCP sequencing and reassembly correctly. Consequently, it shows erratic behaviour in path failure cases and reports throughput incorrectly. iPerf is thus an unsuitable candidate for MPTCP testing. Based on the experiments performed, cURL is found to be one of the best candidates for testing MPTCP.