Skip to content

Commit 28690eb

Browse files
committed
Adding section on packet protection rules
1 parent 5d9e469 commit 28690eb

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

draft-ietf-quic-transport.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1462,6 +1462,41 @@ actual exponent is one-less than the explicit exponent, and the value represents
14621462
to 0xFFFF.
14631463

14641464

1465+
### ACK Frames and Packet Protection
1466+
1467+
ACK frames that acknowledge protected packets MUST be carried in a packet that
1468+
has an equivalent level of packet protection. Functionally, this means:
1469+
1470+
* Unprotected packets, such as those that carry the initial cryptographic
1471+
handshake messages, can be acknowledged in unprotected packets. This has
1472+
several consequences:
1473+
1474+
* Acknowledgments for packets containing cryptographic handshake messages
1475+
SHOULD be included in packets carrying the next cryptographic handshake
1476+
message. For instance, a server can acknowledge a TLS ClientHello in the
1477+
packet that carries the TLS ServerHello; similarly, a client can acknowledge
1478+
a TLS HelloRetryRequest in the packet containing a second TLS ClientHello.
1479+
1480+
* The initial set of server handshake messages, which could span multiple
1481+
packets, SHOULD be acknowledged in unprotected packets even if the client
1482+
uses 0-RTT keys to protect other packets that are sent at the same time. A
1483+
server might decide to reject and ignore 0-RTT data, making it unable to use
1484+
any acknowledgments that are protected with 0-RTT keys.
1485+
1486+
* Packets that a client sends with 0-RTT packet protection MUST be acknowledged
1487+
by the server in packets protected by 1-RTT keys. This can mean that the
1488+
client is unable to use these acknowledgments if the server cryptographic
1489+
handshake messages are delayed or lost. However, the same limitation applies
1490+
to other data sent by the server protected by the 1-RTT keys.
1491+
1492+
* Packets that are protected with 1-RTT keys MUST be acknowledged in packets
1493+
that are also protected with 1-RTT keys.
1494+
1495+
A packet that is not protected and claims to acknowledge a packet number that
1496+
was sent with packet protection is not valid. An unprotected packet that
1497+
carries acknowledgments for protected packets MUST be discarded in its entirety.
1498+
1499+
14651500
## WINDOW_UPDATE Frame {#frame-window-update}
14661501

14671502
The WINDOW_UPDATE frame (type=0x04) informs the peer of an increase in an

0 commit comments

Comments
 (0)