TCP Fast Open
draft-ietf-tcpm-fastopen-04
Internet Draft Y. Cheng
draft-ietf-tcpm-fastopen-04.txt J. Chu
Intended status: Experimental S. Radhakrishnan
Expiration date: February, 2014 A. Jain
Google, Inc.
July 15, 2013
TCP Fast Open
Status of this Memo
Distribution of this memo is unlimited.
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), its areas, and its working groups. Note that other
groups may also distribute working documents as Internet-Drafts.
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."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/1id-abstracts.html
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
Copyright Notice
Copyright (c) 2013 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
(http://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.
Abstract
Cheng, et. al. Expires January 16, 2014 [Page 1]
Internet Draft TCP Fast Open July 15, 2013
TCP Fast Open (TFO) allows data to be carried in the SYN and SYN-ACK
packets and consumed by the receiving end during the initial
connection handshake, thus saving up to one full round trip time
(RTT) compared to the standard TCP, which requires a three-way
handshake (3WHS) to complete before data can be exchanged. However
TFO deviates from the standard TCP semantics in that the data in the
SYN could be replayed to an application in some rare circumstances.
Applications should not use TFO unless they can tolerate this issue,
which is detailed in the Applicability section.
Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
TFO refers to TCP Fast Open. Client refers to the TCP's active open
side and server refers to the TCP's passive open side.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Data In SYN . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1 Relaxing TCP Semantics on Duplicated SYNs . . . . . . . . . 4
2.2. SYNs with Spoofed IP Addresses . . . . . . . . . . . . . . 4
3. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . . 5
4. Protocol Details . . . . . . . . . . . . . . . . . . . . . . . 7
4.1. Fast Open Cookie . . . . . . . . . . . . . . . . . . . . . 7
4.1.1. TCP Options . . . . . . . . . . . . . . . . . . . . . . 7
4.1.2. Server Cookie Handling . . . . . . . . . . . . . . . . 8
4.1.3. Client Cookie Handling . . . . . . . . . . . . . . . . 9
4.2. Fast Open Protocol . . . . . . . . . . . . . . . . . . . . 9
4.2.1. Fast Open Cookie Request . . . . . . . . . . . . . . . 10
4.2.2. TCP Fast Open . . . . . . . . . . . . . . . . . . . . . 11
5. Security Considerations . . . . . . . . . . . . . . . . . . . . 13
5.1. Resource Exhaustion Attack by SYN Flood with Valid
Cookies . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.1.1 Attacks from behind Sharing Public IPs (NATs) . . . . . 14
5.2. Amplified Reflection Attack to Random Host . . . . . . . . 15
6. TFO's Applicability . . . . . . . . . . . . . . . . . . . . . . 16
6.1 Duplicate Data in SYNs . . . . . . . . . . . . . . . . . . . 16
6.2 Potential Performance Improvement . . . . . . . . . . . . . 16
6.3. Example: Web Clients and Servers . . . . . . . . . . . . . 16
6.3.1. HTTP Request Replay . . . . . . . . . . . . . . . . . . 16
6.3.2. Comparison with HTTP Persistent Connections . . . . . . 17
Show full document text