Internet Engineering Task Force | N. Kuhn, Ed. |
Internet-Draft | CNES |
Intended status: Informational | E. Stephan, Ed. |
Expires: September 12, 2019 | Orange |
March 11, 2019 |
Transport parameters for 0-RTT connections
draft-kuhn-quic-0rtt-bdp-01
0-RTT is designed to accelerate the egress throughput at the establishment of a connection. There are cases where 0-RTT alone does not improve the time-to-service.
This memo discusses a solution where a fundamental characteristic of the path is learned during the 1-RTT phase and shared with the 0-RTT phase to accelerate the initial throughput during subsequent 0-RTT connections.
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 September 12, 2019.
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.
0-RTT is designed to accelerate the throughput at the establishment of a connection. There are cases where 0-RTT alone does not improve the time-to-service.
As shown in [IJSCN19], the usage of a congestion control and transport initialization not adapted to satellite communication results in higher page loading time for heavy pages in a SATCOM context. QUIC's congestion control is based on TCP NewReno [I-D.ietf-quic-recovery] and the recommended initial window is defined by [RFC6928]. This may not be suitable for good quality of experience for users in high Bandwidth Delay-Product (BDP) networks.
This memo discusses a solution where a fundamental characteristic of the path is learned during the 1-RTT phase and shared with the 0-RTT phase to accelerate the initial throughput during subsequent 0-RTT connections.
This section recalls how 1-RTT and 0-RTT work.
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 information learned about the session to the client in an opaque session ticket (see section 4.6.1 of [RFC8446]). The pieces of information of the ticket are meaningless to the client. A client willing to establish a fast re-opening of the session pushes back this 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' which indicates to the client the maximal size of application data to insert in the 0-RTT message.
GEO-satellite based systems characteristics differ from terrestrial networks with:
These characteristics have an impact on end-to-end congestion controls:
High BDP networks commonly break the TCP end-to-end paradigm to adapt the transport protocol. Splitting TCP allows adaptations to this specific use-case and assessing the issues discussed in section Section 3. PEP [RFC3135] are commonly deployed in SATCOM infrastructure for that purpose and their deployment can result in 50% page load time reduction in a SATCOM use-case [ICCRG100].
[NCT13] and [RFC3135] describe the main functionalities of SATCOM TCP split solutions. Shortly, for traffic going from a gateway to an end user behind a terminal, the TCP split intercepts TCP SYN to act as the end user and adapt the data rate transmission to the SATCOM scenario. The TCP split specifically tune the TCP parameters to the context (latency, available capacity) that is measured.
One important advantage of a TCP split solution is that it does not require any end-to-end modifications and is independent for both client and server sides. That being said, this comes with a drawback: TCP splitters can hardly embed the most recent end-to-end improvements (e.g. ECN or TCP Fast Open support).
This section proposes an improvement of the initialization of 0-RTT connections over satellite communication where the client recalls the BDP previously measured by the server during the 1-RTT handshake. The approach follows the tuning of the initial window described in [I-D.irtf-iccrg-sallantin-initial-spreading] which has been shown to improve performance both for high BDP and more common BDP [CONEXT15][ICC16].
A new extension named "BDP_data" is defined for NewSessionTicket. It contains the following value: BDP_value, that is the value in bits (same unit as [RFC6349]). The reception of the field BDP_data provides the client with 3 indications:
A server measures a connection BDP far larger than usual. It includes the path characteristics in the opaque ticket it sends to the client in a NewSessionTicket message. The message includes an additional 'extensions' field named 'BDP_data'. The client stores the session ticket and the 'BDP_data' field.
When the client reconnects to this 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_data' field (The client does not send the 'BDP_data' field back to the server). The server receives the session ticket and extracts the BDP context. It uses this information to provide a throughput closer to the capacity of the path.
As the validity of the path characteristics may change over the time the server sets the age of the ticket (see section 4.2.11.1 of [RFC8446]) to a short duration or updates the ticket when the path characteristics of the current connection changes.
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 it is opaque to the client. The presence of the "BDP_data" extension field in the NewSessionTicket informs the client that the server will actively take action to improve its throughput when the session will restart.
Here are examples of 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 | + ... | | + PMTU | | + connection RTT | | +'extension' field | | + early_data | | + BDP_data | | | +-----------------------------------+ | 0 RTT connection | +-----------------------------------+ | | +ClientHello------------------>| |+'opaque' field | +-------------------+ | + ... | |param adaptation | | + PMTU | |e.g. | | + connection RTT | |tuned and paced IW | | | +-------------------+ | | +<----+data transmission+----->+ | | + +
Figure 1: Example of opaque ticket content
The proposal made in this draft 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_data' proposal aims at improving its ingress traffic. Improving the ingress traffic of an end user can result in drastic quality-of-experience improvements. As example, this contribution enables the exploitation of the RTT, PMTU and BDP to adapt the initial data transmission of a 0-RTT connection to halve the page load time of a web page download.
None.
None.
TBD: text is required to register the extension BDP_data 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_data' field is visible by the client only. An client which does not trust the server transport adaptation ignores any session ticket associated to a 'BDP_data' field.
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997. |