Passa al contenuto principale

18. Codifica dei parametri di trasporto

18. Codifica dei parametri di trasporto

Il campo extension_data dell'estensione quic_transport_parameters definita in [QUIC-TLS] contiene i parametri di trasporto QUIC. Sono codificati come una sequenza di parametri di trasporto, come mostrato nella Figura 20:

Transport Parameters {
Transport Parameter (..),
...
}

Figura 20: Sequenza di parametri di trasporto

Ogni parametro di trasporto è codificato come una tupla (identificatore, lunghezza, valore), come mostrato nella Figura 21:

Transport Parameter {
Transport Parameter ID (i),
Transport Parameter Length (i),
Transport Parameter Value (..),
}

Figura 21: Codifica dei parametri di trasporto

Il campo Transport Parameter Length contiene la lunghezza del campo Transport Parameter Value in byte.

QUIC codifica i parametri di trasporto in una sequenza di byte, che viene poi inclusa nell'handshake crittografico.

18.1 Parametri di trasporto riservati

I parametri di trasporto con un identificatore della forma 31 * N + 27 per valori interi di N sono riservati per esercitare il requisito che i parametri di trasporto sconosciuti vengano ignorati. Questi parametri di trasporto non hanno semantica e possono trasportare valori arbitrari.

18.2 Definizioni dei parametri di trasporto

Questa sezione dettaglia i parametri di trasporto definiti in questo documento.

original_destination_connection_id (0x00): Questo parametro è il valore del campo Destination Connection ID del primo pacchetto Initial inviato dal client.

max_idle_timeout (0x01): Il timeout di inattività massimo è un valore in millisecondi codificato come intero. Se questo valore è assente o zero, il timeout di inattività è disabilitato.

stateless_reset_token (0x02): Un token di reset senza stato è utilizzato per verificare un reset senza stato; vedere Sezione 10.3.

max_udp_payload_size (0x03): Il parametro della dimensione massima del payload UDP è un valore intero che limita la dimensione dei payload UDP che l'endpoint è disposto a ricevere.

initial_max_data (0x04): Il parametro dei dati massimi iniziali è un valore intero che contiene il valore iniziale per la quantità massima di dati che possono essere inviati sulla connessione.

initial_max_stream_data_bidi_local (0x05): Questo parametro è un valore intero che specifica il limite di controllo di flusso iniziale per i flussi bidirezionali iniziati localmente.

initial_max_stream_data_bidi_remote (0x06): Questo parametro è un valore intero che specifica il limite di controllo di flusso iniziale per i flussi bidirezionali iniziati dal peer.

initial_max_stream_data_uni (0x07): Questo parametro è un valore intero che specifica il limite di controllo di flusso iniziale per i flussi unidirezionali.

initial_max_streams_bidi (0x08): Il parametro dei flussi bidirezionali massimi iniziali è un valore intero che contiene il numero massimo iniziale di flussi bidirezionali che l'endpoint che riceve questo parametro di trasporto è autorizzato a iniziare.

initial_max_streams_uni (0x09): Il parametro dei flussi unidirezionali massimi iniziali è un valore intero che contiene il numero massimo iniziale di flussi unidirezionali che l'endpoint che riceve questo parametro di trasporto è autorizzato a iniziare.

ack_delay_exponent (0x0a): L'esponente di ritardo dell'acknowledgment è un valore intero che indica un esponente utilizzato per decodificare il campo ACK Delay nel frame ACK (Sezione 19.3). Se questo valore è assente, si assume un valore predefinito di 3.

max_ack_delay (0x0b): Il ritardo di acknowledgment massimo è un valore intero che indica la quantità massima di tempo in millisecondi di cui l'endpoint ritarderà l'invio di acknowledgment. Se questo valore è assente, si assume un valore predefinito di 25 millisecondi.

disable_active_migration (0x0c): Il parametro di trasporto disable_active_migration è incluso se l'endpoint non supporta la migrazione di connessione attiva (Sezione 9) sull'indirizzo utilizzato durante l'handshake.

preferred_address (0x0d): L'indirizzo preferito del server è utilizzato per effettuare un cambio di indirizzo del server alla fine dell'handshake, come descritto nella Sezione 9.6.

active_connection_id_limit (0x0e): Il limite di ID di connessione attivi è un valore intero che specifica il numero massimo di ID di connessione dal peer che un endpoint è disposto a memorizzare.

initial_source_connection_id (0x0f): Questo è il valore che l'endpoint ha incluso nel campo Source Connection ID del primo pacchetto Initial che invia per la connessione.

retry_source_connection_id (0x10): Questo è il valore che il server ha incluso nel campo Source Connection ID di un pacchetto Retry.