View Issue Details

IDProjectCategoryView StatusLast Update
0008904libmicrohttpdotherpublic2024-06-06 16:38
Reportermatttbe Assigned To 
PrioritynormalSeverityfeatureReproducibilityN/A
Status newResolutionopen 
PlatformLinux 
Summary0008904: Add Multipath TCP (MPTCP) support
DescriptionHello,

First, thank you for developing and maintaining this useful lib!

Could it be possible to add MPTCP support on Linux please?

> Multipath TCP or MPTCP is an extension to the standard TCP and is described in RFC 8684. It allows a device to make use of multiple interfaces at once to send and receive TCP packets over a single MPTCP connection. MPTCP can aggregate the bandwidth of multiple interfaces or prefer the one with the lowest latency. It also allows a fail-over if one path is down, and the traffic is seamlessly reinjected on other paths.

Please see this website for more details: https://www.mptcp.dev

Adding MPTCP support in applications is very simple: when creating the socket, the `IPPROTO_MPTCP` flag has to be set instead of TCP, e.g.:

    socket(AF_INET(6), SOCK_STREAM, IPPROTO_MPTCP);

That's it! Note that when MPTCP is not supported by the kernel, this syscall will fail. If needed, the app can decide to create a "plain" TCP one instead. For more details: https://www.mptcp.dev/implementation.html

Also, when a listening MPTCP socket is created, MPTCP will only be used when requested by the client. If not, the 'accepted' socket will be a plain TCP one, like before. Thanks to that, and with a minimal impact on the "existing traffic", MPTCP can easily be enabled by default on the server side.
TagsLinux

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2024-06-06 16:38 matttbe New Issue
2024-06-06 16:38 matttbe Tag Attached: Linux