Internet Engineering Task Force | N. Kuhn, Ed. |
Internet-Draft | CNES |
Intended status: Informational | E. Stephan, Ed. |
Expires: January 9, 2020 | Orange |
G. Fairhurst, Ed. | |
University of Aberdeen | |
July 8, 2019 |
Transport parameters for 0-RTT connections
draft-kuhn-quic-0rtt-bdp-03
The time-to-service duration depends on both peers and the peer initiating the connection may not be the peer actually sending data. Moreover, clients may be resource-limited, behind a low bandwidth or a long-RTT network and may need adaptations to improve data transmission or reception. While each client and server can have its dedicated solution to store path parameters, having a standard way of exchanging this information helps in providing symmetrical control of the optimisation and reducing protocol ossification. QUIC may not be limited to HTTP3: it can be used as a substrate for proxying and tunneling.
This memo discusses a solution where the client is informed about path parameters: both the client and the server can contribute to the reduction of the time-to-service for subsequent connections. This would improve symmetrical transmission of data and reduce ossification of the protocol. To improve the time-to-service of subsequent 0-RTT reconnection the server currently sets in the early_data extension the maximum volume of egress data the client is allowed to send when reconnecting. This memo proposes BDP_metadata, an additional extension, to also inform the client about path parameters.
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 January 9, 2020.
Copyright (c) 2019 IETF Trust and the persons identified as the document authors. All rights reserved.
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 Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
Some network paths result in an increased time-to-service because the default parameters controlling the initialization of the transport and congestion control are not suitable for the path characteristics. QUIC's congestion control is based on TCP NewReno [I-D.ietf-quic-recovery] and the recommended initial window is defined by [RFC6928]. A path with a large bandwidth delay product can therefore significantly increase the time-to-service (e.g. a path using satellite communication [IJSCN19] could observe a much longer page load time for complex pages). The 0-RTT mechanism is designed to accelerate the throughput when reconnecting to the same peer. There are cases where egress acceleration like 0-RTT early_data alone does not improve the time-to-service and cases where the data transmission is symmetrical or where clients are capacity-limited: additional information can be beneficial.
This memo describes a solution where a BDP_metadata extension informs the client about path parameters so that both the client and the server can contribute to the reduction of the time-to-service:
The proposed solution applies to TLS1.3 over any transport: even if the current focus is QUIC, the solution applies, e.g., for TCP Fast Open.
While each client and server can have their dedicated solution to store path parameters, having a standard way of exchanging this information helps in providing symmetrical control of the optimisation and reducing protocol ossification. This memo discusses a solution where the client is informed about path parameters: both the client and the server can contribute to the reduction of the time-to-service for subsequent connections. This would improve symmetrical transmission of data and reduce ossification of the protocol. Some advantages of the proposed solution are the following.
This section recalls how 1-RTT and 0-RTT operate in QUIC [I-D.ietf-quic-transport].
QUIC leverages the 2 handshakes of TLS1.3 [I-D.ietf-quic-tls]: The 1-RTT handshake initiates a first set of credentials. When a handshake achieves successfully, the server pushes the learned information about the session to the client in an opaque session ticket (see section 4.6.1 of [RFC8446]). The information within the opaque ticket is encrypted by the server and not readable by the client. A session ticket can be sent at any time during the connection. The server can send several session tickets in one connection. A client willing to establish a fast re-opening of the session pushes back an opaque ticket in a 0-RTT handshake and sends early application data.
In practice, the server sends the 'ticket' in a NewSessionTicket record [I-D.ietf-quic-tls]. The structure of the NewSessionTicket includes the opaque 'ticket' and an 'extensions' field. The NewSessionTicket carries an additional field named 'early_data' that indicates to the client the maximum size of application data to insert in the 0-RTT message.
QUIC encryption of transport headers prevents the adding of Performance-enhancing proxy (PEP). The BDP metadata extension may be a substitute to PEP proxy [RFC2488], [RFC3135] when time-to-service improvement requires acceleration of the refilling of client application buffers.
The BDP_metadata extension proposes an improvement of the initialization of 0-RTT connections where the client recalls the BDP metadata previously measured by the server during the 1-RTT handshake. The approach follows the tuning of the initial window of high BDP networks described in [I-D.irtf-iccrg-sallantin-initial-spreading]. It has been shown to improve performance both for high BDP and more common BDP [CONEXT15][ICC16].
This document defines an extension named "BDP_metadata" for the NewSessionTicket. This structure contains the following parameters: BDP, MTU, RTT, loss-rate.
At the end of a 1-RTT connection, a server can send information in a NewSessionTicket that describes the path to the client. The message includes an additional 'extensions' field named 'BDP_metadata'. The client stores this session ticket and the 'BDP_metadata' field.
When the client reconnects to the same server in 0-RTT mode, it pushes back this session ticket in the ClientHello and prepares itself to receive data in the context given by the 'BDP_metadata' field. The client does not send the 'BDP_metadata' field back to the server. The server receives the session ticket and extracts the BDP context. As example, it can use this message to provide information that may allow the congestion controller to provide a throughput closer to the capacity of the path.
Because the path characteristics can change over time, and may hence become invalid for use in a subsequent connection, the server sets the age of the ticket (see section 4.2.11.1 of [RFC8446]) to a short duration. A server could also update the ticket when the path characteristics of connection are known to have changed.
This section provides examples of data that could be added in the opaque ticket field by the server. The details added by the server in the session ticket do not need to be standardized for interoperability between QUIC clients and servers because this information is opaque to the client. The presence of the "BDP_metadata" extension field in the NewSessionTicket informs the client that the server can actively take action to improve its throughput when the session will restart.
The following list describes information elements set by the server in the session ticket to accompany the signaling of field. These examples are illustrated in Figure 1 and their purpose is detailed in this section.
CLIENT SERVER +-----------------------------------+ | 1 RTT connection | +-----------------------------------+ | | +<---1-RTT TLS1.3 HANDSHAKE--->+ | | +------------+ +<-----data transmission------>+ |path charact| | | |record | | | +------------+ |<-------------NewSessionTicket+ Client aware | +ticket_lifetime | of high BDP | +'opaque' field | path | +'extension' field | | + early_data | | + BDP_metadata | | + BDP | | + RTT | | + loss-rate | | + MTU | +-----------------------------------+ | 0 RTT connection | +-----------------------------------+ | | +ClientHello------------------>| |+'opaque' field | +-------------------+ | | |param adaptation | | | |e.g. | | | |tuned and paced IW | | | +-------------------+ | | +<----+data transmission+----->+ | | + +
Figure 1: Example of opaque ticket content
This section discusses the impact of a server activating the 'BDP_metadata' field when the network underneath actually has a small BDP. This could happen when the server BDP estimate was incorrect, when the client has multiple paths to choose from and uses the ticket on a different path to which it was requested, or when the path characteristics change significantly.
Incorrectly exploiting the BDP_metadata could result in assigning additional resources (e.g. buffer space) that later is not used. Apart from cases where the clients are resource-limited, this is not much of an issue.
The server could adapt the initial window to a high BDP context when the BDP is actually small. This issue can be prevented if packets are paced out of the server.
This mechanism follows the approach of the extension field 'early_data' of the NewSessionTicket of TLS1.3. While 'early_data' improves the egress traffic of a client, the 'BDP_metadata' proposal aims at improving ingress traffic to the client. Improving the ingress traffic can result in significant improvement to the quality-of-experience. For example, this enables the use of transport parameters, such as the RTT, PMTU and BDP to adapt the initial data transmission of a 0-RTT connection. In some large BDP deployment scenarios, this can halve the page load time of a web page download.
None.
TBD: text is required to register the extension BDP_metadata field.
The security is provided by the 1-RTT phase. The measure of BDP is made during a previous connection. The exchange and the information are protected both by the TLS encryption and the NewSessionTicket (see section 4.6.1 of [RFC8446]).
The BDP information the server will received is protected in the opaque session ticket. The 'BDP_metadata' field is visible by the client only. An client that does not trust the server transport adaptation ignores any session ticket associated to a 'BDP_metadata' field.
The server does not have to honour all the received requests (e.g. when it is resource-limited).
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997. |