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

feat: add MPTCP support #601

Merged
merged 6 commits into from
Aug 27, 2024
Merged

feat: add MPTCP support #601

merged 6 commits into from
Aug 27, 2024

Conversation

AkinoKaede
Copy link
Contributor

@AkinoKaede AkinoKaede commented Aug 7, 2024

Background

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.

MPTCP is support in Go 1.21

Checklist

Full Changelogs

  • Add MPTCP support for nodes and subscription requests
  • Update config description
  • Update daeuniverse/outbound to latest

Issue Reference

Closes #595

Test Result

sudo ip mptcp monitor
image

config/desc.go Outdated
@@ -57,6 +57,7 @@ var GlobalDesc = Desc{
"sniffing_timeout": "Timeout to waiting for first data sending for sniffing. It is always 0 if dial_mode is ip. Set it higher is useful in high latency LAN network.",
"tls_implementation": "TLS implementation. \"tls\" is to use Go's crypto/tls. \"utls\" is to use uTLS, which can imitate browser's Client Hello.",
"utls_imitate": "The Client Hello ID for uTLS to imitate. This takes effect only if tls_implementation is utls. See more: https://github.com/daeuniverse/dae/blob/331fa23c16/component/outbound/transport/tls/utls.go#L17",
"mptcp": "Enable Multipath TCP. It will take effects to all nodes.",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

添加需要服务端支持的字样?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have modified it, but I'm not sure if the new description is accurate.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

蛮好的,可以加入一些它的使用场景吗,例如:用作多接口或多ip之间的负载均衡

example.dae Outdated Show resolved Hide resolved
go.mod Outdated Show resolved Hide resolved
@dae-prow
Copy link
Contributor

dae-prow bot commented Aug 7, 2024

❌ Your branch is currently out-of-sync to main. No worry, I will fix it for you.

@AkinoKaede AkinoKaede marked this pull request as ready for review August 7, 2024 18:44
@AkinoKaede AkinoKaede requested a review from a team as a code owner August 7, 2024 18:44
example.dae Show resolved Hide resolved
Copy link
Contributor

@mzz2017 mzz2017 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Thanks!

Copy link
Contributor

@dae-prow dae-prow bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧪 Since the PR has been fully tested, please consider merging it.

@mzz2017 mzz2017 merged commit c5b596c into main Aug 27, 2024
23 of 25 checks passed
@mzz2017 mzz2017 deleted the mptcp branch August 27, 2024 01:49
mnixry pushed a commit to mnixry/dae that referenced this pull request Sep 18, 2024
@dae-prow dae-prow bot mentioned this pull request Oct 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature Request] MPTCP 支持
2 participants