Multipath TCP awareness in Sockets.jl

Hello,

I’m new to the Julia community and currently try to understand the basic lower level networks terminology, even if it’s above my skill level.

There is work going on by the IETF Multipath TCP Working Group that sounds interesting to me:

https://datatracker.ietf.org/wg/mptcp/documents/

I think the connect and accept methods in julias Sockets.jl, that listen to named pipes (Windows) or UNIX domain sockets, listen to single adresses or interfaces and therefore are not MPTCP-aware yet, right?
https://docs.julialang.org/en/v1/manual/networking-and-streams/#A-simple-TCP-example

These are interesting reads and it is suggested that the high level languages, or libraries decide whether to use these optional TCP API extensions.

RFC 6897 - Multipath TCP (MPTCP) Application Interface Considerations
RFC 8041 - Use Cases and Operational Experience with Multipath TCP
RFC 8684 - TCP Extensions for Multipath Operation with Multiple Addresses

Maybe it would be a nice direction, if this could be combined with FastCGI.jl in a standard Julia library for a Webserver.

What are your thoughts on this?

1 Like

Hello,

that is a very interesting thing…
there are multiple questions here… begin able to use specific interface… and multipath tcp.
the latter does not seem to be available yet.

from https://lwn.net/Articles/816313/, April 3, 2020, latest news mentionning multipath:

The work of merging the multipath TCP patches continues, but a fully functional MPTCP implementation in the mainline is still probably a few releases away.

I’d definitely be interested in seeing this explored further, when it’s ready. In the mean time, while it won’t necessarily solve exactly the same set of problems (as it doesn’t operate at presumably the same low-level as MPTCP), ZeroMQ has various modes of combining sockets for efficient traffic distribution. I’ve been interested, in particular, in something akin to Mongrel2’s usage of ZeroMQ to create a high-performance Julia web server.

Nice, thx for sharing Mongrel2.

Yea, MPTCP seems like it’s not fully there yet to be focused on.