Mptcp: An overlooked new feature in Go 1.21
sobyte.net
sobyte.net
Edit: It's nice this person translated it. But normally you note at the top when something is a translation. Or note it at all.
Seems pretty disingenuous of the translator. :(
By default, all TCP connections should be MPTCP. There is just upside and no real downside. It falls back to TCP when the network doesn't support it, and the vast majority of the internet supports that since iPhones use MPTCP by default.
Please reconsider the decision not to just use MPTCP by default. People using Go software for decades to come will have a buggy experience whenever they move networks from wifi to cell otherwise.
My understanding is also that MPTCP will send data over the backup link, which can incur data charges. Those charges shouldn't be very big, but I've seen carriers who round data up to the next megabyte, and a single background handshake at night can eat through your data cap surprisingly fast.
I would hope whatever data savings systems are built into mobile operating systems take care of this automatically, but I can see why one could want to disable this by default on mobile operating systems.
But also, plenty of stateful firewalls will strip unknown options. Here's how to enable Ciscos to forward it: https://www.cisco.com/c/en/us/support/docs/ip/transmission-c....
Edit: here's checkpoint: https://support.checkpoint.com/results/sk/sk114666
I'm not too surprised about Cisco and Checkpoint. I suppose corporate networks are intentionally always a pain when it comes to new protocols and features.
It would be up to the implementation whether the default result from MultipathTCP is on or off, and then programs could override that with SetMultipathTCP. In Go 1.21, we would default it off everywhere, and then in Go 1.22 or later, we would turn it on by default for systems that support it. Support might mean that it's an operating system that we have code for, or it might mean a more precise result, that we've sniffed the current kernel to see if it's available. That detail is up to the implementation and can change over time.> chatGPT says that MPTCP has been included in the mainline kernel since Linux kernel version 3.6 and that users can configure and use MPTCP features, but the MPTCP community website says that MPTCP v1 is only supported since 5.6.
Why is it interesting what a GPT has to say about it, if you've fact-checked it and found contradictory information?
I'm all in favor of anything that socializes the idea that believing what a GPT tells you is like believing the guy who hangs out at the corner gas station.
This isn't even that egregious of a reference to a GPT, in my opinion.
Say have eth, wifi(2.4+5Ghz+6Ghz) and cellular network, you may want to use them fully all together, there's a way for mptcp to shine;
or you have multiple proxies, and wants to improve reliability, you can also use mptcp.