On 4/23/2023 1:07 PM, [email protected] wrote:
A New Internet-Draft is available from the on-line Internet-Drafts
directories. This Internet-Draft is a work item of the QUIC (QUIC) WG of the
IETF.
Title : Reliable QUIC Stream Resets
Authors : Marten Seemann
奥一穂
Filename : draft-ietf-quic-reliable-stream-reset-00.txt
Pages : 6
Date : 2023-04-23
Abstract:
QUIC ([RFC9000]) defines a RESET_STREAM frame to reset a stream.
When a sender resets a stream, it stops retransmitting STREAM frames
for this stream. On the receiver side, there is no guarantee that
any of the data sent on that stream is delivered to the application.
This document defines a new QUIC frame, the RELIABLE_RESET_STREAM
frame, that resets a stream, while guaranteeing reliable delivery of
stream data up to a certain byte offset.
A comment on the abstract itself: I am a bit put off by the use of
"guaranteed". The frame is "requesting" delivery up to the specified
limit. Whether this happens depends on multiple factors -- the local
QUIC stack or the remote peer can decide to close the connection, for
example if there are too many transmission errors.
The IETF datatracker status page for this Internet-Draft is:
https://datatracker.ietf.org/doc/draft-ietf-quic-reliable-stream-reset/
Otherwise, I find the text easy to read, except for a few small nits.
In section 4, the text says:
RELIABLE_RESET_STREAM frames are ack-eliciting. When lost, they MUST
be retransmitted, unless a RESET_STREAM frame or another
RELIABLE_RESET_STREAM frame was sent for the same stream (see
Section 5.1).
There is another case for not retransmitting the RELIABLE_RESET_STREAM
frame: if the entire content of the stream has been acknowledged by the
peer. This is the classic race condition between FIN and RESET, and that
race condition can of course happen with FIN and the
RELIABLE_RESET_STREAM. It might be useful to document that race
condition, so application designers do not rely on the "guaranteed"
delivery of the RELIABLE_RESET_STREAM and the Application Protocol Error
Code that it conveys.
In section 5, the text says:
As described in (Section 3.2 of [RFC9000]), it MAY deliver data
beyond that offset to the application.
Editorial, but who is "it" there? The only actor mentioned in the
section is "the initiator", and that's probably not what you mean.
-- Christian Huitema