MultiPath TCP (MPTCP) is an effort towards enabling the simultaneous use of several IP-addresses/interfaces by a modification of TCP that presents a regular TCP interface to applications, while in fact spreading data across several subflows. Benefits of this include better resource utilization, better throughput and smoother reaction to failures.
Get sources from mptcp or manually patch the Linux kernel.
Now, configure the kernel with the following option:
Networking support (NET [=y]) Networking options TCP/IP networking (INET [=y]) [*] IP: advanced router [*] IP: policy routing [*] MPTCP protocol [*] MPTCP: advanced path-manager control ---> <*> MPTCP Full-Mesh Path-Manager
Using Coupled Congestion Control will guarantee fairness across a shared bottleneck, enable it:
Networking support (NET [=y]) Networking options TCP/IP networking (INET [=y]) [*] TCP: advanced congestion control ---> <*> MPTCP COUPLED CONGESTION CONTROL <*> MPTCP Opportunistic Linked Increase