@@ -412,8 +412,7 @@ have the VERSION bit set. This bit is always set on packets that are sent prior
412
412
to connection establishment. When receiving a packet that is not associated
413
413
with an existing connection, packets without a VERSION bit MUST be discarded.
414
414
415
- While there might be similarities between different versions of this protocol,
416
- implementations have to assume that a version that it does not support uses a
415
+ Implementations have to assume that a version that it does not support uses a
417
416
different packet format.
418
417
419
418
Between different versions the following things are guaranteed to remain
@@ -633,7 +632,7 @@ on the two endpoints agreeing on a version.
633
632
A QUIC connection begins with a client sending a handshake packet. Until the
634
633
cryptographic handshake ({{handshake}}) produces 1-RTT keys, packets sent by a
635
634
client MUST include the version in the packet header. This allows the server to
636
- identify early packets and to enable version negotiation.
635
+ identify 0-RTT packets and to enable version negotiation.
637
636
638
637
When the server receives a packet from a client with the VERSION flag set, it
639
638
compares the client's version to the versions it supports.
@@ -645,7 +644,7 @@ list of versions that the server will accept. A server MUST send a version
645
644
negotiation packet for every packet that it receives with an unacceptable
646
645
version.
647
646
648
- If the packet contains a version that is acceptable to the server, the server
647
+ If the version selected by the client is acceptable to the server, the server
649
648
proceeds with the handshake ({{handshake}}). All subsequent packets sent by the
650
649
server MUST have the VERSION flag unset. This commits the server to the version
651
650
that the client selected.
@@ -795,13 +794,21 @@ COPT (0x0005):
795
794
cases include changing congestion control algorithms and parameters such as
796
795
initial window. (TODO : List connection options.)
797
796
797
+
798
798
# ## Values of Transport Parameters for 0-RTT
799
799
800
- Transport parameters from the server are remembered by the client for 0-RTT
801
- connections. If values change as a result of completing the handshake, the
802
- client is expected to respect the new values. This introduces some potential
803
- problems, particularly with respect to transport parameters that establish
804
- limits :
800
+ Optional transport parameters from the server MUST be reset to default values by
801
+ the client for 0-RTT connections.
802
+
803
+ The mandatory transport parameters for stream and connection flow control and
804
+ concurrent stream limits MUST be remembered by the client. The idle timeout value
805
+ is not expected to be relevant for the short time that it takes to obtain 1-RTT
806
+ keys.
807
+
808
+
809
+ Transport parameter values could change as a result of completing the handshake.
810
+ The client MUST respect the new values when the handshake completes. This
811
+ introduces some potential problems :
805
812
806
813
* A client might exceed a newly declared connection or stream flow control limit
807
814
with 0-RTT data. If this occurs, the client ceases transmission as though the
@@ -815,20 +822,15 @@ limits:
815
822
816
823
A client cannot use or rely upon any other transport parameter that was enabled
817
824
in a previous connection. This includes those defined in this document. A
818
- client MUST assume that the transport parameter was absent, unless the
819
- definition of a transport parameter provides explicit rules for use of the
820
- option in 0-RTT.
825
+ client MUST assume that the transport parameter was absent unless the definition
826
+ of a transport parameter provides explicit rules for use of the option in 0-RTT.
821
827
822
828
823
829
# ## New Transport Parameters
824
830
825
- An endpoint MUST ignore transport parameters that it does not support.
826
-
827
- The definition of new transport parameters can be used to negotiate new protocol
828
- behavior. Endpoints that support features that deviate from this specification
829
- MUST assume that a peer will operate as described in this document unless it
830
- provides an explicit signal of support. A new transport parameter could be used
831
- to provide this signal.
831
+ New transport parameters can be used to by endpoints to advertise new
832
+ capabilities. This can be used to negotiate new protocol behavior. An endpoint
833
+ MUST ignore transport parameters that it does not support.
832
834
833
835
New transport parameters can be registered according to the rules in
834
836
{{iana-transport-parameters}}.
0 commit comments