ietf-wg-webtrans / draft-ietf-webtrans-http3

Internet Drafts for WebTransport
Other
40 stars 12 forks source link

define a reliable way to signal the session close reason #157

Closed marten-seemann closed 6 months ago

marten-seemann commented 6 months ago

The current draft suggests to wait until all data on the CONNECT stream was acknowledged in order to ensure that the CLOSE_WEBTRANSPORT_SESSION capsule was consumed.

This is problematic for 2 reasons:

  1. It’s a layering violation. The WebTransport layer might not have access to the acknowledgment state of the QUIC layer.
  2. Receiving an ACK for a packet containing a STREAM frames doesn’t mean that the stream data was delivered to the application. It only means that the QUIC layer received the data, but it might still be sitting in a buffer there and be discarded when the CONNECTION_CLOSE is received.

Instead, we could define a CLOSE_WEBTRANSPORT_SESSION_ACK capsule to acknowledge the CLOSE_WEBTRANSPORT_SESSION capsule. This would make delivery of the close reason completely reliable.

vasilvv commented 6 months ago

Didn't we already decide at some point before that you "ack" closes by closing the local send side of the control stream in response?

marten-seemann commented 6 months ago

Looks like this is a duplicate of #147. Sorry I missed the original issue.