Internet-Draft QUIC BDP Tokens November 2023
Misell Expires 19 May 2024 [Page]
Workgroup:
QUIC
Internet-Draft:
draft-misell-quic-bdp-token-00
Published:
Intended Status:
Standards Track
Expires:
Author:
Q. Misell
AS207960

QUIC Bandwidth Delay Product Tokens

Abstract

This document describes a method to store previously calculated Congestion Control parameters on a QUIC client to allow additional capacity on high Bandwidth Delay Product paths to be used with Careful Resume.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 19 May 2024.

Table of Contents

1. Introduction

This document describes a method for a QUIC server to send calculated Congestion Control parameters to a client for storage and later use on a future connection with Careful Resume [I-D.ietf-tsvwg-careful-resume]. It also allows the client to inspect CC parameters, and allows the client not use them with new connections if its aware of a significant change in the BDP of the path.

1.1. Requirements Language

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 [BCP14] when, and only when, they appear in all capitals, as shown here.

2. BDP Tokens

The address validation token is overloaded to also store CC information. This has the advantage that a QUIC client unaware of this document will still be able to make use of this specification without modification. QUIC[RFC9000] defines an address validation token as an opaque blob that the client should not inspect. This document extends this by providing some structure token, whilst still providing fields for server specific information.

The format of a token containing BDP information is defined as follows:

BDP Token {
    Address Validation Length (i),
    Address Validation (..),
    BDP Data Length (i),
    BDP Data Value(..),
    Saved Capacity (i),
    Saved RTT (i)
}
Figure 1: BDP Token

The fields are as follows:

Address Validation Length
A variable-length integer specifying the length of the Address Validation field, in bytes. A value of 0 indicates that the server is not using address validation and is using the token purely for CC information.
Address Validation
Opaque information specific to the server that it will use for address validation. The construction of this field MUST comply with the requirements of [RFC9000] section 8.1.
CC Data Length
A variable-length integer specifying the length of the CC Data field, in bytes. A value of 0 indicates that the server is not using CC Data, and that the Saved Capacity and Saved RTT fields should also be ignored.
CC Data
Opaque information specific to the server that it will use to prime its congestion controller state. This field SHOULD contain expiration/lifetime information, and any additional information that the server may need to validate that the same path is being used, such as an endpoint token defined in [I-D.ietf-tsvwg-careful-resume]. The data MUST be signed, or otherwise processed against modification by the client.
Capacity
The estimated capacity of the path in bytes, encoded as a variable-length integer. The exact CC state value used is left to server preference.
RTT
The RTT of the path in microseconds, encoded as a variable-length integer. The exact CC state value used is left to server preference.

The Capacity and RTT fields are merely hints to the client and the server MUST not use these fields when priming its congestion controller state. If it wishes to use these parameters it will have to also include them in its CC Data structure, as data in this field is protected against modification by the client.

3. Extension signalling

The server can send the above extended BDP token to all clients without further negotiation. However a client needs some way to know that there is meaningful structure to a token its received from the server. To this end a new transport parameter is defined.

bdp_token (0xTBD)
The bdp_token transport parameter is a boolean value that indicates that the server is using BDP tokens. It can have the following values:
- 0, default value: BDP Tokens are not in use.
- 1: BDP Tokens are in use.

4. IANA Considerations

4.1. QUIC Transport Parameters

Per this document, one new entry has been added to the "QUIC Transport Parameters" registry defined in [RFC9000] section 22.3. This entry is defined below:

Table 1: New entries
Value Status Specification Parameter name
0xTBD Provisional This document bdp_frame

5. Security Considerations

The CC Data field MUST be protected against manipulation by malicious clients. A client that can modify CC calculations could otherwise cause overload of the network path.

The Capacity and RTT fields are hints to the client and not protected from modification by a client. The server MUST ignore when processing a received BDP token.

6. References

6.1. Normative References

[BCP14]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, .
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, .
<https://www.rfc-editor.org/info/bcp14>
[RFC9000]
Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based Multiplexed and Secure Transport", RFC 9000, DOI 10.17487/RFC9000, , <https://www.rfc-editor.org/info/rfc9000>.

6.2. Informative References

[I-D.ietf-tsvwg-careful-resume]
Kuhn, N., Emile, S., Fairhurst, G., and C. Huitema, "Convergence of Congestion Control from Retained State", Work in Progress, Internet-Draft, draft-ietf-tsvwg-careful-resume-04, , <https://datatracker.ietf.org/doc/html/draft-ietf-tsvwg-careful-resume-04>.

Author's Address

Q Misell
AS207960 Cyfyngedig
13 Pen-y-lan Terrace
Caerdydd
CF23 9EU
United Kingdom