Practical Random Linear Coding for MultiPath TCP: MPC-TCP
Résumé
MPTCP is a TCP extension that enables transparent multipath for multihomed hosts. However, MPTCP is subject to head-of-line blocking, a problem that degrades delay and throughput. This problem is especially critical when used in wireless environments. On wireless, unreliable links, for example, traffic can get stalled on one path, slowing down the entire flow. A related problem is rescheduling the packets in other subflows too early, which could result in increased overhead. Random linear network coding is a potential approach to solve this problem among others, and we choose to focus in its practical capability to attenuate performance drops caused by blocking while guaranteeing full network compatibility. We have developed a version of MPTCP with network coding, MPC-TCP (MultiPath Coded TCP) and implemented it in the Linux kernel. This scheme offers a simple, practical implementation of network coding across subflows, requires minimal changes to MPTCP and preserves the TCP subflows compatibility with middleboxes. We then use our implementation to investigate the network scenarios where efficiency gains are the highest compared to vanilla MPTCP.