quicwg / base-drafts

Internet-Drafts that make up the base QUIC specification
https://quicwg.org
1.62k stars 204 forks source link

CONNECT might be under-specified #4939

Closed martinthomson closed 2 years ago

martinthomson commented 2 years ago

From a discussion on the use of extended CONNECT for thewebsocketprotocol...

This text:

Correspondingly, if a proxy detects an error with the stream or the QUIC connection, it MUST close the TCP connection. If the underlying TCP implementation permits it, the proxy SHOULD send a TCP segment with the RST bit set.

...could be improved in h3. Not the TCP RST part, but the bit that leads up to it. Otherwise, we might not get the right behaviour. If the proxy just closes the connection in response to RESET_STREAM, it might then just end the stream (with a FIN bit), which would be wrong.

Perhaps instead:

Correspondingly, if a proxy detects an error with the stream or the QUIC connection, it MUST close the TCP connection. Similarly, if the proxy receives a QUIC RESET_STREAM frame or STOP_SENDING frame, it MUST close the TCP connection. A proxy that receives RESET_STREAM or STOP_SENDING SHOULD send the same frame in response in order to ensure that both directions of the stream are cancelled. In all these cases, if the underlying TCP implementation [...]

Somewhat substantive, unfortunately, and very, very, very late. I'm happy to wait and file an erratum.

MikeBishop commented 2 years ago

This seems like a solid improvement, but it's definitely not editorial. @quicwg/chairs and @zaheduzzaman will need to decide whether this is a change they're willing to accept post-IESG.

LPardue commented 2 years ago

Endpoints that overlook the proposed behaviour risk zombie streams. This seems like something worth addressing while we have the opportunity. Can one of you please file create a PR and we'll take it to the AD.

MikeBishop commented 2 years ago

Closed in #4941.