# Multipath TCP awareness in Sockets.jl

**URL:** <https://discourse.julialang.org/t/multipath-tcp-awareness-in-sockets-jl/48952>\
**Category:** Web Stack\
**Tags:** devdiscussion\
**Created:** [October 24, 2020, 8:33pm UTC](https://discourse.julialang.org/t/multipath-tcp-awareness-in-sockets-jl/48952 "2020-10-24T20:33:00Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![mks](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mks/32/18374_2.png) [@mks](https://discourse.julialang.org/u/mks)\
**Post date:** [October 24, 2020, 8:33pm UTC](https://discourse.julialang.org/t/multipath-tcp-awareness-in-sockets-jl/48952/1 "2020-10-24T20:33:00Z")

</div>

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/](https://datatracker.ietf.org/wg/mptcp/documents/)

> **[Multipath TCP](https://en.wikipedia.org/wiki/Multipath_TCP)**
>
> Multipath TCP (MPTCP) is an ongoing effort of the Internet Engineering Task Force's (IETF) Multipath TCP working group, that aims at allowing a Transmission Control Protocol (TCP) connection to use multiple paths to maximize throughput and increase redundancy.
> In January 2013, the IETF published the Multipath specification as an Experimental standard in RFC 6824. It was replaced in March 2020 by the Multipath TCP v1 specification in RFC 8684.
> The redundancy offered by Multipath TCP enables inve...

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](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](https://www.rfc-editor.org/info/rfc6897) - **Multipath TCP (MPTCP) Application Interface Considerations**  
[RFC 8041](https://datatracker.ietf.org/doc/rfc8041/) - **Use Cases and Operational Experience with Multipath TCP**  
[RFC 8684](https://datatracker.ietf.org/doc/rfc8684/) - **TCP Extensions for Multipath Operation with Multiple Addresses**

Maybe it would be a nice direction, if this could be combined with [FastCGI.jl](https://juliapackages.com/p/fastcgi) in a standard Julia library for a Webserver.

What are your thoughts on this?

---

<div class="post-metadata">

**Author:** ![Omicron666](https://avatars.discourse-cdn.com/v4/letter/o/e47774/32.png) [@Omicron666](https://discourse.julialang.org/u/Omicron666)\
**Post date:** [October 25, 2020, 2:47pm UTC](https://discourse.julialang.org/t/multipath-tcp-awareness-in-sockets-jl/48952/2 "2020-10-25T14:47:03Z")

</div>

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/](https://lwn.net/Articles/816313/), April 3, 2020, latest news mentionning multipath:

> The work of [merging the multipath TCP patches](https://lwn.net/Articles/800501/) continues, but a fully functional MPTCP implementation in the mainline is still probably a few releases away.

---

<div class="post-metadata">

**Author:** ![jballanc](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jballanc/32/328_2.png) [@jballanc](https://discourse.julialang.org/u/jballanc)\
**Post date:** [October 25, 2020, 7:40pm UTC](https://discourse.julialang.org/t/multipath-tcp-awareness-in-sockets-jl/48952/3 "2020-10-25T19:40:36Z")

</div>

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](https://github.com/JuliaInterop/ZMQ.jl) has various modes of combining sockets for efficient traffic distribution. I’ve been interested, in particular, in something akin to [Mongrel2](https://github.com/mongrel2/mongrel2)’s usage of ZeroMQ to create a high-performance Julia web server.

---

<div class="post-metadata">

**Author:** ![mks](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mks/32/18374_2.png) [@mks](https://discourse.julialang.org/u/mks)\
**Post date:** [October 25, 2020, 7:50pm UTC](https://discourse.julialang.org/t/multipath-tcp-awareness-in-sockets-jl/48952/4 "2020-10-25T19:50:55Z")

</div>

Nice, thx for sharing [Mongrel2](https://github.com/mongrel2/mongrel2).

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