Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Does MPTCP support a global proxy in the middle? #488

Closed
maojianyou opened this issue May 1, 2024 · 1 comment
Closed

Does MPTCP support a global proxy in the middle? #488

maojianyou opened this issue May 1, 2024 · 1 comment
Labels

Comments

@maojianyou
Copy link

For the application scenario in question, let's assume A represents common devices such as smartphones or computers, B and C are Ubuntu 20.04 servers, and D serves as the server backend or the source server. Currently, B functions as a gateway router for A. There are multiple channels between B and C, such as tun1, tun2, and tun3. The question is whether it is possible to deploy MPTCP between B and C to accelerate A's access to D.
The primary objective is to solve the issue where the bandwidth of each of the tunnels like tun1 between B and C is only 10M, with tun2 and tun3 each also at 10M. However, if my smartphone or computer needs a bandwidth of 30M to access resources from D, can MPTCP be implemented between B and C to merge these into a single TCP flow? This would effectively give me a real bandwidth of 30M. Then, when A’s request passes through B and reaches C, C would perform NAT to access D normally. When D sends resources back to C, C could split the response through one TCP connection into multiple MPTCP subflows back to B. Subsequently, B reassembles and sends it back to A via a regular TCP connection. The question is whether it is feasible to achieve this kind of bandwidth aggregation.

@matttbe
Copy link
Member

matttbe commented May 6, 2024

The question is whether it is possible to deploy MPTCP between B and C to accelerate A's access to D.

Yes, it is. If you can do it with TCP, you can do it with MPTCP. If B functions as a gateway router for A (client), it can even intercept the connection: you can then have a "transparent" proxy.

B and C are Ubuntu 20.04 servers

Make sure you have a recent enough kernel, e.g. the last stable or LTS one.

I'm closing the ticket now, feel free to re-open it if this didn't answer your question.

@matttbe matttbe closed this as completed May 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants