7 ms·
Linux Kernel MultiPath TCP Project
- zokier 4y agoI had such high expectations for mptcp when I first heard about it, it just makes lot of sense. But after a decade of work I see no wider interest in it, nevermind mptcp becoming the default option.
- kristianpaul 4y ago“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.”
- datastoat 4y agoOne other point to make about MPTCP: it has a congestion controller that takes pains to be fair with respect to regular TCP. It's a subtle problem... MPTCP sender -> [link1 | link2] -> shared link -> MPTCP receiver There might be a TCP flow using the shared link, in which case fairness means that the MPTCP sender should only send the same total traffic as would a single TCP flow. Or there might be a TCP flow using link1, and a second TCP flow using link2, and the shared link might be uncongested, in which case MPTCP could reasonably behave like two TCP flows. Or maybe there's a single path TCP flow using (link1 -> shared), or one using (link1 -> link2), or ... The MPTCP congestion controller was designed so that in all of these cases it's no greedier than if it were a single TCP flow. And it has to do this without knowing the network topology, nor what other flows are using the network. Reference: 2011 paper, https://www.usenix.org/conference/nsdi11/design-implementation-and-evaluation-congestion-control-multipath-tcp https://www.usenix.org/conference/nsdi11/design-implementati...
- j16sdiz 4y agoIs there any path to "upgrade" TCP to MPTCP? Last time I checked, it is a separate protocol, need separate stack and no software support
- xmichael999111 4y agoVPN
- nynx 4y agoI wonder whether this would be better spent integrating into QUIC
- topspin 4y agohttps://multipath-quic.org/ https://multipath-quic.org/
- tracnar 4y agoThe work on MPTCP started before QUIC. One big difference is that MPTCP puts a lot of effort to look like TCP to avoid being affected by middleboxes (firewall, NAT, proxies, ...). QUIC uses UDP which is more often blocked or throttled, though that will quickly change as it gets more widely deployed!
- londons_explore 4y ago> Programs that were built to use TCP will still use the TCP connections when running on an MPTCP-enabled kernel unless the programmer/user/admin opts-in to using Multipath TCP. 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.
- bheadmaster 4y agoI didn't see the phrase "drop-in replacement" anywhere in the linked text, so I assume it's not supposed to be a drop-in replacement.
- tracnar 4y agoMPTCP is an extension of TCP and is "drop-in". But AFAIK making it opt-in was a concession to get it upstreamed in Linux, understandably as this is a risky change. There are different ways to enable it on unmodified applications, e.g. via a wrapper or using eBPF.
- kevincox 4y agoHopefully there will eventually be a sysctl to do it by default and maybe with enough testing enable tbat be default.
- simoncion 4y ago> Without being enabled by default, this project will go nowhere. 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/ConfigureMPTCP>, <https://multipath-tcp.org/pmwiki.php/Users/ConfigureRouting https://multipath-tcp.org/pmwiki.php/Users/ConfigureRouting> and the "new" implementation: <https://github.com/multipath-tcp/mptcp_net-next/wiki/#how-to-use-mptcp https://github.com/multipath-tcp/mptcp_net-next/wiki/#how-to...>.
- datastoat 4y agoMPTCP is a drop-in replacement -- but its original designers were paranoid about e.g. packet-sniffing middleboxes, so they made it opt-in. 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."
- Shalle135 4y agoHow is this superior to bonded / teamed interfaces?
- m_eiman 4y agoBonded interfaces have the same IP (iirc), MPTCP can send traffic over multiple IPs, eg over both wifi and 4g, for better roaming. Especially useful when moving around and entering/leaving different wifi networks, all without dropping the TCP connection.
- miken123 4y agoA bonded/teamed interface usually load balanced based on a flow. Thus, over a single TCP flow you will only use one of the interfaces. On top of that MPTCP also offers advantages when it comes to handover in mobile networks: if your IP address changes for some reason (e.g., switching from Wifi to mobile), existing connections won't be interrupted.
- zokier 4y agoIt's more related to multihoming than link aggregation.
- datastoat 4y agoSuppose the sender has a single interface, and it's the receiver that has multiple interfaces. With MPTCP, the sender will learn that there are multiple paths available, and it'll balance its load adaptively over those paths. I don't know enough about bonded interfaces, but I don't see how they'd help in this scenario. This scenario is natural with mobile devices, which is probably why Apple uses MPTCP.
- pgorczak 4y agoWhile a TCP socket needs to be created with specific flags to enable multipath, there is a tool that wraps existing applications and “upgrades” the socket calls on the fly: https://manpages.ubuntu.com/manpages/jammy/man8/mptcpize.8.html https://manpages.ubuntu.com/manpages/jammy/man8/mptcpize.8.h...
- jiggawatts 4y agoFor anyone wondering what the point of this is -- MPTCP is being pushed primarily by Apple. It is intended to make mobile devices like phones or tablets be able to switch between WiFi and 4G/5G seamlessly. Theoretically it would also be useful for corporate laptops that get unplugged from a docking station every time someone needs to go to a meeting. Any long-running downloads wouldn't have to be interrupted, SSH sessions could remain connected, etc...
- ggm 4y ago"Pushed" is a bit objectifying. Apple implemented and owning both sides of client (iphone) and server (iOS distribution service) have made it work for them. And iMessage. It's works, it gives persisting end to end connection (I would say session in isolation 7 layer model terms) state, it allows services to continue unabated between wifi and mobile. It's good tech. I hope more people implement.
- tyingq 4y agoI don't know what Android uses for the same purpose, but it got a lot better about 2-3 years ago. I see it every day, when I leave the house in my car, and it's been seamless for a while now, even for live phone calls. I suppose YMMV, since everyone seems to be on a different release of Android, different hardware, etc.
- tjoff 4y agoI use wireguard which solves it on a different kind of layer, but is a bit heavy-handed if that's the only thing you'd want it for.
- xiphias2 4y agoCan it be used for ,,pausing'' TCP connections? When I go into an elevator, the WIFI / 4G connection can drop for half minute for example, then it reconnects later. Or for example switching from one wifi network where the connection is slow to another one (my fast tethered mobile network).
- bonomono 4y agoWhat about the obvious privacy concerns that arise from the use of this technology, particularly if it becomes widespread? I see nothing on this website that addresses those.
- BiteCode_dev 4y agoObvious ?
- loa_in_ 4y agoI don't see how this impacts privacy.
- nonrandomstring 4y agoThe impact on privacy appears positive. Most users remain unaware that ISPs track and monitor traffic, or that services like Google and Cloudflare can fingerprint and statistically aggregate connection meta-data (packet size and timing) to build data sets even where privacy preserving technologies are deployed by the user. Many domestic users could take advantage of this TCP kernel update because of the ubiquity of available connections. In dense urban settings people might have access to one or more wired connections, perhaps a couple of 4G /5G modems lying around, a phone to tether, and perhaps some free-open wifi connections from nearby coffee shops etc. Multi-homing not only offers greater reliability, it can allow connections to evade spying much like "spread spectrum" cryptography, by multiplexing connections - as TCP was designed/intended to accommodate - spreading them randomly over multiple links. Of course there are ways that multi-con TCP could lessen privacy in the hands of a naive user, perhaps by unexpectedly routing through a less secure link, but this comes down to digital literacy and good craft in the end.
- tjoff 4y agoISP monitoring is illegal in many cases and is the easiest to prevent completely whereas multipath TCP doesn't help much at all in this case. And if you can assume digital literacy and good craft it is a non-issue anyway. If you have access to wired, wifi and 4G/5G the correct use of that is to always in every single case to use wired, until it breaks. Your ISP will get the exact same traffic as it does without multipath TCP (which probably is encrypted anyway). The only difference and advantage is that your connection doesn't break when you switch between them. You'd do the exact same switch without multipath TCP only you'd have to reconnect. On the other hand, you do give google and everyone else you talk to your complete list of endpoints. So your movement can be trivially followed and you have another insanely valuable tracking data that does not necessarily change when you change network. I am flabbergasted that anyone can argue that this is a positive from a privacy point of view. I hope I've missed something obvious.
- yewenjie 4y agoIs there anything that I can use today that lets me use both data and Wi-Fi on my mobile phone for faster internet?
- dveeden2 4y agoDoesn't SCTP serve the same purpose? Any reason why that never became mainstream for SSH etc?
- detaro 4y agoIn theory yes, but good luck finding a firewall or consumer router that passes SCTP. Support for it across random internet paths is atrocious, this stuff is so stuck that if you don't look like TCP or UDP it's not generally usable. MP-TCP specifically does what it can to look like normal TCP connections so it doesn't get messed up by middle boxes and degrades gracefully.
- drummer 4y agoSimilar tech already implemented in QuantumGate with a load of other capabilities https://github.com/kareldonk/QuantumGate/wiki/QuantumGate-UDP-Protocol https://github.com/kareldonk/QuantumGate/wiki/QuantumGate-UD...
- thomas536 4y agoIs anyone using this on Android?
- xmichael999111 4y agoCheck out openmptcprouter.com works excellent!
- xmichael999111 4y agoCheck out openmptcprouter.com works excellent, currently connected using it and two home connections.