-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
quic: make the reuseport feature optional #1428
Comments
That would imply that they've built special logic to identify QUIC connections. QUIC connections rotate their Connection IDs on a regular basis to make exactly that more difficult. |
The main reason it took us a while to figure out the cause is that no explicit error is raised since the error actually occurs on the operator's side. The only thing we can notice as a user of their network is that a libp2p node with The same behavior seems to occurs with To demonstrate this, I wrote a simple golang script that starts several hosts on a remote server and a single host on the local machine. The latter then starts pinging each remote host in a loop and if a ping takes more than 10 seconds to complete, the connection is considered dead. The test succeeds if after a given period (e.g. 1 minute) all connections are still active. When the test is run on a Free Mobile cellular connection using
You can find the script here: https://github.com/gfanton/libp2p-reuseport-test I tried to find relevant information in the qlog traces using |
Interesting. And an impressive amount of research to locate the problem. Have you ever tried getting in touch with Free Mobile? This very much sounds like a problem on their side, and they might be able to fix it for good. Regarding disabling reuseport in this repo, I think that shouldn't be too hard. It would probably (haven't tried it yet myself though) be enough to just use |
Hi from @berty,
We recently discovered that if we enable the
reuseport
feature on thelibp2p-tcp-transport
while using a cellular connection, it could lead to network errors with some mobile operators. This is the case with the French operator Free Mobile which is massively used in France and we suspect that the problem occurs with several other operators around the world.It seems that the QUIC transport has exactly the same issue but does not have an option to disable the
reuseport
. At the moment, this prevents us from using the QUIC transport on cellular connection even though it is particularly suitable for mobile use.It would be nice to make the feature optional like in the
libp2p-tcp-transport
. I checked if it was possible to simply add an option to be able to toggle it off, but the feature seems too tightly bonded to the rest of the code.The text was updated successfully, but these errors were encountered: