So, if MPTCP is a drop-in replacement for TCP, why do programs need to opt into it?
Without being enabled by default, this project will go nowhere.
So, if MPTCP is a drop-in replacement for TCP, why do programs need to opt into it?
Without being enabled by default, this project will go nowhere.
Suppose for example there's a packet-sniffing security appliance along the path, and it only sees packets on one path of the MPTCP flow, and it says "This stream of packets doesn't look like a legitimate TCP flow, so it's probably an attack, so I'll block it."
The same happened with Max Segment Size detection - and that mostly works now.
The maintainers of Linux distributions will enable it, if they see doesn't cause trouble with regular network traffic.
After all, there are instructions for the "old" implementation: <https://multipath-tcp.org/pmwiki.php/Users/ConfigureMPTCP>, <https://multipath-tcp.org/pmwiki.php/Users/ConfigureRouting> and the "new" implementation: <https://github.com/multipath-tcp/mptcp_net-next/wiki/#how-to...>.
There are different ways to enable it on unmodified applications, e.g. via a wrapper or using eBPF.