summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc7414.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc7414.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc7414.txt')
-rw-r--r--doc/rfc/rfc7414.txt3195
1 files changed, 3195 insertions, 0 deletions
diff --git a/doc/rfc/rfc7414.txt b/doc/rfc/rfc7414.txt
new file mode 100644
index 0000000..005fc1c
--- /dev/null
+++ b/doc/rfc/rfc7414.txt
@@ -0,0 +1,3195 @@
+
+
+
+
+
+
+Internet Engineering Task Force (IETF) M. Duke
+Request for Comments: 7414 F5
+Obsoletes: 4614 R. Braden
+Category: Informational ISI
+ISSN: 2070-1721 W. Eddy
+ MTI Systems
+ E. Blanton
+ Interrupt Sciences
+ A. Zimmermann
+ NetApp, Inc.
+ February 2015
+
+
+ A Roadmap for Transmission Control Protocol (TCP)
+ Specification Documents
+
+Abstract
+
+ This document contains a roadmap to the Request for Comments (RFC)
+ documents relating to the Internet's Transmission Control Protocol
+ (TCP). This roadmap provides a brief summary of the documents
+ defining TCP and various TCP extensions that have accumulated in the
+ RFC series. This serves as a guide and quick reference for both TCP
+ implementers and other parties who desire information contained in
+ the TCP-related RFCs.
+
+ This document obsoletes RFC 4614.
+
+Status of This Memo
+
+ This document is not an Internet Standards Track specification; it is
+ published for informational purposes.
+
+ This document is a product of the Internet Engineering Task Force
+ (IETF). It represents the consensus of the IETF community. It has
+ received public review and has been approved for publication by the
+ Internet Engineering Steering Group (IESG). Not all documents
+ approved by the IESG are a candidate for any level of Internet
+ Standard; see Section 2 of RFC 5741.
+
+ Information about the current status of this document, any errata,
+ and how to provide feedback on it may be obtained at
+ http://www.rfc-editor.org/info/rfc7414.
+
+
+
+
+
+
+
+
+Duke, et al. Informational [Page 1]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+Copyright Notice
+
+ Copyright (c) 2015 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Duke, et al. Informational [Page 2]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+Table of Contents
+
+ 1. Introduction ....................................................4
+ 2. Core Functionality ..............................................6
+ 3. Strongly Encouraged Enhancements ................................8
+ 3.1. Fundamental Changes ........................................9
+ 3.2. Congestion Control Extensions .............................10
+ 3.3. Loss Recovery Extensions ..................................11
+ 3.4. Detection and Prevention of Spurious Retransmissions ......13
+ 3.5. Path MTU Discovery ........................................14
+ 3.6. Header Compression ........................................15
+ 3.7. Defending Spoofing and Flooding Attacks ...................15
+ 4. Experimental Extensions ........................................17
+ 4.1. Architectural Guidelines ..................................18
+ 4.2. Fundamental Changes .......................................18
+ 4.3. Congestion Control Extensions .............................19
+ 4.4. Loss Recovery Extensions ..................................20
+ 4.5. Detection and Prevention of Spurious Retransmissions ......21
+ 4.6. TCP Timeouts ..............................................22
+ 4.7. Multipath TCP .............................................22
+ 5. TCP Parameters at IANA .........................................23
+ 6. Historic and Undeployed Extensions .............................24
+ 7. Support Documents ..............................................27
+ 7.1. Foundational Works ........................................27
+ 7.2. Architectural Guidelines ..................................29
+ 7.3. Difficult Network Environments ............................30
+ 7.4. Guidance for Developing, Analyzing, and Evaluating TCP ....33
+ 7.5. Implementation Advice .....................................34
+ 7.6. Tools and Tutorials .......................................36
+ 7.7. MIB Modules ...............................................37
+ 7.8. Case Studies ..............................................39
+ 8. Undocumented TCP Features ......................................40
+ 9. Security Considerations ........................................41
+ 10. References ....................................................42
+ 10.1. Normative References .....................................42
+ 10.2. Informative References ...................................53
+ Acknowledgments ...................................................56
+ Authors' Addresses ................................................57
+
+
+
+
+
+
+
+
+
+
+
+
+
+Duke, et al. Informational [Page 3]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+1. Introduction
+
+ A correct and efficient implementation of the Transmission Control
+ Protocol (TCP) is a critical part of the software of most Internet
+ hosts. As TCP has evolved over the years, many distinct documents
+ have become part of the accepted standard for TCP. At the same time,
+ a large number of experimental modifications to TCP have also been
+ published in the RFC series, along with informational notes, case
+ studies, and other advice.
+
+ As an introduction to newcomers and an attempt to organize the
+ plethora of information for old hands, this document contains a
+ roadmap to the TCP-related RFCs. It provides a brief summary of the
+ RFC documents that define TCP. This should provide guidance to
+ implementers on the relevance and significance of the standards-track
+ extensions, informational notes, and best current practices that
+ relate to TCP.
+
+ This document is not an update of RFC 1122 [RFC1122] and is not a
+ rigorous standard for what needs to be implemented in TCP. This
+ document is merely an informational roadmap that captures, organizes,
+ and summarizes most of the RFC documents that a TCP implementer,
+ experimenter, or student should be aware of. Particular comments or
+ broad categorizations that this document makes about individual
+ mechanisms and behaviors are not to be taken as definitive, nor
+ should the content of this document alone influence implementation
+ decisions.
+
+ This roadmap includes a brief description of the contents of each
+ TCP-related RFC. In some cases, we simply supply the abstract or a
+ key summary sentence from the text as a terse description. In
+ addition, a letter code after an RFC number indicates its category in
+ the RFC series (see BCP 9 [RFC2026] for explanation of these
+ categories):
+
+ S - Standards Track (Proposed Standard, Draft Standard, or Internet
+ Standard)
+
+ E - Experimental
+
+ I - Informational
+
+ H - Historic
+
+ B - Best Current Practice
+
+ U - Unknown (not formally defined)
+
+
+
+
+Duke, et al. Informational [Page 4]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ Note that the category of an RFC does not necessarily reflect its
+ current relevance. For instance, RFC 5681 [RFC5681] is considered
+ part of the required core functionality of TCP, although the RFC is
+ only a Draft Standard. Similarly, some Informational RFCs contain
+ significant technical proposals for changing TCP.
+
+ Finally, if an error in the technical content has been found after
+ publication of an RFC (at the time of this writing), this fact is
+ indicated by the term "(Errata)" in the headline of the RFC's
+ description. The contents of the errata can be found through the RFC
+ Errata page [Errata].
+
+ This roadmap is divided into three main sections. Section 2 lists
+ the RFCs that describe absolutely required TCP behaviors for proper
+ functioning and interoperability. Further RFCs that describe
+ strongly encouraged, but nonessential, behaviors are listed in
+ Section 3. Experimental extensions that are not yet standard
+ practices, but that potentially could be in the future, are described
+ in Section 4.
+
+ The reader will probably notice that these three sections are broadly
+ equivalent to MUST/SHOULD/MAY specifications (per RFC 2119
+ [RFC2119]), and although the authors support this intuition, this
+ document is merely descriptive; it does not represent a binding
+ Standards Track position. Individual implementers still need to
+ examine the Standards Track RFCs themselves to evaluate specific
+ requirement levels.
+
+ Section 5 describes both the procedures that the Internet Assigned
+ Numbers Authority (IANA) uses and an RFC author should follow when
+ new TCP parameters are requested and finally assigned.
+
+ A small number of older experimental extensions that have not been
+ widely implemented, deployed, and used are noted in Section 6. Many
+ other supporting documents that are relevant to the development,
+ implementation, and deployment of TCP are described in Section 7.
+
+ A small number of fairly ubiquitous important implementation
+ practices that are not currently documented in the RFC series are
+ listed in Section 8.
+
+ Within each section, RFCs are listed in the chronological order of
+ their publication dates.
+
+
+
+
+
+
+
+
+Duke, et al. Informational [Page 5]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+2. Core Functionality
+
+ A small number of documents compose the core specification of TCP.
+ These define the required core functionalities of TCP's header
+ parsing, state machine, congestion control, and retransmission
+ timeout computation. These base specifications must be correctly
+ followed for interoperability.
+
+ RFC 793 S: "Transmission Control Protocol", STD 7 (September 1981)
+ (Errata)
+
+ This is the fundamental TCP specification document [RFC793].
+ Written by Jon Postel as part of the Internet protocol suite's
+ core, it describes the TCP packet format, the TCP state machine
+ and event processing, and TCP's semantics for data transmission,
+ reliability, flow control, multiplexing, and acknowledgment.
+
+ Section 3.6 of RFC 793, describing TCP's handling of the IP
+ precedence and security compartment, is mostly irrelevant today.
+ RFC 2873 (discussed later in Section 2 below) changed the IP
+ precedence handling, and the security compartment portion of the
+ API is no longer implemented or used. In addition, RFC 793 did
+ not describe any congestion control mechanism. Otherwise,
+ however, the majority of this document still accurately describes
+ modern TCPs. RFC 793 is the last of a series of developmental TCP
+ specifications, starting in the Internet Experimental Notes (IENs)
+ and continuing in the RFC series.
+
+ RFC 1122 S: "Requirements for Internet Hosts - Communication Layers"
+ (October 1989)
+
+ This document [RFC1122] updates and clarifies RFC 793 (see above
+ in Section 2), fixing some specification bugs and oversights. It
+ also explains some features such as keep-alives and Karn's and
+ Jacobson's RTO estimation algorithms [KP87][Jac88][JK92]. ICMP
+ interactions are mentioned, and some tips are given for efficient
+ implementation. RFC 1122 is an Applicability Statement, listing
+ the various features that MUST, SHOULD, MAY, SHOULD NOT, and MUST
+ NOT be present in standards-conforming TCP implementations.
+ Unlike a purely informational roadmap, this Applicability
+ Statement is a standards document and gives formal rules for
+ implementation.
+
+
+
+
+
+
+
+
+
+Duke, et al. Informational [Page 6]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ RFC 2460 S: "Internet Protocol, Version 6 (IPv6) Specification"
+ (December 1998) (Errata)
+
+ This document [RFC2460] is of relevance to TCP because it defines
+ how the pseudo-header for TCP's checksum computation is derived
+ when 128-bit IPv6 addresses are used instead of 32-bit IPv4
+ addresses. Additionally, RFC 2675 (see Section 3.1 of this
+ document) describes TCP changes required to support IPv6
+ jumbograms.
+
+ RFC 2873 S: "TCP Processing of the IPv4 Precedence Field" (June 2000)
+ (Errata)
+
+ This document [RFC2873] removes from the TCP specification all
+ processing of the precedence bits of the TOS byte of the IP
+ header. This resolves a conflict over the use of these bits
+ between RFC 793 (see above in Section 2) and Differentiated
+ Services [RFC2474].
+
+ RFC 5681 S: "TCP Congestion Control" (August 2009)
+
+ Although RFC 793 (see above in Section 2) did not contain any
+ congestion control mechanisms, today congestion control is a
+ required component of TCP implementations. This document
+ [RFC5681] defines congestion avoidance and control mechanism for
+ TCP, based on Van Jacobson's 1988 SIGCOMM paper [Jac88].
+
+ A number of behaviors that together constitute what the community
+ refers to as "Reno TCP" is described in RFC 5681. The name "Reno"
+ comes from the Net/2 release of the 4.3 BSD operating system.
+ This is generally regarded as the least common denominator among
+ TCP flavors currently found running on Internet hosts. Reno TCP
+ includes the congestion control features of slow start, congestion
+ avoidance, fast retransmit, and fast recovery.
+
+ RFC 5681 details the currently accepted congestion control
+ mechanism, while RFC 1122, (see above in Section 2) mandates that
+ such a congestion control mechanism must be implemented. RFC 5681
+ differs slightly from the other documents listed in this section,
+ as it does not affect the ability of two TCP endpoints to
+ communicate; however, congestion control remains a critical
+ component of any widely deployed TCP implementation and is
+ required for the avoidance of congestion collapse and to ensure
+ fairness among competing flows.
+
+
+
+
+
+
+
+Duke, et al. Informational [Page 7]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ RFCs 2001 and 2581 are the conceptual precursors of RFC 5681. The
+ most important changes relative to RFC 2581 are:
+
+ (a) The initial window requirements were changed to allow larger
+ Initial Windows as standardized in [RFC3390] (see Section 3.2
+ of this document).
+ (b) During slow start and congestion avoidance, the usage of
+ Appropriate Byte Counting [RFC3465] (see Section 3.2 of this
+ document) is explicitly recommended.
+ (c) The use of Limited Transmit [RFC3042] (see Section 3.3 of
+ this document) is now recommended.
+
+ RFC 6093 S: "On the Implementation of the TCP Urgent Mechanism"
+ (January 2011)
+
+ This document [RFC6093] analyzes how current TCP stacks process
+ TCP urgent indications, and how the behavior of widely deployed
+ middleboxes affects the urgent indications processing. The
+ document updates the relevant specifications such that it
+ accommodates current practice in processing TCP urgent
+ indications. Finally, the document raises awareness about the
+ reliability of TCP urgent indications in the Internet, and
+ recommends against the use of urgent mechanism.
+
+ RFC 6298 S: "Computing TCP's Retransmission Timer" (June 2011)
+
+ Abstract of RFC 6298 [RFC6298]: "This document defines the
+ standard algorithm that Transmission Control Protocol (TCP)
+ senders are required to use to compute and manage their
+ retransmission timer. It expands on the discussion in
+ Section 4.2.3.1 of RFC 1122 and upgrades the requirement of
+ supporting the algorithm from a SHOULD to a MUST." RFC 6298
+ updates RFC 2988 by changing the initial RTO from 3s to 1s.
+
+ RFC 6691 I: "TCP Options and Maximum Segment Size (MSS)" (July 2012)
+
+ This document [RFC6691] clarifies what value to use with the TCP
+ Maximum Segment Size (MSS) option when IP and TCP options are in
+ use.
+
+3. Strongly Encouraged Enhancements
+
+ This section describes recommended TCP modifications that improve
+ performance and security. Section 3.1 represents fundamental changes
+ to the protocol. Sections 3.2 and 3.3 list improvements over the
+ congestion control and loss recovery mechanisms as specified in RFC
+ 5681 (see Section 2). Section 3.4 describes algorithms that allow a
+ TCP sender to detect whether it has entered loss recovery spuriously.
+
+
+
+Duke, et al. Informational [Page 8]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ Section 3.5 comprises Path MTU Discovery mechanisms. Schemes for
+ TCP/IP header compression are listed in Section 3.6. Finally,
+ Section 3.7 deals with the problem of preventing acceptance of forged
+ segments and flooding attacks.
+
+3.1. Fundamental Changes
+
+ RFCs 2675 and 7323 represent fundamental changes to TCP by redefining
+ how parts of the basic TCP header and options are interpreted. RFC
+ 7323 defines the Window Scale option, which reinterprets the
+ advertised receive window. RFC 2675 specifies that MSS option and
+ urgent pointer fields with a value of 65,535 are to be treated
+ specially.
+
+ RFC 2675 S: "IPv6 Jumbograms" (August 1999) (Errata)
+
+ IPv6 supports longer datagrams than were allowed in IPv4. These
+ are known as jumbograms, and use with TCP has necessitated changes
+ to the handling of TCP's MSS and Urgent fields (both 16 bits).
+ This document [RFC2675] explains those changes. Although it
+ describes changes to basic header semantics, these changes should
+ only affect the use of very large segments, such as IPv6
+ jumbograms, which are currently rarely used in the general
+ Internet.
+
+ Supporting the behavior described in this document does not affect
+ interoperability with other TCP implementations when IPv4 or non-
+ jumbogram IPv6 is used. This document states that jumbograms are
+ to only be used when it can be guaranteed that all receiving
+ nodes, including each router in the end-to-end path, will support
+ jumbograms. If even a single node that does not support
+ jumbograms is attached to a local network, then no host on that
+ network may use jumbograms. This explains why jumbogram use has
+ been rare, and why this document is considered a performance
+ optimization and not part of TCP over IPv6's basic functionality.
+
+ RFC 7323 S: "TCP Extensions for High Performance" (September 2014)
+
+ This document [RFC7323] defines TCP extensions for window scaling,
+ timestamps, and protection against wrapped sequence numbers, for
+ efficient and safe operation over paths with large bandwidth-delay
+ products. These extensions are commonly found in currently used
+ systems. The predecessor of this document, RFC 1323, was
+ published in 1992, and is deployed in most TCP implementations.
+ This document includes fixes and clarifications based on the
+ gained deployment experience. One specific issued addressed in
+
+
+
+
+
+Duke, et al. Informational [Page 9]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ this specification is a recommendation how to modify the algorithm
+ for estimating the mean RTT when timestamps are used. RFCs 1072,
+ 1185, and 1323 are the conceptual precursors of RFC 7323.
+
+3.2. Congestion Control Extensions
+
+ Two of the most important aspects of TCP are its congestion control
+ and loss recovery features. TCP treats lost packets as indicating
+ congestion-related loss and cannot distinguish between congestion-
+ related loss and loss due to transmission errors. Even when ECN is
+ in use, there is a rather intimate coupling between congestion
+ control and loss recovery mechanisms. There are several extensions
+ to both features, and more often than not, a particular extension
+ applies to both. In these two subsections, we group enhancements to
+ TCP's congestion control, while the next subsection focus on TCP's
+ loss recovery.
+
+ RFC 3168 S: "The Addition of Explicit Congestion Notification (ECN)
+ to IP" (September 2001)
+
+ This document [RFC3168] defines a means for end hosts to detect
+ congestion before congested routers are forced to discard packets.
+ Although congestion notification takes place at the IP level, ECN
+ requires support at the transport level (e.g., in TCP) to echo the
+ bits and adapt the sending rate. This document updates RFC 793
+ (see Section 2 of this document) to define two previously unused
+ flag bits in the TCP header for ECN support. RFC 3540 (see
+ Section 4.3 of this document) provides a supplementary
+ (experimental) means for more secure use of ECN, and RFC 2884 (see
+ Section 7.8 of this document) provides some sample results from
+ using ECN.
+
+ RFC 3390 S: "Increasing TCP's Initial Window" (October 2002)
+
+ This document [RFC3390] specifies an increase in the permitted
+ initial window for TCP from one segment to three or four segments
+ during the slow start phase, depending on the segment size.
+
+ RFC 3465 E: "TCP Congestion Control with Appropriate Byte Counting
+ (ABC)" (February 2003)
+
+ This document [RFC3465] suggests that congestion control use the
+ number of bytes acknowledged instead of the number of
+ acknowledgments received. This change improves the performance of
+ TCP in situations where there is no one-to-one relationship
+ between data segments and acknowledgments (e.g., delayed ACKs or
+ ACK loss) and closes a security hole TCP receivers can use to
+
+
+
+
+Duke, et al. Informational [Page 10]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ induce the sender into increasing the sending rate too rapidly
+ (ACK-division [SCWA99] [RFC3449]). ABC is recommended by RFC 5681
+ (see Section 2 of this document).
+
+ RFC 6633 S: "Deprecation of ICMP Source Quench Messages" (May 2012)
+
+ This document [RFC6633] formally deprecates the use of ICMP Source
+ Quench messages by transport protocols and recommends against the
+ implementation of [RFC1016].
+
+3.3. Loss Recovery Extensions
+
+ For the typical implementation of the TCP fast recovery algorithm
+ described in RFC 5681 (see Section 2 of this document), a TCP sender
+ only retransmits a segment after a retransmit timeout has occurred,
+ or after three duplicate ACKs have arrived triggering the fast
+ retransmit. A single RTO might result in the retransmission of
+ several segments, while the fast retransmit algorithm in RFC 5681
+ leads only to a single retransmission. Hence, multiple losses from a
+ single window of data can lead to a performance degradation.
+ Documents listed in this section aim to improve the overall
+ performance of TCP's standard loss recovery algorithms. In
+ particular, some of them allow TCP senders to recover more
+ effectively when multiple segments are lost from a single flight of
+ data.
+
+ RFC 2018 S: "TCP Selective Acknowledgment Options" (October 1996)
+ (Errata)
+
+ When more than one packet is lost during one RTT, TCP may
+ experience poor performance since a TCP sender can only learn
+ about a single lost packet per RTT from cumulative
+ acknowledgments. This document [RFC2018] defines the basic
+ selective acknowledgment (SACK) mechanism for TCP, which can help
+ to overcome these limitations. The receiving TCP returns SACK
+ blocks to inform the sender which data has been received. The
+ sender can then retransmit only the missing data segments.
+
+ RFC 3042 S: "Enhancing TCP's Loss Recovery Using Limited Transmit"
+ (January 2001)
+
+ Abstract of RFC 3042 [RFC3042]: "This document proposes a new
+ Transmission Control Protocol (TCP) mechanism that can be used to
+ more effectively recover lost segments when a connection's
+ congestion window is small, or when a large number of segments are
+ lost in a single transmission window." This algorithm described
+ in RFC 3042 is called "Limited Transmit". Tests from 2004 showed
+
+
+
+
+Duke, et al. Informational [Page 11]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ that Limited Transmit was deployed in roughly one third of the web
+ servers tested [MAF04]. Limited Transmit is recommended by RFC
+ 5681 (see Section 2 of this document).
+
+ RFC 6582 S: "The NewReno Modification to TCP's Fast Recovery
+ Algorithm" (April 2012)
+
+ This document [RFC6582] specifies a modification to the standard
+ Reno fast recovery algorithm, whereby a TCP sender can use partial
+ acknowledgments to make inferences determining the next segment to
+ send in situations where SACK would be helpful but isn't
+ available. Although it is only a slight modification, the NewReno
+ behavior can make a significant difference in performance when
+ multiple segments are lost from a single window of data.
+
+ RFCs 2582 and 3782 are the conceptual precursors of RFC 6582. The
+ main change in RFC 3782 relative to RFC 2582 was to specify the
+ Careful variant of NewReno's Fast Retransmit and Fast Recovery
+ algorithms and advance those two algorithms from Experimental to
+ Standards Track status. The main change in RFC 6582 relative to
+ RFC 3782 was to solve a performance degradation that could occur
+ if FlightSize on Full ACK reception is zero.
+
+ RFC 6675 S: "A Conservative Loss Recovery Algorithm Based on
+ Selective Acknowledgment (SACK) for TCP" (August 2012)
+
+ This document [RFC6675] describes a conservative loss recovery
+ algorithm for TCP that is based on the use of the selective
+ acknowledgment (SACK) TCP option [RFC2018] (see above in
+ Section 3.3). The algorithm conforms to the spirit of the
+ congestion control specification in RFC 5681 (see Section 2 of
+ this document), but allows TCP senders to recover more effectively
+ when multiple segments are lost from a single flight of data.
+
+ RFC 6675 is a revision of RFC 3517 to address several situations
+ that are not handled explicitly before. In particular,
+
+ (a) it improves the loss detection in the event that the sender
+ has outstanding segments that are smaller than Sender Maximum
+ Segment Size (SMSS).
+ (b) it modifies the definition of a "duplicate acknowledgment" to
+ utilize the SACK information in detecting loss.
+ (c) it maintains the ACK clock under certain circumstances
+ involving loss at the end of the window.
+
+
+
+
+
+
+
+Duke, et al. Informational [Page 12]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+3.4. Detection and Prevention of Spurious Retransmissions
+
+ Spurious retransmission timeouts are harmful to TCP performance and
+ multiple algorithms have been defined for detecting when spurious
+ retransmissions have occurred, but they respond differently with
+ regard to their manners of recovering performance. The IETF defined
+ multiple algorithms because there are trade-offs in whether or not
+ certain TCP options need to be implemented and concerns about IPR
+ status. The Standards Track RFCs in this section are closely related
+ to the Experimental RFCs in Section 4.5 also addressing this topic.
+
+ RFC 2883 S: "An Extension to the Selective Acknowledgement (SACK)
+ Option for TCP" (July 2000)
+
+ This document [RFC2883] extends RFC 2018 (see Section 3.3 of this
+ document). It enables use of the SACK option to acknowledge
+ duplicate packets. With this extension, called DSACK, the sender
+ is able to infer the order of packets received at the receiver
+ and, therefore, to infer when it has unnecessarily retransmitted a
+ packet. A TCP sender could then use this information to detect
+ spurious retransmissions (see [RFC3708]).
+
+ RFC 4015 S: "The Eifel Response Algorithm for TCP" (February 2005)
+
+ This document [RFC4015] describes the response portion of the
+ Eifel algorithm, which can be used in conjunction with one of
+ several methods of detecting when loss recovery has been
+ spuriously entered, such as the Eifel detection algorithm in RFC
+ 3522 (see Section 4.5), the algorithm in RFC 3708 (see Section 4.5
+ of this document), or F-RTO in RFC 5682 (see below in
+ Section 3.4).
+
+ Abstract of RFC 4015 [RFC4015]: "Based on an appropriate detection
+ algorithm, the Eifel response algorithm provides a way for a TCP
+ sender to respond to a detected spurious timeout. It adapts the
+ retransmission timer to avoid further spurious timeouts and
+ (depending on the detection algorithm) can avoid the often
+ unnecessary go-back-N retransmits that would otherwise be sent.
+ In addition, the Eifel response algorithm restores the congestion
+ control state in such a way that packet bursts are avoided."
+
+ RFC 5682 S: "Forward RTO-Recovery (F-RTO): An Algorithm for Detecting
+ Spurious Retransmission Timeouts with TCP" (September
+ 2009)
+
+ The F-RTO detection algorithm [RFC5682], originally described in
+ RFC 4138, provides an option for inferring spurious retransmission
+ timeouts. Unlike some similar detection methods (e.g., RFCs 3522
+
+
+
+Duke, et al. Informational [Page 13]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ and 3708, both listed in Section 4.5 of this document), F-RTO does
+ not rely on the use of any TCP options. The basic idea is to send
+ previously unsent data after the first retransmission after a RTO.
+ If the ACKs advance the window, the RTO may be declared spurious.
+
+3.5. Path MTU Discovery
+
+ The MTUs supported by different links and tunnels within the Internet
+ can vary widely. Fragmentation of packets larger than the supported
+ MTU on a hop is undesirable. As TCP is the segmentation layer for
+ dividing an application's byte stream into IP packet payloads, TCP
+ implementations generally include Path MTU Discovery (PMTUD)
+ mechanisms in order to maximize the size of segments they send,
+ without causing fragmentation within the network. Some algorithms
+ may utilize signaling from routers on the path to determine that the
+ MTU on some part of the path has been exceeded.
+
+ RFC 1191 S: "Path MTU Discovery" (November 1990)
+
+ Abstract of RFC 1191 [RFC1191]: "This memo describes a technique
+ for dynamically discovering the maximum transmission unit (MTU) of
+ an arbitrary internet path. It specifies a small change to the
+ way routers generate one type of ICMP message. For a path that
+ passes through a router that has not been so changed, this
+ technique might not discover the correct Path MTU, but it will
+ always choose a Path MTU as accurate as, and in many cases more
+ accurate than, the Path MTU that would be chosen by current
+ practice."
+
+ RFC 1981 S: "Path MTU Discovery for IP version 6" (August 1996)
+
+ Abstract of RFC 1981 [RFC1981]: "This document describes Path MTU
+ Discovery for IP version 6. It is largely derived from RFC 1191,
+ which describes Path MTU Discovery for IP version 4."
+
+ RFC 4821 S: "Packetization Layer Path MTU Discovery" (March 2007)
+
+ Abstract of RFC 4821 [RFC4821]: "This document describes a robust
+ method for Path MTU Discovery (PMTUD) that relies on TCP or some
+ other Packetization Layer to probe an Internet path with
+ progressively larger packets. This method is described as an
+ extension to RFC 1191 and RFC 1981, which specify ICMP-based Path
+ MTU Discovery for IP versions 4 and 6, respectively."
+
+
+
+
+
+
+
+
+Duke, et al. Informational [Page 14]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+3.6. Header Compression
+
+ Especially in streaming applications, the overhead of TCP/IP headers
+ could correspond to more than 50% of the total amount of data sent.
+ Such large overheads may be tolerable in wired LANs where capacity is
+ often not an issue, but are excessive for WANs and wireless systems
+ where bandwidth is scarce. Header compression schemes for TCP/IP
+ like RObust Header Compression (ROHC) can significantly compress this
+ overhead. It performs well over links with significant error rates
+ and long round-trip times.
+
+ RFC 1144 S: "Compressing TCP/IP Headers for Low-Speed Serial Links"
+ (February 1990)
+
+ This document [RFC1144] describes a method for compressing the
+ headers of TCP/IP datagrams to improve performance over low-speed
+ serial links. The method described in this document is limited in
+ its handling of TCP options and cannot compress the headers of
+ SYNs and FINs.
+
+ RFC 6846 S: "RObust Header Compression (ROHC): A Profile for TCP/IP
+ (ROHC-TCP)" (January 2013)
+
+ From the Abstract of RFC 6846 [RFC6846]: "This document specifies
+ a RObust Header Compression (ROHC) profile for compression of TCP/
+ IP packets. The profile, called ROHC-TCP, provides efficient and
+ robust compression of TCP headers, including frequently used TCP
+ options such as selective acknowledgments (SACKs) and Timestamps."
+ RFC 6846 is the successor of RFC 4996. It fixes a technical issue
+ with the SACK compression and clarifies other compression methods
+ used.
+
+3.7. Defending Spoofing and Flooding Attacks
+
+ By default, TCP lacks any cryptographic structures to differentiate
+ legitimate segments from those spoofed from malicious hosts.
+ Spoofing valid segments requires correctly guessing a number of
+ fields. The documents in this subsection describe ways to make that
+ guessing harder or to prevent it from being able to affect a
+ connection negatively.
+
+
+
+
+
+
+
+
+
+
+
+Duke, et al. Informational [Page 15]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ RFC 4953 I: "Defending TCP Against Spoofing Attacks" (July 2007)
+
+ This document [RFC4953] discusses the recently increased
+ vulnerability of long-lived TCP connections, such as BGP
+ connections, to reset (send RST) spoofing attacks. The document
+ analyzes the vulnerability, discussing proposed solutions at the
+ transport level and their inherent challenges, as well as existing
+ network level solutions and the feasibility of their deployment.
+
+ RFC 5461 I: "TCP's Reaction to Soft Errors" (February 2009)
+
+ This document [RFC5461] describes a nonstandard but widely
+ implemented modification to TCP's handling of ICMP soft error
+ messages that rejects pending connection-requests when such error
+ messages are received. This behavior reduces the likelihood of
+ long delays between connection-establishment attempts that may
+ arise in some scenarios.
+
+ RFC 4987 I: "TCP SYN Flooding Attacks and Common Mitigations" (August
+ 2007)
+
+ This document [RFC4987] describes the well-known TCP SYN flooding
+ attack. It analyzes and discusses various countermeasures against
+ these attacks, including their use and trade-offs.
+
+ RFC 5925 S: "The TCP Authentication Option" (June 2010)
+
+ This document [RFC5925] describes the TCP Authentication Option
+ (TCP-AO), which is used to authenticate TCP segments. TCP-AO
+ obsoletes the TCP MD5 Signature option of RFC 2385. It supports
+ the use of stronger hash functions, protects against replays for
+ long-lived TCP connections (as used, e.g., in BGP and LDP),
+ coordinates key exchanges between endpoints, and provides a more
+ explicit recommendation for external key management.
+ Cryptographic algorithms for TCP-AO are defined in [RFC5926] (see
+ below in Section 3.7).
+
+ RFC 5926 S: "Cryptographic Algorithms for the TCP Authentication
+ Option (TCP-AO)" (June 2010)
+
+ This document [RFC5926] specifies the algorithms and attributes
+ that can be used in TCP Authentication Option's (TCP-AO) [RFC5925]
+ (see above in Section 3.7) current manual keying mechanism and
+ provides the interface for future message authentication codes
+ (MACs).
+
+
+
+
+
+
+Duke, et al. Informational [Page 16]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ RFC 5927 I: "ICMP Attacks against TCP" (July 2010)
+
+ Abstract of RFC 5927 [RFC5927]: "This document discusses the use
+ of the Internet Control Message Protocol (ICMP) to perform a
+ variety of attacks against the Transmission Control Protocol
+ (TCP). Additionally, this document describes a number of widely
+ implemented modifications to TCP's handling of ICMP error messages
+ that help to mitigate these issues."
+
+ RFC 5961 S: "Improving TCP's Robustness to Blind In-Window Attacks"
+ (August 2010)
+
+ This document [RFC5961] describes minor modifications to how TCP
+ handles inbound segments. This renders TCP connections,
+ especially long-lived connections such as H-323 or BGP, less
+ vulnerable to spoofed packet injection attacks where the 4-tuple
+ (the source and destination IP addresses and the source and
+ destination ports) has been guessed.
+
+ RFC 6528 S: "Defending against Sequence Number Attacks" (February
+ 2012)
+
+ Abstract of RFC 6528 [RFC6528]: "This document specifies an
+ algorithm for the generation of TCP Initial Sequence Numbers
+ (ISNs), such that the chances of an off-path attacker guessing the
+ sequence numbers in use by a target connection are reduced. This
+ document revises (and formally obsoletes) RFC 1948, and takes the
+ ISN generation algorithm originally proposed in that document to
+ Standards Track, formally updating RFC 793"
+
+4. Experimental Extensions
+
+ The RFCs in this section are either Experimental and may become
+ Proposed Standards in the future or are Proposed Standards (or
+ Informational), but can be considered experimental due to lack of
+ wide deployment. At least part of the reason that they are still
+ experimental is to gain more wide-scale experience with them before a
+ standards track decision is made.
+
+ If the Experimental RFC is a proposal for a new protocol capability
+ or service, i.e., it requires a new TCP option code point, the
+ implementation and experimentation should follow [RFC6994] (see
+ Section 5 of this document), which describes how the experimental TCP
+ option code points can concurrently support multiple TCP extensions.
+
+ By their publication as Experimental RFCs, it is hoped that the
+ community of TCP researchers will analyze and test the contents of
+ these RFCs. Although experimentation is encouraged, there is not yet
+
+
+
+Duke, et al. Informational [Page 17]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ formal consensus that these are fully logical and safe behaviors.
+ Wide-scale deployment of implementations that use these features
+ should be well thought out in terms of consequences.
+
+4.1. Architectural Guidelines
+
+ As multiple flows may share the same paths, sections of paths, or
+ other resources, the TCP implementation may benefit from sharing
+ information across TCP connections or other flows. Some experimental
+ proposals have been documented and some implementations have included
+ the concepts.
+
+ RFC 2140 I: "TCP Control Block Interdependence" (April 1997)
+
+ This document [RFC2140] suggests how TCP connections between the
+ same endpoints might share information, such as their congestion
+ control state. To some degree, this is done in practice by a few
+ operating systems; for example, Linux currently has a destination
+ cache. Although this RFC is technically Informational, the
+ concepts it describes are in experimental use, so we include it in
+ this section.
+
+ RFC 3124 S: "The Congestion Manager" (June 2001)
+
+ This document [RFC3124] is a related proposal to RFC 2140 (see
+ above in Section 4.1). The idea behind the Congestion Manager,
+ moving congestion control outside of individual TCP connections,
+ represents a modification to the core of TCP, which supports
+ sharing information among TCP connections. Although a Proposed
+ Standard, some pieces of the Congestion Manager support
+ architecture have not been specified yet, and it has not achieved
+ use or implementation beyond experimental stacks, so it is not
+ listed among the standard TCP enhancements in this roadmap.
+
+4.2. Fundamental Changes
+
+ Like the Standards Track documents listed in Section 3.1, there also
+ exist new Experimental RFCs that specify fundamental changes to TCP.
+ At the time of writing, the only example so far is TCP Fast Open that
+ deviates from the standard TCP semantics of [RFC793].
+
+ RFC 7413 E: "TCP Fast Open" (December 2014)
+
+ This document [RFC7413] describes TCP Fast Open that allows data
+ to be carried in the SYN and SYN-ACK packets and consumed by the
+ receiver during the initial connection handshake. It saves up to
+ one RTT compared to the standard TCP, which requires a three-way
+ handshake to complete before data can be exchanged.
+
+
+
+Duke, et al. Informational [Page 18]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+4.3. Congestion Control Extensions
+
+ TCP congestion control has been an extremely active research area for
+ many years (see RFC 5783 discussed in Section 7.6 of this document),
+ as it determines the performance of many applications that use TCP.
+ A number of Experimental RFCs address issues with flow start up,
+ overshoot, and steady-state behavior in the basic algorithms of RFC
+ 5681 (see Section 2 of this document). In these subsections,
+ enhancements to TCP's congestion control are listed. The next
+ subsection focuses on TCP's loss recovery.
+
+ RFC 2861 E: "TCP Congestion Window Validation" (June 2000)
+
+ This document [RFC2861] suggests reducing the congestion window
+ over time when no packets are flowing. This behavior is more
+ aggressive than that specified in RFC 5681 (see Section 2 of this
+ document), which says that a TCP sender SHOULD set its congestion
+ window to the initial window after an idle period of an RTO or
+ greater.
+
+ RFC 3540 E: "Robust Explicit Congestion Notification (ECN) Signaling
+ with Nonces" (June 2003)
+
+ This document [RFC3540] describes an optional addition to ECN that
+ protects against accidental or malicious concealment of marked
+ packets from the TCP sender.
+
+ RFC 3649 E: "HighSpeed TCP for Large Congestion Windows" (December
+ 2003)
+
+ This document [RFC3649] proposes a modification to TCP's
+ congestion control mechanism for use with TCP connections with
+ large congestion windows, to allow TCP to achieve a higher
+ throughput in high-bandwidth environments.
+
+ RFC 3742 E: "Limited Slow-Start for TCP with Large Congestion
+ Windows" (March 2004)
+
+ This document [RFC3742] describes a more conservative slow-start
+ behavior to prevent massive packet losses when a connection uses a
+ very large congestion window.
+
+
+
+
+
+
+
+
+
+
+Duke, et al. Informational [Page 19]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ RFC 4782 E: "Quick-Start for TCP and IP" (January 2007) (Errata)
+
+ This document [RFC4782] specifies the optional Quick-Start
+ mechanism for TCP. This mechanism allows connections to use
+ higher sending rates at the beginning of the data transfer or
+ after an idle period, provided that there is significant unused
+ bandwidth along the path, and the sender and all of the routers
+ along the path approve this higher rate.
+
+ RFC 5562 E: "Adding Explicit Congestion Notification (ECN) Capability
+ to TCP's SYN/ACK Packets" (June 2009)
+
+ This document [RFC5562] describes an experimental modification to
+ ECN [RFC3168] (see Section 3.2 of this document) for the use of
+ ECN in TCP SYN/ACK packets. This would allow to ECN-mark rather
+ than drop the TCP SYN/ACK packet at an ECN-capable router, and to
+ avoid the severe penalty of a retransmission timeout for a
+ connection when the SYN/ACK packet is dropped.
+
+ RFC 5690 I: "Adding Acknowledgement Congestion Control to TCP"
+ (February 2010)
+
+ This document [RFC5690] describes a congestion control mechanism
+ for acknowledgment (ACKs) traffic in TCP. The mechanism is based
+ on the acknowledgment congestion control of the Datagram
+ Congestion Control Protocol's (DCCP's) [RFC4340] Congestion
+ Control Identifier (CCID) 2 [RFC4341].
+
+ RFC 6928 E: "Increasing TCP's Initial Window" (April 2013)
+
+ This document [RFC6928] proposes to increase the TCP initial
+ window from between 2 and 4 segments, as specified in RFC 3390
+ (see Section 3.2 of this document), to 10 segments with a fallback
+ to the existing recommendation when performance issues are
+ detected.
+
+4.4. Loss Recovery Extensions
+
+ RFC 5827 E: "Early Retransmit for TCP and Stream Control Transmission
+ Protocol (SCTP)" (April 2010)
+
+ This document [RFC5827] proposes the "Early Retransmit" mechanism
+ for TCP (and SCTP) that can be used to recover lost segments when
+ a connection's congestion window is small. In certain special
+ circumstances, Early Retransmit reduces the number of duplicate
+ acknowledgments required to trigger fast retransmit to recover
+ segment losses without waiting for a lengthy retransmission
+ timeout.
+
+
+
+Duke, et al. Informational [Page 20]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ RFC 6069 E: "Making TCP More Robust to Long Connectivity Disruptions
+ (TCP-LCD)" (December 2010)
+
+ This document [RFC6069] describes how standard ICMP messages can
+ be used to disambiguate true congestion loss from non-congestion
+ loss caused by connectivity disruptions. It proposes a reversion
+ strategy of TCP's retransmission timer that enables a more prompt
+ detection of whether or not the connectivity has been restored.
+
+ RFC 6937 E: "Proportional Rate Reduction for TCP" (May 2013)
+
+ This document [RFC6937] describes an experimental Proportional
+ Rate Reduction (PRR) algorithm as an alternative to the widely
+ deployed Fast Recovery algorithm, to improve the accuracy of the
+ amount of data sent by TCP during loss recovery.
+
+4.5. Detection and Prevention of Spurious Retransmissions
+
+ In addition to the Standards Track extensions to deal with spurious
+ retransmissions in Section 3.4, Experimental proposals have also been
+ documented.
+
+ RFC 3522 E: "The Eifel Detection Algorithm for TCP" (April 2003)
+
+ The Eifel detection algorithm [RFC3522] allows a TCP sender to
+ detect a posteriori whether it has entered loss recovery
+ unnecessarily by using the TCP timestamp option to solve the ACK
+ ambiguity.
+
+ RFC 3708 E: "Using TCP Duplicate Selective Acknowledgement (DSACKs)
+ and Stream Control Transmission Protocol (SCTP) Duplicate
+ Transmission Sequence Numbers (TSNs) to Detect Spurious
+ Retransmissions" (February 2004)
+
+ Abstract: "TCP and Stream Control Transmission Protocol (SCTP)
+ provide notification of duplicate segment receipt through
+ Duplicate Selective Acknowledgement (DSACKs) and Duplicate
+ Transmission Sequence Number (TSN) notification, respectively.
+ This document presents conservative methods of using this
+ information to identify unnecessary retransmissions for various
+ applications."
+
+ RFC 4653 E: "Improving the Robustness of TCP to Non-Congestion
+ Events" (August 2006)
+
+ In the presence of non-congestion events, such as packet
+ reordering, an out-of-order segment does not necessarily indicate
+ a lost segment and congestion. This document [RFC4653] proposes
+
+
+
+Duke, et al. Informational [Page 21]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ to increase the threshold used to trigger a fast retransmission
+ from the fixed value of three duplicate ACKs to about one
+ congestion window of data in order to disambiguate true segment
+ loss from segment reordering.
+
+4.6. TCP Timeouts
+
+ Besides the well-known retransmission timeout the TCP standard
+ [RFC793] defines other timeouts. This section lists documents that
+ deal with TCP's various timeouts.
+
+ RFC 5482 S: "TCP User Timeout Option" (March 2009)
+
+ As a local per-connection parameter, the TCP user timeout controls
+ how long transmitted data may remain unacknowledged before a
+ connection is forcefully closed. This document [RFC5482]
+ specifies the TCP User Timeout Option that allows one end of a TCP
+ connection to advertise its current user timeout value. This
+ information provides advice to the other end of the TCP connection
+ to adapt its user timeout accordingly.
+
+4.7. Multipath TCP
+
+ MultiPath TCP (MPTCP) is an ongoing effort within the IETF that
+ allows a TCP connection to simultaneously use multiple IP addresses /
+ interfaces to spread their data across several subflows, while
+ presenting a regular TCP interface to applications. Benefits of this
+ include better resource utilization, better throughput and smoother
+ reaction to failures. The documents listed in this section specify
+ the Multipath TCP scheme, while the documents in Sections 7.2, 7.4,
+ and 7.5 provide some additional background information.
+
+ RFC 6356 E: "Coupled Congestion Control for Multipath Transport
+ Protocols" (October 2011)
+
+ This document [RFC6356] presents a congestion control algorithm
+ for multipath transport protocols such as Multipath TCP. It
+ couples the congestion control algorithms running on different
+ subflows by linking their increase functions, and dynamically
+ controls the overall aggressiveness of the multipath flow. The
+ result is an algorithm that is fair to TCP at bottlenecks while
+ moving traffic away from congested links.
+
+
+
+
+
+
+
+
+
+Duke, et al. Informational [Page 22]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ RFC 6824 E: "TCP Extensions for Multipath Operation with Multiple
+ Addresses" (January 2013) (Errata)
+
+ This document [RFC6824] presents protocol changes required to add
+ multipath capability to TCP; specifically, those for signaling and
+ setting up multiple paths ("subflows"), managing these subflows,
+ reassembly of data, and termination of sessions.
+
+5. TCP Parameters at IANA
+
+ RFCs listed here describes both the procedures that the Internet
+ Assigned Numbers Authority (IANA) uses when handling assignments and
+ the procedures an RFC author should follow when requesting new TCP
+ option code points.
+
+ RFC 2780 B: "IANA Allocation Guidelines For Values In the Internet
+ Protocol and Related Headers" (March 2000)
+
+ Abstract of RFC 2780 [RFC2780]: "This memo provides guidance for
+ the IANA to use in assigning parameters for fields in the IPv4,
+ IPv6, ICMP, UDP and TCP protocol headers."
+
+ RFC 4727 S: "Experimental Values in IPv4, IPv6, ICMPv4, ICMPv6, UDP,
+ and TCP Headers" (November 2006)
+
+ This document [RFC4727] reserves both TCP options 253 and 254 for
+ experimentation purposes. When such experiments are deployed in
+ the Internet, they should follow the additional requirements in
+ RFC 6994 (see below in Section 5).
+
+ RFC 6335 B: "Internet Assigned Numbers Authority (IANA) Procedures
+ for the Management of the Service Name and Transport
+ Protocol Port Number Registry" (August 2011)
+
+ From the Abstract of RFC 6335 [RFC6335]: "This document defines
+ the procedures that the Internet Assigned Numbers Authority (IANA)
+ uses when handling assignment and other requests related to the
+ Service Name and Transport Protocol Port Number registry."
+
+ RFC 6994 S: "Shared Use of Experimental TCP Options (August 2013)
+
+ This document [RFC6994] describes how the experimental TCP option
+ code points can concurrently support multiple TCP extensions, even
+ within the same connection. It creates an IANA registry for
+ extensions to the experimental code points.
+
+
+
+
+
+
+Duke, et al. Informational [Page 23]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+6. Historic and Undeployed Extensions
+
+ The RFCs listed here define extensions that have thus far failed to
+ arouse substantial interest from implementers and have never seen
+ widespread deployment or were found to be defective for general use.
+ Most of them were reclassified by [RFC6247] to Historic status.
+
+ RFC 721 U: "Out-of-Band Control Signals in a Host-to-Host Protocol"
+ (September 1976): lack of interest
+
+ RFC 721 [RFC721] addresses the problem of implementing a reliable
+ out-of-band signal (interrupts) for use in a host-to-host
+ protocol. The proposal was not included in the final TCP
+ specification.
+
+ RFC 1078 U: "TCP Port Service Multiplexer (TCPMUX)" (November 1988):
+ lack of interest
+
+ This document [RFC1078] proposes a protocol to contact multiple
+ services on a single well-known TCP port using a service name
+ instead of a well-known number.
+
+ RFC 1106 H: "TCP Big Window and Nak Options" (June 1989): found
+ defective
+
+ This RFC [RFC1106] defined an alternative to the Window Scale
+ option for using large windows and described the "negative
+ acknowledgment" or NAK option. There is a comparison of NAK and
+ SACK methods and early discussion of TCP over satellite issues.
+ RFC 1110 (see below in Section 6) explains some problems with the
+ approaches described in RFC 1106. The options described in this
+ document have not been adopted by the larger community, although
+ NAKs are used in the SCPS-TP adaptation of TCP for satellite and
+ spacecraft use, developed by the Consultative Committee for Space
+ Data Systems (CCSDS).
+
+ RFC 1110 H: "A Problem with the TCP Big Window Option" (August 1989):
+ deprecates RFC 1106
+
+ Abstract of RFC 1110 [RFC1110]: "The TCP Big Window option
+ discussed in RFC 1106 will not work properly in an Internet
+ environment which has both a high bandwidth * delay product and
+ the possibility of disordering and duplicating packets. In such
+ networks, the window size must not be increased without a similar
+ increase in the sequence number space. Therefore, a different
+ approach to big windows should be taken in the Internet."
+
+
+
+
+
+Duke, et al. Informational [Page 24]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ RFC 1146 H: "TCP Alternate Checksum Options" (March 1990): lack of
+ interest
+
+ This document [RFC1146] defined more robust TCP checksums than the
+ 16-bit ones-complement in use today. A typographical error in RFC
+ 1145 is fixed in RFC 1146; otherwise, the documents are the same.
+
+ RFC 1263 I: "TCP Extensions Considered Harmful" (October 1991): lack
+ of interest
+
+ This document [RFC1263] argues against "backwards compatible" TCP
+ extensions. Specifically mentioned are several TCP enhancements
+ that have been successful, including timestamps, window scaling,
+ PAWS, and SACK. RFC 1263 presents an alternative approach called
+ "protocol evolution", whereby several evolutionary versions of TCP
+ would exist on hosts. These distinct TCP versions would represent
+ upgrades to each other and could be header incompatible.
+ Interoperability would be provided by having a virtualization
+ layer select the right TCP version for a particular connection.
+ This idea did not catch on with the community, while the type of
+ extensions RFC 1263 specifically targeted as harmful did become
+ popular.
+
+ RFC 1379 H: "Extending TCP for Transactions -- Concepts" (November
+ 1992): found defective
+
+ See RFC 1644, in Section 6 below.
+
+ RFC 1644 H: "T/TCP -- TCP Extensions for Transactions Functional
+ Specification" (July 1994): found defective
+
+ The inventors of TCP believed that cached connection state could
+ have been used to eliminate TCP's three-way handshake, to support
+ two-packet request/response exchanges. RFC 1379 [RFC1379] (see
+ above in Section 6) and RFC 1644 [RFC1644] show that this is far
+ from simple. Furthermore, T/TCP floundered on the ease of denial-
+ of-service attacks that can result. One idea pioneered by T/TCP
+ lives on in RFC 2140 (see Section 4.1 of this document), in the
+ sharing of state across connections.
+
+
+
+
+
+
+
+
+
+
+
+
+Duke, et al. Informational [Page 25]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ RFC 1693 H: "An Extension to TCP: Partial Order Service" (November
+ 1994): lack of interest
+
+ This document [RFC1693] defines a TCP extension for applications
+ that do not care about the order in which application-layer
+ objects are received. Examples are multimedia and database
+ applications. In practice, these applications either accept the
+ possible performance loss because of TCP's strict ordering or use
+ specialized transport protocols other than TCP, such as PR-SCTP
+ [RFC3758].
+
+ RFC 1705 I: "Six Virtual Inches to the Left: The Problem with IPng"
+ (October 1994): lack of interest
+
+ To overcome the exhaustion of the IP class B address space, this
+ document [RFC1705] suggests that a new version of TCP (TCPng)
+ needs to be developed and deployed. It proposes that a globally
+ unique address be assigned to the transport layer to uniquely
+ identify an Internet host without specifying any routing
+ information. Later work on splitting locator and identifier
+ values is summarized well in [RFC6115], but no resulting changes
+ to TCP have occurred.
+
+ RFC 6013 E: "TCP Cookie Transactions (TCPCT)" (January 2011): lack of
+ interest
+
+ This document [RFC6013] describes a method to exchange a cookie
+ (nonce) during the connection establishment to negotiate
+ elimination of receiver state. These cookies are later used to
+ inhibit premature closing of connections and reduce retention of
+ state after the connection has terminated.
+
+ Since the cookie pair is too large to fit with the other TCP
+ options in the 40 bytes of TCP option space, the document further
+ describes a method to extent the option space after the connection
+ establishment.
+
+ Although RFC 6013 was published in 2011, the authors of this
+ document places it in this section of the roadmap document due to
+ two factors.
+
+ (a) The authors are not aware of any wide deployment and use of
+ RFC 6013.
+ (b) RFC 6013 uses experimental TCP option code points, which
+ prohibits a large-scale deployment.
+
+
+
+
+
+
+Duke, et al. Informational [Page 26]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+7. Support Documents
+
+ This section contains several classes of documents that do not
+ necessarily define current protocol behaviors but that are
+ nevertheless of interest to TCP implementers. Section 7.1 describes
+ several foundational RFCs that give modern readers a better
+ understanding of the principles underlying TCP's behaviors and
+ development over the years. Section 7.2 contains architectural
+ guidelines and principles for TCP architects and designers. The
+ documents listed in Section 7.3 provide advice on using TCP in
+ various types of network situations that pose challenges above those
+ of typical wired links. Guidance for developing, analyzing, and
+ evaluating TCP is given in Section 7.4. Some implementation notes
+ and implementation advice can be found in Section 7.5. RFCs that
+ describe tools for testing and debugging TCP implementations or that
+ contain high-level tutorials on the protocol are listed Section 7.6.
+ The TCP Management Information Bases are described in Section 7.7,
+ and Section 7.8 lists a number of case studies that have explored TCP
+ performance.
+
+7.1. Foundational Works
+
+ The documents listed in this section contain information that is
+ largely duplicated by the standards documents previously discussed.
+ However, some of them contain a greater depth of problem statement
+ explanation or other context. Particularly, RFCs 813 - 817 (known as
+ the "Dave Clark Five") describe some early problems and solutions
+ (RFC 815 only describes the reassembly of IP fragments and is not
+ included in this TCP roadmap).
+
+ RFC 675 U: "Specification of Internet Transmission Control Program"
+ (December 1974)
+
+ This document [RFC675] is a very early precursor of the
+ fundamental RFC 793 (see Section 2 of this document), which
+ already contained the three-way handshake in its final form and
+ the concept of sliding windows for reliable data transmission.
+ Apart from that, the segment layout is totally different and the
+ specified API differs from the latter RFC 793 (see Section 2 of
+ this document).
+
+
+
+
+
+
+
+
+
+
+
+Duke, et al. Informational [Page 27]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ RFC 761 U: "DoD Standard Transmission Control Protocol" (January
+ 1980)
+
+ This document [RFC761] is the immediate precursor of RFC 793 (see
+ Section 2 of this document). The header format, the connection
+ establishment (including the different connection states), and the
+ overall API correspond mostly to the final Standard RFC 793 (see
+ Section 2 of this document).
+
+ RFC 813 U: "Window and Acknowledgement Strategy in TCP" (July 1982)
+
+ This document [RFC813] contains an early discussion of Silly
+ Window Syndrome and its avoidance and motivates and describes the
+ use of delayed acknowledgments.
+
+ RFC 814 U: "Name, Addresses, Ports, and Routes" (July 1982)
+
+ Suggestions and guidance for the design of tables and algorithms
+ to keep track of various identifiers within a TCP/IP
+ implementation are provided by this document [RFC814].
+
+ RFC 816 U: "Fault Isolation and Recovery" (July 1982)
+
+ In this document [RFC816], TCP's response to indications of
+ network error conditions such as timeouts or received ICMP
+ messages is discussed.
+
+ RFC 817 U: "Modularity and Efficiency in Protocol Implementation"
+ (July 1982)
+
+ This document [RFC817] contains implementation suggestions that
+ are general and not TCP specific. However, they have been used to
+ develop TCP implementations and describe some performance
+ implications of the interactions between various layers in the
+ Internet stack.
+
+ RFC 872 U: "TCP-on-a-LAN" (September 1982)
+
+ Conclusion of RFC 872 [RFC872]: "The sometimes-expressed fear that
+ using TCP on a local net is a bad idea is unfounded."
+
+
+
+
+
+
+
+
+
+
+
+Duke, et al. Informational [Page 28]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ RFC 896 U: "Congestion Control in IP/TCP Internetworks" (January
+ 1984)
+
+ This document [RFC896] contains some early experiences with
+ congestion collapse and some initial thoughts on how to avoid it
+ using congestion control in TCP. Furthermore, it defined an
+ algorithm for efficient transmission of small packets that is
+ today known as the Nagle algorithm.
+
+ RFC 964 U: "Some Problems with the Specification of the Military
+ Standard Transmission Control Protocol" (November 1985)
+
+ This document [RFC964] points out several specification bugs in
+ the US Military's MIL-STD-1778 document, which was intended as a
+ successor to RFC 793 (see Section 2 of this document). This
+ serves to remind us of the difficulty in specification writing
+ (even when we work from existing documents!).
+
+7.2. Architectural Guidelines
+
+ Some documents in this section contain architectural guidance and
+ concerns, while others specify TCP- and congestion-control-related
+ mechanisms that are broadly applicable and have impacts on TCP's
+ congestion control techniques. Some of these documents are direct
+ products of the Internet Architecture Board (IAB) giving their
+ guidance on specific aspects of congestion control in the Internet.
+
+ RFC 1958 I: "Architectural Principles of the Internet" (June 1996)
+
+ This document [RFC1958] describes the underlying principles of the
+ Internet architecture. It provides guidelines for network systems
+ designs that have proven useful in the evolution of the Internet.
+
+ RFC 2914 B: "Congestion Control Principles" (September 2000)
+
+ This document [RFC2914] motivates the use of end-to-end congestion
+ control for preventing congestion collapse and providing fairness
+ to TCP. Later work on TCP has included several more aggressive
+ mechanisms than Reno TCP includes, and RFC 5033 (see Section 7.4
+ of this document) provides additional guidance on use of such
+ algorithms. The fundamental architectural discussion in RFC 2914
+ remains valid, regarding the standards process role in defining
+ protocol aspects that are critical to performance and avoiding
+ congestion collapse scenarios.
+
+
+
+
+
+
+
+Duke, et al. Informational [Page 29]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ 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"
+ (December 2002)
+
+ This document [RFC3439] updates RFC 1958 (see above in
+ Section 7.2) by outlining some philosophical guidelines for
+ architects and designers of Internet backbone networks. The
+ document describes the Simplicity Principle, which states that
+ complexity is the primary impediment to efficient scaling.
+
+ RFC 4774 B: "Specifying Alternate Semantics for the Explicit
+ Congestion Notification (ECN) Field" (November 2006)
+
+ This document [RFC4774] discusses some of the issues in defining
+ alternate semantics for the ECN field and specifies requirements
+ for a safe coexistence with routers that do not understand the
+ defined alternate semantics.
+
+ RFC 6182 I: "Architectural Guidelines for Multipath TCP Development"
+ (March 2011)
+
+ Abstract of RFC 6182 [RFC6182]: "This document outlines
+ architectural guidelines for the development of a Multipath
+ Transport Protocol, with references to how these architectural
+ components come together in the development of a Multipath TCP
+ (MPTCP) (see Section 4.7 of this document). This document lists
+ certain high-level design decisions that provide foundations for
+ the design of the MPTCP protocol, based upon these architectural
+ requirements"
+
+7.3. Difficult Network Environments
+
+ As the internetworking field has explored wireless, satellite,
+ cellular telephone, and other kinds of link-layer technologies, a
+ large body of work has built up on enhancing TCP performance for such
+ links. The RFCs listed in this section describe some of these more
+ challenging network environments and how TCP interacts with them.
+
+
+
+
+
+
+Duke, et al. Informational [Page 30]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ RFC 2488 B: "Enhancing TCP Over Satellite Channels using Standard
+ Mechanisms" (January 1999)
+
+ From the Abstract of RFC 2488 [RFC2488]: "While TCP works over
+ satellite channels there are several IETF standardized mechanisms
+ that enable TCP to more effectively utilize the available capacity
+ of the network path. This document outlines some of these TCP
+ mitigations. At this time, all mitigations discussed in this
+ document are IETF standards track mechanisms (or are compliant
+ with IETF standards)."
+
+ RFC 2757 I: "Long Thin Networks" (January 2000)
+
+ Several methods of improving TCP performance over long thin
+ networks (i.e., networks with low bandwidth and high delay), such
+ as geosynchronous satellite links, are discussed in this document
+ [RFC2757]. A particular set of TCP options is developed that
+ should work well in such environments and be safe to use in the
+ global Internet. The implications of such environments have been
+ further discussed in RFCs 3150 and 3155 (see below in
+ Section 7.3), and these documents should be preferred where there
+ is overlap between them and RFC 2757 (see Section 7.3 of this
+ document).
+
+ RFC 2760 I: "Ongoing TCP Research Related to Satellites" (February
+ 2000)
+
+ This document [RFC2760] discusses the advantages and disadvantages
+ of several different experimental means of improving TCP
+ performance over long-delay or error-prone paths. These include
+ T/TCP, larger initial windows, byte counting, delayed
+ acknowledgments, slow start thresholds, NewReno and SACK-based
+ loss recovery, FACK [MM96], ECN, various corruption-detection
+ mechanisms, congestion avoidance changes for fairness, use of
+ multiple parallel flows, pacing, header compression, state
+ sharing, and ACK congestion control, filtering, and
+ reconstruction. Although RFC 2488 (see above in Section 7.3)
+ looks at standard extensions, this document focuses on more
+ experimental means of performance enhancement.
+
+ RFC 3135 I: "Performance Enhancing Proxies Intended to Mitigate Link-
+ Related Degradations" (June 2001)
+
+ From the Abstract of RFC 3135 [RFC3135]: "This document is a
+ survey of Performance Enhancing Proxies (PEPs) often employed to
+ improve degraded TCP performance caused by characteristics of
+ specific link environments, for example, in satellite, wireless
+
+
+
+
+Duke, et al. Informational [Page 31]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ WAN, and wireless LAN environments. Different types of
+ Performance Enhancing Proxies are described as well as the
+ mechanisms used to improve performance."
+
+ RFC 3150 B: "End-to-end Performance Implications of Slow Links" (July
+ 2001)
+
+ From the Abstract of RFC 3150 [RFC3150]: "This document makes
+ performance-related recommendations for users of network paths
+ that traverse "very low bit-rate" links....This recommendation may
+ be useful in any network where hosts can saturate available
+ bandwidth, but the design space for this recommendation explicitly
+ includes connections that traverse 56 Kb/second modem links or 4.8
+ Kb/second wireless access links - both of which are widely
+ deployed."
+
+ RFC 3155 B: "End-to-end Performance Implications of Links with
+ Errors" (August 2001)
+
+ From the Abstract of RFC 3155 [RFC3155]: "This document discusses
+ the specific TCP mechanisms that are problematic in environments
+ with high uncorrected error rates, and discusses what can be done
+ to mitigate the problems without introducing intermediate devices
+ into the connection."
+
+ RFC 3366 B: "Advice to link designers on link Automatic Repeat
+ reQuest (ARQ)" (August 2002)
+
+ From the Abstract of RFC 3366 [RFC3366]: "This document provides
+ advice to the designers of digital communication equipment and
+ link-layer protocols employing link-layer Automatic Repeat reQuest
+ (ARQ) techniques. This document presumes that the designers wish
+ to support Internet protocols, but may be unfamiliar with the
+ architecture of the Internet and with the implications of their
+ design choices for the performance and efficiency of Internet
+ traffic carried over their links."
+
+ RFC 3449 B: "TCP Performance Implications of Network Path Asymmetry"
+ (December 2002)
+
+ From the Abstract of RFC 3449 [RFC3449]: "This document describes
+ TCP performance problems that arise because of asymmetric effects.
+ These problems arise in several access networks, including
+ bandwidth-asymmetric networks and packet radio subnetworks, for
+ different underlying reasons. However, the end result on TCP
+ performance is the same in both cases: performance often degrades
+ significantly because of imperfection and variability in the ACK
+ feedback from the receiver to the sender.
+
+
+
+Duke, et al. Informational [Page 32]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ The document details several mitigations to these effects, which
+ have either been proposed or evaluated in the literature, or are
+ currently deployed in networks.
+
+ RFC 3481 B: "TCP over Second (2.5G) and Third (3G) Generation
+ Wireless Networks" (February 2003)
+
+ From the Abstract of RFC 3481 [RFC3481]: "This document describes
+ a profile for optimizing TCP to adapt so that it handles paths
+ including second (2.5G) and third (3G) generation wireless
+ networks."
+
+ RFC 3819 B: "Advice for Internet Subnetwork Designers" (July 2004)
+
+ This document [RFC3819] describes how TCP performance can be
+ negatively affected by some particular lower-layer behaviors and
+ provides guidance in designing lower-layer networks and protocols
+ to be amicable to TCP. RFC 3366 (see above in Section 7.3)
+ specifically focuses on ARQ mechanisms, while RFC 3819 more widely
+ covers additional aspects of the underlying layers
+
+7.4. Guidance for Developing, Analyzing, and Evaluating TCP
+
+ Documents in this section give general guidance for developing,
+ analyzing, and evaluating TCP. Some of the documents discuss, for
+ example, the properties of congestion control protocols that are
+ "safe" for Internet deployment as well as how to measure the
+ properties of congestion control mechanisms and transport protocols.
+
+ RFC 5033 B: "Specifying New Congestion Control Algorithms" (August
+ 2007)
+
+ This document [RFC5033] considers the evaluation of suggested
+ congestion control algorithms that differ from the principles
+ outlined in RFC 2914 (see Section 7.2 of this document). It is
+ useful for authors of such algorithms as well as for IETF members
+ reviewing the associated documents.
+
+ RFC 5166 I: "Metrics for the Evaluation of Congestion Control
+ Mechanisms" (March 2008)
+
+ This document [RFC5166] discusses metrics that need to be
+ considered when evaluating new or modified congestion control
+ mechanisms for the Internet. Among other topics, the document
+ discusses throughput, delay, loss rates, response times, fairness,
+ and robustness for challenging environments.
+
+
+
+
+
+Duke, et al. Informational [Page 33]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ RFC 6077 I: "Open Research Issues in Internet Congestion Control"
+ (February 2011)
+
+ This document [RFC6077] summarizes the main open problems in the
+ domain of Internet congestion control. As a good starting point
+ for newcomers, the document describes several new challenges that
+ are becoming important as the network grows, as well as some
+ issues that have been known for many years.
+
+ RFC 6181 I: "Threat Analysis for TCP Extensions for Multipath
+ Operation with Multiple Addresses" (March 2011)
+
+ This document [RFC6181] describes a threat analysis for Multipath
+ TCP (MPTCP) (see Section 4.7 of this document). The document
+ discusses several types of attacks and provides recommendations
+ for MPTCP designers how to create an MPTCP specification that is
+ as secure as the current (single-path) TCP.
+
+ RFC 6349 I: "Framework for TCP Throughput Testing" (August 2011)
+
+ From the Abstract of RFC 6349 [RFC6349]: "This framework describes
+ a practical methodology for measuring end-to-end TCP Throughput in
+ a managed IP network. The goal is to provide a better indication
+ in regard to user experience. In this framework, TCP and IP
+ parameters are specified to optimize TCP Throughput."
+
+7.5. Implementation Advice
+
+ RFC 794 U: "PRE-EMPTION" (September 1981)
+
+ This document [RFC794] clarifies that operating systems need to
+ 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"
+ (November 1983)
+
+ Abstract of RFC 879 [RFC879]: "This memo discusses the TCP Maximum
+ Segment Size Option and related topics. The purposes [sic] is to
+ clarify some aspects of TCP and its interaction with IP. This
+ memo is a clarification to the TCP specification, and contains
+ information that may be considered as 'advice to implementers'."
+
+
+
+
+
+
+
+Duke, et al. Informational [Page 34]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ RFC 1071 U: "Computing the Internet Checksum" (September 1988)
+ (Errata)
+
+ This document [RFC1071] lists a number of implementation
+ techniques for efficiently computing the Internet checksum (used
+ by TCP).
+
+ RFC 1624 I: "Computation of the Internet Checksum via Incremental
+ Update" (May 1994)
+
+ Incrementally updating the Internet checksum is useful to routers
+ in updating IP checksums. Some middleboxes that alter TCP headers
+ may also be able to update the TCP checksum incrementally. This
+ document [RFC1624] expands upon the explanation of the incremental
+ update procedure in RFC 1071 (see above in Section 7.5).
+
+ RFC 1936 I: "Implementing the Internet Checksum in Hardware" (April
+ 1996)
+
+ This document [RFC1936] describes the motivation for implementing
+ the Internet checksum in hardware, rather than in software, and
+ provides an implementation example.
+
+ RFC 2525 I: "Known TCP Implementation Problems" (March 1999)
+
+ From the Abstract of RFC 2525 [RFC2525]: "This memo catalogs a
+ number of known TCP implementation problems. The goal in doing so
+ is to improve conditions in the existing Internet by enhancing the
+ quality of current TCP/IP implementations."
+
+ RFC 2923 I: "TCP Problems with Path MTU Discovery" (September 2000)
+
+ From abstract: "This memo catalogs several known Transmission
+ Control Protocol (TCP) implementation problems dealing with Path
+ Maximum Transmission Unit Discovery (PMTUD), including the long-
+ standing black hole problem, stretch acknowledgments (ACKs) due to
+ confusion between Maximum Segment Size (MSS) and segment size, and
+ MSS advertisement based on PMTU." [RFC2923]
+
+ RFC 3493 I: "Basic Socket Interface Extensions for IPv6" (February
+ 2003)
+
+ This document [RFC3493] describes the de facto standard sockets
+ API for programming with TCP. This API is implemented nearly
+ ubiquitously in modern operating systems and programming
+ languages.
+
+
+
+
+
+Duke, et al. Informational [Page 35]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ RFC 6056 B: "Recommendations for Transport-Protocol Port
+ Randomization" (December 2010)
+
+ This document [RFC6056] describes a number of simple and efficient
+ methods for the selection of the client port number. It reduces
+ the possibility of an attacker guessing the correct five-tuple
+ (Protocol, Source/Destination Address, Source/Destination Port).
+
+ RFC 6191 B: "Reducing the TIME-WAIT State Using TCP Timestamps"
+ (April 2011)
+
+ This document [RFC6191] describes the usage of the TCP Timestamps
+ option (RFC 7323, see Section 3.1 of this document) to perform
+ heuristics to determine whether or not to allow the creation of a
+ new incarnation of a connection that is in the TIME-WAIT state.
+
+ RFC 6429 I: "TCP Sender Clarification for Persist Condition"
+ (December 2011)
+
+ This document [RFC6429] clarifies the actions that a TCP can take
+ on connections that are experiencing the Zero Window Probe (ZWP)
+ condition.
+
+ RFC 6897 I: "Multipath TCP (MPTCP) Application Interface
+ Considerations" (March 2013)
+
+ This document [RFC6897] characterizes the impact that Multipath
+ TCP (MPTCP) (see Section 4.7 of this document) may have on
+ applications. It further discusses compatibility issues of MPTCP
+ in combination with non-MPTCP-aware applications. Finally, it
+ describes a basic API that is a simple extension of TCP's
+ interface for MPTCP-aware applications.
+
+7.6. Tools and Tutorials
+
+ RFC 1180 I: "TCP/IP Tutorial" (January 1991) (Errata)
+
+ This document [RFC1180] is an extremely brief overview of the TCP/
+ IP protocol suite as a whole. It gives some explanation as to how
+ and where TCP fits in.
+
+
+
+
+
+
+
+
+
+
+
+Duke, et al. Informational [Page 36]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ RFC 1470 I: "FYI on a Network Management Tool Catalog: Tools for
+ Monitoring and Debugging TCP/IP Internets and
+ Interconnected Devices" (June 1993)
+
+ A few of the tools that this document [RFC1470] describes are
+ still maintained and in use today, for example, ttcp and tcpdump.
+ However, many of the tools described do not relate specifically to
+ TCP and are no longer used or easily available.
+
+ RFC 2398 I: "Some Testing Tools for TCP Implementors" (August 1998)
+
+ This document [RFC2398] describes a number of TCP packet
+ generation and analysis tools. Although some of these tools are
+ no longer readily available or widely used, for the most part they
+ are still relevant and usable.
+
+ RFC 5783 I: "Congestion Control in the RFC Series" (February 2010)
+
+ This document [RFC5783] provides an overview of RFCs related to
+ congestion control that had been published at the time. The focus
+ of the document is on end-host-based congestion control.
+
+7.7. MIB Modules
+
+ The first MIB module defined for use with Simple Network Management
+ Protocol (SNMP) was a single monolithic MIB module, called MIB-I,
+ defined in RFC 1156. This evolved over time to the MIB-II
+ specification in RFC 1213, which obsoletes RFC 1156. It then became
+ apparent that having a single monolithic MIB module was not scalable,
+ given the number and breadth of MIB data definitions that needed to
+ be included. Thus, additional MIB modules were defined, and those
+ parts of MIB-II that needed to evolve were split off. Eventually,
+ the remaining parts of MIB-II were also split off, the TCP-specific
+ part being documented in RFC 2012. RFC 2012 was obsoleted by RFC
+ 4022, which is the primary TCP MIB document at the time of writing.
+ For current TCP implementers, RFC 4022 should be supported.
+
+ RFC 1156 S: "Management Information Base for Network Management of
+ TCP/IP-based Internets" (May 1990)
+
+ This document [RFC1156] describes the required MIB fields for TCP
+ implementations with minor corrections and no technical changes
+ from RFC 1066, which it obsoletes. This is the Standards Track
+ RFC for MIB-I.
+
+
+
+
+
+
+
+Duke, et al. Informational [Page 37]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ RFC 1213 S: "Management Information Base for Network Management of
+ TCP/IP-based internets: MIB-II" (March 1991)
+
+ This document [RFC1213] describes the second version of the MIB in
+ a monolithic form. It is the immediate successor of RFC 1158,
+ with minor modifications. It obsoletes the MIB-I, defined in RFC
+ 1156 (see above in Section 7.7).
+
+ RFC 2012 S: "SNMPv2 Management Information Base for the Transmission
+ Control Protocol using SMIv2" (November 1996)
+
+ In an update to RFC 1213 (see Section 7.7 of this document), this
+ document [RFC2012] defines the TCP MIB by splitting out the TCP-
+ specific portions. It is now obsoleted by RFC 4022 (see below in
+ Section 7.7).
+
+ RFC 2452 S: "IP Version 6 Management Information Base for the
+ Transmission Control Protocol" (December 1998)
+
+ This document [RFC2452] augments RFC 2012 (see Section 7.7 of this
+ document) by adding an IPv6-specific connection table. The rest
+ of RFC 2012 holds for any IP version. RFC 2452 is now obsoleted
+ by RFC 4022 (see below in Section 7.7).
+
+ Although it is a Standards Track RFC, RFC 2452 is considered a
+ historic mistake by the MIB community, as it is based on the idea
+ of parallel IPv4 and IPv6 structures. Although IPv6 requires new
+ structures, the community has decided to define a single generic
+ structure for both IPv4 and IPv6. This will aid in definition,
+ implementation, and transition between IPv4 and IPv6.
+
+ RFC 4022 S: "Management Information Base for the Transmission Control
+ Protocol (TCP)" (March 2005)
+
+ This document [RFC4022] obsoletes RFCs 2012 and 2452 (see above in
+ Section 7.7) and specifies the current standard for the TCP MIB
+ that should be deployed.
+
+ RFC 4898 S: "TCP Extended Statistics MIB" (May 2007)
+
+ This document [RFC4898] describes extended performance statistics
+ for TCP. They are designed to use TCP's ideal vantage point to
+ diagnose performance problems in both the network and the
+ application.
+
+
+
+
+
+
+
+Duke, et al. Informational [Page 38]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+7.8. Case Studies
+
+ RFC 700 U: "A Protocol Experiment" (August 1974)
+
+ This document [RFC700] presents a field report about the
+ deployment of a very early version of TCP, the so-called INWN #39
+ protocol, which is originally described by Cerf and Kahn in INWG
+ Note #39 [CK73] to use a PDP-11 line printer via the ARPANET.
+
+ RFC 889 U: "Internet Delay Experiments" (December 1983)
+
+ This document [RFC889] is a status report about experiments
+ concerning the TCP retransmission timeout calculation and also
+ provides advice for implementers.
+
+ RFC 1337 I: "TIME-WAIT Assassination Hazards in TCP" (May 1992)
+
+ This document [RFC1337] points out a problem with acting on
+ received reset segments while one is in the TIME-WAIT state. The
+ main recommendation is that hosts in TIME-WAIT ignore resets.
+ This recommendation might not currently be widely implemented.
+
+ RFC 2415 I: "Simulation Studies of Increased Initial TCP Window Size"
+ (September 1998)
+
+ This document [RFC2415] presents results of some simulations using
+ TCP initial windows greater than 1 segment. The analysis
+ indicates that user-perceived performance can be improved by
+ increasing the initial window to 3 segments.
+
+ RFC 2416 I: "When TCP Starts Up With Four Packets Into Only Three
+ Buffers" (September 1998)
+
+ This document [RFC2416] uses simulation results to clear up some
+ concerns about using an initial window of 4 segments when the
+ network path has less provisioning.
+
+
+ RFC 2884 I: "Performance Evaluation of Explicit Congestion
+ Notification (ECN) in IP Networks" (July 2000)
+
+ This document [RFC2884] describes experimental results that show
+ some improvements to the performance of both short- and long-lived
+ connections due to ECN.
+
+
+
+
+
+
+
+Duke, et al. Informational [Page 39]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+8. Undocumented TCP Features
+
+ There are a few important implementation tactics for the TCP that
+ have not yet been described in any RFC. Although this roadmap is
+ primarily concerned with mapping the TCP RFCs, this section is
+ included because an implementer needs to be aware of these important
+ issues.
+
+ Header Prediction
+
+ Header prediction is a trick to speed up the processing of
+ segments. Van Jacobson and Mike Karels developed the technique in
+ the late 1980s. The basic idea is that some processing time can
+ be saved when most of a segment's fields can be predicted from
+ previous segments. A good description of this was sent to the
+ TCP-IP mailing list by Van Jacobson on March 9, 1988 (see
+ [Jacobson] for the full message):
+
+ Quite a bit of the speedup comes from an algorithm that we
+ ('we' refers to collaborator Mike Karels and myself) are
+ calling "header prediction". The idea is that if you're in the
+ middle of a bulk data transfer and have just seen a packet, you
+ know what the next packet is going to look like: It will look
+ just like the current packet with either the sequence number or
+ ack number updated (depending on whether you're the sender or
+ receiver). Combining this with the "Use hints" epigram from
+ Butler Lampson's classic "Epigrams for System Designers", you
+ start to think of the tcp state (rcv.nxt, snd.una, etc.) as
+ "hints" about what the next packet should look like.
+
+ If you arrange those "hints" so they match the layout of a tcp
+ packet header, it takes a single 14-byte compare to see if your
+ prediction is correct (3 longword compares to pick up the send
+ & ack sequence numbers, header length, flags and window, plus a
+ short compare on the length). If the prediction is correct,
+ there's a single test on the length to see if you're the sender
+ or receiver followed by the appropriate processing. E.g., if
+ the length is non-zero (you're the receiver), checksum and
+ append the data to the socket buffer then wake any process
+ that's sleeping on the buffer. Update rcv.nxt by the length of
+ this packet (this updates your "prediction" of the next
+ packet). Check if you can handle another packet the same size
+ as the current one. If not, set one of the unused flag bits in
+ your header prediction to guarantee that the prediction will
+ fail on the next packet and force you to go through full
+ protocol processing. Otherwise, you're done with this packet.
+ So, the *total* tcp protocol processing, exclusive of
+ checksumming, is on the order of 6 compares and an add.
+
+
+
+Duke, et al. Informational [Page 40]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ Forward Acknowledgement (FACK)
+
+ FACK [MM96] includes an alternate algorithm for triggering fast
+ retransmit [RFC5681], based on the extent of the SACK scoreboard.
+ Its goal is to trigger fast retransmit as soon as the receiver's
+ reassembly queue is larger than the duplicate ACK threshold, as
+ indicated by the difference between the forward most SACK block
+ edge and SND.UNA. This algorithm quickly and reliably triggers
+ fast retransmit in the presence of burst losses -- often on the
+ first SACK following such a loss. Such a threshold-based
+ algorithm also triggers fast retransmit immediately in the
+ presence of any reordering with extent greater than the duplicate
+ ACK threshold. FACK is implemented in Linux and turned on per
+ default.
+
+ Congestion Control for High Rate Flows
+
+ In the last decade significant research effort has been put into
+ experimental TCP congestion control modifications for obtaining
+ high throughput with reduced startup and recovery times. Only a
+ few RFCs have been published on some of these modifications,
+ including HighSpeed TCP [RFC3649], Limited Slow-Start [RFC3742],
+ and Quick-Start [RFC4782] (see Section 4.3 of this document for
+ more information on each), but high-rate congestion control
+ mechanisms are still considered an open issue in congestion
+ control research. Some other schemes have been published as
+ Internet-Drafts, e.g. CUBIC [CUBIC] (the standard TCP congestion
+ control algorithm in Linux), Compound TCP [CTCP], and H-TCP [HTCP]
+ or have been discussed a little by the IETF, but much of the work
+ in this area has not been adopted within the IETF yet, so the
+ majority of this work is outside the RFC series and may be
+ discussed in other products of the IRTF Internet Congestion
+ Control Research Group (ICCRG).
+
+9. Security Considerations
+
+ This document introduces no new security considerations. Each RFC
+ listed in this document attempts to address the security
+ considerations of the specification it contains.
+
+
+
+
+
+
+
+
+
+
+
+
+Duke, et al. Informational [Page 41]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+10. References
+
+10.1. Normative References
+
+ [RFC675] Cerf, V., Dalal, Y., and C. Sunshine, "Specification of
+ Internet Transmission Control Program", RFC 675, December
+ 1974, <http://www.rfc-editor.org/info/rfc675>.
+
+ [RFC700] Mader, E., Plummer, W., and R. Tomlinson, "Protocol
+ experiment", RFC 700, August 1974,
+ <http://www.rfc-editor.org/info/rfc700>.
+
+ [RFC721] Garlick, L., "Out-of-Band Control Signals in a Host-to-
+ Host Protocol", RFC 721, September 1976,
+ <http://www.rfc-editor.org/info/rfc721>.
+
+ [RFC761] Postel, J., "DoD standard Transmission Control Protocol",
+ RFC 761, January 1980,
+ <http://www.rfc-editor.org/info/rfc761>.
+
+ [RFC793] Postel, J., "Transmission Control Protocol", STD 7, RFC
+ 793, September 1981,
+ <http://www.rfc-editor.org/info/rfc793>.
+
+ [RFC794] Cerf, V., "Pre-emption", RFC 794, September 1981,
+ <http://www.rfc-editor.org/info/rfc794>.
+
+ [RFC813] Clark, D., "Window and Acknowledgement Strategy in TCP",
+ RFC 813, July 1982,
+ <http://www.rfc-editor.org/info/rfc813>.
+
+ [RFC814] Clark, D., "Name, addresses, ports, and routes", RFC 814,
+ July 1982, <http://www.rfc-editor.org/info/rfc814>.
+
+ [RFC816] Clark, D., "Fault isolation and recovery", RFC 816, July
+ 1982, <http://www.rfc-editor.org/info/rfc816>.
+
+ [RFC817] Clark, D., "Modularity and efficiency in protocol
+ implementation", RFC 817, July 1982,
+ <http://www.rfc-editor.org/info/rfc817>.
+
+ [RFC872] Padlipsky, M., "TCP-on-a-LAN", RFC 872, September 1982,
+ <http://www.rfc-editor.org/info/rfc872>.
+
+ [RFC879] Postel, J., "TCP maximum segment size and related topics",
+ RFC 879, November 1983,
+ <http://www.rfc-editor.org/info/rfc879>.
+
+
+
+
+Duke, et al. Informational [Page 42]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ [RFC889] Mills, D., "Internet delay experiments", RFC 889, December
+ 1983, <http://www.rfc-editor.org/info/rfc889>.
+
+ [RFC896] Nagle, J., "Congestion control in IP/TCP internetworks",
+ RFC 896, January 1984,
+ <http://www.rfc-editor.org/info/rfc896>.
+
+ [RFC964] Sidhu, D. and T. Blumer, "Some problems with the
+ specification of the Military Standard Transmission
+ Control Protocol", RFC 964, November 1985,
+ <http://www.rfc-editor.org/info/rfc964>.
+
+ [RFC1071] Braden, R., Borman, D., Partridge, C., and W. Plummer,
+ "Computing the Internet checksum", RFC 1071, September
+ 1988, <http://www.rfc-editor.org/info/rfc1071>.
+
+ [RFC1078] Lottor, M., "TCP port service Multiplexer (TCPMUX)", RFC
+ 1078, November 1988,
+ <http://www.rfc-editor.org/info/rfc1078>.
+
+ [RFC1106] Fox, R., "TCP big window and NAK options", RFC 1106, June
+ 1989, <http://www.rfc-editor.org/info/rfc1106>.
+
+ [RFC1110] McKenzie, A., "Problem with the TCP big window option",
+ RFC 1110, August 1989,
+ <http://www.rfc-editor.org/info/rfc1110>.
+
+ [RFC1122] Braden, R., "Requirements for Internet Hosts -
+ Communication Layers", STD 3, RFC 1122, October 1989,
+ <http://www.rfc-editor.org/info/rfc1122>.
+
+ [RFC1144] Jacobson, V., "Compressing TCP/IP headers for low-speed
+ serial links", RFC 1144, February 1990,
+ <http://www.rfc-editor.org/info/rfc1144>.
+
+ [RFC1146] Zweig, J. and C. Partridge, "TCP alternate checksum
+ options", RFC 1146, March 1990,
+ <http://www.rfc-editor.org/info/rfc1146>.
+
+ [RFC1156] McCloghrie, K. and M. Rose, "Management Information Base
+ for network management of TCP/IP-based internets", RFC
+ 1156, May 1990, <http://www.rfc-editor.org/info/rfc1156>.
+
+ [RFC1180] Socolofsky, T. and C. Kale, "TCP/IP tutorial", RFC 1180,
+ January 1991, <http://www.rfc-editor.org/info/rfc1180>.
+
+ [RFC1191] Mogul, J. and S. Deering, "Path MTU discovery", RFC 1191,
+ November 1990, <http://www.rfc-editor.org/info/rfc1191>.
+
+
+
+Duke, et al. Informational [Page 43]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ [RFC1213] McCloghrie, K. and M. Rose, "Management Information Base
+ for Network Management of TCP/IP-based internets:MIB-II",
+ STD 17, RFC 1213, March 1991,
+ <http://www.rfc-editor.org/info/rfc1213>.
+
+ [RFC1263] O'Malley, S. and L. Peterson, "TCP Extensions Considered
+ Harmful", RFC 1263, October 1991,
+ <http://www.rfc-editor.org/info/rfc1263>.
+
+ [RFC1337] Braden, B., "TIME-WAIT Assassination Hazards in TCP", RFC
+ 1337, May 1992, <http://www.rfc-editor.org/info/rfc1337>.
+
+ [RFC1379] Braden, B., "Extending TCP for Transactions -- Concepts",
+ RFC 1379, November 1992,
+ <http://www.rfc-editor.org/info/rfc1379>.
+
+ [RFC1470] Enger, R. and J. Reynolds, "FYI on a Network Management
+ Tool Catalog: Tools for Monitoring and Debugging TCP/IP
+ Internets and Interconnected Devices", RFC 1470, June
+ 1993, <http://www.rfc-editor.org/info/rfc1470>.
+
+ [RFC1624] Rijsinghani, A., "Computation of the Internet Checksum via
+ Incremental Update", RFC 1624, May 1994,
+ <http://www.rfc-editor.org/info/rfc1624>.
+
+ [RFC1644] Braden, B., "T/TCP -- TCP Extensions for Transactions
+ Functional Specification", RFC 1644, July 1994,
+ <http://www.rfc-editor.org/info/rfc1644>.
+
+ [RFC1693] Connolly, T., Amer, P., and P. Conrad, "An Extension to
+ TCP : Partial Order Service", RFC 1693, November 1994,
+ <http://www.rfc-editor.org/info/rfc1693>.
+
+ [RFC1705] Carlson, R. and D. Ficarella, "Six Virtual Inches to the
+ Left: The Problem with IPng", RFC 1705, October 1994,
+ <http://www.rfc-editor.org/info/rfc1705>.
+
+ [RFC1936] Touch, J. and B. Parham, "Implementing the Internet
+ Checksum in Hardware", RFC 1936, April 1996,
+ <http://www.rfc-editor.org/info/rfc1936>.
+
+ [RFC1958] Carpenter, B., "Architectural Principles of the Internet",
+ RFC 1958, June 1996,
+ <http://www.rfc-editor.org/info/rfc1958>.
+
+ [RFC1981] McCann, J., Deering, S., and J. Mogul, "Path MTU Discovery
+ for IP version 6", RFC 1981, August 1996,
+ <http://www.rfc-editor.org/info/rfc1981>.
+
+
+
+Duke, et al. Informational [Page 44]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ [RFC2012] McCloghrie, K., "SNMPv2 Management Information Base for
+ the Transmission Control Protocol using SMIv2", RFC 2012,
+ November 1996, <http://www.rfc-editor.org/info/rfc2012>.
+
+ [RFC2018] Mathis, M., Mahdavi, J., Floyd, S., and A. Romanow, "TCP
+ Selective Acknowledgment Options", RFC 2018, October 1996,
+ <http://www.rfc-editor.org/info/rfc2018>.
+
+ [RFC2140] Touch, J., "TCP Control Block Interdependence", RFC 2140,
+ April 1997, <http://www.rfc-editor.org/info/rfc2140>.
+
+ [RFC2398] Parker, S. and C. Schmechel, "Some Testing Tools for TCP
+ Implementors", RFC 2398, August 1998,
+ <http://www.rfc-editor.org/info/rfc2398>.
+
+ [RFC2415] Poduri, K., "Simulation Studies of Increased Initial TCP
+ Window Size", RFC 2415, September 1998,
+ <http://www.rfc-editor.org/info/rfc2415>.
+
+ [RFC2416] Shepard, T. and C. Partridge, "When TCP Starts Up With
+ Four Packets Into Only Three Buffers", RFC 2416, September
+ 1998, <http://www.rfc-editor.org/info/rfc2416>.
+
+ [RFC2452] Daniele, M., "IP Version 6 Management Information Base for
+ the Transmission Control Protocol", RFC 2452, December
+ 1998, <http://www.rfc-editor.org/info/rfc2452>.
+
+ [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6
+ (IPv6) Specification", RFC 2460, December 1998,
+ <http://www.rfc-editor.org/info/rfc2460>.
+
+ [RFC2488] Allman, M., Glover, D., and L. Sanchez, "Enhancing TCP
+ Over Satellite Channels using Standard Mechanisms", BCP
+ 28, RFC 2488, January 1999,
+ <http://www.rfc-editor.org/info/rfc2488>.
+
+ [RFC2525] Paxson, V., Dawson, S., Fenner, W., Griner, J., Heavens,
+ I., Lahey, K., Semke, J., and B. Volz, "Known TCP
+ Implementation Problems", RFC 2525, March 1999,
+ <http://www.rfc-editor.org/info/rfc2525>.
+
+ [RFC2675] Borman, D., Deering, S., and R. Hinden, "IPv6 Jumbograms",
+ RFC 2675, August 1999,
+ <http://www.rfc-editor.org/info/rfc2675>.
+
+ [RFC2757] Montenegro, G., Dawkins, S., Kojo, M., Magret, V., and N.
+ Vaidya, "Long Thin Networks", RFC 2757, January 2000,
+ <http://www.rfc-editor.org/info/rfc2757>.
+
+
+
+Duke, et al. Informational [Page 45]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ [RFC2760] Allman, M., Dawkins, S., Glover, D., Griner, J., Tran, D.,
+ Henderson, T., Heidemann, J., Touch, J., Kruse, H.,
+ Ostermann, S., Scott, K., and J. Semke, "Ongoing TCP
+ Research Related to Satellites", RFC 2760, February 2000,
+ <http://www.rfc-editor.org/info/rfc2760>.
+
+ [RFC2780] Bradner, S. and V. Paxson, "IANA Allocation Guidelines For
+ Values In the Internet Protocol and Related Headers", BCP
+ 37, RFC 2780, March 2000,
+ <http://www.rfc-editor.org/info/rfc2780>.
+
+ [RFC2861] Handley, M., Padhye, J., and S. Floyd, "TCP Congestion
+ Window Validation", RFC 2861, June 2000,
+ <http://www.rfc-editor.org/info/rfc2861>.
+
+ [RFC2873] Xiao, X., Hannan, A., Paxson, V., and E. Crabbe, "TCP
+ Processing of the IPv4 Precedence Field", RFC 2873, June
+ 2000, <http://www.rfc-editor.org/info/rfc2873>.
+
+ [RFC2883] Floyd, S., Mahdavi, J., Mathis, M., and M. Podolsky, "An
+ Extension to the Selective Acknowledgement (SACK) Option
+ for TCP", RFC 2883, July 2000,
+ <http://www.rfc-editor.org/info/rfc2883>.
+
+ [RFC2884] Hadi Salim, J. and U. Ahmed, "Performance Evaluation of
+ Explicit Congestion Notification (ECN) in IP Networks",
+ RFC 2884, July 2000,
+ <http://www.rfc-editor.org/info/rfc2884>.
+
+ [RFC2914] Floyd, S., "Congestion Control Principles", BCP 41, RFC
+ 2914, September 2000,
+ <http://www.rfc-editor.org/info/rfc2914>.
+
+ [RFC2923] Lahey, K., "TCP Problems with Path MTU Discovery", RFC
+ 2923, September 2000,
+ <http://www.rfc-editor.org/info/rfc2923>.
+
+ [RFC3042] Allman, M., Balakrishnan, H., and S. Floyd, "Enhancing
+ TCP's Loss Recovery Using Limited Transmit", RFC 3042,
+ January 2001, <http://www.rfc-editor.org/info/rfc3042>.
+
+ [RFC3124] Balakrishnan, H. and S. Seshan, "The Congestion Manager",
+ RFC 3124, June 2001,
+ <http://www.rfc-editor.org/info/rfc3124>.
+
+
+
+
+
+
+
+Duke, et al. Informational [Page 46]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ [RFC3135] Border, J., Kojo, M., Griner, J., Montenegro, G., and Z.
+ Shelby, "Performance Enhancing Proxies Intended to
+ Mitigate Link-Related Degradations", RFC 3135, June 2001,
+ <http://www.rfc-editor.org/info/rfc3135>.
+
+ [RFC3150] Dawkins, S., Montenegro, G., Kojo, M., and V. Magret,
+ "End-to-end Performance Implications of Slow Links", BCP
+ 48, RFC 3150, July 2001,
+ <http://www.rfc-editor.org/info/rfc3150>.
+
+ [RFC3155] Dawkins, S., Montenegro, G., Kojo, M., Magret, V., and N.
+ Vaidya, "End-to-end Performance Implications of Links with
+ Errors", BCP 50, RFC 3155, August 2001,
+ <http://www.rfc-editor.org/info/rfc3155>.
+
+ [RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition
+ of Explicit Congestion Notification (ECN) to IP", RFC
+ 3168, September 2001,
+ <http://www.rfc-editor.org/info/rfc3168>.
+
+ [RFC3360] Floyd, S., "Inappropriate TCP Resets Considered Harmful",
+ BCP 60, RFC 3360, August 2002,
+ <http://www.rfc-editor.org/info/rfc3360>.
+
+ [RFC3366] Fairhurst, G. and L. Wood, "Advice to link designers on
+ link Automatic Repeat reQuest (ARQ)", BCP 62, RFC 3366,
+ August 2002, <http://www.rfc-editor.org/info/rfc3366>.
+
+ [RFC3390] Allman, M., Floyd, S., and C. Partridge, "Increasing TCP's
+ Initial Window", RFC 3390, October 2002,
+ <http://www.rfc-editor.org/info/rfc3390>.
+
+ [RFC3439] Bush, R. and D. Meyer, "Some Internet Architectural
+ Guidelines and Philosophy", RFC 3439, December 2002,
+ <http://www.rfc-editor.org/info/rfc3439>.
+
+ [RFC3449] Balakrishnan, H., Padmanabhan, V., Fairhurst, G., and M.
+ Sooriyabandara, "TCP Performance Implications of Network
+ Path Asymmetry", BCP 69, RFC 3449, December 2002,
+ <http://www.rfc-editor.org/info/rfc3449>.
+
+ [RFC3465] Allman, M., "TCP Congestion Control with Appropriate Byte
+ Counting (ABC)", RFC 3465, February 2003,
+ <http://www.rfc-editor.org/info/rfc3465>.
+
+
+
+
+
+
+
+Duke, et al. Informational [Page 47]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ [RFC3481] Inamura, H., Montenegro, G., Ludwig, R., Gurtov, A., and
+ F. Khafizov, "TCP over Second (2.5G) and Third (3G)
+ Generation Wireless Networks", BCP 71, RFC 3481, February
+ 2003, <http://www.rfc-editor.org/info/rfc3481>.
+
+ [RFC3493] Gilligan, R., Thomson, S., Bound, J., McCann, J., and W.
+ Stevens, "Basic Socket Interface Extensions for IPv6", RFC
+ 3493, February 2003,
+ <http://www.rfc-editor.org/info/rfc3493>.
+
+ [RFC3522] Ludwig, R. and M. Meyer, "The Eifel Detection Algorithm
+ for TCP", RFC 3522, April 2003,
+ <http://www.rfc-editor.org/info/rfc3522>.
+
+ [RFC3540] Spring, N., Wetherall, D., and D. Ely, "Robust Explicit
+ Congestion Notification (ECN) Signaling with Nonces", RFC
+ 3540, June 2003, <http://www.rfc-editor.org/info/rfc3540>.
+
+ [RFC3649] Floyd, S., "HighSpeed TCP for Large Congestion Windows",
+ RFC 3649, December 2003,
+ <http://www.rfc-editor.org/info/rfc3649>.
+
+ [RFC3708] Blanton, E. and M. Allman, "Using TCP Duplicate Selective
+ Acknowledgement (DSACKs) and Stream Control Transmission
+ Protocol (SCTP) Duplicate Transmission Sequence Numbers
+ (TSNs) to Detect Spurious Retransmissions", RFC 3708,
+ February 2004, <http://www.rfc-editor.org/info/rfc3708>.
+
+ [RFC3742] Floyd, S., "Limited Slow-Start for TCP with Large
+ Congestion Windows", RFC 3742, March 2004,
+ <http://www.rfc-editor.org/info/rfc3742>.
+
+ [RFC3819] Karn, P., Bormann, C., Fairhurst, G., Grossman, D.,
+ Ludwig, R., Mahdavi, J., Montenegro, G., Touch, J., and L.
+ Wood, "Advice for Internet Subnetwork Designers", BCP 89,
+ RFC 3819, July 2004,
+ <http://www.rfc-editor.org/info/rfc3819>.
+
+ [RFC4015] Ludwig, R. and A. Gurtov, "The Eifel Response Algorithm
+ for TCP", RFC 4015, February 2005,
+ <http://www.rfc-editor.org/info/rfc4015>.
+
+ [RFC4022] Raghunarayan, R., "Management Information Base for the
+ Transmission Control Protocol (TCP)", RFC 4022, March
+ 2005, <http://www.rfc-editor.org/info/rfc4022>.
+
+
+
+
+
+
+Duke, et al. Informational [Page 48]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ [RFC4653] Bhandarkar, S., Reddy, A., Allman, M., and E. Blanton,
+ "Improving the Robustness of TCP to Non-Congestion
+ Events", RFC 4653, August 2006,
+ <http://www.rfc-editor.org/info/rfc4653>.
+
+ [RFC4727] Fenner, B., "Experimental Values In IPv4, IPv6, ICMPv4,
+ ICMPv6, UDP, and TCP Headers", RFC 4727, November 2006,
+ <http://www.rfc-editor.org/info/rfc4727>.
+
+ [RFC4774] Floyd, S., "Specifying Alternate Semantics for the
+ Explicit Congestion Notification (ECN) Field", BCP 124,
+ RFC 4774, November 2006,
+ <http://www.rfc-editor.org/info/rfc4774>.
+
+ [RFC4782] Floyd, S., Allman, M., Jain, A., and P. Sarolahti, "Quick-
+ Start for TCP and IP", RFC 4782, January 2007,
+ <http://www.rfc-editor.org/info/rfc4782>.
+
+ [RFC4821] Mathis, M. and J. Heffner, "Packetization Layer Path MTU
+ Discovery", RFC 4821, March 2007,
+ <http://www.rfc-editor.org/info/rfc4821>.
+
+ [RFC4898] Mathis, M., Heffner, J., and R. Raghunarayan, "TCP
+ Extended Statistics MIB", RFC 4898, May 2007,
+ <http://www.rfc-editor.org/info/rfc4898>.
+
+ [RFC4953] Touch, J., "Defending TCP Against Spoofing Attacks", RFC
+ 4953, July 2007, <http://www.rfc-editor.org/info/rfc4953>.
+
+ [RFC4987] Eddy, W., "TCP SYN Flooding Attacks and Common
+ Mitigations", RFC 4987, August 2007,
+ <http://www.rfc-editor.org/info/rfc4987>.
+
+ [RFC5033] Floyd, S. and M. Allman, "Specifying New Congestion
+ Control Algorithms", BCP 133, RFC 5033, August 2007,
+ <http://www.rfc-editor.org/info/rfc5033>.
+
+ [RFC5166] Floyd, S., "Metrics for the Evaluation of Congestion
+ Control Mechanisms", RFC 5166, March 2008,
+ <http://www.rfc-editor.org/info/rfc5166>.
+
+ [RFC5461] Gont, F., "TCP's Reaction to Soft Errors", RFC 5461,
+ February 2009, <http://www.rfc-editor.org/info/rfc5461>.
+
+ [RFC5482] Eggert, L. and F. Gont, "TCP User Timeout Option", RFC
+ 5482, March 2009,
+ <http://www.rfc-editor.org/info/rfc5482>.
+
+
+
+
+Duke, et al. Informational [Page 49]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ [RFC5562] Kuzmanovic, A., Mondal, A., Floyd, S., and K.
+ Ramakrishnan, "Adding Explicit Congestion Notification
+ (ECN) Capability to TCP's SYN/ACK Packets", RFC 5562, June
+ 2009, <http://www.rfc-editor.org/info/rfc5562>.
+
+ [RFC5681] Allman, M., Paxson, V., and E. Blanton, "TCP Congestion
+ Control", RFC 5681, September 2009,
+ <http://www.rfc-editor.org/info/rfc5681>.
+
+ [RFC5682] Sarolahti, P., Kojo, M., Yamamoto, K., and M. Hata,
+ "Forward RTO-Recovery (F-RTO): An Algorithm for Detecting
+ Spurious Retransmission Timeouts with TCP", RFC 5682,
+ September 2009, <http://www.rfc-editor.org/info/rfc5682>.
+
+ [RFC5690] Floyd, S., Arcia, A., Ros, D., and J. Iyengar, "Adding
+ Acknowledgement Congestion Control to TCP", RFC 5690,
+ February 2010, <http://www.rfc-editor.org/info/rfc5690>.
+
+ [RFC5783] Welzl, M. and W. Eddy, "Congestion Control in the RFC
+ Series", RFC 5783, February 2010,
+ <http://www.rfc-editor.org/info/rfc5783>.
+
+ [RFC5827] Allman, M., Avrachenkov, K., Ayesta, U., Blanton, J., and
+ P. Hurtig, "Early Retransmit for TCP and Stream Control
+ Transmission Protocol (SCTP)", RFC 5827, May 2010,
+ <http://www.rfc-editor.org/info/rfc5827>.
+
+ [RFC5925] Touch, J., Mankin, A., and R. Bonica, "The TCP
+ Authentication Option", RFC 5925, June 2010,
+ <http://www.rfc-editor.org/info/rfc5925>.
+
+ [RFC5926] Lebovitz, G. and E. Rescorla, "Cryptographic Algorithms
+ for the TCP Authentication Option (TCP-AO)", RFC 5926,
+ June 2010, <http://www.rfc-editor.org/info/rfc5926>.
+
+ [RFC5927] Gont, F., "ICMP Attacks against TCP", RFC 5927, July 2010,
+ <http://www.rfc-editor.org/info/rfc5927>.
+
+ [RFC5961] Ramaiah, A., Stewart, R., and M. Dalal, "Improving TCP's
+ Robustness to Blind In-Window Attacks", RFC 5961, August
+ 2010, <http://www.rfc-editor.org/info/rfc5961>.
+
+ [RFC6013] Simpson, W., "TCP Cookie Transactions (TCPCT)", RFC 6013,
+ January 2011, <http://www.rfc-editor.org/info/rfc6013>.
+
+ [RFC6056] Larsen, M. and F. Gont, "Recommendations for Transport-
+ Protocol Port Randomization", BCP 156, RFC 6056, January
+ 2011, <http://www.rfc-editor.org/info/rfc6056>.
+
+
+
+Duke, et al. Informational [Page 50]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ [RFC6069] Zimmermann, A. and A. Hannemann, "Making TCP More Robust
+ to Long Connectivity Disruptions (TCP-LCD)", RFC 6069,
+ December 2010, <http://www.rfc-editor.org/info/rfc6069>.
+
+ [RFC6077] Papadimitriou, D., Welzl, M., Scharf, M., and B. Briscoe,
+ "Open Research Issues in Internet Congestion Control", RFC
+ 6077, February 2011,
+ <http://www.rfc-editor.org/info/rfc6077>.
+
+ [RFC6093] Gont, F. and A. Yourtchenko, "On the Implementation of the
+ TCP Urgent Mechanism", RFC 6093, January 2011,
+ <http://www.rfc-editor.org/info/rfc6093>.
+
+ [RFC6181] Bagnulo, M., "Threat Analysis for TCP Extensions for
+ Multipath Operation with Multiple Addresses", RFC 6181,
+ March 2011, <http://www.rfc-editor.org/info/rfc6181>.
+
+ [RFC6182] Ford, A., Raiciu, C., Handley, M., Barre, S., and J.
+ Iyengar, "Architectural Guidelines for Multipath TCP
+ Development", RFC 6182, March 2011,
+ <http://www.rfc-editor.org/info/rfc6182>.
+
+ [RFC6191] Gont, F., "Reducing the TIME-WAIT State Using TCP
+ Timestamps", BCP 159, RFC 6191, April 2011,
+ <http://www.rfc-editor.org/info/rfc6191>.
+
+ [RFC6247] Eggert, L., "Moving the Undeployed TCP Extensions RFC
+ 1072, RFC 1106, RFC 1110, RFC 1145, RFC 1146, RFC 1379,
+ RFC 1644, and RFC 1693 to Historic Status", RFC 6247, May
+ 2011, <http://www.rfc-editor.org/info/rfc6247>.
+
+ [RFC6298] Paxson, V., Allman, M., Chu, J., and M. Sargent,
+ "Computing TCP's Retransmission Timer", RFC 6298, June
+ 2011, <http://www.rfc-editor.org/info/rfc6298>.
+
+ [RFC6335] Cotton, M., Eggert, L., Touch, J., Westerlund, M., and S.
+ Cheshire, "Internet Assigned Numbers Authority (IANA)
+ Procedures for the Management of the Service Name and
+ Transport Protocol Port Number Registry", BCP 165, RFC
+ 6335, August 2011,
+ <http://www.rfc-editor.org/info/rfc6335>.
+
+ [RFC6349] Constantine, B., Forget, G., Geib, R., and R. Schrage,
+ "Framework for TCP Throughput Testing", RFC 6349, August
+ 2011, <http://www.rfc-editor.org/info/rfc6349>.
+
+
+
+
+
+
+Duke, et al. Informational [Page 51]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ [RFC6356] Raiciu, C., Handley, M., and D. Wischik, "Coupled
+ Congestion Control for Multipath Transport Protocols", RFC
+ 6356, October 2011,
+ <http://www.rfc-editor.org/info/rfc6356>.
+
+ [RFC6429] Bashyam, M., Jethanandani, M., and A. Ramaiah, "TCP Sender
+ Clarification for Persist Condition", RFC 6429, December
+ 2011, <http://www.rfc-editor.org/info/rfc6429>.
+
+ [RFC6528] Gont, F. and S. Bellovin, "Defending against Sequence
+ Number Attacks", RFC 6528, February 2012,
+ <http://www.rfc-editor.org/info/rfc6528>.
+
+ [RFC6582] Henderson, T., Floyd, S., Gurtov, A., and Y. Nishida, "The
+ NewReno Modification to TCP's Fast Recovery Algorithm",
+ RFC 6582, April 2012,
+ <http://www.rfc-editor.org/info/rfc6582>.
+
+ [RFC6633] Gont, F., "Deprecation of ICMP Source Quench Messages",
+ RFC 6633, May 2012,
+ <http://www.rfc-editor.org/info/rfc6633>.
+
+ [RFC6675] Blanton, E., Allman, M., Wang, L., Jarvinen, I., Kojo, M.,
+ and Y. Nishida, "A Conservative Loss Recovery Algorithm
+ Based on Selective Acknowledgment (SACK) for TCP", RFC
+ 6675, August 2012,
+ <http://www.rfc-editor.org/info/rfc6675>.
+
+ [RFC6691] Borman, D., "TCP Options and Maximum Segment Size (MSS)",
+ RFC 6691, July 2012,
+ <http://www.rfc-editor.org/info/rfc6691>.
+
+ [RFC6824] Ford, A., Raiciu, C., Handley, M., and O. Bonaventure,
+ "TCP Extensions for Multipath Operation with Multiple
+ Addresses", RFC 6824, January 2013,
+ <http://www.rfc-editor.org/info/rfc6824>.
+
+ [RFC6846] Pelletier, G., Sandlund, K., Jonsson, L-E., and M. West,
+ "RObust Header Compression (ROHC): A Profile for TCP/IP
+ (ROHC-TCP)", RFC 6846, January 2013,
+ <http://www.rfc-editor.org/info/rfc6846>.
+
+ [RFC6897] Scharf, M. and A. Ford, "Multipath TCP (MPTCP) Application
+ Interface Considerations", RFC 6897, March 2013,
+ <http://www.rfc-editor.org/info/rfc6897>.
+
+
+
+
+
+
+Duke, et al. Informational [Page 52]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ [RFC6928] Chu, J., Dukkipati, N., Cheng, Y., and M. Mathis,
+ "Increasing TCP's Initial Window", RFC 6928, April 2013,
+ <http://www.rfc-editor.org/info/rfc6928>.
+
+ [RFC6937] Mathis, M., Dukkipati, N., and Y. Cheng, "Proportional
+ Rate Reduction for TCP", RFC 6937, May 2013,
+ <http://www.rfc-editor.org/info/rfc6937>.
+
+ [RFC6994] Touch, J., "Shared Use of Experimental TCP Options", RFC
+ 6994, August 2013,
+ <http://www.rfc-editor.org/info/rfc6994>.
+
+ [RFC7323] Borman, D., Braden, B., Jacobson, V., and R.
+ Scheffenegger, "TCP Extensions for High Performance", RFC
+ 7323, September 2014,
+ <http://www.rfc-editor.org/info/rfc7323>.
+
+ [RFC7413] Cheng, Y., Chu, J., Radhakrishnan, S., and A. Jain, "TCP
+ Fast Open", RFC 7413, December 2014,
+ <http://www.rfc-editor.org/info/rfc7413>.
+
+10.2. Informative References
+
+ [CK73] Cerf, V. and R. Kahn, "Towards Protocols for Internetwork
+ Communication", IFIP/TC6.1, NIC 18764, INWG 39, September
+ 1973.
+
+ [CTCP] Sridharan, M., Tan, K., Bansal, D., and D. Thaler,
+ "Compound TCP: A New TCP Congestion Control for High-Speed
+ and Long Distance Networks", Work in Progress,
+ draft-sridharan-tcpm-ctcp-02, November 2008.
+
+ [CUBIC] Rhee, I., Xu, L., and S. Ha, "CUBIC for Fast Long-Distance
+ Networks", Work in Progress, draft-rhee-tcpm-cubic-02,
+ August 2008.
+
+ [Errata] RFC Editor, "RFC Errata",
+ <http://www.rfc-editor.org/errata.php>.
+
+ [HTCP] Leith, D., "H-TCP: TCP Congestion Control for High
+ Bandwidth-Delay Product Paths", Work in Progress,
+ draft-leith-tcp-htcp-06, April 2008.
+
+ [JK92] Jacobson, V. and M. Karels, "Congestion Avoidance and
+ Control", November 1992,
+ <ftp://ftp.ee.lbl.gov/papers/congavoid.ps.Z>.
+
+
+
+
+
+Duke, et al. Informational [Page 53]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ [Jac88] Jacobson, V., "Congestion Avoidance and Control", ACM
+ SIGCOMM 1988 Proceedings, in ACM Computer Communication
+ Review, 18 (4), pp. 314-329, August 1988.
+
+ [Jacobson] Jacobson, V., "TCP-IP Mailing List", Article 167 of
+ comp.protocols.tcp-ip, March 1988,
+ <ftp://ftp.ee.lbl.gov/email/vanj.88mar10.txt>.
+
+ [KP87] Karn, P. and C. Partridge, "Round Trip Time Estimation",
+ ACM SIGCOMM 1987 Proceedings, in ACM Computer
+ Communication Review, 17 (5), pp. 2-7, August 1987.
+
+ [MAF04] Medina, A., Allman, M., and S. Floyd, "Measuring the
+ Evolution of Transport Protocols in the Internet", ACM
+ Computer Communication Review, 35 (2), April 2005.
+
+ [MM96] Mathis, M. and J. Mahdavi, "Forward Acknowledgement:
+ Refining TCP Congestion Control", ACM SIGCOMM 1996
+ Proceedings, in ACM Computer Communication Review 26 (4),
+ pp. 281-292, October 1996.
+
+ [RFC1016] Prue, W. and J. Postel, "Something a host could do with
+ source quench: The Source Quench Introduced Delay
+ (SQuID)", RFC 1016, July 1987,
+ <http://www.rfc-editor.org/info/rfc1016>.
+
+ [RFC2026] Bradner, S., "The Internet Standards Process -- Revision
+ 3", BCP 9, RFC 2026, October 1996,
+ <http://www.rfc-editor.org/info/rfc2026>.
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119, March 1997,
+ <http://www.rfc-editor.org/info/rfc2119>.
+
+ [RFC2474] Nichols, K., Blake, S., Baker, F., and D. Black,
+ "Definition of the Differentiated Services Field (DS
+ Field) in the IPv4 and IPv6 Headers", RFC 2474, December
+ 1998, <http://www.rfc-editor.org/info/rfc2474>.
+
+ [RFC3758] Stewart, R., Ramalho, M., Xie, Q., Tuexen, M., and P.
+ Conrad, "Stream Control Transmission Protocol (SCTP)
+ Partial Reliability Extension", RFC 3758, May 2004,
+ <http://www.rfc-editor.org/info/rfc3758>.
+
+ [RFC4340] Kohler, E., Handley, M., and S. Floyd, "Datagram
+ Congestion Control Protocol (DCCP)", RFC 4340, March 2006,
+ <http://www.rfc-editor.org/info/rfc4340>.
+
+
+
+
+Duke, et al. Informational [Page 54]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+ [RFC4341] Floyd, S. and E. Kohler, "Profile for Datagram Congestion
+ Control Protocol (DCCP) Congestion Control ID 2: TCP-like
+ Congestion Control", RFC 4341, March 2006,
+ <http://www.rfc-editor.org/info/rfc4341>.
+
+ [RFC6115] Li, T., "Recommendation for a Routing Architecture", RFC
+ 6115, February 2011,
+ <http://www.rfc-editor.org/info/rfc6115>.
+
+ [SCWA99] Savage, S., Cardwell, N., Wetherall, D., and T. Anderson,
+ "TCP Congestion Control with a Misbehaving Receiver", ACM
+ Computer Communication Review, 29 (5), pp. 71-78, October
+ 1999.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Duke, et al. Informational [Page 55]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+Acknowledgments
+
+ This document grew out of a discussion on the end2end-interest
+ mailing list, the public list of the End-to-End Research Group of the
+ IRTF, and continued development under the IETF's TCP Maintenance and
+ Minor Extensions (TCPM) working group. We thank Mark Allman, Yuchung
+ Cheng, Ted Faber, Gorry Fairhurst, Sally Floyd, Janardhan Iyengar,
+ Reiner Ludwig, Pekka Savola, and Joe Touch for their contributions,
+ in particular. Keith McCloghrie provided some useful notes and
+ clarification on the various MIB-related RFCs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Duke, et al. Informational [Page 56]
+
+RFC 7414 TCP Roadmap February 2015
+
+
+Authors' Addresses
+
+ Martin Duke
+ F5 Networks
+ 401 Elliott Ave W
+ Seattle, WA 98119
+ United States
+
+ Phone: 206-272-7537
+ EMail: m.duke@f5.com
+
+
+ Robert Braden
+ USC Information Sciences Institute
+ Marina del Rey, CA 90292-6695
+ United States
+
+ Phone: 310-448-9173
+ EMail: braden@isi.edu
+
+
+ Wesley M. Eddy
+ MTI Systems
+ 18013 Cleveland Parkway
+ Suite 170
+ Cleveland, OH 44135
+ United States
+
+ Phone: 216-433-6682
+ EMail: wes@mti-systems.com
+
+
+ Ethan Blanton
+ Interrupt Sciences
+
+ EMail: elb@interruptsciences.com
+
+
+ Alexander Zimmermann
+ NetApp, Inc.
+ Sonnenallee 1
+ Kirchheim 85551
+ Germany
+
+ Phone: +49 89 900594712
+ EMail: alexander.zimmermann@netapp.com
+
+
+
+
+
+Duke, et al. Informational [Page 57]
+