Overall this design seems reasonable to me. Do you have an
application/deployment in mind that would benefit from it? Google tried
rebuilding WebRTC over QUIC some number of years back but it ended up being
quite a lot of work compared to the benefits over the existing stack, so
the project was canceled. It would be great to have a killer app for this
technology.

One minor note: draft-seemann-quic-address-discovery should acknowledge the
prior art in draft-pauly-quic-address-extension. Not that this part is
rocket science, but it's always nice to point out previous work.

David

On Tue, Oct 29, 2024 at 11:59 AM Christian Huitema <huit...@huitema.net>
wrote:

> Yes, the "path challenge" packets are usually padded to perform address
> validation and MTU validation in a single transaction. As you say,
> sending a lot of fully padded packets may create some overhead. It may
> also create a "request forgery" concern, as stated in the security section.
>
> Basically, we have a tradeoff. RFC 9000 does not actually mandate
> padding of path challenge packets. In particular, servers are always
> required to apply anti-amplification protection. If anti protection
> limits the size of the server packets, they can defer PMTU validation
> until more data has been received from the client, or until the client's
> address has been validated. Sending unpadded path challenge packets is
> not a protocol violation, it is just a less efficient, because it
> inserts a 1RTT delay.
>
> The downside is using the "masque" path for an extra 1-RTT. The upside
> is lower overhead from failed trials, and also lower "amplification"
> concerns -- basically, having the same impact as ICE currently does.
> Opinions may differ, and it would be nice to hear them.
>
> -- Christian Huitema
>
> On 10/29/2024 5:47 AM, Ben Schwartz wrote:
> > In previous discussions, the main challenge I've heard for this
> architecture is related to QUIC's approach to MTU qualification.  STUN
> packets are tiny, so it's tolerable to send a lot of them (O(N*M) to check
> all candidate pairs).  QUIC Initials and such are usually padded to prove
> that the path MTU is large enough, which makes them terribly inefficient
> for NAT hole punching.
> >
> > How do you imagine PMTUD would work for P2P QUIC?
> >
> > --Ben
> > ________________________________
> > From: Marten Seemann <martenseem...@gmail.com>
> > Sent: Monday, October 28, 2024 10:42 PM
> > To: QUIC WG <quic@ietf.org>; mas...@ietf.org <mas...@ietf.org>
> > Subject: [Masque] p2p QUIC
> >
> > Hi QUIC and MASQUE enthusiasts, Christian and I have published a blog
> post describing our vision for a p2p extension of QUIC: https: //seemann.
> io/posts/2024-10-26---p2p-quic/. The idea is to do everything inside of
> QUIC: Imagine two p2p nodes
> >
> > Hi QUIC and MASQUE enthusiasts,
> >
> > Christian and I have published a blog post describing our vision for a
> p2p extension of QUIC: https://seemann.io/posts/2024-10-26---p2p-quic/<
> https://urldefense.com/v3/__https://seemann.io/posts/2024-10-26---p2p-quic/__;!!Bt8RZUm9aw!6W2t_dQMHs1tiFalSAENp4XfqajorAqrDd40gvq8KpYR6jDpIwBSIck716540SjXE5WUkPu96n3iZZXMysk$>.
> The idea is to do everything inside of QUIC: Imagine two p2p nodes first
> establishing a proxied connection via a relay (immediately starting to
> exchange application data), and the QUIC stack migrating this connection
> towards a direct path between the two nodes in the background.
> >
> > It turns out that there are just a few missing pieces:
> >
> >    1.  We can use the listener extension to CONNECT-UDP (
> https://datatracker.ietf.org/doc/draft-schinazi-connect-udp-listen/<
> https://urldefense.com/v3/__https://datatracker.ietf.org/doc/draft-schinazi-connect-udp-listen/__;!!Bt8RZUm9aw!6W2t_dQMHs1tiFalSAENp4XfqajorAqrDd40gvq8KpYR6jDpIwBSIck716540SjXE5WUkPu96n3iYAYMoIo$>)
> to enable relaying between peers that don't have a direct connection (yet),
> and for peers where NAT traversal fails (thereby replacing what
> traditionally a TURN server would've been deployed for).
> >    2.  It is trivial to perform address discovery inside of QUIC
> (replacing STUN):
> https://datatracker.ietf.org/doc/draft-seemann-quic-address-discovery/<
> https://urldefense.com/v3/__https://datatracker.ietf.org/doc/draft-seemann-quic-address-discovery/__;!!Bt8RZUm9aw!6W2t_dQMHs1tiFalSAENp4XfqajorAqrDd40gvq8KpYR6jDpIwBSIck716540SjXE5WUkPu96n3ivL1LLoU$
> >
> >    3.  Finally, we can use QUIC's path migration logic to establish the
> NAT bindings ("hole punching") required for a direct connection between two
> nodes. We just need to allow the server to initiate paths, and coordinate
> hole punching attempts:
> https://datatracker.ietf.org/doc/draft-seemann-quic-nat-traversal/<
> https://urldefense.com/v3/__https://datatracker.ietf.org/doc/draft-seemann-quic-nat-traversal/__;!!Bt8RZUm9aw!6W2t_dQMHs1tiFalSAENp4XfqajorAqrDd40gvq8KpYR6jDpIwBSIck716540SjXE5WUkPu96n3i-DsCx80$
> >
> >
> > In terms of maturity, the address discovery draft has gone through a
> couple of revisions since we last discussed it in the QUIC WG in Prague,
> and is now implemented by multiple QUIC stacks. The NAT traversal draft
> needs a bit more work.
> >
> > While these drafts were all presented individually, we haven’t talked a
> lot about how they fit into the bigger picture before presenting the vision
> in our blog post. We would love to get feedback from the working groups,
> and help to drive the drafts to publication.
> >
> > -- Marten
> >
> >
> >
>
> --
> Masque mailing list -- mas...@ietf.org
> To unsubscribe send an email to masque-le...@ietf.org
>

Reply via email to