@@ -869,8 +869,8 @@ a new connection.
869
869
870
870
A packet that can be identified as belonging to an existing connection is
871
871
handled according to the current state of that connection. Packets are
872
- associated with established connections using connection ID if it is present;
873
- this might include connection IDs that were advertised using NEW_CONNECTION_ID
872
+ associated with existing connections using connection ID if it is present; this
873
+ might include connection IDs that were advertised using NEW_CONNECTION_ID
874
874
({{frame-new-connection-id}}). Packets without connection IDs and long-form
875
875
packets for connections that have incomplete cryptographic handshakes are
876
876
associated using the tuple of source and destination IP addresses and ports.
@@ -886,23 +886,25 @@ discarding these packets could create false loss signals for the congestion
886
886
controllers. However, limiting the number and size of buffered packets might be
887
887
needed to prevent exposure to denial of service.
888
888
889
- For clients, all packets that cannot be associated with a connection MUST be
890
- discarded. Discarded packets MAY be logged for diagnostic or security purposes.
889
+ For clients, all packets that cannot be associated with an existing connection
890
+ MUST be discarded. Discarded packets MAY be logged for diagnostic or security
891
+ purposes.
891
892
892
893
For servers, packets that aren't associated with a connection potentially create
893
894
a new connection. However, only packets that use the long packet header and
894
- packets that meet the minimum size defined for the protocol version can be
895
- initial packets. A server MUST discard packets that use the short header form,
896
- or packets that are smaller than the smallest minimum size for any version that
897
- the server supports.
895
+ that are at least the minimum size defined for the protocol version can be
896
+ initial packets. A server MUST discard packets that cannot be associated with a
897
+ connection if they use the short header form, or they are smaller than the
898
+ smallest minimum size for any version that the server supports.
898
899
899
900
This version of QUIC defines a minimum size for initial packets of 1200 octets.
900
901
Versions of QUIC that define smaller minimum initial packet sizes need to be
901
- aware that initial packets will be discarded by servers that only support
902
- versions with larger minimums. Clients that support multiple QUIC versions can
903
- avoid this problem by ensuring that they increase the size of their initial
904
- packets to the largest minimum size across all of the QUIC versions they
905
- support.
902
+ aware that initial packets will be discarded without action by servers that only
903
+ support versions with larger minimums. Clients that support multiple QUIC
904
+ versions can avoid this problem by ensuring that they increase the size of their
905
+ initial packets to the largest minimum size across all of the QUIC versions they
906
+ support. Servers need to recognize initial packets that are the minimum size of
907
+ all QUIC versions they support.
906
908
907
909
908
910
# # Version Negotiation {#version-negotiation}
@@ -937,7 +939,7 @@ version if that packet could create a new connection. This allows a server to
937
939
process packets with unsupported versions without retaining state. Though
938
940
either the client initial packet or the version negotiation packet that is sent
939
941
in response could be lost, the client will send new packets until it
940
- successfully receives a response.
942
+ successfully receives a response or it abandons the connection attempt .
941
943
942
944
When the client receives a Version Negotiation packet, it first checks that the
943
945
packet number and connection ID match the values it sent in a client initial
@@ -946,7 +948,7 @@ packet. If this check fails, the packet MUST be discarded.
946
948
Once the Version Negotiation packet is determined to be valid, the client then
947
949
selects an acceptable protocol version from the list provided by the server.
948
950
The client then attempts to create a connection using that version. Though the
949
- contents of the client initial packet that the client sends might not change in
951
+ contents of the client initial packet the client sends might not change in
950
952
response to version negotiation, a client MUST increase the packet number it
951
953
uses on every packet it sends. Packets MUST continue to use long headers and
952
954
MUST include the new negotiated protocol version.
0 commit comments