-
Notifications
You must be signed in to change notification settings - Fork 11
Open
Labels
QNTQUIC NAT Traversal extension and all holepunching issuesQUIC NAT Traversal extension and all holepunching issues
Milestone
Description
We used to do this in the DISCO world too: when we received a PING we sent a PONG and also used this to trigger a new PING so the path would become open from both sides. So this is needed for feature parity.
This is easiest to describe as a specific scenario:
- Server is behind NAT/firewall.
- Client has a publicly reachable IP.
- Client connects to server over relay transport.
- Before the server has the chance to send any ADD_ADDRESS frames the client already initiates holepunching
- Because it already has local addresses it can send in REACH_OUT frames.
- This should speed up the direct connection
- Server sends an off-path PATH_CHALLENGE to the client's public IP, but on path 0.
- Client responds with an off-path PATH_RESPONSE.
- But does not open a new path!
In this scenario the client should learn about a new server address from receiving the PATH_CHALLENGE. This address is already validated too. So the client should try an open that as a new path by sending it's own PATH_CHALLENGE on a new PathId, since it still needs to path-validate this path itself.
This speeds up how quickly the endpoints can switch to a direct connection.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
QNTQUIC NAT Traversal extension and all holepunching issuesQUIC NAT Traversal extension and all holepunching issues
Type
Projects
Status
👍 Ready