@@ -2641,7 +2641,7 @@ stream ID of the first in the Related Stream ID of the first stream. This
2641
2641
enables straightforward use of QUIC for request-response protocols or protocols
2642
2642
that rely on bidirectional channels.
2643
2643
2644
- This document doesn't proscribe the use of the Related Stream ID field, leaving
2644
+ This document doesn't define how to use the Related Stream ID field, leaving
2645
2645
decisions about the semantics of related streams to protocols that use QUIC.
2646
2646
Protocols that use QUIC MUST either define the semantics of related streams or
2647
2647
prohibit the use of the Related Stream ID field. Protocols MAY define other
@@ -2652,11 +2652,17 @@ invalid Related Stream ID field values, unless the protocol defines a more
2652
2652
specific error code for the circumstances.
2653
2653
2654
2654
The Related Stream ID for a stream only needs to be sent once for each stream
2655
- (allowing for retransmissions due to loss). Sending the field on all stream
2656
- frames with an offset of 0 ensures that the value is received without
2657
- duplicating the field unnecessarily. If the value of the Related Stream ID
2658
- changes for a stream, the endpoint that receives the conflicting value MUST
2659
- treat this as a connection error of type INVALID_RELATED_STREAM.
2655
+ (allowing for retransmissions due to loss). If a stream is related to another
2656
+ stream, then all stream frames with an offset of 0 MUST include the Related
2657
+ Stream ID field. This is generally sufficient to ensure that the relationship
2658
+ between streams is correctly received. However, the field MAY be included on
2659
+ other STREAM frames, which ensures that the stream relationship can be
2660
+ established even if the packet containing the first octets of a stream is lost.
2661
+ If the Related Stream ID is present in a STREAM frame and the value is different
2662
+ to the value included in other STREAM frames or a STREAM frame with a non-zero
2663
+ offset contains the value and a STREAM frame with offset zero does not, the
2664
+ recipient of the conflicting information MUST treat this as a connection error
2665
+ of type INVALID_RELATED_STREAM.
2660
2666
2661
2667
A related stream MUST NOT refer to a stream in the "idle" state
2662
2668
({{stream-state-idle}}). Receipt of a STREAM frame that includes a Related
0 commit comments