draft-ietf-tcpm-tcp-rfc4614bis-03.txt   draft-ietf-tcpm-tcp-rfc4614bis-04.txt 
TCP Maintenance and Minor Extensions M. Duke TCP Maintenance and Minor Extensions M. Duke
(TCPM) WG F5 (TCPM) WG F5
Internet-Draft R. Braden Internet-Draft R. Braden
Obsoletes: 4614 (if approved) ISI Obsoletes: 4614 (if approved) ISI
Intended status: Informational W. Eddy Intended status: Informational W. Eddy
Expires: June 14, 2014 MTI Systems Expires: October 11, 2014 MTI Systems
E. Blanton E. Blanton
A. Zimmermann A. Zimmermann
NetApp, Inc. NetApp, Inc.
December 11, 2013 April 9, 2014
A Roadmap for Transmission Control Protocol (TCP) Specification A Roadmap for Transmission Control Protocol (TCP) Specification
Documents Documents
draft-ietf-tcpm-tcp-rfc4614bis-03 draft-ietf-tcpm-tcp-rfc4614bis-04
Abstract Abstract
This document contains a "roadmap" to the Requests for Comments (RFC) This document contains a "roadmap" to the Requests for Comments (RFC)
documents relating to the Internet's Transmission Control Protocol documents relating to the Internet's Transmission Control Protocol
(TCP). This roadmap provides a brief summary of the documents (TCP). This roadmap provides a brief summary of the documents
defining TCP and various TCP extensions that have accumulated in the defining TCP and various TCP extensions that have accumulated in the
RFC series. This serves as a guide and quick reference for both TCP RFC series. This serves as a guide and quick reference for both TCP
implementers and other parties who desire information contained in implementers and other parties who desire information contained in
the TCP-related RFCs. the TCP-related RFCs.
skipping to change at page 1, line 44 skipping to change at page 1, line 44
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on June 14, 2014. This Internet-Draft will expire on October 11, 2014.
Copyright Notice Copyright Notice
Copyright (c) 2013 IETF Trust and the persons identified as the Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
skipping to change at page 3, line 34 skipping to change at page 3, line 34
4.7. Multipath TCP . . . . . . . . . . . . . . . . . . . . . . 21 4.7. Multipath TCP . . . . . . . . . . . . . . . . . . . . . . 21
5. TCP Parameters at IANA . . . . . . . . . . . . . . . . . . . . 22 5. TCP Parameters at IANA . . . . . . . . . . . . . . . . . . . . 22
6. Historic and Undeployed Extensions . . . . . . . . . . . . . . 23 6. Historic and Undeployed Extensions . . . . . . . . . . . . . . 23
7. Support Documents . . . . . . . . . . . . . . . . . . . . . . 26 7. Support Documents . . . . . . . . . . . . . . . . . . . . . . 26
7.1. Foundational Works . . . . . . . . . . . . . . . . . . . . 26 7.1. Foundational Works . . . . . . . . . . . . . . . . . . . . 26
7.2. Architectural Guidelines . . . . . . . . . . . . . . . . . 28 7.2. Architectural Guidelines . . . . . . . . . . . . . . . . . 28
7.3. Difficult Network Environments . . . . . . . . . . . . . . 29 7.3. Difficult Network Environments . . . . . . . . . . . . . . 29
7.4. Guidance for Developing, Analyzing, and Evaluating TCP . . 32 7.4. Guidance for Developing, Analyzing, and Evaluating TCP . . 32
7.5. Implementation Advice . . . . . . . . . . . . . . . . . . 33 7.5. Implementation Advice . . . . . . . . . . . . . . . . . . 33
7.6. Tools and Tutorials . . . . . . . . . . . . . . . . . . . 35 7.6. Tools and Tutorials . . . . . . . . . . . . . . . . . . . 35
7.7. Management Information Bases . . . . . . . . . . . . . . . 35 7.7. Management Information Bases . . . . . . . . . . . . . . . 36
7.8. Case Studies . . . . . . . . . . . . . . . . . . . . . . . 37 7.8. Case Studies . . . . . . . . . . . . . . . . . . . . . . . 37
8. Undocumented TCP Features . . . . . . . . . . . . . . . . . . 38 8. Undocumented TCP Features . . . . . . . . . . . . . . . . . . 38
9. Security Considerations . . . . . . . . . . . . . . . . . . . 40 9. Security Considerations . . . . . . . . . . . . . . . . . . . 40
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 40 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 40
11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 40 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 40
12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 40 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 40
12.1. Normative References . . . . . . . . . . . . . . . . . . . 40 12.1. Normative References . . . . . . . . . . . . . . . . . . . 40
12.2. Informative References . . . . . . . . . . . . . . . . . . 49 12.2. Informative References . . . . . . . . . . . . . . . . . . 50
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 51 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 51
1. Introduction 1. Introduction
A correct and efficient implementation of the Transmission Control A correct and efficient implementation of the Transmission Control
Protocol (TCP) is a critical part of the software of most Internet Protocol (TCP) is a critical part of the software of most Internet
hosts. As TCP has evolved over the years, many distinct documents hosts. As TCP has evolved over the years, many distinct documents
have become part of the accepted standard for TCP. At the same time, have become part of the accepted standard for TCP. At the same time,
a large number of experimental modifications to TCP have also been a large number of experimental modifications to TCP have also been
published in the RFC series, along with informational notes, case published in the RFC series, along with informational notes, case
skipping to change at page 21, line 24 skipping to change at page 21, line 24
out-of-order segment does not necessarily indicates a lost segment out-of-order segment does not necessarily indicates a lost segment
and congestion. This document [RFC4653] proposes to increase the and congestion. This document [RFC4653] proposes to increase the
threshold used to trigger a fast retransmission from the fixed threshold used to trigger a fast retransmission from the fixed
value of three duplicate ACKs to about one congestion window of value of three duplicate ACKs to about one congestion window of
data in order to disambiguate true segment loss from segment data in order to disambiguate true segment loss from segment
reordering. reordering.
4.6. TCP Timeouts 4.6. TCP Timeouts
Besides the well known retransmission timeout the TCP standard Besides the well known retransmission timeout the TCP standard
[RFC0793] defines two more timeouts: the user timeout and the time- [RFC0793] defines other timeouts. This section lists documents that
wait timeout. This section lists documents that deals with TCP's deals with TCP's various timouts.
various timouts.
RFC 5482 S: "TCP User Timeout Option" (June 2009) RFC 5482 S: "TCP User Timeout Option" (June 2009)
As a local per-connection parameter the TCP user timeout controls As a local per-connection parameter the TCP user timeout controls
how long transmitted data may remain unacknowledged before a how long transmitted data may remain unacknowledged before a
connection is forcefully closed. This document [RFC5482] connection is forcefully closed. This document [RFC5482]
specifies the TCP User Timeout Option that allows one end of a TCP specifies the TCP User Timeout Option that allows one end of a TCP
connection to advertise its current user timeout value. This connection to advertise its current user timeout value. This
information provides advice to the other end of the TCP connection information provides advice to the other end of the TCP connection
to adapt its user timeout accordingly. to adapt its user timeout accordingly.
skipping to change at page 28, line 41 skipping to change at page 28, line 41
This document [RFC2914] motivates the use of end-to-end congestion This document [RFC2914] motivates the use of end-to-end congestion
control for preventing congestion collapse and providing fairness control for preventing congestion collapse and providing fairness
to TCP. Later work on TCP has included several more aggressive to TCP. Later work on TCP has included several more aggressive
mechanisms than Reno TCP includes, and RFC 5033 (see Section 7.4) mechanisms than Reno TCP includes, and RFC 5033 (see Section 7.4)
provides additional guidance on use of such algorithms. The provides additional guidance on use of such algorithms. The
fundamental architectural discussion in RFC 2914 remains valid, fundamental architectural discussion in RFC 2914 remains valid,
regarding the standards process role in defining protocol aspects regarding the standards process role in defining protocol aspects
that are critical to performance and avoiding congestion collapse that are critical to performance and avoiding congestion collapse
scenarios. scenarios.
RFC 3360 B: "Inappropriate TCP Resets Considered Harmful" (August
2002)
This document [RFC3360] is a plea that firewall vendors not send
gratuitous TCP RST (Reset) packets when unassigned TCP header bits
are used. This practice prevents desirable extension and
evolution of the protocol and thus is potentially harmful to the
future of the Internet.
RFC 3439 I: "Some Internet Architectural Guidelines and Philosophy" RFC 3439 I: "Some Internet Architectural Guidelines and Philosophy"
(December 2002) (December 2002)
This document [RFC3439] updates RFC 1958 (see Section 7.2) by This document [RFC3439] updates RFC 1958 (see Section 7.2) by
outlining some philosophical guidelines for architects and outlining some philosophical guidelines for architects and
designers of Internet backbone networks. The document describes designers of Internet backbone networks. The document describes
the Simplicity Principle, which states that complexity is the the Simplicity Principle, which states that complexity is the
primary impediment to efficient scaling. primary impediment to efficient scaling.
RFC 4774 B: "Specifying Alternate Semantics for the Explicit RFC 4774 B: "Specifying Alternate Semantics for the Explicit
skipping to change at page 33, line 4 skipping to change at page 33, line 13
This document [RFC6181] describes a threat analysis for Multipath This document [RFC6181] describes a threat analysis for Multipath
TCP (MPTCP) (see Section 4.7). The document discusses several TCP (MPTCP) (see Section 4.7). The document discusses several
types of attacks and provides recommendations for MPTCP designers types of attacks and provides recommendations for MPTCP designers
how to create an MPTCP specification that is as secure as the how to create an MPTCP specification that is as secure as the
current (single-path) TCP. current (single-path) TCP.
RFC 6349 I: "Framework for TCP Throughput Testing" (August 2011) RFC 6349 I: "Framework for TCP Throughput Testing" (August 2011)
From abstract: "This document describes a practical methodology From abstract: "This document describes a practical methodology
for measuring end-to-end TCP throughput in a managed IP network. for measuring end-to-end TCP throughput in a managed IP network.
The goal is to provide a better indication in regard to user The goal is to provide a better indication in regard to user
experience. In this framework, TCP and IP parameters are experience. In this framework, TCP and IP parameters are
specified to optimize TCP throughput." [RFC6349] specified to optimize TCP throughput." [RFC6349]
7.5. Implementation Advice 7.5. Implementation Advice
RFC 794 U: "PRE-EMPTION" (September 1981) RFC 794 U: "PRE-EMPTION" (September 1981)
This document [RFC0794] discusses on a high-level the realization This document [RFC0794] clarifies that operating systems need to
of pre-emption in TCP. manage their limited resources, which may include TCP connection
state, and that these decisions can be made with application
input, but they do not need to be part of the TCP protocol
specification itself.
RFC 879 U: "The TCP Maximum Segment Size and Related Topics" RFC 879 U: "The TCP Maximum Segment Size and Related Topics"
(November 1983) (November 1983)
Abstract: "This memo discusses the TCP Maximum Segment Size Option Abstract: "This memo discusses the TCP Maximum Segment Size Option
and related topics. The purposes is to clarify some aspects of and related topics. The purposes is to clarify some aspects of
TCP and its interaction with IP. This memo is a clarification to TCP and its interaction with IP. This memo is a clarification to
the TCP specification, and contains information that may be the TCP specification, and contains information that may be
considered as 'advice to implementers'." [RFC0879] considered as 'advice to implementers'." [RFC0879]
skipping to change at page 34, line 15 skipping to change at page 34, line 28
RFC 2923 I: "TCP Problems with Path MTU Discovery" (September 2000) RFC 2923 I: "TCP Problems with Path MTU Discovery" (September 2000)
From abstract: "This memo catalogs several known Transmission From abstract: "This memo catalogs several known Transmission
Control Protocol (TCP) implementation problems dealing with Path Control Protocol (TCP) implementation problems dealing with Path
Maximum Transmission Unit Discovery (PMTUD), including the long- Maximum Transmission Unit Discovery (PMTUD), including the long-
standing black hole problem, stretch acknowledgments (ACKs) due to standing black hole problem, stretch acknowledgments (ACKs) due to
confusion between Maximum Segment Size (MSS) and segment size, and confusion between Maximum Segment Size (MSS) and segment size, and
MSS advertisement based on PMTU." [RFC2923] MSS advertisement based on PMTU." [RFC2923]
RFC 3360 B: "Inappropriate TCP Resets Considered Harmful" (August
2002)
This document [RFC3360] is a plea that firewall vendors not send
gratuitous TCP RST (Reset) packets when unassigned TCP header bits
are used. This practice prevents desirable extension and
evolution of the protocol and thus is potentially harmful to the
future of the Internet.
RFC 3493 I: "Basic Socket Interface Extensions for IPv6" (February RFC 3493 I: "Basic Socket Interface Extensions for IPv6" (February
2003) 2003)
This document [RFC3493] describes the de facto standard sockets This document [RFC3493] describes the de facto standard sockets
API for programming with TCP. This API is implemented nearly API for programming with TCP. This API is implemented nearly
ubiquitously in modern operating systems and programming ubiquitously in modern operating systems and programming
languages. languages.
RFC 6056 B: "Recommendations for Transport-Protocol Port RFC 6056 B: "Recommendations for Transport-Protocol Port
Randomization" (December 2010) Randomization" (December 2010)
skipping to change at page 34, line 51 skipping to change at page 35, line 8
(April 2011) (April 2011)
This document [RFC6191] describes the usage of the TCP Timestamps This document [RFC6191] describes the usage of the TCP Timestamps
option (RFC XXXX, see Section 3.1) to perform heuristics to option (RFC XXXX, see Section 3.1) to perform heuristics to
determine whether or not to allow the creation of a new determine whether or not to allow the creation of a new
incarnation of a connection that is in the TIME-WAIT state. incarnation of a connection that is in the TIME-WAIT state.
RFC 6429 I: "TCP Sender Clarification for Persist Condition" RFC 6429 I: "TCP Sender Clarification for Persist Condition"
(December 2011) (December 2011)
This document [RFC6429] clarifies the actions that a TCP can be This document [RFC6429] clarifies the actions that a TCP can take
taken on connections that are experiencing the Zero Window Probe on connections that are experiencing the Zero Window Probe (ZWP)
(ZWP) condition. condition.
RFC 6897 I: "Multipath TCP (MPTCP) Application Interface RFC 6897 I: "Multipath TCP (MPTCP) Application Interface
Considerations" (March 2013) Considerations" (March 2013)
This document [RFC6897] characterizes the impact that Multipath This document [RFC6897] characterizes the impact that Multipath
TCP (MPTCP) (see Section 4.7) may have on applications. It TCP (MPTCP) (see Section 4.7) may have on applications. It
further discusses compatibility issues of MPTCP in combination further discusses compatibility issues of MPTCP in combination
with non-MPTCP-aware applications. Finally, it describes a basic with non-MPTCP-aware applications. Finally, it describes a basic
API that is a simple extension of TCP's interface for MPTCP-aware API that is a simple extension of TCP's interface for MPTCP-aware
applications. applications.
skipping to change at page 39, line 31 skipping to change at page 39, line 39
reassembly queue is larger than the duplicate ACK threshold, as reassembly queue is larger than the duplicate ACK threshold, as
indicated by the difference between the forward most SACK block indicated by the difference between the forward most SACK block
edge and SND.UNA. This algorithm quickly and reliably triggers edge and SND.UNA. This algorithm quickly and reliably triggers
fast retransmit in the presence of burst losses -- often on the fast retransmit in the presence of burst losses -- often on the
first SACK following such a loss. Such a threshold based first SACK following such a loss. Such a threshold based
algorithm also triggers fast retransmit immediately in the algorithm also triggers fast retransmit immediately in the
presence of any reordering with extent greater than the duplicate presence of any reordering with extent greater than the duplicate
ACK threshold. FACK is implemented in Linux and turned on per ACK threshold. FACK is implemented in Linux and turned on per
default. default.
Highspeed Congestion Control Congestion Control for High Rate Flows
In the last decade significant research effort has been put into In the last decade significant research effort has been put into
experimental TCP congestion control modifications for obtaining experimental TCP congestion control modifications for obtaining
high throughput with reduced startup and recovery times. Only few high throughput with reduced startup and recovery times. Only few
RFCs have been published on some of these modifications, including RFCs have been published on some of these modifications, including
HighSpeed TCP [RFC3649] (see Section 4.3), Limited Slow-Start HighSpeed TCP [RFC3649] (see Section 4.3), Limited Slow-Start
[RFC3742] (see Section 4.3), and Quick-Start [RFC4782] (see [RFC3742] (see Section 4.3), and Quick-Start [RFC4782] (see
Section 4.3), but high-rate congestion control mechanisms are Section 4.3), but high-rate congestion control mechanisms are
still considered an open issue in congestion control research. still considered an open issue in congestion control research.
Some other schemes have been published as Internet-Drafts, e.g. Some other schemes have been published as Internet-Drafts, e.g.
 End of changes. 14 change blocks. 
26 lines changed or deleted 27 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/