RFC 9287 - Greasing the QUIC Bit
- Stato: Proposed Standard
- Pubblicato: August 2022
- Stream: IETF
- Errata: Nessun 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.
Questo documento descrive un metodo per negoziare la capacità di inviare un valore arbitrario per il secondo bit più significativo nei pacchetti QUIC.
Status of This Memo
This is an Internet Standards Track document.
Questo è un documento Internet Standards Track.
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.
Questo documento è un prodotto della Internet Engineering Task Force (IETF). Rappresenta il consenso della comunità IETF. Ha ricevuto revisione pubblica ed è stato approvato per la pubblicazione dall'Internet Engineering Steering Group (IESG). Ulteriori informazioni sugli standard Internet sono disponibili nella sezione 2 della 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.
Informazioni sullo stato attuale di questo documento, eventuali errata e come fornire feedback su di esso possono essere ottenute su 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 e le persone identificate come autori del documento. Tutti i diritti riservati.
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.
Questo documento è soggetto al BCP 78 e alle Disposizioni legali del IETF Trust relative ai documenti IETF (https://trustee.ietf.org/license-info) in vigore alla data di pubblicazione di questo documento. Si prega di rivedere attentamente questi documenti, poiché descrivono i vostri diritti e restrizioni rispetto a questo documento. I componenti di codice estratti da questo documento devono includere il testo della licenza BSD rivista come descritto nella sezione 4.e delle Disposizioni legali del Trust e sono forniti senza garanzia come descritto nella licenza BSD rivista.
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.
La definizione indipendente dalla versione di QUIC [QUIC-INVARIANTS] descrive intenzionalmente un insieme molto ristretto di campi che sono visibili a entità diverse dagli endpoint. Oltre a quelle caratteristiche che sono invarianti, molto poco dell'immagine "wire" [RFC8546] di QUIC è visibile.
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".
Il secondo bit più significativo del primo byte in ogni pacchetto QUIC è definito come avente un valore fisso nella versione 1 di QUIC [QUIC]. Lo scopo di avere un valore fisso è consentire agli endpoint di distinguere in modo efficiente QUIC da altri protocolli; vedere [DEMUX] per una descrizione di un sistema che potrebbe utilizzare questa proprietà. Poiché questo bit può identificare un pacchetto come QUIC, a volte viene indicato come "QUIC Bit".
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.
Dove gli endpoint e gli intermediari che li supportano non dipendono dal fatto che il QUIC Bit abbia un valore fisso, inviare lo stesso valore in ogni pacchetto è più una responsabilità che una risorsa. Se i sistemi arrivano a dipendere da un valore fisso, potrebbe diventare irrealizzabile definire una versione di QUIC che attribuisca semantica a questo bit.
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].
Al fine di salvaguardare l'uso futuro di questo bit, questo documento definisce un parametro di trasporto QUIC che indica che un endpoint è disposto a ricevere pacchetti QUIC contenenti qualsiasi valore per questo bit. Inviando valori diversi per questo bit, la speranza è che il valore rimanga disponibile per un uso futuro [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.
Le parole chiave "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" e "OPTIONAL" in questo documento devono essere interpretate come descritto nel BCP 14 [RFC2119] [RFC8174] quando, e solo quando, appaiono in maiuscolo, come mostrato qui.
This document uses terms and notational conventions from [QUIC].
Questo documento utilizza termini e convenzioni di notazione da [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.
Il parametro di trasporto grease_quic_bit (0x2ab2) è definito per la versione 1 di QUIC [QUIC]. Questo parametro di trasporto può essere inviato sia dal client che dal server. Il parametro di trasporto viene inviato con un valore vuoto; un endpoint che comprende questo parametro di trasporto DEVE trattare la ricezione di un valore non vuoto del parametro di trasporto come un errore di connessione di tipo TRANSPORT_PARAMETER_ERROR.
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).
Un endpoint che annuncia il parametro di trasporto grease_quic_bit DEVE accettare pacchetti con il QUIC Bit impostato su un valore di 0. Il QUIC Bit è definito come il secondo bit più significativo del primo byte dei pacchetti QUIC (cioè, il valore 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.
Gli endpoint che ricevono il parametro di trasporto grease_quic_bit da un peer DOVREBBERO impostare il QUIC Bit su un valore imprevedibile a meno che un'altra estensione assegni un significato specifico al valore del bit.
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.
Gli endpoint possono impostare il QUIC Bit a 0 su tutti i pacchetti che vengono inviati dopo aver ricevuto ed elaborato i parametri di trasporto. Questo potrebbe includere i pacchetti Initial, Handshake e Retry.
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]).
Un client PUÒ anche impostare il QUIC Bit a 0 nei pacchetti Initial, Handshake o 0-RTT che vengono inviati prima di ricevere i parametri di trasporto dal server. Tuttavia, un client NON DEVE impostare il QUIC Bit a 0 se invia anche un token fornito in un pacchetto Retry o in un frame NEW_TOKEN (Sezione 19.7 di [QUIC]).
3.2. Using the QUIC Bit
This document describes a use of the QUIC Bit that is compatible with the definition in [QUIC].
Questo documento descrive un uso del QUIC Bit che è compatibile con la definizione in [QUIC].
4. Security Considerations
Greasing the QUIC Bit is intended to safeguard the future use of the bit. It does not provide any security properties.
Il "Greasing" del QUIC Bit ha lo scopo di salvaguardare l'uso futuro del bit. Non fornisce alcuna proprietà di sicurezza.
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].
Questo documento registra il parametro di trasporto grease_quic_bit nel registro "QUIC Transport Parameters" stabilito nella Sezione 22.3 di [QUIC].
The following fields are registered:
Sono registrati i seguenti campi:
- 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]