RFC 9287 - Greasing the QUIC Bit
- Status: Proposed Standard
- Veröffentlicht: August 2022
- Stream: IETF
- Errata: Keine Errata
Abstract
This document describes a method for negotiating the ability to send an arbitrary value for the second-most significant bit in QUIC packets.
Dieses Dokument beschreibt eine Methode zum Aushandeln der Fähigkeit, einen beliebigen Wert für das zweithöchstwertige Bit in QUIC-Paketen zu senden.
Status of This Memo
This is an Internet Standards Track document.
Dies ist ein Internet Standards Track-Dokument.
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.
Dieses Dokument ist ein Produkt der Internet Engineering Task Force (IETF). Es stellt den Konsens der IETF-Community dar. Es wurde öffentlich überprüft und von der Internet Engineering Steering Group (IESG) zur Veröffentlichung freigegeben. Weitere Informationen zu Internetstandards finden Sie in Abschnitt 2 von RFC 7841.
Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at https://www.rfc-editor.org/info/rfc9287.
Informationen zum aktuellen Status dieses Dokuments, zu etwaigen Errata und zur Abgabe von Feedback finden Sie unter https://www.rfc-editor.org/info/rfc9287.
Copyright Notice
Copyright (c) 2022 IETF Trust and the persons identified as the document authors. All rights reserved.
Copyright (c) 2022 IETF Trust und die als Dokumentautoren identifizierten Personen. Alle Rechte vorbehalten.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.
Dieses Dokument unterliegt BCP 78 und den gesetzlichen Bestimmungen des IETF Trust in Bezug auf IETF-Dokumente (https://trustee.ietf.org/license-info), die zum Zeitpunkt der Veröffentlichung dieses Dokuments gelten. Bitte lesen Sie diese Dokumente sorgfältig durch, da sie Ihre Rechte und Einschränkungen in Bezug auf dieses Dokument beschreiben. Aus diesem Dokument extrahierte Codekomponenten müssen den überarbeiteten BSD-Lizenztext enthalten, wie in Abschnitt 4.e der gesetzlichen Bestimmungen des Trust beschrieben, und werden ohne Gewährleistung bereitgestellt, wie in der überarbeiteten BSD-Lizenz beschrieben.
Table of Contents
-
- Introduction
-
- Conventions and Definitions
-
- The Grease QUIC Bit Transport Parameter
-
- Security Considerations
-
- IANA Considerations
-
- References
- Author's Address
1. Introduction
The version-independent definition of QUIC [QUIC-INVARIANTS] intentionally describes a very narrow set of fields that are visible to entities other than endpoints. Beyond those characteristics that are invariant, very little about the "wire image" [RFC8546] of QUIC is visible.
Die versionsunabhängige Definition von QUIC [QUIC-INVARIANTS] beschreibt absichtlich eine sehr kleine Menge von Feldern, die für andere Entitäten als Endpunkte sichtbar sind. Jenseits dieser unveränderlichen Eigenschaften ist nur sehr wenig über das "Wire Image" [RFC8546] von QUIC sichtbar.
The second-most significant bit of the first byte in every QUIC packet is defined as having a fixed value in QUIC version 1 [QUIC]. The purpose of having a fixed value is to allow endpoints to efficiently distinguish QUIC from other protocols; see [DEMUX] for a description of a system that might use this property. As this bit can identify a packet as QUIC, it is sometimes referred to as the "QUIC Bit".
Das zweithöchstwertige Bit des ersten Bytes in jedem QUIC-Paket ist in QUIC Version 1 [QUIC] als fester Wert definiert. Der Zweck eines festen Wertes besteht darin, Endpunkten zu ermöglichen, QUIC effizient von anderen Protokollen zu unterscheiden; siehe [DEMUX] für eine Beschreibung eines Systems, das diese Eigenschaft nutzen könnte. Da dieses Bit ein Paket als QUIC identifizieren kann, wird es manchmal als "QUIC Bit" bezeichnet.
Where endpoints and the intermediaries that support them do not depend on the QUIC Bit having a fixed value, sending the same value in every packet is more of a liability than an asset. If systems come to depend on a fixed value, then it might become infeasible to define a version of QUIC that attributes semantics to this bit.
Wenn Endpunkte und die Vermittler, die sie unterstützen, nicht davon abhängen, dass das QUIC-Bit einen festen Wert hat, ist das Senden desselben Wertes in jedem Paket eher ein Nachteil als ein Vorteil. Wenn Systeme von einem festen Wert abhängen, könnte es unmöglich werden, eine Version von QUIC zu definieren, die diesem Bit Semantik zuschreibt.
In order to safeguard future use of this bit, this document defines a QUIC transport parameter that indicates that an endpoint is willing to receive QUIC packets containing any value for this bit. By sending different values for this bit, the hope is that the value will remain available for future use [USE-IT].
Um die zukünftige Verwendung dieses Bits zu sichern, definiert dieses Dokument einen QUIC-Transportparameter, der angibt, dass ein Endpunkt bereit ist, QUIC-Pakete zu empfangen, die einen beliebigen Wert für dieses Bit enthalten. Durch das Senden unterschiedlicher Werte für dieses Bit besteht die Hoffnung, dass der Wert für die zukünftige Verwendung verfügbar bleibt [USE-IT].
2. Conventions and Definitions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.
Die Schlüsselwörter "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" und "OPTIONAL" in diesem Dokument sind so zu interpretieren, wie in BCP 14 [RFC2119] [RFC8174] beschrieben, wenn und nur wenn sie in Großbuchstaben erscheinen, wie hier gezeigt.
This document uses terms and notational conventions from [QUIC].
Dieses Dokument verwendet Begriffe und Notationskonventionen aus [QUIC].
3. The Grease QUIC Bit Transport Parameter
The grease_quic_bit transport parameter (0x2ab2) is defined for QUIC version 1 [QUIC]. This transport parameter can be sent by both client and server. The transport parameter is sent with an empty value; an endpoint that understands this transport parameter MUST treat receipt of a non-empty value of the transport parameter as a connection error of type TRANSPORT_PARAMETER_ERROR.
Der grease_quic_bit-Transportparameter (0x2ab2) ist für QUIC Version 1 [QUIC] definiert. Dieser Transportparameter kann sowohl vom Client als auch vom Server gesendet werden. Der Transportparameter wird mit einem leeren Wert gesendet; ein Endpunkt, der diesen Transportparameter versteht, MUSS den Empfang eines nicht leeren Wertes des Transportparameters als Verbindungsfehler vom Typ TRANSPORT_PARAMETER_ERROR behandeln.
An endpoint that advertises the grease_quic_bit transport parameter MUST accept packets with the QUIC Bit set to a value of 0. The QUIC Bit is defined as the second-most significant bit of the first byte of QUIC packets (that is, the value 0x40).
Ein Endpunkt, der den grease_quic_bit-Transportparameter ankündigt, MUSS Pakete akzeptieren, bei denen das QUIC-Bit auf den Wert 0 gesetzt ist. Das QUIC-Bit ist definiert als das zweithöchstwertige Bit des ersten Bytes von QUIC-Paketen (d. h. der Wert 0x40).
3.1. Clearing the QUIC Bit
Endpoints that receive the grease_quic_bit transport parameter from a peer SHOULD set the QUIC Bit to an unpredictable value unless another extension assigns specific meaning to the value of the bit.
Endpunkte, die den grease_quic_bit-Transportparameter von einem Peer empfangen, SOLLTEN das QUIC-Bit auf einen unvorhersehbaren Wert setzen, es sei denn, eine andere Erweiterung weist dem Wert des Bits eine bestimmte Bedeutung zu.
Endpoints can set the QUIC Bit to 0 on all packets that are sent after receiving and processing transport parameters. This could include Initial, Handshake, and Retry packets.
Endpunkte können das QUIC-Bit bei allen Paketen, die nach dem Empfang und der Verarbeitung von Transportparametern gesendet werden, auf 0 setzen. Dies könnte Initial-, Handshake- und Retry-Pakete umfassen.
A client MAY also set the QUIC Bit to 0 in Initial, Handshake, or 0-RTT packets that are sent prior to receiving transport parameters from the server. However, a client MUST NOT set the QUIC Bit to 0 if it also sends a token provided in a Retry packet or in a NEW_TOKEN frame (Section 19.7 of [QUIC]).
Ein Client DARF das QUIC-Bit auch in Initial-, Handshake- oder 0-RTT-Paketen auf 0 setzen, die vor dem Empfang von Transportparametern vom Server gesendet werden. Ein Client DARF das QUIC-Bit jedoch NICHT auf 0 setzen, wenn er auch ein Token sendet, das in einem Retry-Paket oder in einem NEW_TOKEN-Frame (Abschnitt 19.7 von [QUIC]) bereitgestellt wurde.
3.2. Using the QUIC Bit
This document describes a use of the QUIC Bit that is compatible with the definition in [QUIC].
Dieses Dokument beschreibt eine Verwendung des QUIC-Bits, die mit der Definition in [QUIC] kompatibel ist.
4. Security Considerations
Greasing the QUIC Bit is intended to safeguard the future use of the bit. It does not provide any security properties.
Das "Greasing" des QUIC-Bits soll die zukünftige Verwendung des Bits sichern. Es bietet keine Sicherheitseigenschaften.
5. IANA Considerations
This document registers the grease_quic_bit transport parameter in the "QUIC Transport Parameters" registry established in Section 22.3 of [QUIC].
Dieses Dokument registriert den grease_quic_bit-Transportparameter im Register "QUIC Transport Parameters", das in Abschnitt 22.3 von [QUIC] eingerichtet wurde.
The following fields are registered:
Die folgenden Felder werden registriert:
- Value: 0x2ab2
- Parameter Name: grease_quic_bit
- Status: Permanent
- Specification: RFC 9287
6. References
6.1. Normative References
[QUIC] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based Multiplexed and Secure Transport", RFC 9000, DOI 10.17487/RFC9000, May 2021, https://www.rfc-editor.org/info/rfc9000.
[QUIC-INVARIANTS] Thomson, M., "Version-Independent Properties of QUIC", RFC 8999, DOI 10.17487/RFC8999, May 2021, https://www.rfc-editor.org/info/rfc8999.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, https://www.rfc-editor.org/info/rfc2119.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, https://www.rfc-editor.org/info/rfc8174.
6.2. Informative References
[DEMUX] Kühlewind, M. and C. Huitema, "Multiplexing Scheme Updates for QUIC", Work in Progress, Internet-Draft, draft-ietf-quic-multiplexing-02, 22 October 2020, https://datatracker.ietf.org/doc/html/draft-ietf-quic-multiplexing-02.
[RFC8546] Trammell, B. and M. Kühlewind, "The Wire Image of a Network Protocol", RFC 8546, DOI 10.17487/RFC8546, April 2019, https://www.rfc-editor.org/info/rfc8546.
[USE-IT] Thomson, M., "Use It or Lose It", RFC 9170, DOI 10.17487/RFC9170, December 2021, https://www.rfc-editor.org/info/rfc9170.
Author's Address
Martin Thomson Mozilla Email: [email protected]