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

Should we negotiate ADD_ADDRESS as a separate transport parameter? #33

Open
huitema opened this issue Nov 1, 2024 · 0 comments
Open

Comments

@huitema
Copy link

huitema commented Nov 1, 2024

The ADD_ADDRESS frame is required in the NAT Traversal scenario, but it is also useful for "server initiated path creation" -- a classic multipath scenario. See for example the issue "(Should servers be allowed to open new paths)[https://github.com/quicwg/multipath/issues/47]" in the QUIC Multipath Extension repository. This draft negotiates ADD_ADDRESS and PUNCH_ME_NOW with a single parameter. Supporting one implies supporting the other. That may or may not be the right solution. I anticipate that this point will be raised during adoption discussions in the QUIC WG. It would be good to document the issue in a future version of the draft.

Most scenarios of "server initiated path creation" require traversing the client side NAT. This is one of the reasons why this type of path creation was punted to a further version is the QUIC Multipath draft -- or why only the client initiates Path Migration in RFC 9000. We can argue that such path creation also traverses a server side NAT, or at a minimum a server side firewall. If it does, then bundling ADD_ADDRESS and PUNCH_ME_NOW is natural. As an example, servers deployed as Virtual Machines in big servers farms are typically behind a firewall, which will only allow traffic though a few specific port numbers such as 80 or 443. Establishing a path that uses a different port will require firewall traversal.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant