libtorrent icon indicating copy to clipboard operation
libtorrent copied to clipboard

MPTCP Support for lt1.2 and lt2

Open KyleSanderson opened this issue 5 months ago • 3 comments

Hello.

https://www.mptcp.dev/implementation.html

I think this goes in socket.hpp ?

Should just be IPPROTO_MPTCP with glibc 2.32+, and if it fails, then fall back to IPPROTO_TCP. If a client does not support MPTCP, regular TCP is used.

KyleSanderson avatar Jun 29 '25 21:06 KyleSanderson

libtorrent lets the user pick which network interfaces to use for outgoing connections, as well as which interfaces to listen on. Would this feature interfere with these settings? I would worry about paths being selected that circumvent VPNs for instance.

arvidn avatar Jul 19 '25 17:07 arvidn

libtorrent lets the user pick which network interfaces to use for outgoing connections, as well as which interfaces to listen on. Would this feature interfere with these settings? I would worry about paths being selected that circumvent VPNs for instance.

No, you'd have to setup a MPTCP interface to intentionally use it on the initiator (which I believe is the point of concern). On the receiving side, you can now accept traffic from MPTCP interfaces. Both sides have to negotiate and agree to use MPTCP (the change proposed, just says we agree MPTCP is ok to be received).

This should help anonymity, because the initial stream may just be a low bandwidth entry point (that VPN interface), to higher bandwidth discrete links. You'd have to manually configure your MPTCP interface, to use other interfaces.

KyleSanderson avatar Jul 19 '25 23:07 KyleSanderson

@arvidn: Yes it will be nice to check Multipath TCP (MTCP):

  • https://en.wikipedia.org/wiki/Multipath_TCP
  • https://www.mptcp.dev/
  • https://github.com/multipath-tcp

Thanks in advance.

Neustradamus avatar Jul 26 '25 07:07 Neustradamus