<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
 
]>

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="3"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<?rfc rfcedstyle="yes" ?>

<rfc submissionType="IETF" ipr="trust200902" category="info" obsoletes="4614"
number="7414" consensus="yes">


    <front>
        <title abbrev="TCP Roadmap">A Roadmap for Transmission Control Protocol
        (TCP) Specification&nbsp;Documents</title>

        <author initials="M" surname="Duke" fullname="Martin Duke">
            <organization abbrev='F5'>F5 Networks</organization>
            <address>
                <postal>
                    <street>401 Elliott Ave W</street>
                    <city>Seattle</city>
                    <region>WA</region>
                    <code>98119</code>
                    <country>United States</country>
                </postal>
                <phone>206-272-7537</phone>
                <email> m.duke@f5.com</email>
            </address>
        </author>

        <author initials="R" surname="Braden" fullname="Robert Braden">
            <organization abbrev='ISI'>USC Information Sciences
                Institute</organization>
            <address>
                <postal>
                    <street></street>
                    <city>Marina del Rey</city>
                    <region>CA</region>
                    <code>90292-6695</code>
                    <country>United States</country>
                </postal>
                <phone>310-448-9173</phone>
                <email>braden@isi.edu</email>
            </address>
        </author>

        <author initials="W" surname="Eddy" fullname="Wesley M. Eddy">
            <organization >MTI Systems</organization>
            <address>
                <postal>
                    <street>18013 Cleveland Parkway</street>
                    <street>Suite 170</street>
                    <city>Cleveland</city>
                    <region>OH</region>
                    <code>44135</code>
                    <country>United States</country>
                </postal>
                <phone>216-433-6682</phone>
                <email>wes@mti-systems.com</email>
            </address>
        </author>

        <author initials="E" surname="Blanton" fullname="Ethan Blanton">
            <organization>Interrupt Sciences </organization>
            <address>
			    <email>elb@interruptsciences.com</email>
            </address>
        </author>

        <author initials="A" surname="Zimmermann" fullname="Alexander Zimmermann">
            <organization>NetApp, Inc.</organization>
            <address>
                <postal>
                    <street>Sonnenallee 1</street>
                    <city>Kirchheim</city>
                    <code>85551</code>
                    <country>Germany</country>
				</postal>
                <phone>+49 89 900594712</phone>
                <email>alexander.zimmermann@netapp.com</email>
            </address>
        </author>

        <date month="January" year="2015" />

        <!-- Meta-data Declarations -->
        <area>Transport</area>

        <workgroup>TCP Maintenance and Minor Extensions (TCPM) WG</workgroup>

        <keyword>TCP Roadmap</keyword>

        <abstract>
            <t>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.</t>

            <t>This document obsoletes RFC 4614.</t>
        </abstract>

    </front>

    <!--  MAIN MATTER -->
    <middle>
        <!-- Section: Introduction -->
        <section title="Introduction">
            <t>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.</t>

            <t>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.</t>

            <t>This document is not an update of RFC 1122 <xref
                target="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.</t>

            <t>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 <xref target="RFC2026"/> for
            explanation of these categories):
                <list style="hanging" hangIndent="6">
                    <t hangText="  S -">Standards Track (Proposed Standard, Draft Standard,
                    or Internet Standard)</t>
                    <t hangText="  E -">Experimental</t>
                    <t hangText="  I -">Informational</t>
                    <t hangText="  H -">Historic</t>
                    <t hangText="  B -">Best Current Practice</t>
                    <t hangText="  U -">Unknown (not formally defined)</t>
                </list>
            </t>

            <t>Note that the category of an RFC does not necessarily reflect
            its current relevance. For instance, RFC 5681 <xref
                target="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.</t>

            <t>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
            <xref target="Errata"/>.</t>

            <t>This roadmap is divided into three main sections.
            <xref target="must"/> 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 <xref target="should"/>. Experimental
            extensions that are not yet standard practices, but that
            potentially could be in the future, are described in <xref
                target="may"/>.</t>

            <t>The reader will probably notice that these three sections are
            broadly equivalent to MUST/SHOULD/MAY specifications (per RFC 2119
            <xref target="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.</t>

            <t><xref target="iana"/> 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.</t>

            <t>A small number of older experimental extensions that have not
            been widely implemented, deployed, and used are noted in <xref
                target="history"/>. Many other supporting documents that are
            relevant to the development, implementation, and deployment of TCP
            are described in <xref target="support"/>.</t>

            <t>A small number of fairly ubiquitous important implementation
            practices that are not currently documented in the RFC series are
            listed in <xref target="undocumented"/>.</t>

            <t>Within each section, RFCs are listed in the chronological order
            of their publication dates.</t>
        </section>

        <!-- Section: Core Functionality -->
        <section title="Core Functionality" anchor="must">
            <t>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.</t>


            <t><list style="hanging">
                <t hangText="RFC 793 S: &quot;Transmission Control Protocol&quot;, STD 7 (September 1981) (Errata)">
                <vspace blankLines="1"/>
                This is the fundamental TCP specification document <xref
                    target="RFC0793"/>. 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.</t>

                <t>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 <xref target="must"/> 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.</t>

                <t hangText="RFC 1122 S: &quot;Requirements for Internet Hosts - Communication Layers&quot; (October 1989)"><vspace blankLines="1"/>
                This document <xref target="RFC1122"/> updates and clarifies
                RFC 793 (see above in <xref target="must"/>), fixing some specification
                bugs and oversights. It also explains some features such as
                keep-alives and Karn's and Jacobson's RTO estimation algorithms
                <xref target="KP87"/><xref target="Jac88"/><xref
                    target="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.</t>

                <t hangText="RFC 2460 S: &quot;Internet Protocol, Version 6 (IPv6) Specification&quot; (December 1998) (Errata)">
                <vspace blankLines="1"/>
                This document <xref target="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
                <xref target="fundamental"/> of this document) describes TCP changes required to
                support IPv6 jumbograms.</t>

                <t hangText="RFC 2873 S: &quot;TCP Processing of the IPv4 Precedence Field&quot; (June 2000) (Errata)">
                <vspace blankLines="1"/>
                This document <xref target="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 <xref target="must"/>) and
                Differentiated Services <xref target="RFC2474"/>.</t>

                <t hangText="RFC 5681 S: &quot;TCP Congestion Control&quot; (August 2009)"><vspace blankLines="1"/>
                Although RFC 793 (see above in <xref target="must"/>) did not contain
                any congestion control mechanisms, today congestion control is
                a required component of TCP implementations. This document
				<xref target="RFC5681"/> defines congestion avoidance and
				control mechanism for TCP, based on Van Jacobson's 1988 SIGCOMM
				paper <xref target="Jac88"/>.</t>

                <t>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.</t>

                <t>RFC 5681 details the currently accepted congestion control
                mechanism, while RFC 1122, (see above in <xref target="must"/>) 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.</t>

                <t>RFCs 2001 and 2581 are the conceptual precursors of RFC
                5681. The most important changes relative to RFC 2581 are:
                    <?rfc subcompact="yes"?>
                    <list style="format (%c)">
                        <t>The initial window requirements were changed to allow
                        larger Initial Windows as standardized in <xref
                            target="RFC3390"/> (see <xref target="cc"/> of this document).</t>
                        <t>During slow start and congestion avoidance, the
                        usage of Appropriate Byte Counting <xref
                            target="RFC3465"/> (see <xref target="cc"/> of this document) is
                        explicitly recommended.</t>
                        <t>The use of Limited Transmit <xref target="RFC3042"/>
                        (see <xref target="lr"/> of this document) is now recommended.</t>
                    </list>
                    <?rfc subcompact="no"?>
                </t>

                <t hangText="RFC 6093 S: &quot;On the Implementation of the TCP Urgent Mechanism&quot; (January 2011)"><vspace blankLines="1"/>
                This document <xref target="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.</t>


                <t hangText="RFC 6298 S: &quot;Computing TCP's Retransmission Timer&quot; (June 2011)"><vspace blankLines="1"/>
                Abstract of RFC 6298 <xref target="RFC6298"/>: &quot;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.&quot; RFC 6298 updates RFC 2988 by changing
                the initial RTO from 3s to 1s.</t>

                <t hangText="RFC 6691 I: &quot;TCP Options and Maximum Segment Size (MSS)&quot; (July 2012)"> 
<vspace blankLines="1"/>
                This document <xref target="RFC6691"/> clarifies what value to
                use with the TCP Maximum Segment Size (MSS) option when IP and
                TCP options are in use.</t>
            </list></t>
        </section>

        <!-- Section: Strongly Encouraged Enhancements -->
        <section title="Strongly Encouraged Enhancements" anchor="should">
            <t>This section describes recommended TCP modifications that improve
            performance and security. <xref target="fundamental"/> represents
            fundamental changes to the protocol. Sections <xref target="cc" format="counter"/> and <xref
                target="lr" format="counter"/> list improvements over the congestion control and
            loss recovery mechanisms as specified in RFC 5681 (see <xref
                target="must"/>). <xref target="spurious"/> describes
            algorithms that allow a TCP sender to detect whether it has entered
            loss recovery spuriously. <xref target="pmtud"/> comprises Path MTU
            Discovery mechanisms.  Schemes for TCP/IP header compression are
            listed in <xref target="compression"/>. Finally, <xref
                target="antispoof"/> deals with the problem of preventing
            acceptance of forged segments and flooding attacks.</t>

            <!-- Subsection: Fundamental Changes -->
            <section title="Fundamental Changes" anchor="fundamental">
                <t>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.</t>

                <t><list style="hanging">
                    <t hangText="RFC 2675 S: &quot;IPv6 Jumbograms&quot; (August 1999) (Errata)"><vspace blankLines="1"/>
                    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 <xref
                        target="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.</t>

                    <t>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.</t>

                    <t hangText="RFC 7323 S: &quot;TCP Extensions for High Performance&quot; (September 2014)"><vspace blankLines="1"/>
                    This document <xref target="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 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.</t>
               </list></t>
            </section>

            <!-- Subsection: Congestion Control Extensions -->
            <section title="Congestion Control Extensions" anchor="cc">
                <t>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.</t>

                <t><list style="hanging">
                    <t hangText="RFC 3168 S: &quot;The Addition of Explicit Congestion Notification (ECN) to IP&quot; (September 2001)">
                    <vspace blankLines="1"/>
                    This document <xref target="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 <xref
                        target="must"/> of this document) to define two previously unused flag
                    bits in the TCP header for ECN support. RFC 3540 (see <xref
                        target="cc-may"/> of this document) provides a supplementary
                    (experimental) means for more secure use of ECN, and RFC
                    2884 (see <xref target="studies"/> of this document) provides some sample
                    results from using ECN.</t>

                    <t hangText="RFC 3390 S: &quot;Increasing TCP's Initial Window&quot; (October 2002)"><vspace blankLines="1"/>
                    This document <xref target="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.</t>

                    <t hangText="RFC 3465 E: &quot;TCP Congestion Control with Appropriate Byte Counting (ABC)&quot; (February 2003)">
                    <vspace blankLines="1"/>
                    This document <xref target="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 induce the sender
					into increasing the sending rate too rapidly (ACK-division
					<xref target="SCWA99"/> <xref target="RFC3449"/>). ABC is
					recommended by RFC 5681 (see <xref target="must"/> of this document).</t>

                    <t hangText="RFC 6633 S: &quot;Deprecation of ICMP Source Quench Messages&quot; (May 2012)"><vspace blankLines="1"/>
                    This document <xref target="RFC6633"/> formally deprecates
                    the use of ICMP Source Quench messages by transport
                    protocols and recommends against the implementation of
                    <xref target="RFC1016"/>.</t>
               </list></t>
            </section>

            <!-- Subsection: Loss Recovery Extensions -->
            <section title="Loss Recovery Extensions" anchor="lr">
                <t>For the typical implementation of the TCP fast recovery
                algorithm described in RFC 5681 (see <xref target="must"/> 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.</t>

                <t><list style="hanging">
                    <t hangText="RFC 2018 S: &quot;TCP Selective Acknowledgment Options&quot; (October 1996) (Errata)"><vspace blankLines="1"/>
                    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 <xref
                        target="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.</t>



                    <t hangText="RFC 3042 S: &quot;Enhancing TCP's Loss Recovery Using Limited Transmit&quot; (January 2001)">
                    <vspace blankLines="1"/>
                    Abstract of RFC 3042 <xref target="RFC3042"/>: &quot;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.&quot;  This algorithm described in RFC 3042
is called "Limited Transmit".  Tests from 2004
                    showed that Limited Transmit was deployed in roughly one
                    third of the web servers tested <xref target="MAF04"/>.
                    Limited Transmit is recommended by RFC 5681 (see <xref
                        target="must"/> of this document).</t>

                    <t hangText="RFC 6582 S: &quot;The NewReno Modification to TCP's Fast Recovery Algorithm&quot; (April 2012)">
                    <vspace blankLines="1"/>
                    This document <xref target="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.</t>

                    <t>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.</t>

                    <t hangText="RFC 6675 S: &quot;A Conservative Loss Recovery Algorithm Based on Selective Acknowledgment (SACK) for TCP&quot; (August 2012)"><vspace blankLines="1"/>
                    This document <xref target="RFC6675"/> describes a
                    conservative loss recovery algorithm for TCP that is based
                    on the use of the selective acknowledgment (SACK) TCP
                    option <xref target="RFC2018"/> (see above in <xref target="lr"/>).
                    The algorithm conforms to the spirit of the congestion
                    control specification in RFC 5681 (see <xref
                        target="must"/> of this document), but allows TCP senders to recover
                    more effectively when multiple segments are lost from a
                    single flight of data.</t>

                    <t>RFC 6675 is a revision of RFC 3517 to address several
                    situations that are not handled explicitly before. In
                    particular,
                        <?rfc subcompact="yes"?>
                        <list style="format (%c)">
                            <t>it improves the loss detection in the event
                            that the sender has outstanding segments that are
                            smaller than Sender Maximum Segment Size (SMSS).</t>
                            <t>it modifies the definition of a "duplicate
                            acknowledgment" to utilize the SACK information
                            in detecting loss.</t>
                            <t>it maintains the ACK clock under certain
                            circumstances involving loss at the end of the
                            window.</t>
                        </list>
                        <?rfc subcompact="no"?>
                    </t>
                </list></t>
            </section>

            <!-- Subsection: Detection and Prevention of Spurious
            Retransmissions -->
            <section title="Detection and Prevention of Spurious
            Retransmissions" anchor="spurious">
                <t>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 <xref target="spurious-may"/> also addressing this
                topic.</t>

                <t><list style="hanging">
                    <t hangText="RFC 2883 S: &quot;An Extension to the Selective Acknowledgement (SACK) Option for TCP&quot; (July 2000)">
                    <vspace blankLines="1"/>
                    This document <xref target="RFC2883"/> extends RFC 2018
                    (see <xref target="lr"/> 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 <xref target="RFC3708"/>).</t>

                    <t hangText="RFC 4015 S: &quot;The Eifel Response Algorithm for TCP&quot; (February 2005)"><vspace blankLines="1"/>
                    This document <xref target="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 <xref
                        target="spurious-may"/>), the algorithm in RFC 3708
                    (see <xref target="spurious-may"/> of this document), or F-RTO in RFC 5682
                    (see below in <xref target="spurious"/>).</t>

                    <t>Abstract of RFC 4015 <xref target="RFC4015"/>: &quot;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.&quot;</t>

                    <t hangText="RFC 5682 S: &quot;Forward RTO-Recovery (F-RTO): An Algorithm for Detecting Spurious Retransmission Timeouts with TCP&quot; (September 2009)"><vspace blankLines="1"/>
                    The F-RTO detection algorithm <xref target="RFC5682"/>,
                    originally described in RFC 4138, provides an option for
                    inferring spurious retransmission timeouts. 



Unlike some
                    similar detection methods (e.g., RFCs 3522 and 3708, both listed in <xref
                        target="spurious-may"/> 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.</t>
                </list></t>
            </section>

            <!-- Subsection: Path MTU Discovery -->
            <section title="Path MTU Discovery" anchor="pmtud">
                <t>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.</t>


                <t><list style="hanging">
                    <t hangText="RFC 1191 S: &quot;Path MTU Discovery&quot; (November 1990)"><vspace blankLines="1"/>
                    Abstract of RFC 1191 <xref target="RFC1191"/>: &quot;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.&quot;</t>

                    <t hangText="RFC 1981 S: &quot;Path MTU Discovery for IP version 6&quot; (August 1996)"><vspace blankLines="1"/>
                    Abstract of RFC 1981 <xref target="RFC1981" />: &quot;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.&quot;></t>

                    <t hangText="RFC 4821 S: &quot;Packetization Layer Path MTU Discovery&quot; (March 2007)"><vspace blankLines="1"/>
                    Abstract of RFC 4821 <xref target="RFC4821"/>: &quot;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.&quot;</t>
                </list></t>
            </section>

            <!-- Subsection: Header Compression -->
            <section title="Header Compression" anchor="compression">
                <t>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.</t>

                <t><list style="hanging">
                    <t hangText="RFC 1144 S: &quot;Compressing TCP/IP Headers for Low-Speed Serial Links&quot; (February 1990)">
                    <vspace blankLines="1"/>
                    This document <xref target="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.</t>

                    <t hangText="RFC 6846 S: &quot;RObust Header Compression (ROHC): A Profile for TCP/IP (ROHC-TCP)&quot; (January 2013)"><vspace blankLines="1"/>
                    From the Abstract of RFC 6846 <xref target="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.</t>
                </list></t>
            </section>

            <!-- Subsection: Defending Spoofing and Flooding Attacks -->
            <section title="Defending Spoofing and Flooding Attacks" anchor="antispoof">
                <t>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.</t>

                <t><list style="hanging">
                    <t hangText="RFC 4953 I: &quot;Defending TCP Against Spoofing Attacks&quot; (July 2007)"><vspace blankLines="1"/>
                    This document <xref target="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.</t>

                    <t hangText="RFC 5461 I: &quot;TCP's Reaction to Soft Errors&quot; (February 2009)"><vspace blankLines="1"/>
                    This document <xref target="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.</t>

                    <t hangText="RFC 4987 I: &quot;TCP SYN Flooding Attacks and Common Mitigations&quot; (August 2007)">
                    <vspace blankLines="1"/>
                    This document <xref target="RFC4987"/> describes the
                    well-known TCP SYN flooding attack. It analyzes and
                    discusses various countermeasures against these attacks,
                    including their use and trade-offs.</t>

                    <t hangText="RFC 5925 S: &quot;The TCP Authentication Option&quot; (June 2010)"><vspace blankLines="1"/>
                    This document <xref target="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 <xref
                        target="RFC5926"/> (see below in <xref
                        target="antispoof"/>).</t>

                    <t hangText="RFC 5926 S: &quot;Cryptographic Algorithms for the TCP Authentication Option (TCP-AO)&quot; (June 2010)">
                    <vspace blankLines="1"/>
                    This document <xref target="RFC5926"/> specifies the
                    algorithms and attributes that can be used in TCP
                    Authentication Option's (TCP-AO) <xref target="RFC5925"/>
                    (see above in <xref target="antispoof"/>) current manual keying
                    mechanism and provides the interface for future message
                    authentication codes (MACs).</t>

                    <t hangText="RFC 5927 I: &quot;ICMP Attacks against TCP&quot; (July 2010)">
                    <vspace blankLines="1"/>
                    Abstract of RFC 5927 <xref target="RFC5927" />: &quot;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.&quot;</t>

                    <t hangText="RFC 5961 S: &quot;Improving TCP's Robustness to Blind In-Window Attacks&quot; (August 2010)">
                    <vspace blankLines="1"/>
                    This document <xref target="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.</t>

                    <t hangText="RFC 6528 S: &quot;Defending against Sequence Number Attacks&quot; (February 2012)"><vspace blankLines="1"/>
                    Abstract of RFC 6528 <xref target="RFC6528" />: &quot;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&quot;</t>
                </list></t>
            </section>
        </section>

        <!-- Section: Experimental Extensions -->
        <section title="Experimental Extensions" anchor="may">
            <t>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.</t>

			<t>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 <xref
				target="RFC6994"/> (see Section 5 of this document), which describes how the
			experimental TCP option code points can concurrently support
			multiple TCP extensions.</t>

            <t>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 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.</t>

            <!-- Subsection: Architectural Guidelines -->
            <section title="Architectural Guidelines" anchor="architectural-may">
                <t>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.</t>

                <t><list style="hanging">
                    <t hangText="RFC 2140 I: &quot;TCP Control Block Interdependence&quot; (April 1997)"><vspace blankLines="1"/>
                    This document <xref target="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.</t>

                    <t hangText="RFC 3124 S: &quot;The Congestion Manager&quot; (June 2001)"><vspace blankLines="1"/>
                    This document <xref target="RFC3124"/> is a related proposal to RFC 2140 (see above in <xref
                        target="architectural-may"/>). 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.</t>
                </list></t>
            </section>

            <!-- Subsection: Fundamental Changes -->
            <section title="Fundamental Changes" anchor="fundamental-may">
                <t>Like the Standards Track documents listed in
				<xref target="fundamental"/>, 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 <xref
					target="RFC0793"/>.</t>

                <t><list style="hanging">
                    <t hangText="RFC 7413 E: &quot;TCP Fast Open&quot; (December 2014)"><vspace blankLines="1"/>
                    This document <xref target="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.</t>
                </list></t>
            </section>

            <!-- Subsection: Congestion Control Extensions -->
            <section title="Congestion Control Extensions" anchor="cc-may">
                <t>TCP congestion control has been an extremely active research
                area for many years (see RFC 5783 discussed in <xref target="tools"/> 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 <xref target="must"/> of this document). In these
                subsections, enhancements to TCP's congestion control are
                listed. The next subsection focuses on TCP's loss recovery.</t>

                <t><list style="hanging">
                    <t hangText="RFC 2861 E: &quot;TCP Congestion Window Validation&quot; (June 2000)"><vspace blankLines="1"/>
                    This document <xref target="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 <xref target="must"/> 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.</t>

                    <t hangText="RFC 3540 E: &quot;Robust Explicit Congestion Notification (ECN) Signaling with Nonces&quot; (June 2003)">
                    <vspace blankLines="1"/>
                    This document <xref target="RFC3540"/> describes an
                    optional addition to ECN that protects against accidental
                    or malicious concealment of marked packets from the TCP
                    sender.</t>

                    <t hangText="RFC 3649 E: &quot;HighSpeed TCP for Large Congestion Windows&quot; (December 2003)">
                    <vspace blankLines="1"/>
                    This document <xref target="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.</t>

                    <t hangText="RFC 3742 E: &quot;Limited Slow-Start for TCP with Large Congestion Windows&quot; (March 2004)">
                    <vspace blankLines="1"/>
                    This document <xref target="RFC3742"/> describes a more
                    conservative slow-start behavior to prevent massive packet
                    losses when a connection uses a very large congestion
                    window.</t>

                    <t hangText="RFC 4782 E: &quot;Quick-Start for TCP and IP&quot; (January 2007) (Errata)"><vspace blankLines="1"/>
                    This document <xref target="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.</t>

                    <t hangText="RFC 5562 E: &quot;Adding Explicit Congestion Notification (ECN) Capability to TCP's SYN/ACK Packets&quot; (June 2009)"><vspace blankLines="1"/>
                    This document <xref target="RFC5562"/> describes an
                    experimental modification to ECN <xref target="RFC3168"/>
                    (see <xref target="cc"/> 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.</t>

                    <t hangText="RFC 5690 I: &quot;Adding Acknowledgement Congestion Control to TCP&quot; (February 2010)">
                    <vspace blankLines="1"/>
                    This document <xref target="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) <xref
                        target="RFC4340"/> Congestion Control Identifier (CCID)
                    2 <xref target="RFC4341"/>.</t>

                    <t hangText="RFC 6928 E: &quot;Increasing TCP's Initial Window&quot; (April 2013)"><vspace blankLines="1"/>
                    This document <xref target="RFC6928"/> proposes to increase
                    the TCP initial window from between 2 and 4 segments, as
                    specified in RFC 3390 (see <xref target="cc"/> of this document), to 10
                    segments with a fallback to the existing recommendation
                    when performance issues are detected.</t>
               </list></t>
            </section>

            <!-- Subsection: Loss Recovery Extensions -->
            <section title="Loss Recovery Extensions" anchor="lr-may">
                <t><list style="hanging">
                    <t hangText="RFC 5827 E: &quot;Early Retransmit for TCP and Stream Control Transmission Protocol (SCTP)&quot; (April 2010)"><vspace blankLines="1"/>
                    This document <xref target="RFC5827"/> proposes the
                    &quot;Early Retransmit&quot; 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.</t>

                    <t hangText="RFC 6069 E: &quot;Making TCP More Robust to Long Connectivity Disruptions (TCP-LCD)&quot; (December 2010)"><vspace blankLines="1"/>
                    This document <xref target="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.</t>

                    <t hangText="RFC 6937 E: &quot;Proportional Rate Reduction for TCP&quot; (May 2013)"><vspace blankLines="1"/>
                    This document <xref target="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.</t>
                </list></t>
            </section>

            <!-- Subsection: Detection and Prevention of Spurious
            Retransmissions -->
            <section title="Detection and Prevention of Spurious
            Retransmissions" anchor="spurious-may">
                <t>In addition to the Standards Track extensions to deal with
                spurious retransmissions in <xref target="spurious"/>,
                Experimental proposals have also been documented.</t>

                <t><list style="hanging">
                    <t hangText="RFC 3522 E: &quot;The Eifel Detection Algorithm for TCP&quot; (April 2003)"><vspace blankLines="1"/>
                    The Eifel detection algorithm <xref target="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.</t>

                    <t hangText="RFC 3708 E: &quot;Using TCP Duplicate Selective Acknowledgement (DSACKs) and Stream Control Transmission Protocol (SCTP) Duplicate Transmission Sequence Numbers (TSNs) to Detect Spurious Retransmissions&quot; (February 2004)"> <vspace blankLines="1"/>
                    Abstract: &quot;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.&quot;</t>


                    <t hangText="RFC 4653 E: &quot;Improving the Robustness of TCP to Non-Congestion Events&quot; (August 2006)">
                    <vspace blankLines="1"/>
                    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
                    <xref target="RFC4653"/> proposes 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.</t>
                </list></t>
            </section>

            <!-- Subsection: TCP Timeouts -->
            <section title="TCP Timeouts" anchor="timeouts">
                <t>Besides the well-known retransmission timeout the TCP
                standard <xref target="RFC0793"/> defines other timeouts. This
                section lists documents that deal with TCP's various timeouts.</t>

                <t><list style="hanging">
                    <t hangText="RFC 5482 S: &quot;TCP User Timeout Option&quot; (March 2009)"><vspace blankLines="1"/>
                    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 <xref target="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.</t>
                 </list></t>
            </section>

            <!-- Subsection: Multipath TCP -->
            <section title="Multipath TCP" anchor="mptcp-may">
                <t>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 <xref
                    target="architectural-supp" format="counter"/>, <xref
                    target="development" format="counter"/>, and <xref
                    target="tcpimpl" format="counter"/> provide some additional
                background information.</t>

                <t><list style="hanging">
                    <t hangText="RFC 6356 E: &quot;Coupled Congestion Control for Multipath Transport Protocols&quot; (October 2011)">
                    <vspace blankLines="1"/>
                    This document <xref target="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.</t>

                    <t hangText="RFC 6824 E: &quot;TCP Extensions for Multipath Operation with Multiple Addresses&quot; (January 2013) (Errata)"><vspace blankLines="1"/>
                    This document <xref target="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.</t>
                </list></t>
            </section>
        </section>

        <!-- Section: TCP Parameters at IANA -->
        <section title="TCP Parameters at IANA" anchor="iana">
            <t>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.</t>

            <t><list style="hanging">
                <t hangText="RFC 2780 B: &quot;IANA Allocation Guidelines For Values In the Internet Protocol and Related Headers&quot; (March 2000)"><vspace blankLines="1"/>
                Abstract of RFC 2780 <xref target="RFC2780"/>: &quot;This memo provides guidance for the IANA to use
                in assigning parameters for fields in the IPv4, IPv6, ICMP, UDP
                and TCP protocol headers.&quot;</t>

                <t hangText="RFC 4727 S: &quot;Experimental Values in IPv4, IPv6, ICMPv4, ICMPv6, UDP, and TCP Headers&quot; (November 2006)"><vspace blankLines="1"/>
                This document <xref target="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 <xref
                    target="iana"/>).</t>

                <t hangText="RFC 6335 B: &quot;Internet Assigned Numbers Authority (IANA) Procedures for the Management of the Service Name and Transport Protocol Port Number Registry&quot; (August 2011)">
                <vspace blankLines="1"/>
                From the Abstract of RFC 6335 <xref target="RFC6335"/>: &quot;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.&quot;</t>

                <t hangText="RFC 6994 S: &quot;Shared Use of Experimental TCP Options (August 2013)"><vspace blankLines="1"/>
                This document <xref target="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.</t>
            </list></t>
        </section>

        <!-- Section: Historic and Undeployed Extensions -->
        <section title="Historic and Undeployed Extensions" anchor="history">
            <t>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 <xref
                target="RFC6247"/> to Historic status.</t>

            <t><list style="hanging">
                <t hangText="RFC 721 U: &quot;Out-of-Band Control Signals in a Host-to-Host Protocol&quot; (September 1976): lack of interest">
                <vspace blankLines="1"/>
                RFC 721 <xref target="RFC0721"/> 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.</t>

                <t hangText="RFC 1078 U: &quot;TCP Port Service Multiplexer (TCPMUX)&quot; (November 1988): lack of interest">
                <vspace blankLines="1"/>
                This document <xref target="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.</t>

                <t hangText="RFC 1106 H: &quot;TCP Big Window and Nak Options&quot; (June 1989): found defective">
                <vspace blankLines="1"/>
                This RFC <xref target="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 <xref target="history"/>)
                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).</t>

                <t hangText="RFC 1110 H: &quot;A Problem with the TCP Big Window Option&quot; (August 1989): deprecates RFC 1106">
                <vspace blankLines="1"/>
                Abstract of RFC 1110 <xref target="RFC1110" />: &quot;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.&quot;</t>

                <t hangText="RFC 1146 H: &quot;TCP Alternate Checksum Options&quot; (March 1990): lack of interest">
                <vspace blankLines="1"/>
                This document <xref target="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.</t>

                <t hangText="RFC 1263 I: &quot;TCP Extensions Considered Harmful&quot; (October 1991): lack of interest">
                <vspace blankLines="1"/>
                This document <xref target="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.</t>

                <t hangText="RFC 1379 H: &quot;Extending TCP for Transactions -- Concepts&quot; (November 1992): found defective">
                <vspace blankLines="1"/>
                See RFC 1644, in <xref target="history"/> below.</t>

                <t hangText="RFC 1644 H: &quot;T/TCP -- TCP Extensions for Transactions Functional Specification&quot; (July 1994): found defective"><vspace blankLines="1"/>
                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 <xref
                    target="RFC1379"/> (see above in <xref target="history"/>) and RFC
                1644 <xref target="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 <xref
                    target="architectural-may"/> of this document), in the sharing of state
                across connections.</t>

                <t hangText="RFC 1693 H: &quot;An Extension to TCP: Partial Order Service&quot; (November 1994): lack of interest">
                <vspace blankLines="1"/>
                This document <xref target="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 <xref target="RFC3758"/>.</t>

                <t hangText="RFC 1705 I: &quot;Six Virtual Inches to the Left: The Problem with IPng&quot; (October 1994): lack of interest">
                <vspace blankLines="1"/>
                To overcome the exhaustion of the IP class B address space,
                this document <xref target="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 <xref
                    target="RFC6115"/>, but no resulting changes to TCP have
                occurred.</t>

                <t hangText="RFC 6013 E: &quot;TCP Cookie Transactions (TCPCT)&quot; (January 2011): lack of interest">
                <vspace blankLines="1"/>
                This document <xref target="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.</t>

                <t>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.</t>

                <t>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.
                    <?rfc subcompact="yes"?>
                    <list style="format (%c)">
                        <t>The authors are not aware of any wide deployment and
                        use of RFC 6013.</t>
                        <t>RFC 6013 uses experimental TCP option code points,
                        which prohibits a large-scale deployment.</t>
                    </list>
                    <?rfc subcompact="no"?>
                </t>
            </list></t>
        </section>

        <!-- Section: Support Documents -->
        <section title="Support Documents" anchor="support">
            <t>This section contains several classes of documents that do not
            necessarily define current protocol behaviors but that are
            nevertheless of interest to TCP implementers. <xref
                target="foundation"/> describes several foundational RFCs that
            give modern readers a better understanding of the principles
            underlying TCP's behaviors and development over the years. <xref
                target="architectural-supp"/> contains architectural guidelines
            and principles for TCP architects and designers. The documents
            listed in <xref target="pilc"/> 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 <xref target="development"/>. Some
            implementation notes and implementation advice can be found in
            <xref target="tcpimpl"/>. RFCs that describe tools for testing and
            debugging TCP implementations or that contain high-level tutorials
            on the protocol are listed <xref target="tools"/>. The TCP
            Management Information Bases are described in <xref
                target="mibs"/>, and <xref target="studies"/> lists a number of
            case studies that have explored TCP performance.</t>

            <!-- Subsection: Foundational Works -->
            <section title="Foundational Works" anchor="foundation">
                <t>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).</t>

                <t><list style="hanging">
                    <t hangText="RFC 675 U: &quot;Specification of Internet Transmission Control Program&quot; (December 1974)">
                    <vspace blankLines="1"/>
                    This document <xref target="RFC0675"/> is a very early
                    precursor of the fundamental RFC 793 (see <xref
                        target="must"/> 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 <xref
                        target="must"/> of this document).</t>

                    <t hangText="RFC 761 U: &quot;DoD Standard Transmission Control Protocol&quot; (January  1980)">
                    <vspace blankLines="1"/>
                    This document <xref target="RFC0761"/> is the immediate
                    precursor of RFC 793 (see <xref target="must"/> 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 <xref
                        target="must"/> of this document).</t>

                    <t hangText="RFC 813 U: &quot;Window and Acknowledgement Strategy in TCP&quot; (July 1982)"><vspace blankLines="1"/>
                    This document <xref target="RFC0813"/> contains an early
                    discussion of Silly Window Syndrome and its avoidance and
                    motivates and describes the use of delayed
                    acknowledgments.</t>

                    <t hangText="RFC 814 U: &quot;Name, Addresses, Ports, and Routes&quot; (July 1982)"><vspace blankLines="1"/>
                    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 <xref
                        target="RFC0814"/>.</t>

                    <t hangText="RFC 816 U: &quot;Fault Isolation and Recovery&quot; (July 1982)"><vspace blankLines="1"/>
                    In this document <xref target="RFC0816"/>, TCP's response
                    to indications of network error conditions such as timeouts
                    or received ICMP messages is discussed.</t>

                    <t hangText="RFC 817 U: &quot;Modularity and Efficiency in Protocol Implementation&quot; (July 1982)">
                    <vspace blankLines="1"/>
                    This document <xref target="RFC0817"/> 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.</t>

                    <t hangText="RFC 872 U: &quot;TCP-on-a-LAN&quot; (September 1982)"><vspace blankLines="1"/>
                    Conclusion of RFC 872 <xref target="RFC0872"/>: &quot;The sometimes-expressed fear that using
                    TCP on a local net is a bad idea is unfounded.&quot;</t>

                    <t hangText="RFC 896 U: &quot;Congestion Control in IP/TCP Internetworks&quot; (January 1984)"><vspace blankLines="1"/>
                    This document <xref target="RFC0896"/> 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.</t>

                    <t hangText="RFC 964 U: &quot;Some Problems with the Specification of the Military Standard Transmission Control Protocol&quot; (November 1985)"><vspace blankLines="1"/>
                    This document <xref target="RFC0964"/> points out several
                    specification bugs in the US Military's MIL-STD-1778
                    document, which was intended as a successor to RFC 793 (see
                    <xref target="must"/> of this document).  This serves to remind us of the
                    difficulty in specification writing (even when we work from
                    existing documents!).</t>
                </list></t>
            </section>

            <!-- Subsection: Architectural Guidelines -->
            <section title="Architectural Guidelines" anchor="architectural-supp">
                <t>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.</t>

                <t><list style="hanging">
                    <t hangText="RFC 1958 I: &quot;Architectural Principles of the Internet&quot; (June 1996)"><vspace blankLines="1"/>
                    This document <xref target="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.</t>

                    <t hangText="RFC 2914 B: &quot;Congestion Control Principles&quot; (September 2000)"><vspace blankLines="1"/>
                    This document <xref target="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 <xref
                        target="development"/> 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.</t>

                    <t hangText="RFC 3360 B: &quot;Inappropriate TCP Resets Considered Harmful&quot; (August 2002)">
                    <vspace blankLines="1"/>
                    This document <xref target="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.</t>

                    <t hangText="RFC 3439 I: &quot;Some Internet Architectural Guidelines and Philosophy&quot; (December 2002)">
                    <vspace blankLines="1"/>
                    This document <xref target="RFC3439"/> updates RFC 1958
                    (see above in <xref target="architectural-supp"/>) 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.</t>

                    <t hangText="RFC 4774 B: &quot;Specifying Alternate Semantics for the Explicit Congestion Notification (ECN) Field&quot; (November 2006)"><vspace blankLines="1"/>
                    This document <xref target="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.</t>

                    <t hangText="RFC 6182 I: &quot;Architectural Guidelines for Multipath TCP Development&quot; (March 2011)">
                    <vspace blankLines="1"/>
                    Abstract of RFC 6182 <xref target="RFC6182"/>: &quot;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 <xref target="mptcp-may"/> 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&quot;</t>
               </list></t>
            </section>

            <!-- Subsection: Difficult Network Environments -->
            <section title="Difficult Network Environments" anchor="pilc">
                <t>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.</t>

                <t><list style="hanging">
                    <t hangText="RFC 2488 B: &quot;Enhancing TCP Over Satellite Channels using Standard Mechanisms&quot; (January 1999)"><vspace blankLines="1"/>
                    From the Abstract of RFC 2488 <xref target="RFC2488"/>: &quot;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).&quot;
                    </t>

                    <t hangText="RFC 2757 I: &quot;Long Thin Networks&quot; (January 2000)"><vspace blankLines="1"/>
                    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 <xref target="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 <xref target="pilc"/>), and these
                    documents should be preferred where there is overlap
                    between them and RFC 2757 (see <xref target="pilc"/> of this document).</t>

                    <t hangText="RFC 2760 I: &quot;Ongoing TCP Research Related to Satellites&quot; (February 2000)"><vspace blankLines="1"/>
                    This document <xref target="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 <xref target="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 <xref target="pilc"/>) looks at standard
                    extensions, this document focuses on more experimental
                    means of performance enhancement.</t>

                    <t hangText="RFC 3135 I: &quot;Performance Enhancing Proxies Intended to Mitigate Link-Related Degradations&quot; (June 2001)"><vspace blankLines="1"/>
                    From the Abstract of RFC 3135 <xref target="RFC3135"/>: &quot;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 WAN, and wireless LAN environments. Different
                    types of Performance Enhancing Proxies are described as
                    well as the mechanisms used to improve performance.&quot;
                    </t>

                    <t hangText="RFC 3150 B: &quot;End-to-end Performance Implications of Slow Links&quot; (July 2001)">
                    <vspace blankLines="1"/>
                    From the Abstract of RFC 3150 <xref target="RFC3150"/>: &quot;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.&quot;
                    </t>

                    <t hangText="RFC 3155 B: &quot;End-to-end Performance Implications of Links with Errors&quot; (August 2001)">
                    <vspace blankLines="1"/>
                    From the Abstract of RFC 3155 <xref target="RFC3155"/>: &quot;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.&quot;</t>

                    <t hangText="RFC 3366 B: &quot;Advice to link designers on link Automatic Repeat reQuest (ARQ)&quot; (August 2002)">
                    <vspace blankLines="1"/>
                    From the Abstract of RFC 3366 <xref target="RFC3366"/>: &quot;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.&quot;</t>

                    <t hangText="RFC 3449 B: &quot;TCP Performance Implications of Network Path Asymmetry&quot; (December 2002)">
                    <vspace blankLines="1"/>
                    From the Abstract of RFC 3449 <xref target="RFC3449"/>: &quot;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.</t>

                    <t>The document details several mitigations to these
                    effects, which have either been proposed or evaluated in
                    the literature, or are currently deployed in
                    networks.</t>

                    <t hangText="RFC 3481 B: &quot;TCP over Second (2.5G) and Third (3G) Generation Wireless Networks&quot; (February 2003)">
                    <vspace blankLines="1"/>
                    From the Abstract of RFC 3481 <xref target="RFC3481"/>: &quot;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.&quot;</t>

                    <t hangText="RFC 3819 B: &quot;Advice for Internet Subnetwork Designers&quot; (July 2004)"><vspace blankLines="1"/>
                    This document <xref target="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 <xref target="pilc"/>) specifically focuses
                    on ARQ mechanisms, while RFC 3819 more widely covers
                    additional aspects of the underlying layers</t>
                </list></t>
            </section>

            <!-- Subsection: Guidance for Developing, Analyzing, and Evaluating TCP -->
            <section title="Guidance for Developing, Analyzing, and Evaluating TCP"
            anchor="development">
            <t>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.</t>

                <t><list style="hanging">
                    <t hangText="RFC 5033 B: &quot;Specifying New Congestion Control Algorithms&quot; (August 2007)">
                    <vspace blankLines="1"/>
                    This document <xref target="RFC5033"/> considers the
                    evaluation of suggested congestion control algorithms that
                    differ from the principles outlined in RFC 2914 (see <xref
                        target="architectural-supp"/> of this document). It is useful for
                    authors of such algorithms as well as for IETF members
                    reviewing the associated documents.</t>

                    <t hangText="RFC 5166 I: &quot;Metrics for the Evaluation of Congestion Control Mechanisms&quot; (March 2008)">
                    <vspace blankLines="1"/>
                    This document <xref target="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.</t>

                    <t hangText="RFC 6077 I: &quot;Open Research Issues in Internet Congestion Control&quot; (February 2011)">
                    <vspace blankLines="1"/>
                    This document <xref target="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.</t>

                    <t hangText="RFC 6181 I: &quot;Threat Analysis for TCP Extensions for Multipath Operation with Multiple Addresses&quot; (March 2011)"><vspace blankLines="1"/>
                    This document <xref target="RFC6181"/> describes a threat
                    analysis for Multipath TCP (MPTCP) (see <xref
                        target="mptcp-may"/> 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.</t>

                    <t hangText="RFC 6349 I: &quot;Framework for TCP Throughput Testing&quot; (August 2011)"><vspace blankLines="1"/>
                    From the Abstract of RFC 6349 <xref target="RFC6349"/>: &quot;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.&quot;</t>
               </list></t>
            </section>

            <!-- Subsection: Implementation Advice -->


            <section title="Implementation Advice" anchor="tcpimpl">
                <t><list style="hanging">
                    <t hangText="RFC 794 U: &quot;PRE-EMPTION&quot; (September 1981)"><vspace blankLines="1"/>
                    This document <xref target="RFC0794"/> 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.</t>

                    <t hangText="RFC 879 U: &quot;The TCP Maximum Segment Size and Related Topics&quot; (November 1983)">
                    <vspace blankLines="1"/>
                    Abstract of RFC 879 <xref target="RFC0879"/>: &quot;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'.&quot;</t>

                    <t hangText="RFC 1071 U: &quot;Computing the Internet Checksum&quot; (September 1988) (Errata)">
                    <vspace blankLines="1"/>
                    This document <xref target="RFC1071"/> lists a number of
                    implementation techniques for efficiently computing the
                    Internet checksum (used by TCP).</t>

                    <t hangText="RFC 1624 I: &quot;Computation of the Internet Checksum via Incremental Update&quot; (May 1994)">
                    <vspace blankLines="1"/>
                    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 <xref
                        target="RFC1624"/> expands upon the explanation of the
                    incremental update procedure in RFC 1071 (see above in <xref
                        target="tcpimpl"/>).</t>

                    <t hangText="RFC 1936 I: &quot;Implementing the Internet Checksum in Hardware&quot; (April 1996)">
                    <vspace blankLines="1"/>
                    This document <xref target="RFC1936"/> describes the
                    motivation for implementing the Internet checksum in
                    hardware, rather than in software, and provides an
                    implementation example.</t>

                    <t hangText="RFC 2525 I: &quot;Known TCP Implementation Problems&quot; (March 1999)"><vspace blankLines="1"/>
                    From the Abstract of RFC 2525 <xref target="RFC2525"/>: &quot;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.&quot;</t>

                    <t hangText="RFC 2923 I: &quot;TCP Problems with Path MTU Discovery&quot; (September 2000)">
                    <vspace blankLines="1"/>
                    From abstract: &quot;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.&quot; <xref
                        target="RFC2923"/></t>

                    <t hangText="RFC 3493 I: &quot;Basic Socket Interface Extensions for IPv6&quot; (February 2003)">
                    <vspace blankLines="1"/>
                    This document <xref target="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.</t>

                    <t hangText="RFC 6056 B: &quot;Recommendations for Transport-Protocol Port Randomization&quot; (December 2010)"><vspace blankLines="1"/>
                    This document <xref target="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).</t>

                    <t hangText="RFC 6191 B: &quot;Reducing the TIME-WAIT State Using TCP Timestamps&quot; (April 2011)">
                    <vspace blankLines="1"/>
                    This document <xref target="RFC6191"/> describes the usage
                    of the TCP Timestamps option (RFC 7323, see <xref
                        target="fundamental"/> 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.</t>

                    <t hangText="RFC 6429 I: &quot;TCP Sender Clarification for Persist Condition&quot; (December 2011)">
                    <vspace blankLines="1"/>
                    This document <xref target="RFC6429"/> clarifies the
                    actions that a TCP can take on connections that are
                    experiencing the Zero Window Probe (ZWP) condition.</t>

                    <t hangText="RFC 6897 I: &quot;Multipath TCP (MPTCP) Application Interface Considerations&quot; (March 2013)">
                    <vspace blankLines="1"/>
                    This document <xref target="RFC6897"/> characterizes the
                    impact that Multipath TCP (MPTCP) (see <xref
                        target="mptcp-may"/> 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.</t>
                </list></t>
            </section>

            <!-- Subsection: Tools and Tutorials -->
            <section title="Tools and Tutorials" anchor="tools">
                <t><list style="hanging">
                    <t hangText="RFC 1180 I: &quot;TCP/IP Tutorial&quot; (January 1991) (Errata)"><vspace blankLines="1"/>
                    This document <xref target="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.</t>

                    <t hangText="RFC 1470 I: &quot;FYI on a Network Management Tool Catalog: Tools for Monitoring and Debugging TCP/IP Internets and Interconnected Devices&quot; (June 1993)">
                    <vspace blankLines="1"/>
                    A few of the tools that this document <xref
                        target="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.</t>

                    <t hangText="RFC 2398 I: &quot;Some Testing Tools for TCP Implementors&quot; (August 1998)"><vspace blankLines="1"/>
                    This document <xref target="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.</t>

                    <t hangText="RFC 5783 I: &quot;Congestion Control in the RFC Series&quot; (February 2010)"><vspace blankLines="1"/>
                    This document <xref target="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.</t>
                </list></t>
            </section>

            <!-- Subsection: MIB Modules -->
            <section title="MIB Modules" anchor="mibs">
                <t>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.</t>

                <t><list style="hanging">
                    <t hangText="RFC 1156 S: &quot;Management Information Base for Network Management of TCP/IP-based Internets&quot; (May 1990)"><vspace blankLines="1"/>
                    This document <xref target="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.</t>

                    <t hangText="RFC 1213 S: &quot;Management Information Base for Network Management of TCP/IP-based internets: MIB-II&quot; (March 1991)"><vspace blankLines="1"/>
                    This document <xref target="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 <xref
                        target="mibs"/>).</t>

                    <t hangText="RFC 2012 S: &quot;SNMPv2 Management Information Base for the Transmission Control Protocol using SMIv2&quot; (November 1996)"><vspace blankLines="1"/>
                    In an update to RFC 1213 (see <xref target="mibs"/> of this document), this
                    document <xref target="RFC2012"/> defines the TCP MIB by
                    splitting out the TCP-specific portions. It is now
                    obsoleted by RFC 4022 (see below in <xref target="mibs"/>).</t>

                    <t hangText="RFC 2452 S: &quot;IP Version 6 Management Information Base for the Transmission Control Protocol&quot; (December 1998)"><vspace blankLines="1"/>
                    This document <xref target="RFC2452"/> augments RFC 2012
                    (see <xref target="mibs"/> 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 <xref
                        target="mibs"/>).</t>

                    <t>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.</t>

                    <t hangText="RFC 4022 S: &quot;Management Information Base for the Transmission Control Protocol (TCP)&quot; (March 2005)"><vspace blankLines="1"/>
                    This document <xref target="RFC4022"/> obsoletes RFCs 2012 and 2452
                    (see above in <xref target="mibs"/>) and specifies the current standard for
                    the TCP MIB that should be deployed.</t>

                    <t hangText="RFC 4898 S: &quot;TCP Extended Statistics MIB&quot; (May 2007)"><vspace blankLines="1"/>
                    This document <xref target="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.</t>
                </list></t>
            </section>

            <!-- Subsection: Case Studies -->
            <section title="Case Studies" anchor="studies">
                <t><list style="hanging">
                    <t hangText="RFC 700 U: &quot;A Protocol Experiment&quot; (August 1974)"><vspace blankLines="1"/>
                    This document <xref target="RFC0700"/> 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 <xref
                        target="CK73"/> to use a PDP-11 line printer via the
                    ARPANET.</t>

                    <t hangText="RFC 889 U: &quot;Internet Delay Experiments&quot; (December 1983)"><vspace blankLines="1"/>
                    This document <xref target="RFC0889"/> is a status report
                    about experiments concerning the TCP retransmission timeout
                    calculation and also provides advice for implementers.</t>

                    <t hangText="RFC 1337 I: &quot;TIME-WAIT Assassination Hazards in TCP&quot; (May 1992)"><vspace blankLines="1"/>
                    This document <xref target="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.</t>

                    <t hangText="RFC 2415 I: &quot;Simulation Studies of Increased Initial TCP Window Size&quot; (September 1998)">
                    <vspace blankLines="1"/>
                    This document <xref target="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.</t>

                    <t hangText="RFC 2416 I: &quot;When TCP Starts Up With Four Packets Into Only Three Buffers&quot; (September 1998)">
                    <vspace blankLines="1"/>
                    This document <xref target="RFC2416"/> uses simulation
                    results to clear up some concerns about using an initial
                    window of 4 segments when the network path has less
                    provisioning.<vspace blankLines="1"/></t>

                    <t hangText="RFC 2884 I: &quot;Performance Evaluation of Explicit Congestion Notification (ECN) in IP Networks&quot; (July 2000)"><vspace blankLines="1"/>
                    This document <xref target="RFC2884"/> describes
                    experimental results that show some improvements to the
                    performance of both short- and long-lived connections due
                    to ECN.</t>
                </list></t>
            </section>
        </section>

        <!-- Section: Undocumented TCP Features -->
        <section anchor="undocumented" title="Undocumented TCP Features">
            <t>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.</t>

            <t><list style="hanging">
                <t hangText="Header Prediction"><vspace blankLines="1"/>
                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 <xref target="Jacobson" /> for the full message):</t><t>
<list>
                <t>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.</t>

                <t>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 &amp; 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.</t></list></t>

                <t hangText="Forward Acknowledgement (FACK)">
                <vspace blankLines="1"/>
                FACK <xref target="MM96"/> includes an alternate algorithm for
                triggering fast retransmit <xref target="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.</t>

                <t hangText="Congestion Control for High Rate Flows">
                <vspace blankLines="1"/>
                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 <xref target="RFC3649"/>,
                Limited Slow-Start <xref
                    target="RFC3742"/>, and
                Quick-Start <xref target="RFC4782"/> (see <xref
                    target="cc-may"/> 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 <xref
                    target="CUBIC"/> (the standard TCP congestion
                control algorithm in Linux), Compound TCP <xref
                    target="CTCP"/>, and H-TCP <xref
                    target="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).</t>
            </list></t>
        </section>

        <!-- Section: Security Considerations -->
        <section title="Security Considerations">
            <t>This document introduces no new security considerations. Each
            RFC listed in this document attempts to address the security
            considerations of the specification it contains.</t>
        </section>


    </middle>

	<!-- BACK MATTER -->
    <back>

        <!-- Normative References -->
        <references title="Normative References">

            <!-- Section: Core Functionality -->

<reference anchor='RFC0793' target='http://www.rfc-editor.org/info/rfc793'>

<front>
<title abbrev='Transmission Control Protocol'>Transmission Control Protocol</title>
<author initials='J.' surname='Postel' fullname='Jon Postel'>
<organization>University of Southern California (USC)/Information Sciences Institute</organization>
<address>
<postal>
<street>4676 Admiralty Way</street>
<city>Marina del Rey</city>
<region>CA</region>
<code>90291</code>
<country>US</country></postal></address></author>
<date year='1981' day='1' month='September' /></front>

<seriesInfo name='STD' value='7' />
<seriesInfo name='RFC' value='793' />
<format type='TXT' octets='172710' target='http://www.rfc-editor.org/rfc/rfc793.txt' />
</reference>



<reference anchor='RFC1122' target='http://www.rfc-editor.org/info/rfc1122'>

<front>
<title>Requirements for Internet Hosts - Communication Layers</title>
<author initials='R.' surname='Braden' fullname='Robert Braden'>
<organization>University of Southern California (USC)/ Information Sciences Institute (ISI)</organization>
<address>
<postal>
<street>4676 Admiralty Way</street>
<city>Marina del Rey</city>
<region>CA</region>
<code>90292-6695</code>
<country>US</country></postal>
<phone>+1 213 822 1511</phone>
<email>Braden@ISI.EDU</email></address></author>
<date year='1989' month='October' /></front>

<seriesInfo name='STD' value='3' />
<seriesInfo name='RFC' value='1122' />
<format type='TXT' octets='295992' target='http://www.rfc-editor.org/rfc/rfc1122.txt' />
</reference>



<reference anchor='RFC2460' target='http://www.rfc-editor.org/info/rfc2460'>

<front>
<title abbrev='IPv6 Specification'>Internet Protocol, Version 6 (IPv6) Specification</title>
<author initials='S.E.' surname='Deering' fullname='Stephen E. Deering'>
<organization>Cisco Systems, Inc.</organization>
<address>
<postal>
<street>170 West Tasman Drive</street>
<street>San Jose</street>
<region>CA</region>
<code>95134-1706</code>
<country>USA</country></postal>
<phone>+1 408 527 8213</phone>
<facsimile>+1 408 527 8254</facsimile>
<email>deering@cisco.com</email></address></author>
<author initials='R.M.' surname='Hinden' fullname='Robert M. Hinden'>
<organization>Nokia</organization>
<address>
<postal>
<street>232 Java Drive</street>
<street>Sunnyvale</street>
<region>CA</region>
<code>94089</code>
<country>USA</country></postal>
<phone>+1 408 990 2004</phone>
<facsimile>+1 408 743 5677</facsimile>
<email>hinden@iprg.nokia.com</email></address></author>
<date year='1998' month='December' />
<area>Internet</area>
<keyword>internet protocol version 6</keyword>
<keyword>IPv6</keyword>
<abstract>
<t>
   This document specifies version 6 of the Internet Protocol (IPv6),
   also sometimes referred to as IP Next Generation or IPng.
</t></abstract></front>

<seriesInfo name='RFC' value='2460' />
<format type='TXT' octets='85490' target='http://www.rfc-editor.org/rfc/rfc2460.txt' />
<format type='HTML' octets='107357' target='http://xml.resource.org/public/rfc/html/rfc2460.html' />
<format type='XML' octets='94163' target='http://xml.resource.org/public/rfc/xml/rfc2460.xml' />
</reference>


<reference anchor='RFC2873' target='http://www.rfc-editor.org/info/rfc2873'>

<front>
<title>TCP Processing of the IPv4 Precedence Field</title>
<author initials='X.' surname='Xiao' fullname='X. Xiao'>
<organization /></author>
<author initials='A.' surname='Hannan' fullname='A. Hannan'>
<organization /></author>
<author initials='V.' surname='Paxson' fullname='V. Paxson'>
<organization /></author>
<author initials='E.' surname='Crabbe' fullname='E. Crabbe'>
<organization /></author>
<date year='2000' month='June' />
<abstract>
<t>This memo describes a conflict between TCP and DiffServ on the use of the three leftmost bits in the TOS octet of an IPv4 header. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='2873' />
<format type='TXT' octets='15565' target='http://www.rfc-editor.org/rfc/rfc2873.txt' />
</reference>




<reference anchor='RFC5681' target='http://www.rfc-editor.org/info/rfc5681'>

<front>
<title>TCP Congestion Control</title>
<author initials='M.' surname='Allman' fullname='M. Allman'>
<organization /></author>
<author initials='V.' surname='Paxson' fullname='V. Paxson'>
<organization /></author>
<author initials='E.' surname='Blanton' fullname='E. Blanton'>
<organization /></author>
<date year='2009' month='September' />
<abstract>
<t>This document defines TCP's four intertwined congestion control algorithms: slow start, congestion avoidance, fast retransmit, and fast recovery.  In addition, the document specifies how TCP should begin transmission after a relatively long idle period, as well as discussing various acknowledgment generation methods.  This document obsoletes RFC 2581. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='5681' />
<format type='TXT' octets='44339' target='http://www.rfc-editor.org/rfc/rfc5681.txt' />
</reference>

           



<reference anchor='RFC6093' target='http://www.rfc-editor.org/info/rfc6093'>

<front>
<title>On the Implementation of the TCP Urgent Mechanism</title>
<author initials='F.' surname='Gont' fullname='F. Gont'>
<organization /></author>
<author initials='A.' surname='Yourtchenko' fullname='A. Yourtchenko'>
<organization /></author>
<date year='2011' month='January' />
<abstract>
<t>This document analyzes how current TCP implementations process TCP urgent indications and how the behavior of some widely deployed middleboxes affects how end systems process urgent indications.  This document updates the relevant specifications such that they accommodate current practice in processing TCP urgent indications, raises awareness about the reliability of TCP urgent indications in the Internet, and recommends against the use of urgent indications (but provides advice to applications that do). [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='6093' />
<format type='TXT' octets='25921' target='http://www.rfc-editor.org/rfc/rfc6093.txt' />
</reference>

            



<reference anchor='RFC6298' target='http://www.rfc-editor.org/info/rfc6298'>

<front>
<title>Computing TCP's Retransmission Timer</title>
<author initials='V.' surname='Paxson' fullname='V. Paxson'>
<organization /></author>
<author initials='M.' surname='Allman' fullname='M. Allman'>
<organization /></author>
<author initials='J.' surname='Chu' fullname='J. Chu'>
<organization /></author>
<author initials='M.' surname='Sargent' fullname='M. Sargent'>
<organization /></author>
<date year='2011' month='June' />
<abstract>
<t>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.  This document obsoletes RFC 2988. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='6298' />
<format type='TXT' octets='22454' target='http://www.rfc-editor.org/rfc/rfc6298.txt' />
</reference>

            


<reference anchor='RFC6691' target='http://www.rfc-editor.org/info/rfc6691'>

<front>
<title>TCP Options and Maximum Segment Size (MSS)</title>
<author initials='D.' surname='Borman' fullname='D. Borman'>
<organization /></author>
<date year='2012' month='July' />
<abstract>
<t>This memo discusses what value to use with the TCP Maximum Segment Size (MSS) option, and updates RFC 879 and RFC 2385.  This document is not an Internet Standards Track specification; it is published for informational purposes.</t></abstract></front>

<seriesInfo name='RFC' value='6691' />
<format type='TXT' octets='16707' target='http://www.rfc-editor.org/rfc/rfc6691.txt' />
</reference>

	     <!-- Subsection: Fundamental Changes -->
	     


<reference anchor='RFC2675' target='http://www.rfc-editor.org/info/rfc2675'>

<front>
<title>IPv6 Jumbograms</title>
<author initials='D.' surname='Borman' fullname='David Borman'>
<organization>Berkeley Software Design, Inc.</organization>
<address>
<postal>
<street>4719 Weston Hills Drive</street>
<city>Eagan</city>
<region>MN</region>
<code>55123</code>
<country>US</country></postal>
<phone>+1 612 405 8194</phone>
<email>dab@bsdi.com</email></address></author>
<author initials='S.' surname='Deering' fullname='Stephen Deering'>
<organization>Cisco Systems, Inc.</organization>
<address>
<postal>
<street>170 West Tasman Drive</street>
<city>San Jose</city>
<region>CA</region>
<code>95134-1706</code>
<country>US</country></postal>
<phone>+1 408 527 8213</phone>
<email>deering@cisco.com</email></address></author>
<author initials='R.' surname='Hinden' fullname='Robert Hinden'>
<organization>Nokia</organization>
<address>
<postal>
<street>313 Fairchild Drive</street>
<city>Mountain View</city>
<region>CA</region>
<code>94043</code>
<country>US</country></postal>
<phone>+1 650 625 2004</phone>
<email>hinden@iprg.nokia.com</email></address></author>
<date year='1999' month='August' />
<abstract>
<t>A "jumbogram" is an IPv6 packet containing a payload longer than
65,535 octets. This document describes the IPv6 Jumbo Payload option, which provides the means of specifying such large payload lengths. It also describes the changes needed to TCP and UDP to make use of jumbograms.</t>
<t>Jumbograms are relevant only to IPv6 nodes that may be attached to links with a link MTU greater than 65,575 octets, and need not be implemented or understood by IPv6 nodes that do not support attachment to links with such large MTUs.</t></abstract></front>

<seriesInfo name='RFC' value='2675' />
<format type='TXT' octets='17320' target='http://www.rfc-editor.org/rfc/rfc2675.txt' />
</reference>

<!--            &ietf-tcpm-1323bis; now RFC 7323 -->



<reference anchor='RFC7323' target='http://www.rfc-editor.org/info/rfc7323'>

<front>
<title>TCP Extensions for High Performance</title>
<author initials='D.' surname='Borman' fullname='D. Borman'>
<organization /></author>
<author initials='B.' surname='Braden' fullname='B. Braden'>
<organization /></author>
<author initials='V.' surname='Jacobson' fullname='V. Jacobson'>
<organization /></author>
<author initials='R.' surname='Scheffenegger' fullname='R. Scheffenegger'>
<organization /></author>
<date year='2014' month='September' />
<abstract>
<t>This document specifies a set of TCP extensions to improve performance over paths with a large bandwidth * delay product and to provide reliable operation over very high-speed paths. It defines the TCP Window Scale (WS) option and the TCP Timestamps (TS) option and their semantics. The Window Scale option is used to support larger receive windows, while the Timestamps option can be used for at least two distinct mechanisms, Protection Against Wrapped Sequences (PAWS) and Round-Trip Time Measurement (RTTM), that are also described herein.&lt;/t>&lt;t> This document obsoletes RFC 1323 and describes changes from it.</t></abstract></front>

<seriesInfo name='RFC' value='7323' />
<format type='TXT' octets='106013' target='http://www.rfc-editor.org/rfc/rfc7323.txt' />
</reference>


            <!-- Subsection: Congestion Control Extensions -->
           


<reference anchor='RFC3168' target='http://www.rfc-editor.org/info/rfc3168'>

<front>
<title>The Addition of Explicit Congestion Notification (ECN) to IP</title>
<author initials='K.' surname='Ramakrishnan' fullname='K. Ramakrishnan'>
<organization /></author>
<author initials='S.' surname='Floyd' fullname='S. Floyd'>
<organization /></author>
<author initials='D.' surname='Black' fullname='D. Black'>
<organization /></author>
<date year='2001' month='September' />
<abstract>
<t>This memo specifies the incorporation of ECN (Explicit Congestion Notification) to TCP and IP, including ECN's use of two bits in the IP header. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='3168' />
<format type='TXT' octets='170966' target='http://www.rfc-editor.org/rfc/rfc3168.txt' />
</reference>

	    


<reference anchor='RFC3465' target='http://www.rfc-editor.org/info/rfc3465'>

<front>
<title>TCP Congestion Control with Appropriate Byte Counting (ABC)</title>
<author initials='M.' surname='Allman' fullname='M. Allman'>
<organization /></author>
<date year='2003' month='February' />
<abstract>
<t>This document proposes a small modification to the way TCP increases its congestion window.  Rather than the traditional method of increasing the congestion window by a constant amount for each arriving acknowledgment, the document suggests basing the increase on the number of previously unacknowledged bytes each ACK covers.  This change improves the performance of TCP, as well as closes a security hole TCP receivers can use to induce the sender into increasing the sending rate too rapidly.  This memo defines an Experimental Protocol for the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='3465' />
<format type='TXT' octets='23486' target='http://www.rfc-editor.org/rfc/rfc3465.txt' />
</reference>

            


<reference anchor='RFC3390' target='http://www.rfc-editor.org/info/rfc3390'>

<front>
<title>Increasing TCP's Initial Window</title>
<author initials='M.' surname='Allman' fullname='M. Allman'>
<organization /></author>
<author initials='S.' surname='Floyd' fullname='S. Floyd'>
<organization /></author>
<author initials='C.' surname='Partridge' fullname='C. Partridge'>
<organization /></author>
<date year='2002' month='October' /></front>

<seriesInfo name='RFC' value='3390' />
<format type='TXT' octets='36177' target='http://www.rfc-editor.org/rfc/rfc3390.txt' />
</reference>

            


<reference anchor='RFC6633' target='http://www.rfc-editor.org/info/rfc6633'>

<front>
<title>Deprecation of ICMP Source Quench Messages</title>
<author initials='F.' surname='Gont' fullname='F. Gont'>
<organization /></author>
<date year='2012' month='May' />
<abstract>
<t>This document formally deprecates the use of ICMP Source Quench messages by transport protocols, formally updating RFC 792, RFC 1122, and RFC 1812. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='6633' />
<format type='TXT' octets='16367' target='http://www.rfc-editor.org/rfc/rfc6633.txt' />
</reference>

            <!-- Subsection: Loss Recovery Extensions -->
            



<reference anchor='RFC2018' target='http://www.rfc-editor.org/info/rfc2018'>

<front>
<title abbrev='TCP Selective Acknowledgement Options'>TCP Selective Acknowledgment Options</title>
<author initials='M.' surname='Mathis' fullname='Matt Mathis'>
<organization>Pittsburgh Supercomputing Center</organization>
<address>
<postal>
<street>4400 Fifth Ave</street>
<street>Pittsburgh</street>
<street>PA 15213</street></postal>
<email>mathis@psc.edu</email></address></author>
<author initials='J.' surname='Mahdavi' fullname='Jamshid Mahdavi'>
<organization>Pittsburgh Supercomputing Center</organization>
<address>
<postal>
<street>4400 Fifth Ave</street>
<street>Pittsburgh</street>
<street>PA 15213</street></postal>
<email>mahdavi@psc.edu</email></address></author>
<author initials='S.' surname='Floyd' fullname='Sally Floyd'>
<organization>Lawrence Berkeley National Laboratory</organization>
<address>
<postal>
<street>One Cyclotron Road</street>
<street>Berkeley</street>
<street>CA 94720</street></postal>
<email>floyd@ee.lbl.gov</email></address></author>
<author initials='A.' surname='Romanow' fullname='Allyn Romanow'>
<organization>Sun Microsystems, Inc.</organization>
<address>
<postal>
<street>2550 Garcia Ave.</street>
<street>MPK17-202</street>
<street>Mountain View</street>
<street>CA 94043</street></postal>
<email>allyn@eng.sun.com</email></address></author>
<date year='1996' month='October' />
<area>Transport</area>
<keyword>TCP</keyword>
<keyword>acknowledgement</keyword>
<keyword>transmission control protocol</keyword>
<abstract>
<t>
   TCP may experience poor performance when multiple packets are lost
   from one window of data.   With the limited information available
   from cumulative acknowledgments, a TCP sender can only learn about a
   single lost packet per round trip time.  An aggressive sender could
   choose to retransmit packets early, but such retransmitted segments
   may have already been successfully received.
</t>
<t>
   A Selective Acknowledgment (SACK) mechanism, combined with a
   selective repeat retransmission policy, can help to overcome these
   limitations.  The receiving TCP sends back SACK packets to the sender
   informing the sender of data that has been received. The sender can
   then retransmit only the missing data segments.
</t>
<t>
   This memo proposes an implementation of SACK and discusses its
   performance and related issues.
</t></abstract></front>

<seriesInfo name='RFC' value='2018' />
<format type='TXT' octets='25671' target='http://www.rfc-editor.org/rfc/rfc2018.txt' />
<format type='XML' octets='30268' target='http://xml.resource.org/public/rfc/xml/rfc2018.xml' />
</reference>

           



<reference anchor='RFC3042' target='http://www.rfc-editor.org/info/rfc3042'>

<front>
<title>Enhancing TCP's Loss Recovery Using Limited Transmit</title>
<author initials='M.' surname='Allman' fullname='M. Allman'>
<organization /></author>
<author initials='H.' surname='Balakrishnan' fullname='H. Balakrishnan'>
<organization /></author>
<author initials='S.' surname='Floyd' fullname='S. Floyd'>
<organization /></author>
<date year='2001' month='January' />
<abstract>
<t>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. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='3042' />
<format type='TXT' octets='19885' target='http://www.rfc-editor.org/rfc/rfc3042.txt' />
</reference>

           



<reference anchor='RFC6582' target='http://www.rfc-editor.org/info/rfc6582'>

<front>
<title>The NewReno Modification to TCP's Fast Recovery Algorithm</title>
<author initials='T.' surname='Henderson' fullname='T. Henderson'>
<organization /></author>
<author initials='S.' surname='Floyd' fullname='S. Floyd'>
<organization /></author>
<author initials='A.' surname='Gurtov' fullname='A. Gurtov'>
<organization /></author>
<author initials='Y.' surname='Nishida' fullname='Y. Nishida'>
<organization /></author>
<date year='2012' month='April' />
<abstract>
<t>RFC 5681 documents the following four intertwined TCP congestion control algorithms: slow start, congestion avoidance, fast retransmit, and fast recovery.  RFC 5681 explicitly allows certain modifications of these algorithms, including modifications that use the TCP Selective Acknowledgment (SACK) option (RFC 2883), and modifications that respond to "partial acknowledgments" (ACKs that cover new data, but not all the data outstanding when loss was detected) in the absence of SACK.  This document describes a specific algorithm for responding to partial acknowledgments, referred to as "NewReno".  This response to partial acknowledgments was first proposed by Janey Hoe.  This document obsoletes RFC 3782. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='6582' />
<format type='TXT' octets='35413' target='http://www.rfc-editor.org/rfc/rfc6582.txt' />
</reference>

           



<reference anchor='RFC6675' target='http://www.rfc-editor.org/info/rfc6675'>

<front>
<title>A Conservative Loss Recovery Algorithm Based on Selective Acknowledgment (SACK) for TCP</title>
<author initials='E.' surname='Blanton' fullname='E. Blanton'>
<organization /></author>
<author initials='M.' surname='Allman' fullname='M. Allman'>
<organization /></author>
<author initials='L.' surname='Wang' fullname='L. Wang'>
<organization /></author>
<author initials='I.' surname='Jarvinen' fullname='I. Jarvinen'>
<organization /></author>
<author initials='M.' surname='Kojo' fullname='M. Kojo'>
<organization /></author>
<author initials='Y.' surname='Nishida' fullname='Y. Nishida'>
<organization /></author>
<date year='2012' month='August' />
<abstract>
<t>This document presents a conservative loss recovery algorithm for TCP that is based on the use of the selective acknowledgment (SACK) TCP option.  The algorithm presented in this document conforms to the spirit of the current congestion control specification (RFC 5681), but allows TCP senders to recover more effectively when multiple segments are lost from a single flight of data.  This document obsoletes RFC 3517 and describes changes from it. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='6675' />
<format type='TXT' octets='34484' target='http://www.rfc-editor.org/rfc/rfc6675.txt' />
</reference>


            <!-- Subsection: Detection and Prevention of Spurious Retransmissions -->
           



<reference anchor='RFC2883' target='http://www.rfc-editor.org/info/rfc2883'>

<front>
<title>An Extension to the Selective Acknowledgement (SACK) Option for TCP</title>
<author initials='S.' surname='Floyd' fullname='S. Floyd'>
<organization /></author>
<author initials='J.' surname='Mahdavi' fullname='J. Mahdavi'>
<organization /></author>
<author initials='M.' surname='Mathis' fullname='M. Mathis'>
<organization /></author>
<author initials='M.' surname='Podolsky' fullname='M. Podolsky'>
<organization /></author>
<date year='2000' month='July' />
<abstract>
<t>This note defines an extension of the Selective Acknowledgement (SACK) Option for TCP. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='2883' />
<format type='TXT' octets='35794' target='http://www.rfc-editor.org/rfc/rfc2883.txt' />
</reference>

           



<reference anchor='RFC4015' target='http://www.rfc-editor.org/info/rfc4015'>

<front>
<title>The Eifel Response Algorithm for TCP</title>
<author initials='R.' surname='Ludwig' fullname='R. Ludwig'>
<organization /></author>
<author initials='A.' surname='Gurtov' fullname='A. Gurtov'>
<organization /></author>
<date year='2005' month='February' />
<abstract>
<t>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. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='4015' />
<format type='TXT' octets='31512' target='http://www.rfc-editor.org/rfc/rfc4015.txt' />
</reference>

            



<reference anchor='RFC5682' target='http://www.rfc-editor.org/info/rfc5682'>

<front>
<title>Forward RTO-Recovery (F-RTO): An Algorithm for Detecting Spurious Retransmission Timeouts with TCP</title>
<author initials='P.' surname='Sarolahti' fullname='P. Sarolahti'>
<organization /></author>
<author initials='M.' surname='Kojo' fullname='M. Kojo'>
<organization /></author>
<author initials='K.' surname='Yamamoto' fullname='K. Yamamoto'>
<organization /></author>
<author initials='M.' surname='Hata' fullname='M. Hata'>
<organization /></author>
<date year='2009' month='September' />
<abstract>
<t>The purpose of this document is to move the F-RTO (Forward RTO-Recovery) functionality for TCP in RFC 4138 from Experimental to Standards Track status. The F-RTO support for Stream Control Transmission Protocol (SCTP) in RFC 4138 remains with Experimental status. See Appendix B for the differences between this document and RFC 4138.&lt;/t>&lt;t> Spurious retransmission timeouts cause suboptimal TCP performance because they often result in unnecessary retransmission of the last window of data. This document describes the F-RTO detection algorithm for detecting spurious TCP retransmission timeouts. F-RTO is a TCP sender-only algorithm that does not require any TCP options to operate. After retransmitting the first unacknowledged segment triggered by a timeout, the F-RTO algorithm of the TCP sender monitors the incoming acknowledgments to determine whether the timeout was spurious. It then decides whether to send new segments or retransmit unacknowledged segments. The algorithm effectively helps to avoid additional unnecessary retransmissions and thereby improves TCP performance in the case of a spurious timeout. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='5682' />
<format type='TXT' octets='47337' target='http://www.rfc-editor.org/rfc/rfc5682.txt' />
</reference>


            <!-- Subsection: Path MTU Discovery-->
           



<reference anchor='RFC1191' target='http://www.rfc-editor.org/info/rfc1191'>

<front>
<title>Path MTU discovery</title>
<author initials='J.' surname='Mogul' fullname='Jeffrey Mogul'>
<organization>Digital Equipment Corporation (DEC) , Western Research Laboratory</organization>
<address>
<postal>
<street>100 Hamilton Avenue</street>
<city>Palo Alto</city>
<region>CA</region>
<code>94301</code>
<country>US</country></postal>
<phone>+1 415 853 6643</phone>
<email>mogul@decwrl.dec.com</email></address></author>
<author initials='S.' surname='Deering' fullname='Steve Deering'>
<organization>Xerox Palo Alto Research Center</organization>
<address>
<postal>
<street>3333 Coyote Hill Road</street>
<city>Palo Alto</city>
<region>CA</region>
<code>94304</code>
<country>US</country></postal>
<phone>+1 415 494 4839</phone>
<email>deering@xerox.com</email></address></author>
<date year='1990' day='1' month='November' />
<abstract>
<t>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.</t></abstract></front>

<seriesInfo name='RFC' value='1191' />
<format type='TXT' octets='47936' target='http://www.rfc-editor.org/rfc/rfc1191.txt' />
</reference>

           



<reference anchor='RFC1981' target='http://www.rfc-editor.org/info/rfc1981'>

<front>
<title>Path MTU Discovery for IP version 6</title>
<author initials='J.' surname='McCann' fullname='Jack McCann'>
<organization>Digital Equipment Corporation</organization>
<address>
<postal>
<street>110 Spitbrook Road</street>
<street>ZKO3-3/U14</street>
<city>Nashua</city>
<region>NH</region>
<code>03062</code>
<country>US</country></postal>
<phone>+1 603 881 2608</phone>
<facsimile>+1 603 881 0120</facsimile>
<email>mccann@zk3.dec.com</email></address></author>
<author initials='S.' surname='Deering' fullname='Stephen E. Deering'>
<organization>Xerox Palo Alto Research Center</organization>
<address>
<postal>
<street>3333 Coyote Hill Road</street>
<city>Palo Alto</city>
<region>CA</region>
<code>94304</code>
<country>US</country></postal>
<phone>+1 415 812 4839</phone>
<facsimile>+1 415 812 4471</facsimile>
<email>deering@parc.xerox.com</email></address></author>
<author initials='J.' surname='Mogul' fullname='Jeffrey Mogul'>
<organization>Digital Equipment Corporation, Western Research Laboratory</organization>
<address>
<postal>
<street>250 University Avenue</street>
<city>Palo Alto</city>
<region>CA</region>
<code>94301</code>
<country>US</country></postal>
<phone>+1 415 617 3304</phone>
<email>mogul@pa.dec.com</email></address></author>
<date year='1996' month='August' />
<abstract>
<t>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.</t></abstract></front>

<seriesInfo name='RFC' value='1981' />
<format type='TXT' octets='34088' target='http://www.rfc-editor.org/rfc/rfc1981.txt' />
</reference>

            


<reference anchor='RFC4821' target='http://www.rfc-editor.org/info/rfc4821'>

<front>
<title>Packetization Layer Path MTU Discovery</title>
<author initials='M.' surname='Mathis' fullname='M. Mathis'>
<organization /></author>
<author initials='J.' surname='Heffner' fullname='J. Heffner'>
<organization /></author>
<date year='2007' month='March' />
<abstract>
<t>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. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='4821' />
<format type='TXT' octets='75665' target='http://www.rfc-editor.org/rfc/rfc4821.txt' />
</reference>


            <!-- Subsection: Header Compression-->
            



<reference anchor='RFC1144' target='http://www.rfc-editor.org/info/rfc1144'>

<front>
<title abbrev='Compressing TCP/IP Headers'>Compressing TCP/IP headers for low-speed serial links</title>
<author initials='V.' surname='Jacobson' fullname='Van Jacobson'>
<organization>Lawrence Berkeley Laboratory, Real Time Systems Group</organization>
<address>
<postal>
<street>Mail Stop 46A</street>
<city>Berkeley</city>
<region>CA</region>
<code>94720</code>
<country>US</country></postal>
<email>van@helios.ee.lbl.gov</email></address></author>
<date year='1990' day='1' month='February' /></front>

<seriesInfo name='RFC' value='1144' />
<format type='TXT' octets='120959' target='http://www.rfc-editor.org/rfc/rfc1144.txt' />
<format type='PS' octets='534729' target='http://www.rfc-editor.org/rfc/rfc1144.ps' />
<format type='PDF' octets='255616' target='http://www.rfc-editor.org/rfc/rfc1144.pdf' />
</reference>

            



<reference anchor='RFC6846' target='http://www.rfc-editor.org/info/rfc6846'>

<front>
<title>RObust Header Compression (ROHC): A Profile for TCP/IP (ROHC-TCP)</title>
<author initials='G.' surname='Pelletier' fullname='G. Pelletier'>
<organization /></author>
<author initials='K.' surname='Sandlund' fullname='K. Sandlund'>
<organization /></author>
<author initials='L-E.' surname='Jonsson' fullname='L-E. Jonsson'>
<organization /></author>
<author initials='M.' surname='West' fullname='M. West'>
<organization /></author>
<date year='2013' month='January' />
<abstract>
<t>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.&lt;/t>&lt;t> ROHC-TCP works well when used over links with significant error rates and long round-trip times. For many bandwidth-limited links where header compression is essential, such characteristics are common.&lt;/t>&lt;t> This specification obsoletes RFC 4996. It fixes a technical issue with the SACK compression and clarifies other compression methods used. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='6846' />
<format type='TXT' octets='187518' target='http://www.rfc-editor.org/rfc/rfc6846.txt' />
</reference>


            <!-- Subsection: Defending Spoofing and Flooding Attacks -->
           


<reference anchor='RFC4953' target='http://www.rfc-editor.org/info/rfc4953'>

<front>
<title>Defending TCP Against Spoofing Attacks</title>
<author initials='J.' surname='Touch' fullname='J. Touch'>
<organization /></author>
<date year='2007' month='July' />
<abstract>
<t>Recent analysis of potential attacks on core Internet infrastructure indicates an increased vulnerability of TCP connections to spurious resets (RSTs), sent with forged IP source addresses (spoofing).  TCP has always been susceptible to such RST spoofing attacks, which were indirectly protected by checking that the RST sequence number was inside the current receive window, as well as via the obfuscation of TCP endpoint and port numbers.  For pairs of well-known endpoints often over predictable port pairs, such as BGP or between web servers and well-known large-scale caches, increases in the path bandwidth-delay product of a connection have sufficiently increased the receive window space that off-path third parties can brute-force generate a viable RST sequence number.  The susceptibility to attack increases with the square of the bandwidth, and thus presents a significant vulnerability for recent high-speed networks.  This document addresses this 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.  This document focuses on vulnerabilities due to spoofed TCP segments, and includes a discussion of related ICMP spoofing attacks on TCP connections.  This memo provides information for the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='4953' />
<format type='TXT' octets='72756' target='http://www.rfc-editor.org/rfc/rfc4953.txt' />
</reference>

           


<reference anchor='RFC4987' target='http://www.rfc-editor.org/info/rfc4987'>

<front>
<title>TCP SYN Flooding Attacks and Common Mitigations</title>
<author initials='W.' surname='Eddy' fullname='W. Eddy'>
<organization /></author>
<date year='2007' month='August' />
<abstract>
<t>This document describes TCP SYN flooding attacks, which have been well-known to the community for several years.  Various countermeasures against these attacks, and the trade-offs of each, are described.  This document archives explanations of the attack and common defense techniques for the benefit of TCP implementers and administrators of TCP servers or networks, but does not make any standards-level recommendations.  This memo provides information for the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='4987' />
<format type='TXT' octets='48753' target='http://www.rfc-editor.org/rfc/rfc4987.txt' />
</reference>

           


<reference anchor='RFC5461' target='http://www.rfc-editor.org/info/rfc5461'>

<front>
<title>TCP's Reaction to Soft Errors</title>
<author initials='F.' surname='Gont' fullname='F. Gont'>
<organization /></author>
<date year='2009' month='February' />
<abstract>
<t>This document describes a non-standard, but widely implemented, modification to TCP's handling of ICMP soft error messages that rejects pending connection-requests when those error messages are received.  This behavior reduces the likelihood of long delays between connection-establishment attempts that may arise in a number of scenarios, including one in which dual-stack nodes that have IPv6 enabled by default are deployed in IPv4 or mixed IPv4 and IPv6 environments.  This memo provides information for the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='5461' />
<format type='TXT' octets='31749' target='http://www.rfc-editor.org/rfc/rfc5461.txt' />
</reference>

           


<reference anchor='RFC5925' target='http://www.rfc-editor.org/info/rfc5925'>

<front>
<title>The TCP Authentication Option</title>
<author initials='J.' surname='Touch' fullname='J. Touch'>
<organization /></author>
<author initials='A.' surname='Mankin' fullname='A. Mankin'>
<organization /></author>
<author initials='R.' surname='Bonica' fullname='R. Bonica'>
<organization /></author>
<date year='2010' month='June' />
<abstract>
<t>This document specifies the TCP Authentication Option (TCP-AO), which obsoletes the TCP MD5 Signature option of RFC 2385 (TCP MD5).  TCP-AO specifies the use of stronger Message Authentication Codes (MACs), protects against replays even for long-lived TCP connections, and provides more details on the association of security with TCP connections than TCP MD5.  TCP-AO is compatible with either a static Master Key Tuple (MKT) configuration or an external, out-of-band MKT management mechanism; in either case, TCP-AO also protects connections when using the same MKT across repeated instances of a connection, using traffic keys derived from the MKT, and coordinates MKT changes between endpoints.  The result is intended to support current infrastructure uses of TCP MD5, such as to protect long-lived connections (as used, e.g., in BGP and LDP), and to support a larger set of MACs with minimal other system and operational changes.  TCP-AO uses a different option identifier than TCP MD5, even though TCP-AO and TCP MD5 are never permitted to be used simultaneously.  TCP-AO supports IPv6, and is fully compatible with the proposed requirements for the replacement of TCP MD5. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='5925' />
<format type='TXT' octets='106174' target='http://www.rfc-editor.org/rfc/rfc5925.txt' />
</reference>

           



<reference anchor='RFC5926' target='http://www.rfc-editor.org/info/rfc5926'>

<front>
<title>Cryptographic Algorithms for the TCP Authentication Option (TCP-AO)</title>
<author initials='G.' surname='Lebovitz' fullname='G. Lebovitz'>
<organization /></author>
<author initials='E.' surname='Rescorla' fullname='E. Rescorla'>
<organization /></author>
<date year='2010' month='June' />
<abstract>
<t>The TCP Authentication Option (TCP-AO) relies on security algorithms to provide authentication between two end-points.  There are many such algorithms available, and two TCP-AO systems cannot interoperate unless they are using the same algorithms.  This document specifies the algorithms and attributes that can be used in TCP-AO's current manual keying mechanism and provides the interface for future message authentication codes (MACs). [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='5926' />
<format type='TXT' octets='31010' target='http://www.rfc-editor.org/rfc/rfc5926.txt' />
</reference>

           


<reference anchor='RFC5927' target='http://www.rfc-editor.org/info/rfc5927'>

<front>
<title>ICMP Attacks against TCP</title>
<author initials='F.' surname='Gont' fullname='F. Gont'>
<organization /></author>
<date year='2010' month='July' />
<abstract>
<t>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.  This document is not an Internet Standards Track specification; it is published for informational purposes.</t></abstract></front>

<seriesInfo name='RFC' value='5927' />
<format type='TXT' octets='87744' target='http://www.rfc-editor.org/rfc/rfc5927.txt' />
</reference>

           


<reference anchor='RFC5961' target='http://www.rfc-editor.org/info/rfc5961'>

<front>
<title>Improving TCP's Robustness to Blind In-Window Attacks</title>
<author initials='A.' surname='Ramaiah' fullname='A. Ramaiah'>
<organization /></author>
<author initials='R.' surname='Stewart' fullname='R. Stewart'>
<organization /></author>
<author initials='M.' surname='Dalal' fullname='M. Dalal'>
<organization /></author>
<date year='2010' month='August' />
<abstract>
<t>TCP has historically been considered to be protected against spoofed off-path packet injection attacks by relying on the fact that it is difficult to guess the 4-tuple (the source and destination IP addresses and the source and destination ports) in combination with the 32-bit sequence number(s).  A combination of increasing window sizes and applications using longer-term connections (e.g., H-323 or Border Gateway Protocol (BGP) [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='5961' />
<format type='TXT' octets='44717' target='http://www.rfc-editor.org/rfc/rfc5961.txt' />
</reference>

           


<reference anchor='RFC6528' target='http://www.rfc-editor.org/info/rfc6528'>

<front>
<title>Defending against Sequence Number Attacks</title>
<author initials='F.' surname='Gont' fullname='F. Gont'>
<organization /></author>
<author initials='S.' surname='Bellovin' fullname='S. Bellovin'>
<organization /></author>
<date year='2012' month='February' />
<abstract>
<t>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. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='6528' />
<format type='TXT' octets='26917' target='http://www.rfc-editor.org/rfc/rfc6528.txt' />
</reference>


            <!-- Subsection: Architectural Guidelines -->
           


<reference anchor='RFC2140' target='http://www.rfc-editor.org/info/rfc2140'>

<front>
<title abbrev='TCP Control Block'>TCP Control Block Interdependence</title>
<author initials='J.' surname='Touch' fullname='Joe Touch'>
<organization>University of Southern California/Information Sciences Institute</organization>
<address>
<postal>
<street>4676 Admiralty Way</street>
<street>Marina del Rey</street>
<street>CA 90292-6695</street>
<country>USA</country></postal>
<phone>+1 310-822-1511 x151</phone>
<facsimile>+1 310-823-6714</facsimile>
<email>touch@isi.edu</email>
<uri>http://www.isi.edu/~touch</uri></address></author>
<date year='1997' month='April' />
<area>Transport</area>
<keyword>TCP</keyword>
<keyword>congestion</keyword>
<keyword>transmission control protocol</keyword>
<abstract>
<t>
   This memo makes the case for interdependent TCP control blocks, where
   part of the TCP state is shared among similar concurrent connections,
   or across similar connection instances. TCP state includes a
   combination of parameters, such as connection state, current round-
   trip time estimates, congestion control information, and process
   information.  This state is currently maintained on a per-connection
   basis in the TCP control block, but should be shared across
   connections to the same host. The goal is to improve transient
   transport performance, while maintaining backward-compatibility with
   existing implementations.
</t>
<t>
   This document is a product of the LSAM project at ISI.
</t></abstract></front>

<seriesInfo name='RFC' value='2140' />
<format type='TXT' octets='26032' target='http://www.rfc-editor.org/rfc/rfc2140.txt' />
<format type='HTML' octets='39449' target='http://xml.resource.org/public/rfc/html/rfc2140.html' />
<format type='XML' octets='23381' target='http://xml.resource.org/public/rfc/xml/rfc2140.xml' />
</reference>

           


<reference anchor='RFC3124' target='http://www.rfc-editor.org/info/rfc3124'>

<front>
<title>The Congestion Manager</title>
<author initials='H.' surname='Balakrishnan' fullname='H. Balakrishnan'>
<organization /></author>
<author initials='S.' surname='Seshan' fullname='S. Seshan'>
<organization /></author>
<date year='2001' month='June' />
<abstract>
<t>This document describes the Congestion Manager (CM), an end-system module that enables an ensemble of multiple concurrent streams from a sender destined to the same receiver and sharing the same congestion properties to perform proper congestion avoidance and control, and allows applications to easily adapt to network congestion. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='3124' />
<format type='TXT' octets='53591' target='http://www.rfc-editor.org/rfc/rfc3124.txt' />
</reference>


            <!-- Subsection: Fundamental Changes -->
 <!--           &ietf-tcpm-fastopen;  Companion Document -->



<reference anchor='RFC7413' target='http://www.rfc-editor.org/info/rfc7413'>
<front>
<title>TCP Fast Open</title>

<author initials='Y' surname='Cheng' fullname='Yuchung Cheng'>
    <organization />
</author>

<author initials='J' surname='Chu' fullname='Jerry Chu'>
    <organization />
</author>

<author initials='S' surname='Radhakrishnan' fullname='Sivasankar Radhakrishnan'>
    <organization />
</author>

<author initials='A' surname='Jain' fullname='Arvind Jain'>
    <organization />
</author>

<date month='December' year='2014' />

<abstract><t>This document describes an experimental TCP mechanism TCP Fast Open (TFO). TFO allows data to be carried in the SYN and SYN-ACK packets and consumed by the receiving end during the initial connection handshake, and saves up to one full round trip time (RTT) compared to the standard TCP, which requires a three-way handshake (3WHS) to complete before data can be exchanged. However TFO deviates from the standard TCP semantics since the data in the SYN could be replayed to an application in some rare circumstances. Applications should not use TFO unless they can tolerate this issue detailed in the Applicability section.</t></abstract>

</front>

<seriesInfo name='RFC' value='7413' />

</reference>




            <!-- Subsection: Congestion Control Extensions -->
           


<reference anchor='RFC2861' target='http://www.rfc-editor.org/info/rfc2861'>

<front>
<title>TCP Congestion Window Validation</title>
<author initials='M.' surname='Handley' fullname='M. Handley'>
<organization /></author>
<author initials='J.' surname='Padhye' fullname='J. Padhye'>
<organization /></author>
<author initials='S.' surname='Floyd' fullname='S. Floyd'>
<organization /></author>
<date year='2000' month='June' />
<abstract>
<t>This document describes a simple modification to TCP's congestion control algorithms to decay the congestion window cwnd after the transition from a sufficiently-long application-limited period, while using the slow-start threshold ssthresh to save information about the previous value of the congestion window.  This memo defines an Experimental Protocol for the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='2861' />
<format type='TXT' octets='26993' target='http://www.rfc-editor.org/rfc/rfc2861.txt' />
</reference>

           


<reference anchor='RFC3540' target='http://www.rfc-editor.org/info/rfc3540'>

<front>
<title>Robust Explicit Congestion Notification (ECN) Signaling with Nonces</title>
<author initials='N.' surname='Spring' fullname='N. Spring'>
<organization /></author>
<author initials='D.' surname='Wetherall' fullname='D. Wetherall'>
<organization /></author>
<author initials='D.' surname='Ely' fullname='D. Ely'>
<organization /></author>
<date year='2003' month='June' />
<abstract>
<t>This note describes the Explicit Congestion Notification (ECN)-nonce, an optional addition to ECN that protects against accidental or malicious concealment of marked packets from the TCP sender.  It improves the robustness of congestion control by preventing receivers from exploiting ECN to gain an unfair share of network bandwidth.  The ECN-nonce uses the two ECN-Capable Transport (ECT)codepoints in the ECN field of the IP header, and requires a flag in the TCP header.  It is computationally efficient for both routers and hosts.  This memo defines an Experimental Protocol for the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='3540' />
<format type='TXT' octets='30081' target='http://www.rfc-editor.org/rfc/rfc3540.txt' />
</reference>

           


<reference anchor='RFC3649' target='http://www.rfc-editor.org/info/rfc3649'>

<front>
<title>HighSpeed TCP for Large Congestion Windows</title>
<author initials='S.' surname='Floyd' fullname='S. Floyd'>
<organization /></author>
<date year='2003' month='December' />
<abstract>
<t>The proposals in this document are experimental.  While they may be deployed in the current Internet, they do not represent a consensus that this is the best method for high-speed congestion control.  In particular, we note that alternative experimental proposals are likely to be forthcoming, and it is not well understood how the proposals in this document will interact with such alternative proposals.  This document proposes HighSpeed TCP, a modification to TCP's congestion control mechanism for use with TCP connections with large congestion windows.  The congestion control mechanisms of the current Standard TCP constrains the congestion windows that can be achieved by TCP in realistic environments.  For example, for a Standard TCP connection with 1500-byte packets and a 100 ms round-trip time, achieving a steady-state throughput of 10 Gbps would require an average congestion window of 83,333 segments, and a packet drop rate of at most one congestion event every 5,000,000,000 packets (or equivalently, at most one congestion event every 1 2/3 hours).  This is widely acknowledged as an unrealistic constraint.  To address his limitation of TCP, this document proposes HighSpeed TCP, and solicits experimentation and feedback from the wider community.</t></abstract></front>

<seriesInfo name='RFC' value='3649' />
<format type='TXT' octets='79801' target='http://www.rfc-editor.org/rfc/rfc3649.txt' />
</reference>

            


<reference anchor='RFC3742' target='http://www.rfc-editor.org/info/rfc3742'>

<front>
<title>Limited Slow-Start for TCP with Large Congestion Windows</title>
<author initials='S.' surname='Floyd' fullname='S. Floyd'>
<organization /></author>
<date year='2004' month='March' />
<abstract>
<t>This document describes an optional modification for TCP's slow-start for use with TCP connections with large congestion windows.  For TCP connections that are able to use congestion windows of thousands (or tens of thousands) of MSS-sized segments (for MSS the sender's MAXIMUM SEGMENT SIZE), the current slow-start procedure can result in increasing the congestion window by thousands of segments in a single round-trip time.  Such an increase can easily result in thousands of packets being dropped in one round-trip time.  This is often counter-productive for the TCP flow itself, and is also hard on the rest of the traffic sharing the congested link.  This note describes Limited Slow-Start as an optional mechanism for limiting the number of segments by which the congestion window is increased for one window of data during slow-start, in order to improve performance for TCP connections with large congestion windows.  This memo defines an Experimental Protocol for the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='3742' />
<format type='TXT' octets='14840' target='http://www.rfc-editor.org/rfc/rfc3742.txt' />
</reference>

            


<reference anchor='RFC4782' target='http://www.rfc-editor.org/info/rfc4782'>

<front>
<title>Quick-Start for TCP and IP</title>
<author initials='S.' surname='Floyd' fullname='S. Floyd'>
<organization /></author>
<author initials='M.' surname='Allman' fullname='M. Allman'>
<organization /></author>
<author initials='A.' surname='Jain' fullname='A. Jain'>
<organization /></author>
<author initials='P.' surname='Sarolahti' fullname='P. Sarolahti'>
<organization /></author>
<date year='2007' month='January' />
<abstract>
<t>This document specifies an optional Quick-Start mechanism for transport protocols, in cooperation with routers, to determine an allowed sending rate at the start and, at times, in the middle of a data transfer (e.g., after an idle period). While Quick-Start is designed to be used by a range of transport protocols, in this document we only specify its use with TCP. Quick-Start is designed to allow connections to use higher sending rates when there is significant unused bandwidth along the path, and the sender and all of the routers along the path approve the Quick-Start Request.&lt;/t>&lt;t> This document describes many paths where Quick-Start Requests would not be approved. These paths include all paths containing routers, IP tunnels, MPLS paths, and the like that do not support Quick- Start. These paths also include paths with routers or middleboxes that drop packets containing IP options. Quick-Start Requests could be difficult to approve over paths that include multi-access layer- two networks. This document also describes environments where the Quick-Start process could fail with false positives, with the sender incorrectly assuming that the Quick-Start Request had been approved by all of the routers along the path. As a result of these concerns, and as a result of the difficulties and seeming absence of motivation for routers, such as core routers to deploy Quick-Start, Quick-Start is being proposed as a mechanism that could be of use in controlled environments, and not as a mechanism that would be intended or appropriate for ubiquitous deployment in the global Internet. This memo defines an Experimental Protocol for the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='4782' />
<format type='TXT' octets='214489' target='http://www.rfc-editor.org/rfc/rfc4782.txt' />
</reference>

            


<reference anchor='RFC5562' target='http://www.rfc-editor.org/info/rfc5562'>

<front>
<title>Adding Explicit Congestion Notification (ECN) Capability to TCP's SYN/ACK Packets</title>
<author initials='A.' surname='Kuzmanovic' fullname='A. Kuzmanovic'>
<organization /></author>
<author initials='A.' surname='Mondal' fullname='A. Mondal'>
<organization /></author>
<author initials='S.' surname='Floyd' fullname='S. Floyd'>
<organization /></author>
<author initials='K.' surname='Ramakrishnan' fullname='K. Ramakrishnan'>
<organization /></author>
<date year='2009' month='June' />
<abstract>
<t>The proposal in this document is Experimental. While it may be deployed in the current Internet, it does not represent a consensus that this is the best possible mechanism for the use of Explicit Congestion Notification (ECN) in TCP SYN/ACK packets.&lt;/t>&lt;t> This document describes an optional, experimental modification to RFC 3168 to allow TCP SYN/ACK packets to be ECN-Capable. For TCP, RFC 3168 specifies setting an ECN-Capable codepoint on data packets, but not on SYN and SYN/ACK packets. However, because of the high cost to the TCP transfer of having a SYN/ACK packet dropped, with the resulting retransmission timeout, this document describes the use of ECN for the SYN/ACK packet itself, when sent in response to a SYN packet with the two ECN flags set in the TCP header, indicating a willingness to use ECN. Setting the initial TCP SYN/ACK packet as ECN-Capable can be of great benefit to the TCP connection, avoiding the severe penalty of a retransmission timeout for a connection that has not yet started placing a load on the network. The TCP responder (the sender of the SYN/ACK packet) must reply to a report of an ECN-marked SYN/ACK packet by resending a SYN/ACK packet that is not ECN-Capable. If the resent SYN/ACK packet is acknowledged, then the TCP responder reduces its initial congestion window from two, three, or four segments to one segment, thereby reducing the subsequent load from that connection on the network. If instead the SYN/ACK packet is dropped, or for some other reason the TCP responder does not receive an acknowledgement in the specified time, the TCP responder follows TCP standards for a dropped SYN/ACK packet (setting the retransmission timer). This memo defines an Experimental Protocol for the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='5562' />
<format type='TXT' octets='77110' target='http://www.rfc-editor.org/rfc/rfc5562.txt' />
</reference>

            


<reference anchor='RFC5690' target='http://www.rfc-editor.org/info/rfc5690'>

<front>
<title>Adding Acknowledgement Congestion Control to TCP</title>
<author initials='S.' surname='Floyd' fullname='S. Floyd'>
<organization /></author>
<author initials='A.' surname='Arcia' fullname='A. Arcia'>
<organization /></author>
<author initials='D.' surname='Ros' fullname='D. Ros'>
<organization /></author>
<author initials='J.' surname='Iyengar' fullname='J. Iyengar'>
<organization /></author>
<date year='2010' month='February' />
<abstract>
<t>This document describes a possible congestion control mechanism for acknowledgement (ACKs) traffic in TCP.  The document specifies an end-to-end acknowledgement congestion control mechanism for TCP that uses participation from both TCP hosts: the TCP data sender and the TCP data receiver.  The TCP data sender detects lost or Explicit Congestion Notification (ECN)-marked ACK packets, and tells the TCP data receiver the ACK Ratio R to use to respond to the congestion on the reverse path from the data receiver to the data sender.  The TCP data receiver sends roughly one ACK packet for every R data packets received.  This mechanism is based on the acknowledgement congestion control in the Datagram Congestion Control Protocol's (DCCP's) Congestion Control Identifier (CCID) 2.  This acknowledgement congestion control mechanism is being specified for further evaluation by the network community.  This document is not an Internet Standards Track specification; it is published for informational purposes.</t></abstract></front>

<seriesInfo name='RFC' value='5690' />
<format type='TXT' octets='83437' target='http://www.rfc-editor.org/rfc/rfc5690.txt' />
</reference>

            


<reference anchor='RFC6928' target='http://www.rfc-editor.org/info/rfc6928'>

<front>
<title>Increasing TCP's Initial Window</title>
<author initials='J.' surname='Chu' fullname='J. Chu'>
<organization /></author>
<author initials='N.' surname='Dukkipati' fullname='N. Dukkipati'>
<organization /></author>
<author initials='Y.' surname='Cheng' fullname='Y. Cheng'>
<organization /></author>
<author initials='M.' surname='Mathis' fullname='M. Mathis'>
<organization /></author>
<date year='2013' month='April' />
<abstract>
<t>This document proposes an experiment to increase the permitted TCP initial window (IW) from between 2 and 4 segments, as specified in RFC 3390, to 10 segments with a fallback to the existing recommendation when performance issues are detected.  It discusses the motivation behind the increase, the advantages and disadvantages of the higher initial window, and presents results from several large-scale experiments showing that the higher initial window improves the overall performance of many web services without resulting in a congestion collapse.  The document closes with a discussion of usage and deployment for further experimental purposes recommended by the IETF TCP Maintenance and Minor Extensions (TCPM) working group.</t></abstract></front>

<seriesInfo name='RFC' value='6928' />
<format type='TXT' octets='56523' target='http://www.rfc-editor.org/rfc/rfc6928.txt' />
</reference>


            <!-- Subsection: Loss Recovery Extensions -->
            


<reference anchor='RFC5827' target='http://www.rfc-editor.org/info/rfc5827'>

<front>
<title>Early Retransmit for TCP and Stream Control Transmission Protocol (SCTP)</title>
<author initials='M.' surname='Allman' fullname='M. Allman'>
<organization /></author>
<author initials='K.' surname='Avrachenkov' fullname='K. Avrachenkov'>
<organization /></author>
<author initials='U.' surname='Ayesta' fullname='U. Ayesta'>
<organization /></author>
<author initials='J.' surname='Blanton' fullname='J. Blanton'>
<organization /></author>
<author initials='P.' surname='Hurtig' fullname='P. Hurtig'>
<organization /></author>
<date year='2010' month='May' />
<abstract>
<t>This document proposes a new mechanism for TCP and Stream Control Transmission Protocol (SCTP) that can be used to recover lost segments when a connection's congestion window is small.  The "Early Retransmit" mechanism allows the transport to reduce, in certain special circumstances, the number of duplicate acknowledgments required to trigger a fast retransmission.  This allows the transport to use fast retransmit to recover segment losses that would otherwise require a lengthy retransmission timeout. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='5827' />
<format type='TXT' octets='35383' target='http://www.rfc-editor.org/rfc/rfc5827.txt' />
</reference>

            


<reference anchor='RFC6069' target='http://www.rfc-editor.org/info/rfc6069'>

<front>
<title>Making TCP More Robust to Long Connectivity Disruptions (TCP-LCD)</title>
<author initials='A.' surname='Zimmermann' fullname='A. Zimmermann'>
<organization /></author>
<author initials='A.' surname='Hannemann' fullname='A. Hannemann'>
<organization /></author>
<date year='2010' month='December' />
<abstract>
<t>Disruptions in end-to-end path connectivity, which last longer than one retransmission timeout, cause suboptimal TCP performance. The reason for this performance degradation is that TCP interprets segment loss induced by long connectivity disruptions as a sign of congestion, resulting in repeated retransmission timer backoffs. This, in turn, leads to a delayed detection of the re-establishment of the connection since TCP waits for the next retransmission timeout before it attempts a retransmission.&lt;/t>&lt;t> This document proposes an algorithm to make TCP more robust to long connectivity disruptions (TCP-LCD). It describes how standard ICMP messages can be exploited during timeout-based loss recovery to disambiguate true congestion loss from non-congestion loss caused by connectivity disruptions. Moreover, a reversion strategy of the retransmission timer is specified that enables a more prompt detection of whether or not the connectivity to a previously disconnected peer node has been restored. TCP-LCD is a TCP sender- only modification that effectively improves TCP performance in the case of connectivity disruptions. This document defines an Experimental Protocol for the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='6069' />
<format type='TXT' octets='59600' target='http://www.rfc-editor.org/rfc/rfc6069.txt' />
</reference>

            


<reference anchor='RFC6937' target='http://www.rfc-editor.org/info/rfc6937'>

<front>
<title>Proportional Rate Reduction for TCP</title>
<author initials='M.' surname='Mathis' fullname='M. Mathis'>
<organization /></author>
<author initials='N.' surname='Dukkipati' fullname='N. Dukkipati'>
<organization /></author>
<author initials='Y.' surname='Cheng' fullname='Y. Cheng'>
<organization /></author>
<date year='2013' month='May' />
<abstract>
<t>This document describes an experimental Proportional Rate Reduction (PRR) algorithm as an alternative to the widely deployed Fast Recovery and Rate-Halving algorithms.  These algorithms determine the amount of data sent by TCP during loss recovery.  PRR minimizes excess window adjustments, and the actual window size at the end of recovery will be as close as possible to the ssthresh, as determined by the congestion control algorithm.</t></abstract></front>

<seriesInfo name='RFC' value='6937' />
<format type='TXT' octets='39437' target='http://www.rfc-editor.org/rfc/rfc6937.txt' />
</reference>


            <!-- Subsection: Detection and Prevention of Spurious Retransmissions -->
           


<reference anchor='RFC3522' target='http://www.rfc-editor.org/info/rfc3522'>

<front>
<title>The Eifel Detection Algorithm for TCP</title>
<author initials='R.' surname='Ludwig' fullname='R. Ludwig'>
<organization /></author>
<author initials='M.' surname='Meyer' fullname='M. Meyer'>
<organization /></author>
<date year='2003' month='April' />
<abstract>
<t>The Eifel detection algorithm allows a TCP sender to detect a posteriori whether it has entered loss recovery unnecessarily.  It requires that the TCP Timestamps option defined in RFC 1323 be enabled for a connection.  The Eifel detection algorithm makes use of the fact that the TCP Timestamps option eliminates the retransmission ambiguity in TCP.  Based on the timestamp of the first acceptable ACK that arrives during loss recovery, it decides whether loss recovery was entered unnecessarily.  The Eifel detection algorithm provides a basis for future TCP enhancements.  This includes response algorithms to back out of loss recovery by restoring a TCP sender's congestion control state.  This memo defines an Experimental Protocol for the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='3522' />
<format type='TXT' octets='33731' target='http://www.rfc-editor.org/rfc/rfc3522.txt' />
</reference>

           


<reference anchor='RFC3708' target='http://www.rfc-editor.org/info/rfc3708'>

<front>
<title>Using TCP Duplicate Selective Acknowledgement (DSACKs) and Stream Control Transmission Protocol (SCTP) Duplicate Transmission Sequence Numbers (TSNs) to Detect Spurious Retransmissions</title>
<author initials='E.' surname='Blanton' fullname='E. Blanton'>
<organization /></author>
<author initials='M.' surname='Allman' fullname='M. Allman'>
<organization /></author>
<date year='2004' month='February' />
<abstract>
<t>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.  This memo defines an Experimental Protocol for the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='3708' />
<format type='TXT' octets='20818' target='http://www.rfc-editor.org/rfc/rfc3708.txt' />
</reference>

           


<reference anchor='RFC4653' target='http://www.rfc-editor.org/info/rfc4653'>

<front>
<title>Improving the Robustness of TCP to Non-Congestion Events</title>
<author initials='S.' surname='Bhandarkar' fullname='S. Bhandarkar'>
<organization /></author>
<author initials='A.L.N.' surname='Reddy' fullname='A.L.N. Reddy'>
<organization /></author>
<author initials='M.' surname='Allman' fullname='M. Allman'>
<organization /></author>
<author initials='E.' surname='Blanton' fullname='E. Blanton'>
<organization /></author>
<date year='2006' month='August' />
<abstract>
<t>This document specifies Non-Congestion Robustness (NCR) for TCP.  In the absence of explicit congestion notification from the network, TCP uses loss as an indication of congestion.  One of the ways TCP detects loss is using the arrival of three duplicate acknowledgments.  However, this heuristic is not always correct, notably in the case when network paths reorder segments (for whatever reason), resulting in degraded performance.  TCP-NCR is designed to mitigate this degraded performance by increasing the number of duplicate acknowledgments required to trigger loss recovery, based on the current state of the connection, in an effort to better disambiguate true segment loss from segment reordering.  This document specifies the changes to TCP, as well as the costs and benefits of these modifications.  This memo defines an Experimental Protocol for the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='4653' />
<format type='TXT' octets='42268' target='http://www.rfc-editor.org/rfc/rfc4653.txt' />
</reference>

            <!-- Subsection: TCP Timeouts -->
           


<reference anchor='RFC5482' target='http://www.rfc-editor.org/info/rfc5482'>

<front>
<title>TCP User Timeout Option</title>
<author initials='L.' surname='Eggert' fullname='L. Eggert'>
<organization /></author>
<author initials='F.' surname='Gont' fullname='F. Gont'>
<organization /></author>
<date year='2009' month='March' />
<abstract>
<t>The TCP user timeout controls how long transmitted data may remain unacknowledged before a connection is forcefully closed.  It is a local, per-connection parameter.  This document specifies a new TCP option -- 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.  Increasing the user timeouts on both ends of a TCP connection allows it to survive extended periods without end-to-end connectivity.  Decreasing the user timeouts allows busy servers to explicitly notify their clients that they will maintain the connection state only for a short time without connectivity. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='5482' />
<format type='TXT' octets='33568' target='http://www.rfc-editor.org/rfc/rfc5482.txt' />
</reference>


            <!-- Subsection: Multipath TCP -->
           


<reference anchor='RFC6356' target='http://www.rfc-editor.org/info/rfc6356'>

<front>
<title>Coupled Congestion Control for Multipath Transport Protocols</title>
<author initials='C.' surname='Raiciu' fullname='C. Raiciu'>
<organization /></author>
<author initials='M.' surname='Handley' fullname='M. Handley'>
<organization /></author>
<author initials='D.' surname='Wischik' fullname='D. Wischik'>
<organization /></author>
<date year='2011' month='October' />
<abstract>
<t>Often endpoints are connected by multiple paths, but communications are usually restricted to a single path per connection. Resource usage within the network would be more efficient were it possible for these multiple paths to be used concurrently. Multipath TCP is a proposal to achieve multipath transport in TCP.&lt;/t>&lt;t> New congestion control algorithms are needed for multipath transport protocols such as Multipath TCP, as single path algorithms have a series of issues in the multipath context. One of the prominent problems is that running existing algorithms such as standard TCP independently on each path would give the multipath flow more than its fair share at a bottleneck link traversed by more than one of its subflows. Further, it is desirable that a source with multiple paths available will transfer more traffic using the least congested of the paths, achieving a property called "resource pooling" where a bundle of links effectively behaves like one shared link with bigger capacity. This would increase the overall efficiency of the network and also its robustness to failure.&lt;/t>&lt;t> This document presents a congestion control algorithm that 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 a practical algorithm that is fair to TCP at bottlenecks while moving traffic away from congested links. This document defines an Experimental Protocol for the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='6356' />
<format type='TXT' octets='27961' target='http://www.rfc-editor.org/rfc/rfc6356.txt' />
</reference>

           


<reference anchor='RFC6824' target='http://www.rfc-editor.org/info/rfc6824'>

<front>
<title>TCP Extensions for Multipath Operation with Multiple Addresses</title>
<author initials='A.' surname='Ford' fullname='A. Ford'>
<organization /></author>
<author initials='C.' surname='Raiciu' fullname='C. Raiciu'>
<organization /></author>
<author initials='M.' surname='Handley' fullname='M. Handley'>
<organization /></author>
<author initials='O.' surname='Bonaventure' fullname='O. Bonaventure'>
<organization /></author>
<date year='2013' month='January' />
<abstract>
<t>TCP/IP communication is currently restricted to a single path per connection, yet multiple paths often exist between peers. The simultaneous use of these multiple paths for a TCP/IP session would improve resource usage within the network and, thus, improve user experience through higher throughput and improved resilience to network failure.&lt;/t>&lt;t> Multipath TCP provides the ability to simultaneously use multiple paths between peers. This document presents a set of extensions to traditional TCP to support multipath operation. The protocol offers the same type of service to applications as TCP (i.e., reliable bytestream), and it provides the components necessary to establish and use multiple TCP flows across potentially disjoint paths. This document defines an Experimental Protocol for the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='6824' />
<format type='TXT' octets='164866' target='http://www.rfc-editor.org/rfc/rfc6824.txt' />
</reference>


            <!-- Section: TCP Parameters at IANA -->
           


<reference anchor='RFC2780' target='http://www.rfc-editor.org/info/rfc2780'>

<front>
<title abbrev='IANA Assignments'>IANA Allocation Guidelines For Values In the Internet Protocol and Related Headers</title>
<author initials='S.' surname='Bradner' fullname='Scott Bradner'>
<organization>Harvard University</organization>
<address>
<postal>
<street />
<city>Cambridge</city>
<region>MA</region>
<code>02138</code>
<country>US</country></postal>
<phone>+1 617 495 3864</phone>
<email>sob@harvard.edu</email></address></author>
<author initials='V.' surname='Paxson' fullname='Vern Paxson'>
<organization>ACIRI / ICSI</organization>
<address>
<postal>
<street>1947 Center Street</street>
<street>Suite 600</street>
<city>Berkeley</city>
<region>CA</region>
<code>94704-1198</code>
<country>US</country></postal>
<phone>+1 510 666 2882</phone>
<email>vern@aciri.org</email></address></author>
<date year='2000' month='March' />
<abstract>
<t>This memo provides guidance for the IANA to use in assigning parameters for fields in the IPv4, IPv6, ICMP, UDP and TCP protocol headers.</t></abstract></front>

<seriesInfo name='BCP' value='37' />
<seriesInfo name='RFC' value='2780' />
<format type='TXT' octets='18954' target='http://www.rfc-editor.org/rfc/rfc2780.txt' />
</reference>

           


<reference anchor='RFC4727' target='http://www.rfc-editor.org/info/rfc4727'>

<front>
<title>Experimental Values In IPv4, IPv6, ICMPv4, ICMPv6, UDP, and TCP Headers</title>
<author initials='B.' surname='Fenner' fullname='B. Fenner'>
<organization /></author>
<date year='2006' month='November' />
<abstract>
<t>When experimenting with or extending protocols, it is often necessary to use some sort of protocol number or constant in order to actually test or experiment with the new function, even when testing in a closed environment.  This document reserves some ranges of numbers for experimentation purposes in specific protocols where the need to support experimentation has been identified, and it describes the numbers that have already been reserved by other documents. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='4727' />
<format type='TXT' octets='19745' target='http://www.rfc-editor.org/rfc/rfc4727.txt' />
</reference>

           



<reference anchor='RFC6335' target='http://www.rfc-editor.org/info/rfc6335'>

<front>
<title>Internet Assigned Numbers Authority (IANA) Procedures for the Management of the Service Name and Transport Protocol Port Number Registry</title>
<author initials='M.' surname='Cotton' fullname='M. Cotton'>
<organization /></author>
<author initials='L.' surname='Eggert' fullname='L. Eggert'>
<organization /></author>
<author initials='J.' surname='Touch' fullname='J. Touch'>
<organization /></author>
<author initials='M.' surname='Westerlund' fullname='M. Westerlund'>
<organization /></author>
<author initials='S.' surname='Cheshire' fullname='S. Cheshire'>
<organization /></author>
<date year='2011' month='August' />
<abstract>
<t>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. It also discusses the rationale and principles behind these procedures and how they facilitate the long-term sustainability of the registry.&lt;/t>&lt;t> This document updates IANA's procedures by obsoleting the previous UDP and TCP port assignment procedures defined in Sections 8 and 9.1 of the IANA Allocation Guidelines, and it updates the IANA service name and port assignment procedures for UDP-Lite, the Datagram Congestion Control Protocol (DCCP), and the Stream Control Transmission Protocol (SCTP). It also updates the DNS SRV specification to clarify what a service name is and how it is registered. This memo documents an Internet Best Current Practice.</t></abstract></front>

<seriesInfo name='BCP' value='165' />
<seriesInfo name='RFC' value='6335' />
<format type='TXT' octets='79088' target='http://www.rfc-editor.org/rfc/rfc6335.txt' />
</reference>

           


<reference anchor='RFC6994' target='http://www.rfc-editor.org/info/rfc6994'>

<front>
<title>Shared Use of Experimental TCP Options</title>
<author initials='J.' surname='Touch' fullname='J. Touch'>
<organization /></author>
<date year='2013' month='August' />
<abstract>
<t>This document describes how the experimental TCP option codepoints can concurrently support multiple TCP extensions, even within the same connection, using a new IANA TCP experiment identifier.  This approach is robust to experiments that are not registered and to those that do not use this sharing mechanism.  It is recommended for all new TCP options that use these codepoints.</t></abstract></front>

<seriesInfo name='RFC' value='6994' />
<format type='TXT' octets='25577' target='http://www.rfc-editor.org/rfc/rfc6994.txt' />
</reference>


            <!-- Section: Historic and Undeployed Extensions -->
           


<reference anchor='RFC0721' target='http://www.rfc-editor.org/info/rfc721'>

<front>
<title abbrev='Out-of-Band Control Signals'>Out-of-Band Control Signals in a Host-to-Host Protocol</title>
<author initials='L.' surname='Garlick' fullname='Larry Garlick'>
<organization>Stanford Research Institute (SRI) International, Augmentation Research Center (ARC)</organization></author>
<date year='1976' day='1' month='September' />
<abstract>
<t>This note addresses the problem of implementing a reliable out-of-band signal for use in a host-to-host protocol.  It is motivated by the fact that such a satisfactory mechanism does not exist in the Transmission Control Protocol (TCP) of Cerf et. al.,. In addition to discussing some requirements for such an out-of-band signal (interrupts) and the implications for the implementation of the requirements, a discussion of the problem for the TCP case will be presented.</t>
<t>While the ARPANET host-to-host protocol does not support reliable transmission of either data or controls, it does meet the other requirements we have for an out-of-band control signal and will be drawn upon to provide a solution for the TCP case.</t></abstract></front>

<seriesInfo name='RFC' value='721' />
<format type='TXT' octets='13566' target='http://www.rfc-editor.org/rfc/rfc721.txt' />
</reference>

           


<reference anchor='RFC1078' target='http://www.rfc-editor.org/info/rfc1078'>

<front>
<title abbrev='TCPMUX'>TCP port service Multiplexer (TCPMUX)</title>
<author initials='M.' surname='Lottor' fullname='M. Lottor'>
<organization>SRI-NIC</organization></author>
<date year='1988' day='1' month='November' /></front>

<seriesInfo name='RFC' value='1078' />
<format type='TXT' octets='3248' target='http://www.rfc-editor.org/rfc/rfc1078.txt' />
</reference>

            


<reference anchor='RFC1106' target='http://www.rfc-editor.org/info/rfc1106'>

<front>
<title>TCP big window and NAK options</title>
<author initials='R.' surname='Fox' fullname='Richard Fox'>
<organization>Tandem</organization>
<address>
<postal>
<street>950 Linden #208</street>
<city>Sunnyvale</city>
<region>CA</region>
<code>94086</code>
<country>US</country></postal>
<email>rfox@tandem.com</email></address></author>
<date year='1989' day='1' month='June' />
<abstract>
<t>Two extensions to the TCP protocol are described in this RFC in order to provide a more efficient operation over a network with a high bandwidth*delay product.  The main issue that still needs to be solved is congestion versus noise.  This issue is touched on in this memo, but further research is still needed on the applicability of the extensions in the Internet as a whole infrastructure and not just high bandwidth*delay product networks.  Even with this outstanding issue, this document does describe the use of these options in the isolated satellite network environment to help facilitate more efficient use of this special medium to help off load bulk data transfers from links needed for interactive use.</t></abstract></front>

<seriesInfo name='RFC' value='1106' />
<format type='TXT' octets='37105' target='http://www.rfc-editor.org/rfc/rfc1106.txt' />
</reference>

	    



<reference anchor='RFC1110' target='http://www.rfc-editor.org/info/rfc1110'>

<front>
<title abbrev='Comments on TCP Big Window Option'>Problem with the TCP big window option</title>
<author initials='A.' surname='McKenzie' fullname='Alex McKenzie'>
<organization>Bolt Beranek and Newman Inc. (BBN)</organization>
<address>
<postal>
<street>10 Moulton Street</street>
<city>Cambridge</city>
<region>MA</region>
<code>02238</code>
<country>US</country></postal>
<phone>+1 617 873 2962</phone>
<email>MCKENZIE@BBN.COM</email></address></author>
<date year='1989' day='1' month='August' />
<abstract>
<t>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.</t></abstract></front>

<seriesInfo name='RFC' value='1110' />
<format type='TXT' octets='5778' target='http://www.rfc-editor.org/rfc/rfc1110.txt' />
</reference>

           



<reference anchor='RFC1146' target='http://www.rfc-editor.org/info/rfc1146'>

<front>
<title>TCP alternate checksum options</title>
<author initials='J.' surname='Zweig' fullname='Johnny Zweig'>
<organization>University of Illinois, Digital Computer Lab</organization>
<address>
<postal>
<street>1304 West Springfield Avenue</street>
<street>CAMPUS MC 258</street>
<city>Urbana</city>
<region>IL</region>
<code>61801</code>
<country>US</country></postal>
<phone>+1 217 333 7937</phone>
<email>zweig@CS.UIUC.EDU</email></address></author>
<author initials='C.' surname='Partridge' fullname='Craig Partridge'>
<organization>Bolt Beranek and Newman Inc.</organization>
<address>
<postal>
<street>50 Moulton Street</street>
<city>Cambridge</city>
<region>MA</region>
<code>02138</code>
<country>US</country></postal>
<phone>+1 617 873 2459</phone>
<email>craig@BBN.COM</email></address></author>
<date year='1990' day='1' month='March' /></front>

<seriesInfo name='RFC' value='1146' />
<format type='TXT' octets='10955' target='http://www.rfc-editor.org/rfc/rfc1146.txt' />
</reference>





<reference anchor='RFC1263' target='http://www.rfc-editor.org/info/rfc1263'>

<front>
<title abbrev='TCP Extensions Considered Harmful'>TCP Extensions Considered Harmful</title>
<author initials='S.' surname='O&apos;Malley' fullname='Sean O&apos;Malley'>
<organization>University of Arizona, Department of Computer Sciences</organization>
<address>
<postal>
<street />
<city>Tucson</city>
<region>AZ</region>
<code>85721</code>
<country>US</country></postal>
<phone>+1 602 621 8373</phone>
<email>sean@cs.arizona.edu</email></address></author>
<author initials='L.L.' surname='Peterson' fullname='Larry L. Peterson'>
<organization>University of Arizona, Department of Computer Sciences</organization>
<address>
<postal>
<street />
<city>Tucson</city>
<region>AZ</region>
<code>85721</code>
<country>US</country></postal>
<phone>+1 602 621 4231</phone>
<email>llp@cs.arizona.edu</email></address></author>
<date year='1991' day='1' month='October' />
<abstract>
<t>This RFC comments on recent proposals to extend TCP.  It argues that the backward compatible extensions proposed in RFC's 1072 and 1185 should not be pursued, and proposes an alternative way to evolve the Internet protocol suite.  Its purpose is to stimulate discussion in the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='1263' />
<format type='TXT' octets='54078' target='http://www.rfc-editor.org/rfc/rfc1263.txt' />
</reference>

           



<reference anchor='RFC1379' target='http://www.rfc-editor.org/info/rfc1379'>

<front>
<title abbrev='Transaction TCP - Concepts'>Extending TCP for Transactions -- Concepts</title>
<author initials='B.' surname='Braden' fullname='Bob Braden'>
<organization>University of Southern California,  Information Sciences Institute</organization>
<address>
<postal>
<street>4676 Admiralty Way</street>
<city>Marina del Rey</city>
<region>CA</region>
<code>90292</code>
<country>US</country></postal>
<phone>+1 310 822 1511</phone>
<email>Braden@ISI.EDU</email></address></author>
<date year='1992' month='November' />
<abstract>
<t>This memo discusses extension of TCP to provide transaction-oriented service, without altering its virtual-circuit operation.  This extension would fill the large gap between connection-oriented TCP and datagram-based UDP, allowing TCP to efficiently perform many applications for which UDP is currently used.  A separate memo contains a detailed functional specification for this proposed extension.</t>
<t>This work was supported in part by the National Science Foundation under Grant Number NCR-8922231.</t></abstract></front>

<seriesInfo name='RFC' value='1379' />
<format type='TXT' octets='91353' target='http://www.rfc-editor.org/rfc/rfc1379.txt' />
</reference>

           


<reference anchor='RFC1644' target='http://www.rfc-editor.org/info/rfc1644'>

<front>
<title abbrev='Transaction/TCP'>T/TCP -- TCP Extensions for Transactions Functional Specification</title>
<author initials='B.' surname='Braden' fullname='Bob Braden'>
<organization>University of Southern California,  Information Sciences Institute</organization>
<address>
<postal>
<street>4676 Admiralty Way</street>
<city>Marina del Rey</city>
<region>CA</region>
<code>90292</code>
<country>US</country></postal>
<phone>+1 310 822 1511</phone>
<email>Braden@ISI.EDU</email></address></author>
<date year='1994' month='July' />
<abstract>
<t>This memo specifies T/TCP, an experimental TCP extension for efficient transaction-oriented (request/response) service.  This backwards-compatible extension could fill the gap between the current connection-oriented TCP and the datagram-based UDP.</t>
<t>This work was supported in part by the National Science Foundation under Grant Number NCR-8922231.</t></abstract></front>

<seriesInfo name='RFC' value='1644' />
<format type='TXT' octets='87362' target='http://www.rfc-editor.org/rfc/rfc1644.txt' />
</reference>

           


<reference anchor='RFC1693' target='http://www.rfc-editor.org/info/rfc1693'>

<front>
<title>An Extension to TCP : Partial Order Service</title>
<author initials='T.' surname='Connolly' fullname='Tom Connolly'>
<organization>University of Delaware, Department of Computer &amp; Information</organization>
<address>
<postal>
<street>101C Smith Hall</street>
<city>Newark</city>
<region>DE</region>
<code>19716-2586</code>
<country>US</country></postal>
<email>connolly@udel.edu</email></address></author>
<author initials='P.' surname='Amer' fullname='Paul D. Amer'>
<organization>University of Delaware, Department of Computer &amp; Information</organization>
<address>
<postal>
<street>101C Smith Hall</street>
<city>Newark</city>
<region>DE</region>
<code>19716-2586</code>
<country>US</country></postal>
<email>amer@udel.edu</email></address></author>
<author initials='P.' surname='Conrad' fullname='Phill Conrad'>
<organization>University of Delaware, Department of Computer &amp; Information</organization>
<address>
<postal>
<street>101C Smith Hall</street>
<city>Newark</city>
<region>DE</region>
<code>19716-2586</code>
<country>US</country></postal>
<email>pconrad@udel.edu</email></address></author>
<date year='1994' month='November' />
<abstract>
<t>This RFC introduces a new transport mechanism for TCP based upon partial ordering.  The aim is to present the concepts of partial ordering and promote discussions on its usefulness in network communications.  Distribution of this memo is unlimited.</t></abstract></front>

<seriesInfo name='RFC' value='1693' />
<format type='TXT' octets='90100' target='http://www.rfc-editor.org/rfc/rfc1693.txt' />
</reference>

           


<reference anchor='RFC1705' target='http://www.rfc-editor.org/info/rfc1705'>

<front>
<title abbrev='Six Virtual Inches to the Left: IPng Problems'>Six Virtual Inches to the Left: The Problem with IPng</title>
<author initials='R.' surname='Carlson' fullname='Richard Carlson'>
<organization>Argonne National Laboratory, Electronics and Computing Technologies</organization>
<address>
<postal>
<street />
<city>Argonne</city>
<region>IL</region>
<code>60439</code>
<country>US</country></postal>
<phone>+1 708 252 7289</phone>
<email>RACarlson@anl.gov</email></address></author>
<author initials='D.' surname='Ficarella' fullname='Domenic Ficarella'>
<organization>Motorola</organization>
<address>
<phone>+1 708 632 4029</phone>
<email>ficarell@cpdmfg.cig.mot.com</email></address></author>
<date year='1994' month='October' />
<abstract>
<t>This document was submitted to the IETF IPng area in response to RFC 1550.  Publication of this document does not imply acceptance by the IPng area of any ideas expressed within.  Comments should be submitted to the big-internet@munnari.oz.au mailing list.</t></abstract></front>

<seriesInfo name='RFC' value='1705' />
<format type='TXT' octets='65222' target='http://www.rfc-editor.org/rfc/rfc1705.txt' />
</reference>

           



<reference anchor='RFC6013' target='http://www.rfc-editor.org/info/rfc6013'>

<front>
<title>TCP Cookie Transactions (TCPCT)</title>
<author initials='W.' surname='Simpson' fullname='W. Simpson'>
<organization /></author>
<date year='2011' month='January' />
<abstract>
<t>TCP Cookie Transactions (TCPCT) deter spoofing of connections and prevent resource exhaustion, eliminating Responder (server) state during the initial handshake.  The Initiator (client) has sole responsibility for ensuring required delays between connections.  The cookie exchange may carry data, limited to inhibit amplification and reflection denial of service attacks.  This document defines an Experimental Protocol for the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='6013' />
<format type='TXT' octets='76505' target='http://www.rfc-editor.org/rfc/rfc6013.txt' />
</reference>

           


<reference anchor='RFC6247' target='http://www.rfc-editor.org/info/rfc6247'>

<front>
<title>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</title>
<author initials='L.' surname='Eggert' fullname='L. Eggert'>
<organization /></author>
<date year='2011' month='May' />
<abstract>
<t>This document reclassifies several TCP extensions that have never seen widespread use to Historic status.  The affected RFCs are RFC 1072, RFC 1106, RFC 1110, RFC 1145, RFC 1146, RFC 1379, RFC 1644, and RFC 1693.  This document is not an Internet Standards Track specification; it is published for informational purposes.</t></abstract></front>

<seriesInfo name='RFC' value='6247' />
<format type='TXT' octets='6414' target='http://www.rfc-editor.org/rfc/rfc6247.txt' />
</reference>


            <!-- Subsection: Foundational Works -->
           



<reference anchor='RFC0675' target='http://www.rfc-editor.org/info/rfc675'>

<front>
<title abbrev='Specification of Internet TCP'>Specification of Internet Transmission Control Program</title>
<author initials='V.' surname='Cerf' fullname='Vinton Cerf'>
<organization /></author>
<author initials='Y.' surname='Dalal' fullname='Yogen Dalal'>
<organization /></author>
<author initials='C.' surname='Sunshine' fullname='Carl Sunshine'>
<organization /></author>
<date year='1974' day='1' month='December' /></front>

<seriesInfo name='RFC' value='675' />
<format type='TXT' octets='156874' target='http://www.rfc-editor.org/rfc/rfc675.txt' />
</reference>

          


<reference anchor='RFC0761' target='http://www.rfc-editor.org/info/rfc761'>

<front>
<title abbrev='Transmission Control Protocol'>DoD standard Transmission Control Protocol</title>
<author initials='J.' surname='Postel' fullname='Jon Postel'>
<organization>University of Southern California (USC)/Information Sciences Institute</organization>
<address>
<postal>
<street>4676 Admiralty Way</street>
<city>Marina del Rey</city>
<region>CA</region>
<code>90291</code>
<country>US</country></postal></address></author>
<date year='1980' day='1' month='January' /></front>

<seriesInfo name='RFC' value='761' />
<format type='TXT' octets='167049' target='http://www.rfc-editor.org/rfc/rfc761.txt' />
</reference>

           


<reference anchor='RFC0813' target='http://www.rfc-editor.org/info/rfc813'>

<front>
<title>Window and Acknowledgement Strategy in TCP</title>
<author initials='D.' surname='Clark' fullname='David D. Clark'>
<organization>Massachusetts Institute of Technology (MIT), Laboratory for Computer Science, Computer Systems and Communications Group</organization></author>
<date year='1982' day='1' month='July' /></front>

<seriesInfo name='RFC' value='813' />
<format type='TXT' octets='38110' target='http://www.rfc-editor.org/rfc/rfc813.txt' />
</reference>

            


<reference anchor='RFC0814' target='http://www.rfc-editor.org/info/rfc814'>

<front>
<title>Name, addresses, ports, and routes</title>
<author initials='D.' surname='Clark' fullname='David D. Clark'>
<organization>Massachusetts Institute of Technology (MIT), Laboratory for Computer Science, Computer Systems and Communications Group</organization></author>
<date year='1982' day='1' month='July' /></front>

<seriesInfo name='RFC' value='814' />
<format type='TXT' octets='24663' target='http://www.rfc-editor.org/rfc/rfc814.txt' />
</reference>

           


<reference anchor='RFC0816' target='http://www.rfc-editor.org/info/rfc816'>

<front>
<title>Fault isolation and recovery</title>
<author initials='D.' surname='Clark' fullname='David D. Clark'>
<organization>Massachusetts Institute of Technology (MIT), Laboratory for Computer Science, Computer Systems and Communications Group</organization></author>
<date year='1982' day='1' month='July' /></front>

<seriesInfo name='RFC' value='816' />
<format type='TXT' octets='20106' target='http://www.rfc-editor.org/rfc/rfc816.txt' />
</reference>

           


<reference anchor='RFC0817' target='http://www.rfc-editor.org/info/rfc817'>

<front>
<title>Modularity and efficiency in protocol implementation</title>
<author initials='D.' surname='Clark' fullname='David D. Clark'>
<organization>Massachusetts Institute of Technology (MIT), Laboratory for Computer Science, Computer Systems and Communications Group</organization></author>
<date year='1982' day='1' month='July' /></front>

<seriesInfo name='RFC' value='817' />
<format type='TXT' octets='45931' target='http://www.rfc-editor.org/rfc/rfc817.txt' />
</reference>

           


<reference anchor='RFC0872' target='http://www.rfc-editor.org/info/rfc872'>

<front>
<title>TCP-on-a-LAN</title>
<author initials='M.' surname='Padlipsky' fullname='Mike A. Padlipsky'>
<organization>The Mitre Corporation</organization>
<address>
<postal>
<street>P.O. Box 208</street>
<city>Bedford</city>
<region>MA</region>
<code>01730</code>
<country>US</country></postal>
<email>Padlipsky@USC-ISIA</email></address></author>
<date year='1982' day='1' month='September' />
<abstract>
<t>The sometimes-held position that the DoD Standard Transmission Control Protocol (TCP) and Internet Protocol (IP) are inappropriate for use "on" a Local Area Network (LAN) is shown to be fallacious.  The paper is a companion piece to M82-47, M82-49, M82-50, and M82-51.</t></abstract></front>

<seriesInfo name='RFC' value='872' />
<format type='TXT' octets='22446' target='http://www.rfc-editor.org/rfc/rfc872.txt' />
</reference>

           


<reference anchor='RFC0896' target='http://www.rfc-editor.org/info/rfc896'>

<front>
<title>Congestion control in IP/TCP internetworks</title>
<author initials='J.' surname='Nagle' fullname='John Nagle'>
<organization>Ford Aerospace and Communications Corporation</organization></author>
<date year='1984' month='January' day='6' />
<abstract>
<t>This memo discusses some aspects of congestion control in  IP/TCP Internetworks. It  is intended to stimulate thought and further discussion of this topic. While some specific  suggestions  are
made for improved congestion  control  implementation, this memo does not specify any standards.</t></abstract></front>

<seriesInfo name='RFC' value='896' />
<format type='TXT' octets='26782' target='http://www.rfc-editor.org/rfc/rfc896.txt' />
</reference>

	   


<reference anchor='RFC0964' target='http://www.rfc-editor.org/info/rfc964'>

<front>
<title abbrev='Some Problems with MIL-STD TCP'>Some problems with the specification of the Military Standard Transmission Control Protocol</title>
<author initials='D.' surname='Sidhu' fullname='Deepinder P. Sidhu'>
<organization>SDC - A Burroughs Company</organization></author>
<author initials='T.' surname='Blumer' fullname='Thomas P. Blumer'>
<organization>SDC - A Burroughs Company</organization></author>
<date year='1985' day='1' month='November' />
<abstract>
<t>This note points out three errors with the specification of the Military Standard Transmission Control Protocol (MIL-STD-1778, dated August 1983).  These results are based on an initial investigation of this protocol standard.  The first problem is that data accompanying a SYN can not be accepted because of errors in the acceptance policy.  The second problem is that no retransmission timer is set for a SYN packet, and therefore the SYN will not be retransmitted if it is lost.  The third problem is that when the connection has been established, neither entity takes the proper steps to accept incoming data.  This note also proposes solutions to these problems.</t></abstract></front>

<seriesInfo name='RFC' value='964' />
<format type='TXT' octets='20972' target='http://www.rfc-editor.org/rfc/rfc964.txt' />
</reference>

            <!-- Subsection: Architectural Guidelines -->
           


<reference anchor='RFC1958' target='http://www.rfc-editor.org/info/rfc1958'>

<front>
<title>Architectural Principles of the Internet</title>
<author initials='B.' surname='Carpenter' fullname='Brian E. Carpenter'>
<organization>CERN, European Laboratory for Particle Physics</organization>
<address>
<postal>
<street>1211 Geneva 23</street>
<country>CH</country></postal>
<phone>+41 22 7674967</phone>
<facsimile>+41 22 7677155</facsimile>
<email>brian@dxcoms.cern.ch</email></address></author>
<date year='1996' month='June' />
<abstract>
<t>The Internet and its architecture have grown in evolutionary fashion from modest beginnings, rather than from a Grand Plan. While this process of evolution is one of the main reasons for the technology's success, it nevertheless seems useful to record a snapshot of the current principles of the Internet architecture. This is intended for general guidance and general interest, and is in no way intended to be a formal or invariant reference model.</t></abstract></front>

<seriesInfo name='RFC' value='1958' />
<format type='TXT' octets='17345' target='http://www.rfc-editor.org/rfc/rfc1958.txt' />
</reference>

           



<reference anchor='RFC2914' target='http://www.rfc-editor.org/info/rfc2914'>

<front>
<title>Congestion Control Principles</title>
<author initials='S.' surname='Floyd' fullname='S. Floyd'>
<organization /></author>
<date year='2000' month='September' />
<abstract>
<t>The goal of this document is to explain the need for congestion control in the Internet, and to discuss what constitutes correct congestion control.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract></front>

<seriesInfo name='BCP' value='41' />
<seriesInfo name='RFC' value='2914' />
<format type='TXT' octets='43823' target='http://www.rfc-editor.org/rfc/rfc2914.txt' />
</reference>

          


<reference anchor='RFC3360' target='http://www.rfc-editor.org/info/rfc3360'>

<front>
<title>Inappropriate TCP Resets Considered Harmful</title>
<author initials='S.' surname='Floyd' fullname='S. Floyd'>
<organization /></author>
<date year='2002' month='August' /></front>

<seriesInfo name='BCP' value='60' />
<seriesInfo name='RFC' value='3360' />
<format type='TXT' octets='46748' target='http://www.rfc-editor.org/rfc/rfc3360.txt' />
</reference>

    


<reference anchor='RFC3439' target='http://www.rfc-editor.org/info/rfc3439'>

<front>
<title>Some Internet Architectural Guidelines and Philosophy</title>
<author initials='R.' surname='Bush' fullname='R. Bush'>
<organization /></author>
<author initials='D.' surname='Meyer' fullname='D. Meyer'>
<organization /></author>
<date year='2002' month='December' />
<abstract>
<t>This document extends RFC 1958 by outlining some of the philosophical guidelines to which architects and designers of Internet backbone networks should adhere.  We describe the Simplicity Principle, which states that complexity is the primary mechanism that impedes efficient scaling, and discuss its implications on the architecture, design and engineering issues found in large scale Internet backbones.  This memo provides information for the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='3439' />
<format type='TXT' octets='70333' target='http://www.rfc-editor.org/rfc/rfc3439.txt' />
</reference>

           


<reference anchor='RFC4774' target='http://www.rfc-editor.org/info/rfc4774'>

<front>
<title>Specifying Alternate Semantics for the Explicit Congestion Notification (ECN) Field</title>
<author initials='S.' surname='Floyd' fullname='S. Floyd'>
<organization /></author>
<date year='2006' month='November' />
<abstract>
<t>There have been a number of proposals for alternate semantics for the Explicit Congestion Notification (ECN) field in the IP header RFC 3168.  This document discusses some of the issues in defining alternate semantics for the ECN field, and specifies requirements for a safe coexistence in an Internet that could include routers that do not understand the defined alternate semantics.  This document evolved as a result of discussions with the authors of one recent proposal for such alternate semantics.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract></front>

<seriesInfo name='BCP' value='124' />
<seriesInfo name='RFC' value='4774' />
<format type='TXT' octets='37144' target='http://www.rfc-editor.org/rfc/rfc4774.txt' />
</reference>

           


<reference anchor='RFC6182' target='http://www.rfc-editor.org/info/rfc6182'>

<front>
<title>Architectural Guidelines for Multipath TCP Development</title>
<author initials='A.' surname='Ford' fullname='A. Ford'>
<organization /></author>
<author initials='C.' surname='Raiciu' fullname='C. Raiciu'>
<organization /></author>
<author initials='M.' surname='Handley' fullname='M. Handley'>
<organization /></author>
<author initials='S.' surname='Barre' fullname='S. Barre'>
<organization /></author>
<author initials='J.' surname='Iyengar' fullname='J. Iyengar'>
<organization /></author>
<date year='2011' month='March' />
<abstract>
<t>Hosts are often connected by multiple paths, but TCP restricts communications to a single path per transport connection. Resource usage within the network would be more efficient were these multiple paths able to be used concurrently. This should enhance user experience through improved resilience to network failure and higher throughput.&lt;/t>&lt;t> 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). This document lists certain high-level design decisions that provide foundations for the design of the MPTCP protocol, based upon these architectural requirements. This document is not an Internet Standards Track specification; it is published for informational purposes.</t></abstract></front>

<seriesInfo name='RFC' value='6182' />
<format type='TXT' octets='68772' target='http://www.rfc-editor.org/rfc/rfc6182.txt' />
</reference>


            <!-- Subsection: Difficult Network Environments -->
            


<reference anchor='RFC2488' target='http://www.rfc-editor.org/info/rfc2488'>

<front>
<title abbrev='Enhancing TCP Over Satellite Channels'>Enhancing TCP Over Satellite Channels using Standard Mechanisms</title>
<author initials='M.' surname='Allman' fullname='Mark Allman'>
<organization>NASA Lewis Research Center/Sterling Software</organization>
<address>
<postal>
<street>21000 Brookpark Rd., MS 54-2</street>
<city>Cleveland</city>
<region>OH</region>
<code>44135</code>
<country>USA</country></postal>
<phone>+1 216 433 6586</phone>
<email>mallman@lerc.nasa.gov</email>
<uri>http://roland.lerc.nasa.gov/~mallman</uri></address></author>
<author initials='D.R.' surname='Glover' fullname='Daniel R. Glover'>
<organization>NASA Lewis Research Center</organization>
<address>
<postal>
<street />
<city>Cleveland</city>
<region>OH</region>
<code>44135</code>
<country>USA</country></postal>
<phone>+1 216 433 2847</phone>
<email>Daniel.R.Glover@lerc.nasa.gov</email></address></author>
<author initials='L.A.' surname='Sanchez' fullname='Luis A. Sanchez'>
<organization>BBN Technologies, GTE Internetworking</organization>
<address>
<postal>
<street>10 Moulton Street</street>
<city>Cambridge</city>
<region>MA</region>
<code>02140</code>
<country>USA</country></postal>
<phone>+1 617 873 3351</phone>
<email>lsanchez@ir.bbn.com</email></address></author>
<date year='1999' month='January' />
<area>Transport</area>
<keyword>transmission control protocol</keyword>
<keyword>satellite</keyword>
<keyword>TCP</keyword>
<abstract>
<t>
   The Transmission Control Protocol (TCP) provides reliable delivery of
   data across any network path, including network paths containing
   satellite channels.  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).
</t></abstract></front>

<seriesInfo name='BCP' value='28' />
<seriesInfo name='RFC' value='2488' />
<format type='TXT' octets='47857' target='http://www.rfc-editor.org/rfc/rfc2488.txt' />
<format type='HTML' octets='76302' target='http://xml.resource.org/public/rfc/html/rfc2488.html' />
<format type='XML' octets='64378' target='http://xml.resource.org/public/rfc/xml/rfc2488.xml' />
</reference>

            


<reference anchor='RFC2757' target='http://www.rfc-editor.org/info/rfc2757'>

<front>
<title>Long Thin Networks</title>
<author initials='G.E.' surname='Montenegro' fullname='Gabriel E. Montenegro'>
<organization>Sun Microsystems, Inc., Sun Labs Networking and Security Group</organization>
<address>
<postal>
<street>901 San Antonio Road</street>
<street>Mailstop UMPK 15-214</street>
<city>Palo Alto</city>
<region>CA</region>
<code>94303</code>
<country>US</country></postal>
<phone>+1 650 786 6288</phone>
<facsimile>+1 650 786 6445</facsimile>
<email>gab@sun.com</email></address></author>
<author initials='S.' surname='Dawkins' fullname='Spencer Dawkins'>
<organization>Nortel Networks</organization>
<address>
<postal>
<street>P.O. Box 833805</street>
<city>Richardson</city>
<region>TX</region>
<code>75083-3805</code>
<country>US</country></postal>
<phone>+1 972 684 4827</phone>
<facsimile>+1 972 685 3292</facsimile>
<email>sdawkins@nortel.com</email></address></author>
<author initials='M.' surname='Kojo' fullname='Markku Kojo'>
<organization>University of Helsinki, Department of Computer Science</organization>
<address>
<postal>
<street>P.O. Box 26 (Teollisuuskatu 23)</street>
<city>Helsinki</city>
<region />
<code>FIN-00014</code>
<country>FI</country></postal>
<phone>+358 9 19144179</phone>
<facsimile>+358 9 19144441</facsimile>
<email>kojo@cs.helsinki.fi</email></address></author>
<author initials='V.' surname='Magret' fullname='Vincent Magret'>
<organization>Alcatel Network Systems, Inc,  Corporate Research Center</organization>
<address>
<postal>
<street>1201 Campbell</street>
<street>M/S 446-310</street>
<city>Richardson</city>
<region>TX</region>
<code>75081</code>
<country>US</country></postal>
<phone>+1 972 996 2625</phone>
<facsimile>+1 972 996 5902</facsimile>
<email>vincent.magret@aud.alcatel.com</email></address></author>
<author initials='N.' surname='Vaidya' fullname='Nitin Vaidya'>
<organization>Texas A&amp;M University, Dept. of Computer Science</organization>
<address>
<postal>
<street />
<city>College Station</city>
<region>TX</region>
<code>77843-3112</code>
<country>US</country></postal>
<phone>+1 979 845 0512</phone>
<facsimile>+1 979 847 8578</facsimile>
<email>vaidya@cs.tamu.edu</email></address></author>
<date year='2000' month='January' />
<abstract>
<t>In view of the unpredictable and problematic nature of long thin networks (for example, wireless WANs), arriving at an optimized transport is a daunting task.  We have  reviewed the existing proposals along with future research items. Based on this overview, we also recommend mechanisms for implementation in long thin networks.</t>
<t>Our goal is to identify a TCP that works for all users, including users of long thin networks. We started from the working recommendations of the IETF TCP Over Satellite Links (tcpsat) working group with this end in mind.</t>
<t>We recognize that not every tcpsat recommendation will be required for long thin networks as well, and work toward a set of TCP recommendations that are 'benign' in environments that do not require them.</t></abstract></front>

<seriesInfo name='RFC' value='2757' />
<format type='TXT' octets='112988' target='http://www.rfc-editor.org/rfc/rfc2757.txt' />
</reference>

            


<reference anchor='RFC2760' target='http://www.rfc-editor.org/info/rfc2760'>

<front>
<title>Ongoing TCP Research Related to Satellites</title>
<author initials='M.' surname='Allman' fullname='Mark Allman'>
<organization>NASA Glenn Research Center/BBN Technologies, Lewis Field</organization>
<address>
<postal>
<street>21000 Brookpark Rd.</street>
<street>MS 54-2</street>
<city>Cleveland</city>
<region>OH</region>
<code>44135</code>
<country>US</country></postal>
<email>mallman@grc.nasa.gov</email></address></author>
<author initials='S.' surname='Dawkins' fullname='Spencer Dawkins'>
<organization>Nortel</organization>
<address>
<postal>
<street>P.O.Box 833805</street>
<city>Richardson</city>
<region>TX</region>
<code>75083-3805</code>
<country>US</country></postal>
<email>Spencer.Dawkins.sdawkins@nt.com</email></address></author>
<author initials='D.' surname='Glover' fullname='Dan Glover'>
<organization>NASA Glenn Research Center, Lewis Field</organization>
<address>
<postal>
<street>21000 Brookpark Rd.</street>
<street>MS 3-6</street>
<city>Cleveland</city>
<region>OH</region>
<code>44135</code>
<country>US</country></postal>
<email>Daniel.R.Glover@grc.nasa.gov</email></address></author>
<author initials='J.' surname='Griner' fullname='Jim Griner'>
<organization>NASA Glenn Research Center, Lewis Field</organization>
<address>
<postal>
<street>21000 Brookpark Rd.</street>
<street>MS 54-2</street>
<city>Cleveland</city>
<region>OH</region>
<code>44135</code>
<country>US</country></postal>
<email>jgriner@grc.nasa.gov</email></address></author>
<author initials='D.' surname='Tran' fullname='Diepchi Tran'>
<organization>NASA Glenn Research Center, Lewis Field</organization>
<address>
<postal>
<street>21000 Brookpark Rd.</street>
<street>MS 54-2</street>
<city>Cleveland</city>
<region>OH</region>
<code>44135</code>
<country>US</country></postal>
<email>dtran@grc.nasa.gov</email></address></author>
<author initials='T.' surname='Henderson' fullname='Tom Henderson'>
<organization>University of California at Berkeley</organization>
<address>
<postal>
<street />
<city>Berkeley</city>
<region>CA</region>
<code>94720</code>
<country>US</country></postal>
<phone>+1 510 642 8919</phone>
<email>tomh@cs.berkeley.edu</email></address></author>
<author initials='J.' surname='Heidemann' fullname='John Heidemann'>
<organization>University of Southern California/Information Sciences Institute</organization>
<address>
<postal>
<street>4676 Admiralty Way</street>
<city>Marina del Rey</city>
<region>CA</region>
<code>90292-6695</code>
<country>US</country></postal>
<email>johnh@isi.edu</email></address></author>
<author initials='J.' surname='Touch' fullname='Joe Touch'>
<organization>University of Southern California/Information Sciences Institute</organization>
<address>
<postal>
<street>4676 Admiralty Way</street>
<city>Marina del Rey</city>
<region>CA</region>
<code>90292-6601</code>
<country>US</country></postal>
<phone>+1 310 448 9151</phone>
<facsimile>+1 310 823 6714</facsimile>
<email>touch@isi.edu</email></address></author>
<author initials='H.' surname='Kruse' fullname='Hans Kruse'>
<organization>Ohio University,  J. Warren McClure School of Communication Systems Management</organization>
<address>
<postal>
<street>9 S. College Street</street>
<city>Athens</city>
<region>OH</region>
<code>45701</code>
<country>US</country></postal>
<phone>+1 740 593 4891</phone>
<facsimile>+1 740 593 4889</facsimile>
<email>hkruse1@ohiou.edu</email></address></author>
<author initials='S.' surname='Ostermann' fullname='Shawn Ostermann'>
<organization>Ohio University, School of Electrical Engineering and Computer Science</organization>
<address>
<postal>
<street>416 Morton Hall</street>
<city>Athens</city>
<region>OH</region>
<code>45701</code>
<country>US</country></postal>
<phone>+1 740 593 1234</phone>
<email>ostermann@cs.ohiou.edu</email></address></author>
<author initials='K.' surname='Scott' fullname='Keith Scott'>
<organization>The MITRE Corporation</organization>
<address>
<postal>
<street>1820 Dolley Madison Blvd.</street>
<street>M/S W650</street>
<city>McLean</city>
<region>VA</region>
<code>22102-3481</code>
<country>US</country></postal>
<email>kscott@mitre.org</email></address></author>
<author initials='J.' surname='Semke' fullname='Jeffrey Semke'>
<organization>Pittsburgh Supercomputing Center</organization>
<address>
<postal>
<street>4400 Fifth Ave.</street>
<city>Pittsburgh</city>
<region>PA</region>
<code>15213</code>
<country>US</country></postal>
<email>semke@psc.edu</email></address></author>
<date year='2000' month='February' />
<abstract>
<t>This document outlines possible TCP enhancements that may allow TCP to better utilize the available bandwidth provided by networks containing satellite links.  The algorithms and mechanisms outlined have not been judged to be mature enough to be recommended by the IETF.  The goal of this document is to educate researchers as to the
 current work and progress being done in TCP research related to satellite networks.</t></abstract></front>

<seriesInfo name='RFC' value='2760' />
<format type='TXT' octets='111141' target='http://www.rfc-editor.org/rfc/rfc2760.txt' />
</reference>

           


<reference anchor='RFC3135' target='http://www.rfc-editor.org/info/rfc3135'>

<front>
<title>Performance Enhancing Proxies Intended to Mitigate Link-Related Degradations</title>
<author initials='J.' surname='Border' fullname='J. Border'>
<organization /></author>
<author initials='M.' surname='Kojo' fullname='M. Kojo'>
<organization /></author>
<author initials='J.' surname='Griner' fullname='J. Griner'>
<organization /></author>
<author initials='G.' surname='Montenegro' fullname='G. Montenegro'>
<organization /></author>
<author initials='Z.' surname='Shelby' fullname='Z. Shelby'>
<organization /></author>
<date year='2001' month='June' />
<abstract>
<t>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 WAN, and wireless LAN environments.  This memo provides information for the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='3135' />
<format type='TXT' octets='114825' target='http://www.rfc-editor.org/rfc/rfc3135.txt' />
</reference>

           


<reference anchor='RFC3150' target='http://www.rfc-editor.org/info/rfc3150'>

<front>
<title>End-to-end Performance Implications of Slow Links</title>
<author initials='S.' surname='Dawkins' fullname='S. Dawkins'>
<organization /></author>
<author initials='G.' surname='Montenegro' fullname='G. Montenegro'>
<organization /></author>
<author initials='M.' surname='Kojo' fullname='M. Kojo'>
<organization /></author>
<author initials='V.' surname='Magret' fullname='V. Magret'>
<organization /></author>
<date year='2001' month='July' />
<abstract>
<t>This document makes performance-related recommendations for users of network paths that traverse "very low bit-rate" links.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract></front>

<seriesInfo name='BCP' value='48' />
<seriesInfo name='RFC' value='3150' />
<format type='TXT' octets='39942' target='http://www.rfc-editor.org/rfc/rfc3150.txt' />
</reference>

           


<reference anchor='RFC3155' target='http://www.rfc-editor.org/info/rfc3155'>

<front>
<title>End-to-end Performance Implications of Links with Errors</title>
<author initials='S.' surname='Dawkins' fullname='S. Dawkins'>
<organization /></author>
<author initials='G.' surname='Montenegro' fullname='G. Montenegro'>
<organization /></author>
<author initials='M.' surname='Kojo' fullname='M. Kojo'>
<organization /></author>
<author initials='V.' surname='Magret' fullname='V. Magret'>
<organization /></author>
<author initials='N.' surname='Vaidya' fullname='N. Vaidya'>
<organization /></author>
<date year='2001' month='August' />
<abstract>
<t>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.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract></front>

<seriesInfo name='BCP' value='50' />
<seriesInfo name='RFC' value='3155' />
<format type='TXT' octets='36388' target='http://www.rfc-editor.org/rfc/rfc3155.txt' />
</reference>

            


<reference anchor='RFC3366' target='http://www.rfc-editor.org/info/rfc3366'>

<front>
<title>Advice to link designers on link Automatic Repeat reQuest (ARQ)</title>
<author initials='G.' surname='Fairhurst' fullname='G. Fairhurst'>
<organization /></author>
<author initials='L.' surname='Wood' fullname='L. Wood'>
<organization /></author>
<date year='2002' month='August' /></front>

<seriesInfo name='BCP' value='62' />
<seriesInfo name='RFC' value='3366' />
<format type='TXT' octets='66097' target='http://www.rfc-editor.org/rfc/rfc3366.txt' />
</reference>

            


<reference anchor='RFC3449' target='http://www.rfc-editor.org/info/rfc3449'>

<front>
<title>TCP Performance Implications of Network Path Asymmetry</title>
<author initials='H.' surname='Balakrishnan' fullname='H. Balakrishnan'>
<organization /></author>
<author initials='V.' surname='Padmanabhan' fullname='V. Padmanabhan'>
<organization /></author>
<author initials='G.' surname='Fairhurst' fullname='G. Fairhurst'>
<organization /></author>
<author initials='M.' surname='Sooriyabandara' fullname='M. Sooriyabandara'>
<organization /></author>
<date year='2002' month='December' />
<abstract>
<t>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.  The document details several mitigations to these effects, which have either been proposed or evaluated in the literature, or are currently deployed in networks.  These solutions use a combination of local link- layer techniques, subnetwork, and end-to-end mechanisms, consisting of: (i) techniques to manage the channel used for the upstream bottleneck link carrying the ACKs, typically using header compression or reducing the frequency of TCP ACKs, (ii) techniques to handle this reduced ACK frequency to retain the TCP sender's acknowledgment-triggered self- clocking and (iii) techniques to schedule the data and ACK packets in the reverse direction to improve performance in the presence of two-way traffic.  Each technique is described, together with known issues, and recommendations for use.  A summary of the recommendations is provided at the end of the document.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract></front>

<seriesInfo name='BCP' value='69' />
<seriesInfo name='RFC' value='3449' />
<format type='TXT' octets='108839' target='http://www.rfc-editor.org/rfc/rfc3449.txt' />
</reference>

            


<reference anchor='RFC3481' target='http://www.rfc-editor.org/info/rfc3481'>

<front>
<title>TCP over Second (2.5G) and Third (3G) Generation Wireless Networks</title>
<author initials='H.' surname='Inamura' fullname='H. Inamura'>
<organization /></author>
<author initials='G.' surname='Montenegro' fullname='G. Montenegro'>
<organization /></author>
<author initials='R.' surname='Ludwig' fullname='R. Ludwig'>
<organization /></author>
<author initials='A.' surname='Gurtov' fullname='A. Gurtov'>
<organization /></author>
<author initials='F.' surname='Khafizov' fullname='F. Khafizov'>
<organization /></author>
<date year='2003' month='February' />
<abstract>
<t>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.  It describes the relevant characteristics of 2.5G and 3G networks, and specific features of example deployments of such networks.  It then recommends TCP algorithm choices for nodes known to be starting or ending on such paths, and it also discusses open issues.  The configuration options recommended in this document are commonly found in modern TCP stacks, and are widely available standards-track mechanisms that the community considers safe for use on the general Internet.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract></front>

<seriesInfo name='BCP' value='71' />
<seriesInfo name='RFC' value='3481' />
<format type='TXT' octets='61528' target='http://www.rfc-editor.org/rfc/rfc3481.txt' />
</reference>

            


<reference anchor='RFC3819' target='http://www.rfc-editor.org/info/rfc3819'>

<front>
<title>Advice for Internet Subnetwork Designers</title>
<author initials='P.' surname='Karn' fullname='P. Karn'>
<organization /></author>
<author initials='C.' surname='Bormann' fullname='C. Bormann'>
<organization /></author>
<author initials='G.' surname='Fairhurst' fullname='G. Fairhurst'>
<organization /></author>
<author initials='D.' surname='Grossman' fullname='D. Grossman'>
<organization /></author>
<author initials='R.' surname='Ludwig' fullname='R. Ludwig'>
<organization /></author>
<author initials='J.' surname='Mahdavi' fullname='J. Mahdavi'>
<organization /></author>
<author initials='G.' surname='Montenegro' fullname='G. Montenegro'>
<organization /></author>
<author initials='J.' surname='Touch' fullname='J. Touch'>
<organization /></author>
<author initials='L.' surname='Wood' fullname='L. Wood'>
<organization /></author>
<date year='2004' month='July' />
<abstract>
<t>This document provides advice to the designers of digital communication equipment, link-layer protocols, and packet-switched local networks (collectively referred to as subnetworks), who wish to support the Internet protocols but may be unfamiliar with the Internet architecture and the implications of their design choices on the performance and efficiency of the Internet.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract></front>

<seriesInfo name='BCP' value='89' />
<seriesInfo name='RFC' value='3819' />
<format type='TXT' octets='152174' target='http://www.rfc-editor.org/rfc/rfc3819.txt' />
</reference>


            <!-- Subsection: Guidance for Developing, Analyzing, and Evaluating TCP -->
            


<reference anchor='RFC5033' target='http://www.rfc-editor.org/info/rfc5033'>

<front>
<title>Specifying New Congestion Control Algorithms</title>
<author initials='S.' surname='Floyd' fullname='S. Floyd'>
<organization /></author>
<author initials='M.' surname='Allman' fullname='M. Allman'>
<organization /></author>
<date year='2007' month='August' />
<abstract>
<t>The IETF's standard congestion control schemes have been widely shown to be inadequate for various environments (e.g., high-speed networks).  Recent research has yielded many alternate congestion control schemes that significantly differ from the IETF's congestion control principles.  Using these new congestion control schemes in the global Internet has possible ramifications to both the traffic using the new congestion control and to traffic using the currently standardized congestion control.  Therefore, the IETF must proceed with caution when dealing with alternate congestion control proposals.  The goal of this document is to provide guidance for considering alternate congestion control algorithms within the IETF.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract></front>

<seriesInfo name='BCP' value='133' />
<seriesInfo name='RFC' value='5033' />
<format type='TXT' octets='23469' target='http://www.rfc-editor.org/rfc/rfc5033.txt' />
</reference>

            


<reference anchor='RFC5166' target='http://www.rfc-editor.org/info/rfc5166'>

<front>
<title>Metrics for the Evaluation of Congestion Control Mechanisms</title>
<author initials='S.' surname='Floyd' fullname='S. Floyd'>
<organization /></author>
<date year='2008' month='March' />
<abstract>
<t>This document discusses the metrics to be considered in an evaluation of new or modified congestion control mechanisms for the Internet. These include metrics for the evaluation of new transport protocols, of proposed modifications to TCP, of application-level congestion control, and of Active Queue Management (AQM) mechanisms in the router. This document is the first in a series of documents aimed at improving the models that we use in the evaluation of transport protocols.&lt;/t>&lt;t> This document is a product of the Transport Modeling Research Group (TMRG), and has received detailed feedback from many members of the Research Group (RG). As the document tries to make clear, there is not necessarily a consensus within the research community (or the IETF community, the vendor community, the operations community, or any other community) about the metrics that congestion control mechanisms should be designed to optimize, in terms of trade-offs between throughput and delay, fairness between competing flows, and the like. However, we believe that there is a clear consensus that congestion control mechanisms should be evaluated in terms of trade-offs between a range of metrics, rather than in terms of optimizing for a single metric. This memo provides information for the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='5166' />
<format type='TXT' octets='53609' target='http://www.rfc-editor.org/rfc/rfc5166.txt' />
</reference>

            


<reference anchor='RFC6181' target='http://www.rfc-editor.org/info/rfc6181'>

<front>
<title>Threat Analysis for TCP Extensions for Multipath Operation with Multiple Addresses</title>
<author initials='M.' surname='Bagnulo' fullname='M. Bagnulo'>
<organization /></author>
<date year='2011' month='March' />
<abstract>
<t>Multipath TCP (MPTCP for short) describes the extensions proposed for TCP so that endpoints of a given TCP connection can use multiple paths to exchange data.  Such extensions enable the exchange of segments using different source-destination address pairs, resulting in the capability of using multiple paths in a significant number of scenarios.  Some level of multihoming and mobility support can be achieved through these extensions.  However, the support for multiple IP addresses per endpoint may have implications on the security of the resulting MPTCP.  This note includes a threat analysis for MPTCP.  This document is not an Internet Standards Track specification; it is published for informational purposes.</t></abstract></front>

<seriesInfo name='RFC' value='6181' />
<format type='TXT' octets='44251' target='http://www.rfc-editor.org/rfc/rfc6181.txt' />
</reference>

            


<reference anchor='RFC6349' target='http://www.rfc-editor.org/info/rfc6349'>

<front>
<title>Framework for TCP Throughput Testing</title>
<author initials='B.' surname='Constantine' fullname='B. Constantine'>
<organization /></author>
<author initials='G.' surname='Forget' fullname='G. Forget'>
<organization /></author>
<author initials='R.' surname='Geib' fullname='R. Geib'>
<organization /></author>
<author initials='R.' surname='Schrage' fullname='R. Schrage'>
<organization /></author>
<date year='2011' month='August' />
<abstract>
<t>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.  This document is not an Internet Standards Track specification; it is published for informational purposes.</t></abstract></front>

<seriesInfo name='RFC' value='6349' />
<format type='TXT' octets='62494' target='http://www.rfc-editor.org/rfc/rfc6349.txt' />
</reference>


            <!-- Subsection: Implementation Advice -->
            


<reference anchor='RFC0794' target='http://www.rfc-editor.org/info/rfc794'>

<front>
<title>Pre-emption</title>
<author initials='V.' surname='Cerf' fullname='V. Cerf'>
<organization>Advanced Research Projects Agency (ARPA)</organization></author>
<date year='1981' day='1' month='September' />
<abstract>
<t>In general, precedence is a tool for deciding how to allocate resources when systems are saturated.  In circuit switched systems, the resource is circuits; in message switched systems the resource is the message switch processor; and in packet switching the resource is the packet switching system itself.</t>
<t>This capability can be realized in AUTODIN II without adding any new mechanisms to TCP (except to make precedence of incoming connection requests visible to the processes which use TCP).  To allow pre-emptive access to a particular terminal, the software (i.e., THP) which supports terminal access to the TAC can be configured so as to always have a LISTEN posted for that terminal, even if the terminal has a connection in operation.  For example in the ARPANET TENEX systems, the user TELNET permits a user to have many connections open at one time - the user can switch among them at will.  To the extent that this can be done without violating security requirements, one could imagine a multi-connection THP which always leaves a LISTEN pending for incoming connection requests.  If a connection is established, the THP can decide, based on its precedence, whether to pre-empt any existing connection and to switch the user to the high precedence one.</t></abstract></front>

<seriesInfo name='RFC' value='794' />
<format type='TXT' octets='5906' target='http://www.rfc-editor.org/rfc/rfc794.txt' />
</reference>

            


<reference anchor='RFC0879' target='http://www.rfc-editor.org/info/rfc879'>

<front>
<title abbrev='TCP Maximum Segment Size'>TCP maximum segment size and related topics</title>
<author initials='J.' surname='Postel' fullname='J. Postel'>
<organization>University of Southern California (USC)/Information Sciences Institute</organization>
<address>
<postal>
<street>4676 Admiralty Way</street>
<city>Marina del Rey</city>
<region>CA</region>
<code>90291</code>
<country>US</country></postal>
<phone>+1 213 822 1511</phone></address></author>
<date year='1983' day='1' month='November' />
<abstract>
<t>This memo discusses the TCP Maximum Segment Size Option and related topics.  The purposes 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".</t></abstract></front>

<seriesInfo name='RFC' value='879' />
<format type='TXT' octets='22024' target='http://www.rfc-editor.org/rfc/rfc879.txt' />
</reference>

            


<reference anchor='RFC1071' target='http://www.rfc-editor.org/info/rfc1071'>

<front>
<title>Computing the Internet checksum</title>
<author initials='R.' surname='Braden' fullname='R.  Braden'>
<organization>USC/Information Sciences Institute</organization>
<address>
<postal>
<street>4676 Admiralty Way</street>
<city>Marina del Rey</city>
<region>CA</region>
<code>90291</code>
<country>US</country></postal>
<phone>+1 213 822 1511</phone></address></author>
<author initials='D.' surname='Borman' fullname='D.  Borman'>
<organization>Cray Research</organization></author>
<author initials='C.' surname='Partridge' fullname='C. Partridge'>
<organization>Bolt Baranek and Newman (BBN) Laboratories</organization></author>
<author initials='W.' surname='Plummer' fullname='William W. Plummer'>
<organization>Bolt Beranek and Newman, Inc. (BBN)</organization>
<address>
<postal>
<street>50 Moulton Street</street>
<city>Cambridge</city>
<region>MA</region>
<code>02138</code>
<country>US</country></postal></address></author>
<date year='1988' day='1' month='September' /></front>

<seriesInfo name='RFC' value='1071' />
<format type='TXT' octets='54941' target='http://www.rfc-editor.org/rfc/rfc1071.txt' />
</reference>

            


<reference anchor='RFC1624' target='http://www.rfc-editor.org/info/rfc1624'>

<front>
<title abbrev='Incremental Internet Checksum'>Computation of the Internet Checksum via Incremental Update</title>
<author initials='A.' surname='Rijsinghani' fullname='Anil Rijsinghani'>
<organization>Digital Equipment Corporation</organization>
<address>
<postal>
<street>550 King St</street>
<city>Littleton</city>
<region>MA</region>
<code>01460</code>
<country>US</country></postal>
<phone>+1 508 486 6786</phone>
<email>anil@levers.enet.dec.com</email></address></author>
<date year='1994' month='May' />
<abstract>
<t>This memo describes an updated technique for incremental computation of the standard Internet checksum.  It updates the method described in RFC 1141.</t></abstract></front>

<seriesInfo name='RFC' value='1624' />
<format type='TXT' octets='9836' target='http://www.rfc-editor.org/rfc/rfc1624.txt' />
</reference>

            


<reference anchor='RFC1936' target='http://www.rfc-editor.org/info/rfc1936'>

<front>
<title>Implementing the Internet Checksum in Hardware</title>
<author initials='J.' surname='Touch' fullname='Joe Touch'>
<organization>University of Southern California, Information Sciences Institute</organization>
<address>
<postal>
<street>4676 Admiralty Way</street>
<city>Marina del Rey</city>
<region>CA</region>
<code>90292-6695</code>
<country>US</country></postal>
<phone>+1 310 822 1511 x151</phone>
<facsimile>+1 310 823 6714</facsimile>
<email>touch@isi.edu</email>
<uri>http://www.isi.edu/~touch</uri></address></author>
<author initials='B.' surname='Parham' fullname='Bruce Parham'>
<organization>University of Southern California, Information Sciences Institute</organization>
<address>
<postal>
<street>4676 Admiralty Way</street>
<city>Marina del Rey</city>
<region>CA</region>
<code>90292-6695</code>
<country>US</country></postal>
<phone>+1 310 822 1511 x101</phone>
<facsimile>+1 310 823 6714</facsimile>
<email>bparham@isi.edu</email></address></author>
<date year='1996' month='April' />
<abstract>
<t>This memo presents a techniques for efficiently implementing the Internet checksum in hardware. It includes PLD code for programming a single, low cost part to perform checksumming at 1.26 Gbps.</t></abstract></front>

<seriesInfo name='RFC' value='1936' />
<format type='TXT' octets='36618' target='http://www.rfc-editor.org/rfc/rfc1936.txt' />
</reference>

            


<reference anchor='RFC2525' target='http://www.rfc-editor.org/info/rfc2525'>

<front>
<title abbrev='TCP Implementation Problems'>Known TCP Implementation Problems</title>
<author initials='V.' surname='Paxson' fullname='Vern Paxson'>
<organization>ACIRI / ICSI</organization>
<address>
<postal>
<street>1947 Center Street</street>
<street>Suite 600</street>
<city>Berkeley</city>
<region>CA</region>
<code>94704-1198</code>
<country>US</country></postal>
<phone>+1 510 642 4274 x302</phone>
<email>vern@aciri.org</email></address></author>
<author initials='S.' surname='Dawson' fullname='Scott Dawson'>
<organization>University of Michigan</organization>
<address>
<postal>
<street>Real-Time Computing Laboratory</street>
<street>EECS Building</street>
<city>Ann Arbor</city>
<region>MI</region>
<code>48109-2122</code>
<country>US</country></postal>
<phone>+1 313 763 5363</phone>
<email>sdawson@eecs.umich.edu</email></address></author>
<author initials='W.' surname='Fenner' fullname='William C. Fenner'>
<organization>Xerox PARC</organization>
<address>
<postal>
<street>3333 Coyote Hill Road</street>
<city>Palo Alto</city>
<region>CA</region>
<code>94304</code>
<country>US</country></postal>
<phone>+1 650 812 4816</phone>
<email>fenner@parc.xerox.com</email></address></author>
<author initials='J.' surname='Griner' fullname='Jim Griner'>
<organization>NASA Glenn Research Center</organization>
<address>
<postal>
<street>Lewis Field</street>
<street>21000 Brookpark Road</street>
<street>MS 54-2</street>
<city>Cleveland</city>
<region>OH</region>
<code>44135</code>
<country>US</country></postal>
<phone>+1 216 433 5787</phone>
<email>jgriner@grc.nasa.gov</email></address></author>
<author initials='I.' surname='Heavens' fullname='Ian Heavens'>
<organization>Spider Software Ltd.</organization>
<address>
<postal>
<street>8 John's Place</street>
<street>Leith</street>
<city>Edinburgh</city>
<region>Scotland</region>
<code>EH6 7EL</code>
<country>UK</country></postal>
<phone>+44 131 4757015</phone>
<email>ian@spider.com</email></address></author>
<author initials='K.' surname='Lahey' fullname='Kevin Lahey'>
<organization>NASA Ames Research Center/MRJ</organization>
<address>
<postal>
<street>MS 258-6</street>
<city>Moffett Field</city>
<region>CA</region>
<code>94035</code>
<country>US</country></postal>
<phone>+1 650 604 4334</phone>
<email>kml@nas.nasa.gov</email></address></author>
<author initials='J.' surname='Semke' fullname='Jeff Semke'>
<organization>Pittsburgh Supercomputing Center</organization>
<address>
<postal>
<street>4400 Fifth Ave</street>
<city>Pittsburgh</city>
<region>PA</region>
<code>15213</code>
<country>US</country></postal>
<phone>+1 412 268 4960</phone>
<email>semke@psc.edu</email></address></author>
<author initials='B.' surname='Volz' fullname='Bernie Volz'>
<organization>Process Software Corporation</organization>
<address>
<postal>
<street>959 Concord Street</street>
<city>Framingham</city>
<region>MA</region>
<code>01701</code>
<country>US</country></postal>
<phone>+1 508 879 6994</phone>
<email>volz@process.com</email></address></author>
<date year='1999' month='March' /></front>

<seriesInfo name='RFC' value='2525' />
<format type='TXT' octets='137201' target='http://www.rfc-editor.org/rfc/rfc2525.txt' />
</reference>

            


<reference anchor='RFC2923' target='http://www.rfc-editor.org/info/rfc2923'>

<front>
<title>TCP Problems with Path MTU Discovery</title>
<author initials='K.' surname='Lahey' fullname='K. Lahey'>
<organization /></author>
<date year='2000' month='September' />
<abstract>
<t>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 acknowlegements (ACKs) due to confusion between Maximum Segment Size (MSS) and segment size, and MSS advertisement based on PMTU.  This memo provides information for the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='2923' />
<format type='TXT' octets='30976' target='http://www.rfc-editor.org/rfc/rfc2923.txt' />
</reference>

            


<reference anchor='RFC3493' target='http://www.rfc-editor.org/info/rfc3493'>

<front>
<title>Basic Socket Interface Extensions for IPv6</title>
<author initials='R.' surname='Gilligan' fullname='R. Gilligan'>
<organization /></author>
<author initials='S.' surname='Thomson' fullname='S. Thomson'>
<organization /></author>
<author initials='J.' surname='Bound' fullname='J. Bound'>
<organization /></author>
<author initials='J.' surname='McCann' fullname='J. McCann'>
<organization /></author>
<author initials='W.' surname='Stevens' fullname='W. Stevens'>
<organization /></author>
<date year='2003' month='February' />
<abstract>
<t>The de facto standard Application Program Interface (API) for TCP/IP applications is the "sockets" interface.  Although this API was developed for Unix in the early 1980s it has also been implemented on a wide variety of non-Unix systems.  TCP/IP applications written using the sockets API have in the past enjoyed a high degree of portability and we would like the same portability with IPv6 applications.  But changes are required to the sockets API to support IPv6 and this memo describes these changes.  These include a new socket address structure to carry IPv6 addresses, new address conversion functions, and some new socket options.  These extensions are designed to provide access to the basic IPv6 features required by TCP and UDP applications, including multicasting, while introducing a minimum of change into the system and providing complete compatibility for existing IPv4 applications.  Additional extensions for advanced IPv6 features (raw sockets and access to the IPv6 extension headers) are defined in another document.  This memo provides information for the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='3493' />
<format type='TXT' octets='82570' target='http://www.rfc-editor.org/rfc/rfc3493.txt' />
</reference>

            


<reference anchor='RFC6056' target='http://www.rfc-editor.org/info/rfc6056'>

<front>
<title>Recommendations for Transport-Protocol Port Randomization</title>
<author initials='M.' surname='Larsen' fullname='M. Larsen'>
<organization /></author>
<author initials='F.' surname='Gont' fullname='F. Gont'>
<organization /></author>
<date year='2011' month='January' />
<abstract>
<t>During the last few years, awareness has been raised about a number of "blind" attacks that can be performed against the Transmission Control Protocol (TCP) and similar protocols.  The consequences of these attacks range from throughput reduction to broken connections or data corruption.  These attacks rely on the attacker's ability to guess or know the five-tuple (Protocol, Source Address, Destination Address, Source Port, Destination Port) that identifies the transport protocol instance to be attacked.  This document describes a number of simple and efficient methods for the selection of the client port number, such that the possibility of an attacker guessing the exact value is reduced.  While this is not a replacement for cryptographic methods for protecting the transport-protocol instance, the aforementioned port selection algorithms provide improved security with very little effort and without any key management overhead.  The algorithms described in this document are local policies that may be incrementally deployed and that do not violate the specifications of any of the transport protocols that may benefit from them, such as TCP, UDP, UDP-lite, Stream Control Transmission Protocol (SCTP), Datagram Congestion Control Protocol (DCCP), and RTP (provided that the RTP application explicitly signals the RTP and RTCP port numbers).  This memo documents an Internet Best Current Practice.</t></abstract></front>

<seriesInfo name='BCP' value='156' />
<seriesInfo name='RFC' value='6056' />
<format type='TXT' octets='63913' target='http://www.rfc-editor.org/rfc/rfc6056.txt' />
</reference>

            


<reference anchor='RFC6191' target='http://www.rfc-editor.org/info/rfc6191'>

<front>
<title>Reducing the TIME-WAIT State Using TCP Timestamps</title>
<author initials='F.' surname='Gont' fullname='F. Gont'>
<organization /></author>
<date year='2011' month='April' />
<abstract>
<t>This document describes an algorithm for processing incoming SYN segments that allows higher connection-establishment rates between any two TCP endpoints when a TCP Timestamps option is present in the incoming SYN segment.  This document only modifies processing of SYN segments received for connections in the TIME-WAIT state; processing in all other states is unchanged.  This memo documents an Internet Best Current Practice.</t></abstract></front>

<seriesInfo name='BCP' value='159' />
<seriesInfo name='RFC' value='6191' />
<format type='TXT' octets='22953' target='http://www.rfc-editor.org/rfc/rfc6191.txt' />
</reference>

            


<reference anchor='RFC6429' target='http://www.rfc-editor.org/info/rfc6429'>

<front>
<title>TCP Sender Clarification for Persist Condition</title>
<author initials='M.' surname='Bashyam' fullname='M. Bashyam'>
<organization /></author>
<author initials='M.' surname='Jethanandani' fullname='M. Jethanandani'>
<organization /></author>
<author initials='A.' surname='Ramaiah' fullname='A. Ramaiah'>
<organization /></author>
<date year='2011' month='December' />
<abstract>
<t>This document clarifies the Zero Window Probes (ZWPs) described in RFC 1122 ("Requirements for Internet Hosts -- Communication Layers").  In particular, it clarifies the actions that can be taken on connections that are experiencing the ZWP condition.  Rather than making a change to the standard, this document clarifies what has been until now a misinterpretation of the standard as specified in RFC 1122.  This document is not an Internet Standards Track specification; it is published for informational purposes.</t></abstract></front>

<seriesInfo name='RFC' value='6429' />
<format type='TXT' octets='14280' target='http://www.rfc-editor.org/rfc/rfc6429.txt' />
</reference>

            


<reference anchor='RFC6897' target='http://www.rfc-editor.org/info/rfc6897'>

<front>
<title>Multipath TCP (MPTCP) Application Interface Considerations</title>
<author initials='M.' surname='Scharf' fullname='M. Scharf'>
<organization /></author>
<author initials='A.' surname='Ford' fullname='A. Ford'>
<organization /></author>
<date year='2013' month='March' />
<abstract>
<t>Multipath TCP (MPTCP) adds the capability of using multiple paths to a regular TCP session.  Even though it is designed to be totally backward compatible to applications, the data transport differs compared to regular TCP, and there are several additional degrees of freedom that applications may wish to exploit.  This document summarizes the impact that MPTCP may have on applications, such as changes in performance.  Furthermore, it discusses compatibility issues of MPTCP in combination with non-MPTCP-aware applications.  Finally, the document describes a basic application interface that is a simple extension of TCP's interface for MPTCP-aware applications.</t></abstract></front>

<seriesInfo name='RFC' value='6897' />
<format type='TXT' octets='75704' target='http://www.rfc-editor.org/rfc/rfc6897.txt' />
</reference>


            <!-- Subsection: Management Information Bases -->
            


<reference anchor='RFC1156' target='http://www.rfc-editor.org/info/rfc1156'>

<front>
<title abbrev='MIB'>Management Information Base for network management of TCP/IP-based internets</title>
<author initials='K.' surname='McCloghrie' fullname='Keith McCloghrie'>
<organization>Hughes LAN Systems, The Wollongong Group</organization>
<address>
<postal>
<street>1129 San Antonio Road</street>
<city>Palo Alto</city>
<region>CA</region>
<code>94303</code>
<country>US</country></postal>
<phone>+1 415 962 7160</phone>
<email>sytek!kzm@HPLABS.HP.COM</email></address></author>
<author initials='M.' surname='Rose' fullname='Marshall T. Rose'>
<organization>Performance Systems International, Inc. (PSI), PSI California Office</organization>
<address>
<postal>
<street>P.O. Box 391776</street>
<city>Mountain View</city>
<region>CA</region>
<code>94039</code>
<country>US</country></postal>
<phone>+1 415 961 3380</phone>
<email>mrose@PSI.COM</email></address></author>
<date year='1990' day='1' month='May' /></front>

<seriesInfo name='RFC' value='1156' />
<format type='TXT' octets='138781' target='http://www.rfc-editor.org/rfc/rfc1156.txt' />
</reference>

            



<reference anchor='RFC1213' target='http://www.rfc-editor.org/info/rfc1213'>

<front>
<title abbrev='MIB-II'>Management Information Base for Network Management of TCP/IP-based internets:MIB-II</title>
<author initials='K.' surname='McCloghrie' fullname='Keith McCloghrie'>
<organization>Hughes, LAN Systems</organization>
<address>
<postal>
<street>1225 Charleston Road</street>
<city>Mountain View</city>
<region>CA</region>
<code>94043</code>
<country>US</country></postal>
<phone>+1 415 966 7934</phone>
<email>kzm@hls.com</email></address></author>
<author initials='M.' surname='Rose' fullname='Marshall T. Rose'>
<organization>Performance Systems International</organization>
<address>
<postal>
<street>5201 Great America Parkway</street>
<street>Suite 3106</street>
<city>Santa Clara</city>
<region>CA</region>
<code>95054</code>
<country>US</country></postal>
<phone>+1 408 562 6222</phone>
<email>mrose@psi.com</email></address></author>
<date year='1991' day='1' month='March' />
<abstract>
<t>This memo defines the second version of the Management Information Base (MIB-II) for use with network management protocols in TCP/IP-based internets.  In particular, together with its companion memos which describe the structure of management information (RFC 1155) along with the network management protocol (RFC 1157) for TCP/IP-based internets, these documents provide a simple, workable architecture and system for managing TCP/IP-based internets and in particular the Internet community.</t></abstract></front>

<seriesInfo name='STD' value='17' />
<seriesInfo name='RFC' value='1213' />
<format type='TXT' octets='146080' target='http://www.rfc-editor.org/rfc/rfc1213.txt' />
</reference>

            


<reference anchor='RFC2012' target='http://www.rfc-editor.org/info/rfc2012'>

<front>
<title abbrev='TCP MIB'>SNMPv2 Management Information Base for the Transmission Control Protocol using SMIv2</title>
<author initials='K.' surname='McCloghrie' fullname='Keith McCloghrie'>
<organization>Cisco Systems, Inc.</organization>
<address>
<postal>
<street>170 West Tasman Drive</street>
<street>San Jose</street>
<street>CA  95134-1706</street>
<country>US</country></postal>
<phone>+1 408 526 5260</phone>
<email>kzm@cisco.com</email></address></author>
<date year='1996' month='November' />
<area>Transport</area>
<area>Management</area>
<keyword>TCP</keyword>
<keyword>Management Information Base</keyword>
<keyword>control protocol</keyword>
<keyword>simple network management protocol version 2</keyword>
<keyword>structure of management information version 2</keyword>
<keyword>transmission control protocol</keyword>
<note title='IESG Note'>
<t>
   The IP, UDP, and TCP MIB modules currently support only IPv4.  These
   three modules use the IpAddress type defined as an OCTET STRING of
   length 4 to represent the IPv4 32-bit internet addresses.  (See RFC
   1902, SMI for SNMPv2.)  They do not support the new 128-bit IPv6
   internet addresses.
</t></note></front>

<seriesInfo name='RFC' value='2012' />
<format type='TXT' octets='16792' target='http://www.rfc-editor.org/rfc/rfc2012.txt' />
<format type='XML' octets='17746' target='http://xml.resource.org/public/rfc/xml/rfc2012.xml' />
</reference>

            


<reference anchor='RFC2452' target='http://www.rfc-editor.org/info/rfc2452'>

<front>
<title abbrev='TCP MIB for IPv6'>IP Version 6 Management Information Base for the Transmission Control Protocol</title>
<author initials='M.' surname='Daniele' fullname='Mike Daniele'>
<organization>Compaq Computer Corporation</organization>
<address>
<postal>
<street>110 Spit Brook Rd</street>
<street>Nashua</street>
<region>NH</region>
<code>03062</code>
<country>USA</country></postal>
<phone>+1 603 884 1423</phone>
<email>daniele@zk3.dec.com</email></address></author>
<date year='1998' month='December' />
<area>Transport</area>
<area>Management</area>
<keyword>Management Information Base</keyword>
<keyword>control protocol</keyword>
<keyword>internet protocol version 6</keyword>
<keyword>transmission control protocol</keyword>
<abstract>
<t>
   This document is one in the series of documents that define various
   MIB objects for IPv6.  Specifically, this document is the MIB module
   which defines managed objects for implementations of the Transmission
   Control Protocol (TCP) over IP Version 6 (IPv6).
</t>
<t>
   This document also recommends a specific policy with respect to the
   applicability of RFC 2012 for implementations of IPv6.  Namely, that
   most of managed objects defined in RFC 2012 are independent of which
   IP versions underlie TCP, and only the TCP connection information is
   IP version-specific.
</t>
<t>
   This memo defines an experimental portion of the Management
   Information Base (MIB) for use with network management protocols in
   IPv6-based internets.
</t></abstract></front>

<seriesInfo name='RFC' value='2452' />
<format type='TXT' octets='19066' target='http://www.rfc-editor.org/rfc/rfc2452.txt' />
<format type='HTML' octets='36688' target='http://xml.resource.org/public/rfc/html/rfc2452.html' />
<format type='XML' octets='28198' target='http://xml.resource.org/public/rfc/xml/rfc2452.xml' />
</reference>

            


<reference anchor='RFC4022' target='http://www.rfc-editor.org/info/rfc4022'>

<front>
<title>Management Information Base for the Transmission Control Protocol (TCP)</title>
<author initials='R.' surname='Raghunarayan' fullname='R. Raghunarayan'>
<organization /></author>
<date year='2005' month='March' />
<abstract>
<t>This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community.  In particular, it describes managed objects used for implementations of the Transmission Control Protocol (TCP) in an IP version independent manner.  This memo obsoletes RFCs 2452 and 2012. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='4022' />
<format type='TXT' octets='47360' target='http://www.rfc-editor.org/rfc/rfc4022.txt' />
</reference>

            


<reference anchor='RFC4898' target='http://www.rfc-editor.org/info/rfc4898'>

<front>
<title>TCP Extended Statistics MIB</title>
<author initials='M.' surname='Mathis' fullname='M. Mathis'>
<organization /></author>
<author initials='J.' surname='Heffner' fullname='J. Heffner'>
<organization /></author>
<author initials='R.' surname='Raghunarayan' fullname='R. Raghunarayan'>
<organization /></author>
<date year='2007' month='May' />
<abstract>
<t>This document 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.  If a network-based application is performing poorly, TCP can determine if the bottleneck is in the sender, the receiver, or the network itself.  If the bottleneck is in the network, TCP can provide specific information about its nature. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='4898' />
<format type='TXT' octets='153768' target='http://www.rfc-editor.org/rfc/rfc4898.txt' />
</reference>


            <!-- Subsection: Tools and Tutorials -->
            


<reference anchor='RFC1180' target='http://www.rfc-editor.org/info/rfc1180'>

<front>
<title>TCP/IP tutorial</title>
<author initials='T.' surname='Socolofsky' fullname='Theodore John Socolofsky'>
<organization>Spider Systems Limited</organization>
<address>
<postal>
<street>Stanwell Street</street>
<street>Spider Park</street>
<city>Edinburgh</city>
<region>Scotland</region>
<code>EH6 5NG</code>
<country>UK</country></postal>
<phone>+44 31 5549424</phone>
<facsimile>+44 31 5540649</facsimile>
<email>TEDS@SPIDER.CO.UK</email></address></author>
<author initials='C.' surname='Kale' fullname='Claudia Jeanne Kale'>
<organization />
<address>
<postal>
<street>12 Gosford Place</street>
<city>Edinburgh</city>
<region>England</region>
<code>EH6 4BJ</code>
<country>UK</country></postal>
<phone>+44 31 5547432</phone>
<email>CLAUDIAK@SPIDER.CO.UK</email></address></author>
<date year='1991' day='1' month='January' /></front>

<seriesInfo name='RFC' value='1180' />
<format type='TXT' octets='65494' target='http://www.rfc-editor.org/rfc/rfc1180.txt' />
</reference>

            


<reference anchor='RFC1470' target='http://www.rfc-editor.org/info/rfc1470'>

<front>
<title abbrev='FYI: Network Management Tool Catalog'>FYI on a Network Management Tool Catalog: Tools for Monitoring and Debugging TCP/IP Internets and Interconnected Devices</title>
<author initials='R.' surname='Enger' fullname='Robert M. Enger'>
<organization>Advanced Network and Services</organization>
<address>
<postal>
<street>1875 Campus Commons Drive</street>
<street>Suite 220</street>
<city>Reston</city>
<region>VA</region>
<code>22091-1552</code>
<country>US</country></postal>
<phone>+1 703 758 7722</phone>
<email>enger@reston.ans.net</email></address></author>
<author initials='J.' surname='Reynolds' fullname='Joyce K. Reynolds'>
<organization>University of Southern California, Information Sciences Institute</organization>
<address>
<postal>
<street>4676 Admiralty Way</street>
<city>Marina del Rey</city>
<region>CA</region>
<code>90292</code>
<country>US</country></postal>
<phone>+1 310 822 1511</phone>
<email>JKREY@ISI.EDU</email></address></author>
<date year='1993' month='June' />
<abstract>
<t>The goal of this FYI memo is to provide an update to FYI 2, RFC 1147, which provided practical information to site administrators and network managers.  New and/or updated tools are listed in this RFC. Additonal descriptions are welcome, and should be sent to: noctools- entries@merit.edu.</t></abstract></front>

<seriesInfo name='RFC' value='1470' />
<format type='TXT' octets='308528' target='http://www.rfc-editor.org/rfc/rfc1470.txt' />
</reference>

            


<reference anchor='RFC2398' target='http://www.rfc-editor.org/info/rfc2398'>

<front>
<title>Some Testing Tools for TCP Implementors</title>
<author initials='S.' surname='Parker' fullname='Steve Parker'>
<organization>Sun Microsystems, Inc.</organization>
<address>
<postal>
<street>901 San Antonio Road</street>
<street>UMPK17-202</street>
<street>Palo Alto</street>
<street>CA 94043</street>
<country>USA</country></postal>
<phone>(650) 786-5176</phone>
<email>sparker@eng.sun.com</email></address></author>
<author initials='C.' surname='Schmechel' fullname='Chris Schmechel'>
<organization>Sun Microsystems, Inc.</organization>
<address>
<postal>
<street>901 San Antonio Road</street>
<street>UMPK17-202</street>
<street>Palo Alto</street>
<street>94043</street>
<country>USA</country></postal>
<phone>(650) 786-4053</phone>
<email>cschmec@eng.sun.com</email></address></author>
<date year='1998' month='August' />
<area>Transport</area>
<keyword>tool</keyword>
<keyword>transmission control protocol</keyword></front>

<seriesInfo name='RFC' value='2398' />
<format type='TXT' octets='24107' target='http://www.rfc-editor.org/rfc/rfc2398.txt' />
<format type='HTML' octets='47593' target='http://xml.resource.org/public/rfc/html/rfc2398.html' />
<format type='XML' octets='26927' target='http://xml.resource.org/public/rfc/xml/rfc2398.xml' />
</reference>

            


<reference anchor='RFC5783' target='http://www.rfc-editor.org/info/rfc5783'>

<front>
<title>Congestion Control in the RFC Series</title>
<author initials='M.' surname='Welzl' fullname='M. Welzl'>
<organization /></author>
<author initials='W.' surname='Eddy' fullname='W. Eddy'>
<organization /></author>
<date year='2010' month='February' />
<abstract>
<t>This document is an informational snapshot taken by the IRTF\'s Internet Congestion Control Research Group (ICCRG) in October 2008.  It provides a survey of congestion control topics described by documents in the RFC series.  This does not modify or update the specifications or status of the RFC documents that are discussed.  It may be used as a reference or starting point for the future work of the research group, especially in noting gaps or open issues in the current IETF standards.  This document is not an Internet Standards Track specification; it is published for informational purposes.</t></abstract></front>

<seriesInfo name='RFC' value='5783' />
<format type='TXT' octets='68231' target='http://www.rfc-editor.org/rfc/rfc5783.txt' />
</reference>

            


<reference anchor='RFC6077' target='http://www.rfc-editor.org/info/rfc6077'>

<front>
<title>Open Research Issues in Internet Congestion Control</title>
<author initials='D.' surname='Papadimitriou' fullname='D. Papadimitriou'>
<organization /></author>
<author initials='M.' surname='Welzl' fullname='M. Welzl'>
<organization /></author>
<author initials='M.' surname='Scharf' fullname='M. Scharf'>
<organization /></author>
<author initials='B.' surname='Briscoe' fullname='B. Briscoe'>
<organization /></author>
<date year='2011' month='February' />
<abstract>
<t>This document describes some of the open problems in Internet congestion control that are known today.  This includes several new challenges that are becoming important as the network grows, as well as some issues that have been known for many years.  These challenges are generally considered to be open research topics that may require more study or application of innovative techniques before Internet-scale solutions can be confidently engineered and deployed.  This document is not an Internet Standards Track specification; it is published for informational purposes.</t></abstract></front>

<seriesInfo name='RFC' value='6077' />
<format type='TXT' octets='130169' target='http://www.rfc-editor.org/rfc/rfc6077.txt' />
</reference>

            <!-- Subsection: Case Studies -->
            


<reference anchor='RFC0700' target='http://www.rfc-editor.org/info/rfc700'>

<front>
<title>Protocol experiment</title>
<author initials='E.' surname='Mader' fullname='Eric R. Mader'>
<organization /></author>
<author initials='W.' surname='Plummer' fullname='William W. Plummer'>
<organization /></author>
<author initials='R.' surname='Tomlinson' fullname='Raymond S. Tomlinson'>
<organization /></author>
<date year='1974' day='1' month='August' /></front>

<seriesInfo name='RFC' value='700' />
<format type='TXT' octets='14600' target='http://www.rfc-editor.org/rfc/rfc700.txt' />
</reference>

            


<reference anchor='RFC0889' target='http://www.rfc-editor.org/info/rfc889'>

<front>
<title>Internet delay experiments</title>
<author initials='D.' surname='Mills' fullname='D. L. Mills'>
<organization /></author>
<date year='1983' day='1' month='December' />
<abstract>
<t>This memo reports on some measurement experiments and suggests some possible improvements to the TCP retransmission timeout calculation.  This memo is both a status report on the measurements and advice to implementers of TCP.</t></abstract></front>

<seriesInfo name='RFC' value='889' />
<format type='TXT' octets='27128' target='http://www.rfc-editor.org/rfc/rfc889.txt' />
</reference>

            


<reference anchor='RFC1337' target='http://www.rfc-editor.org/info/rfc1337'>

<front>
<title abbrev='TCP TIME-WAIT Hazards'>TIME-WAIT Assassination Hazards in TCP</title>
<author initials='B.' surname='Braden' fullname='Bob Braden'>
<organization>University of Southern California (USC), Information Sciences Institute</organization>
<address>
<postal>
<street>4676 Admiralty Way</street>
<city>Marina del Rey</city>
<region>CA</region>
<code>90292</code>
<country>US</country></postal>
<phone>+1 213 822 1511</phone>
<email>EMail: Braden@ISI.EDU</email></address></author>
<date year='1992' month='May' />
<abstract>
<t>This note describes some theoretically-possible failure modes for TCP connections and discusses possible remedies.  In particular, one very simple fix is identified.</t></abstract></front>

<seriesInfo name='RFC' value='1337' />
<format type='TXT' octets='22887' target='http://www.rfc-editor.org/rfc/rfc1337.txt' />
</reference>

            


<reference anchor='RFC2415' target='http://www.rfc-editor.org/info/rfc2415'>

<front>
<title abbrev='TCP Window Size'>Simulation Studies of Increased Initial TCP Window Size</title>
<author initials='K.' surname='Poduri' fullname='Kedarnath Poduri'>
<organization>Bay Networks</organization>
<address>
<postal>
<street>4401 Great America Parkway</street>
<street>SC01-04</street>
<street>Santa Clara</street>
<street>CA 95052-8185</street></postal>
<phone>+1-408-495-2463</phone>
<facsimile>+1-408-495-1299</facsimile>
<email>knichols@baynetworks.com</email>
<uri>@Baynetworks.com</uri></address></author>
<date year='1998' month='September' />
<area>Transport</area>
<keyword>file transfer</keyword>
<keyword>transmission control protocol</keyword>
<keyword>TCP</keyword>
<abstract>
<t>
   An increase in the permissible initial window size of a TCP
   connection, from one segment to three or four segments, has been
   under discussion in the tcp-impl working group. This document covers
   some simulation studies of the effects of increasing the initial
   window size of TCP. Both long-lived TCP connections (file transfers)
   and short-lived web-browsing style connections were modeled. The
   simulations were performed using the publicly available ns-2
   simulator and our custom models and files are also available.
</t></abstract></front>

<seriesInfo name='RFC' value='2415' />
<format type='TXT' octets='24205' target='http://www.rfc-editor.org/rfc/rfc2415.txt' />
<format type='HTML' octets='37724' target='http://xml.resource.org/public/rfc/html/rfc2415.html' />
<format type='XML' octets='24082' target='http://xml.resource.org/public/rfc/xml/rfc2415.xml' />
</reference>

            


<reference anchor='RFC2416' target='http://www.rfc-editor.org/info/rfc2416'>

<front>
<title abbrev='TCP with Four Packets into Three Buffers'>When TCP Starts Up With Four Packets Into Only Three Buffers</title>
<author initials='T.' surname='Shepard' fullname='Tim Shepard'>
<organization>BBN Technologies</organization>
<address>
<postal>
<street>10 Moulton Street</street>
<city>Cambridge</city>
<region>MA</region>
<code> 02138</code>
<country>USA</country></postal>
<email>shep@alum.mit.edu</email></address></author>
<author initials='C.' surname='Partridge' fullname='Craig Partridge'>
<organization>BBN Technologies</organization>
<address>
<postal>
<street>10 Moulton Street</street>
<city>Cambridge</city>
<region>MA</region>
<code>02138</code>
<country>USA</country></postal>
<email>craig@bbn.com</email></address></author>
<date year='1998' month='September' />
<area>Transport</area>
<keyword>TCP</keyword>
<keyword>transmission control protocol</keyword>
<abstract>
<t>
   This memo is to document a simple experiment.  The experiment showed
   that in the case of a TCP receiver behind a 9600 bps modem link at
   the edge of a fast Internet where there are only 3 buffers before the
   modem (and the fourth packet of a four-packet start will surely be
   dropped), no significant degradation in performance is experienced by
   a TCP sending with a four-packet start when compared with a normal
   slow start (which starts with just one packet).
</t></abstract></front>

<seriesInfo name='RFC' value='2416' />
<format type='TXT' octets='12663' target='http://www.rfc-editor.org/rfc/rfc2416.txt' />
<format type='HTML' octets='25644' target='http://xml.resource.org/public/rfc/html/rfc2416.html' />
<format type='XML' octets='14005' target='http://xml.resource.org/public/rfc/xml/rfc2416.xml' />
</reference>

            


<reference anchor='RFC2884' target='http://www.rfc-editor.org/info/rfc2884'>

<front>
<title>Performance Evaluation of Explicit Congestion Notification (ECN) in IP Networks</title>
<author initials='J.' surname='Hadi Salim' fullname='J. Hadi Salim'>
<organization /></author>
<author initials='U.' surname='Ahmed' fullname='U. Ahmed'>
<organization /></author>
<date year='2000' month='July' />
<abstract>
<t>This memo presents a performance study of the Explicit Congestion Notification (ECN) mechanism in the TCP/IP protocol using our implementation on the Linux Operating System.  This memo provides information for the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='2884' />
<format type='TXT' octets='44647' target='http://www.rfc-editor.org/rfc/rfc2884.txt' />
</reference>

        </references>

        <!-- Informative References -->
        <references title="Informative References">
            


<reference anchor='RFC1016' target='http://www.rfc-editor.org/info/rfc1016'>

<front>
<title abbrev='Source Quench Introduced Delay -- SQuID'>Something a host could do with source quench: The Source Quench Introduced Delay (SQuID)</title>
<author initials='W.' surname='Prue' fullname='W. Prue'>
<organization>USC/Information Sciences Institute</organization>
<address>
<postal>
<street>4676 Admiralty Way</street>
<city>Marina del Rey</city>
<region>CA</region>
<code>90291</code>
<country>US</country></postal>
<phone>+1 213 822 1511</phone></address></author>
<author initials='J.' surname='Postel' fullname='J. Postel'>
<organization>USC/Information Sciences Institute</organization>
<address>
<postal>
<street>4676 Admiralty Way</street>
<city>Marina del Rey</city>
<region>CA</region>
<code>90291</code>
<country>US</country></postal>
<phone>+1 213 822 1511</phone></address></author>
<date year='1987' day='1' month='July' /></front>

<seriesInfo name='RFC' value='1016' />
<format type='TXT' octets='47922' target='http://www.rfc-editor.org/rfc/rfc1016.txt' />
</reference>

            


<reference anchor='RFC2026' target='http://www.rfc-editor.org/info/rfc2026'>

<front>
<title abbrev='Internet Standards Process'>The Internet Standards Process -- Revision 3</title>
<author initials='S.' surname='Bradner' fullname='Scott O. Bradner'>
<organization>Harvard University</organization>
<address>
<postal>
<street>1350 Mass. Ave.</street>
<city>Cambridge</city>
<region>MA</region>
<code>02138</code>
<country>US</country></postal>
<phone>+1 617 495 3864</phone>
<email>sob@harvard.edu</email></address></author>
<date year='1996' month='October' />
<abstract>
<t>This memo documents the process used by the Internet community for the standardization of protocols and procedures.  It defines the stages in the standardization process, the requirements for moving a document between stages and the types of documents used during this process.  It also addresses the intellectual property rights and copyright issues associated with the standards process.</t></abstract></front>

<seriesInfo name='BCP' value='9' />
<seriesInfo name='RFC' value='2026' />
<format type='TXT' octets='86731' target='http://www.rfc-editor.org/rfc/rfc2026.txt' />
</reference>

            


<reference anchor='RFC2119' target='http://www.rfc-editor.org/info/rfc2119'>

<front>
<title abbrev='RFC Key Words'>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials='S.' surname='Bradner' fullname='Scott Bradner'>
<organization>Harvard University</organization>
<address>
<postal>
<street>1350 Mass. Ave.</street>
<street>Cambridge</street>
<street>MA 02138</street></postal>
<phone>- +1 617 495 3864</phone>
<email>sob@harvard.edu</email></address></author>
<date year='1997' month='March' />
<area>General</area>
<keyword>keyword</keyword>
<abstract>
<t>
   In many standards track documents several words are used to signify
   the requirements in the specification.  These words are often
   capitalized.  This document defines these words as they should be
   interpreted in IETF documents.  Authors who follow these guidelines
   should incorporate this phrase near the beginning of their document:

<list>
<t>
      The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
      NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and
      "OPTIONAL" in this document are to be interpreted as described in
      RFC 2119.
</t></list></t>
<t>
   Note that the force of these words is modified by the requirement
   level of the document in which they are used.
</t></abstract></front>

<seriesInfo name='BCP' value='14' />
<seriesInfo name='RFC' value='2119' />
<format type='TXT' octets='4723' target='http://www.rfc-editor.org/rfc/rfc2119.txt' />
<format type='HTML' octets='17970' target='http://xml.resource.org/public/rfc/html/rfc2119.html' />
<format type='XML' octets='5777' target='http://xml.resource.org/public/rfc/xml/rfc2119.xml' />
</reference>

            


<reference anchor='RFC2474' target='http://www.rfc-editor.org/info/rfc2474'>

<front>
<title abbrev='Differentiated Services Field'>Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers</title>
<author initials='K.' surname='Nichols' fullname='Kathleen Nichols'>
<organization>Cisco Systems</organization>
<address>
<postal>
<street>170 West Tasman Drive</street>
<city>San Jose</city>
<region>CA</region>
<code>95134-1706</code>
<country>USA</country></postal>
<phone>+1 408 525 4857</phone>
<email>kmn@cisco.com</email></address></author>
<author initials='S.' surname='Blake' fullname='Steven Blake'>
<organization>Torrent Networking Technologies</organization>
<address>
<postal>
<street>3000 Aerial Center</street>
<city>Morrisville</city>
<region>NC</region>
<code>27560</code>
<country>USA</country></postal>
<phone>+1 919 468 8466 x232</phone>
<email>slblake@torrentnet.com</email></address></author>
<author initials='F.' surname='Baker' fullname='Fred Baker'>
<organization>Cisco Systems</organization>
<address>
<postal>
<street>519 Lado Drive</street>
<city> Santa Barbara</city>
<region>CA</region>
<code>93111</code>
<country>USA</country></postal>
<phone>+1 408 526 4257</phone>
<email>fred@cisco.com</email></address></author>
<author initials='D.L.' surname='Black' fullname='David L. Black'>
<organization>EMC Corporation</organization>
<address>
<postal>
<street>35 Parkwood Drive</street>
<city>Hopkinton</city>
<region>MA</region>
<code>01748</code>
<country>USA</country></postal>
<phone>+1 508 435 1000 x76140</phone>
<email>black_david@emc.com</email></address></author>
<date year='1998' month='December' />
<area>Internet</area>
<keyword>internet protocol version 4</keyword>
<keyword>IPv6</keyword>
<keyword>IPv4</keyword>
<keyword>internet protocol version 6</keyword>
<keyword>type of service</keyword>
<abstract>
<t>
   Differentiated services enhancements to the Internet protocol are
   intended to enable scalable service discrimination in the Internet
   without the need for per-flow state and signaling at every hop.  A
   variety of services may be built from a small, well-defined set of
   building blocks which are deployed in network nodes.  The services
   may be either end-to-end or intra-domain; they include both those
   that can satisfy quantitative performance requirements (e.g., peak
   bandwidth) and those based on relative performance (e.g., &quot;class&quot;
   differentiation).  Services can be constructed by a combination of:

<list>
<t>
   - setting bits in an IP header field at network boundaries
     (autonomous system boundaries, internal administrative boundaries,
     or hosts),
</t>
<t>
   - using those bits to determine how packets are forwarded by the
     nodes inside the network, and
</t>
<t>
   - conditioning the marked packets at network boundaries in accordance
     with the requirements or rules of each service.
</t></list></t>
<t>
   The requirements or rules of each service must be set through
   administrative policy mechanisms which are outside the scope of this
   document.  A differentiated services-compliant network node includes
   a classifier that selects packets based on the value of the DS field,
   along with buffer management and packet scheduling mechanisms capable
   of delivering the specific packet forwarding treatment indicated by
   the DS field value.  Setting of the DS field and conditioning of the
   temporal behavior of marked packets need only be performed at network
   boundaries and may vary in complexity.
</t>
<t>
   This document defines the IP header field, called the DS (for
   differentiated services) field.  In IPv4, it defines the layout of
   the TOS octet; in IPv6, the Traffic Class octet.  In addition, a base
   set of packet forwarding treatments, or per-hop behaviors, is
   defined.
</t>
<t>
   For a more complete understanding of differentiated services, see
   also the differentiated services architecture .
</t></abstract></front>

<seriesInfo name='RFC' value='2474' />
<format type='TXT' octets='50576' target='http://www.rfc-editor.org/rfc/rfc2474.txt' />
<format type='HTML' octets='74968' target='http://xml.resource.org/public/rfc/html/rfc2474.html' />
<format type='XML' octets='62970' target='http://xml.resource.org/public/rfc/xml/rfc2474.xml' />
</reference>

            


<reference anchor='RFC3758' target='http://www.rfc-editor.org/info/rfc3758'>

<front>
<title>Stream Control Transmission Protocol (SCTP) Partial Reliability Extension</title>
<author initials='R.' surname='Stewart' fullname='R. Stewart'>
<organization /></author>
<author initials='M.' surname='Ramalho' fullname='M. Ramalho'>
<organization /></author>
<author initials='Q.' surname='Xie' fullname='Q. Xie'>
<organization /></author>
<author initials='M.' surname='Tuexen' fullname='M. Tuexen'>
<organization /></author>
<author initials='P.' surname='Conrad' fullname='P. Conrad'>
<organization /></author>
<date year='2004' month='May' />
<abstract>
<t>This memo describes an extension to the Stream Control Transmission Protocol (SCTP) that allows an SCTP endpoint to signal to its peer that it should move the cumulative ack point forward.  When both sides of an SCTP association support this extension, it can be used by an SCTP implementation to provide partially reliable data transmission service to an upper layer protocol.  This memo describes the protocol extensions, which consist of a new parameter for INIT and INIT ACK, and a new FORWARD TSN chunk type, and provides one example of a partially reliable service that can be provided to the upper layer via this mechanism. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='3758' />
<format type='TXT' octets='50999' target='http://www.rfc-editor.org/rfc/rfc3758.txt' />
</reference>

            


<reference anchor='RFC4340' target='http://www.rfc-editor.org/info/rfc4340'>

<front>
<title>Datagram Congestion Control Protocol (DCCP)</title>
<author initials='E.' surname='Kohler' fullname='E. Kohler'>
<organization /></author>
<author initials='M.' surname='Handley' fullname='M. Handley'>
<organization /></author>
<author initials='S.' surname='Floyd' fullname='S. Floyd'>
<organization /></author>
<date year='2006' month='March' />
<abstract>
<t>The Datagram Congestion Control Protocol (DCCP) is a transport protocol that provides bidirectional unicast connections of congestion-controlled unreliable datagrams.  DCCP is suitable for applications that transfer fairly large amounts of data and that can benefit from control over the tradeoff between timeliness and reliability. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='4340' />
<format type='TXT' octets='318830' target='http://www.rfc-editor.org/rfc/rfc4340.txt' />
</reference>

            


<reference anchor='RFC4341' target='http://www.rfc-editor.org/info/rfc4341'>

<front>
<title>Profile for Datagram Congestion Control Protocol (DCCP) Congestion Control ID 2: TCP-like Congestion Control</title>
<author initials='S.' surname='Floyd' fullname='S. Floyd'>
<organization /></author>
<author initials='E.' surname='Kohler' fullname='E. Kohler'>
<organization /></author>
<date year='2006' month='March' />
<abstract>
<t>This document contains the profile for Congestion Control Identifier 2 (CCID 2), TCP-like Congestion Control, in the Datagram Congestion Control Protocol (DCCP).  CCID 2 should be used by senders who would like to take advantage of the available bandwidth in an environment with rapidly changing conditions, and who are able to adapt to the abrupt changes in the congestion window typical of TCP's Additive Increase Multiplicative Decrease (AIMD) congestion control. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='4341' />
<format type='TXT' octets='47868' target='http://www.rfc-editor.org/rfc/rfc4341.txt' />
</reference>

            


<reference anchor='RFC6115' target='http://www.rfc-editor.org/info/rfc6115'>

<front> 
<title>Recommendation for a Routing Architecture</title>
<author initials='T.' surname='Li' fullname='T. Li'>
<organization /></author>
<date year='2011' month='February' />
<abstract>
<t>It is commonly recognized that the Internet routing and addressing architecture is facing challenges in scalability, multihoming, and inter-domain traffic engineering.  This document presents, as a recommendation of future directions for the IETF, solutions that could aid the future scalability of the Internet.  To this end, this document surveys many of the proposals that were brought forward for discussion in this activity, as well as some of the subsequent analysis and the architectural recommendation of the chairs.  This document is a product of the Routing Research Group.  This document is not an Internet Standards Track specification; it is published for informational purposes.</t></abstract></front>

<seriesInfo name='RFC' value='6115' />
<format type='TXT' octets='178526' target='http://www.rfc-editor.org/rfc/rfc6115.txt' />
</reference>


<!--           &rhee-tcpm-cubic;  Expired -->



<reference anchor='CUBIC'>
<front>
<title>CUBIC for Fast Long-Distance Networks</title>

<author initials='I' surname='Rhee' fullname='Injong Rhee'>
    <organization />
</author>

<author initials='L' surname='Xu' fullname='Lisong Xu'>
    <organization />
</author>

<author initials='S' surname='Ha' fullname='Sangtae Ha'>
    <organization />
</author>

<date month='August' day='26' year='2008' />

<abstract><t>CUBIC is an extension to the current TCP standards.  The protocol differs from the current TCP standards only in the congestion window adjustment function in the sender side.  In particular, it uses a cubic function instead of a linear window increase of the current TCP standards to improve scalability and stability under fast and long distance networks.  BIC-TCP, a predecessor of CUBIC, has been a default TCP adopted by Linux since year 2005 and has already been deployed globally and in use for several years by the Internet community at large.  CUBIC is using a similar window growth function as BIC-TCP and is designed to be less aggressive and fairer to TCP in bandwidth usage than BIC-TCP while maintaining the strengths of BIC- TCP such as stability, window scalability and RTT fairness.  Through extensive testing in various Internet scenarios, we believe that CUBIC is safe for deployment and testing in the global Internet.  The intent of this document is to provide the protocol specification of CUBIC for a third party implementation and solicit the community feedback through experimentation on the performance of CUBIC.  We expect this document to be eventually published as an experimental RFC.</t></abstract>

</front>

<seriesInfo name='Work in Progress,' value='draft-rhee-tcpm-cubic-02' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-rhee-tcpm-cubic-02.txt' />
</reference>


<!--            &sridharan-tcpm-ctcp; Expired-->



<reference anchor='CTCP'>
<front>
<title>Compound TCP: A New TCP Congestion Control for High-Speed and Long Distance Networks</title>

<author initials='M' surname='Sridharan' fullname='Murali Sridharan'>
    <organization />
</author>

<author initials='K' surname='Tan' fullname='Kun Tan'>
    <organization />
</author>

<author initials='D' surname='Bansal' fullname='Deepak Bansal'>
    <organization />
</author>

<author initials='D' surname='Thaler' fullname='Dave Thaler'>
    <organization />
</author>

<date month='November' day='11' year='2008' />

<abstract><t>Compound TCP (CTCP) is a modification to TCP's congestion control mechanism for use with TCP connections with large congestion windows. This document describes the Compound TCP algorithm in detail, and solicits experimentation and feedback from the wider community.  The key idea behind CTCP is to add a scalable delay-based component to the standard TCP's loss-based congestion control. The sending rate of CTCP is controlled by both loss and delay components. The delay-based component has a scalable window increasing rule that not only efficiently uses the link capacity, but on sensing queue build up, proactively reduces the sending rate.</t></abstract>

</front>

<seriesInfo name='Work in Progress,' value='draft-sridharan-tcpm-ctcp-02' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-sridharan-tcpm-ctcp-02.txt' />
</reference>

<!--            &leith-tcp-htcp; Dead -->



<reference anchor='HTCP'>
<front>
<title>H-TCP: TCP Congestion Control for High Bandwidth-Delay Product Paths</title>

<author initials='D' surname='Leith' fullname='Doug  Leith'>
    <organization />
</author>

<date month='April' day='7' year='2008' />

<abstract><t>This document describes a number of changes to the TCP congestion control algorithm to to improve performance in high bandwidth-delay product paths.  We focus on changes to the congestion avoidance mode, rather than slow-start.</t></abstract>

</front>

<seriesInfo name='Work in Progress,' value='draft-leith-tcp-htcp-06' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-leith-tcp-htcp-06.txt' />
</reference>


            <reference anchor="Errata" target="http://www.rfc-editor.org/errata.php">
                <front>
                    <title>RFC Errata</title>
                    <author><organization>RFC Editor</organization></author>
                    <date/>
                </front>
            </reference>

            <reference anchor="CK73">
                <front>
                    <title>Towards Protocols for Internetwork Communication</title>
                    <author initials="V." surname="Cerf"/>
                    <author initials="R." surname="Kahn"/>
                    <date month="IFIP/TC6.1, NIC 18764, INWG 39, September" year="1973"/>
                </front>
            </reference>

            <reference anchor="KP87">
                <front>
                    <title>Round Trip Time Estimation</title>
                    <author initials="P." surname="Karn"/>
                    <author initials="C." surname="Partridge"/>
                    <date month="ACM SIGCOMM 1987 Proceedings, in ACM Computer
                    Communication Review, 17 (5), pp. 2-7, August" year="1987"/>
                </front>
            </reference>



            <reference anchor="Jac88">
                <front>
                    <title>Congestion Avoidance and Control</title>
                    <author initials="V." surname="Jacobson"/>
                    <date month="ACM SIGCOMM 1988 Proceedings, in ACM Computer
                    Communication Review, 18 (4), pp. 314-329, August" year="1988"/>
                </front>
            </reference>
 

            <reference anchor="Jacobson" target="ftp://ftp.ee.lbl.gov/email/vanj.88mar10.txt">
                <front>
                    <title>TCP-IP Mailing List</title>
                    <author initials="V." surname="Jacobson"/>
                   
                    <date month="March" year="1988"/>
                </front>
                  <seriesInfo name="Article 167 of" value="comp.protocols.tcp-ip" />
            </reference>


            <reference anchor="JK92" target="ftp://ftp.ee.lbl.gov/papers/congavoid.ps.Z">
                <front>
                    <title>Congestion Avoidance and Control</title>
                    <author initials="V." surname="Jacobson"/>
                    <author initials="M." surname="Karels"/>
                    <date month="November" year="1992"/>
                </front>
            </reference>

            <reference anchor="MAF04">
                <front>
                    <title>Measuring the Evolution of Transport Protocols in the
                    Internet</title>
                    <author initials="A." surname="Medina"/>
                    <author initials="M." surname="Allman"/>
                    <author initials="S." surname="Floyd"/>
                    <date month="ACM Computer Communication Review, 35 (2), April"
                    year="2005"/>
                </front>
            </reference>

            <reference anchor="SCWA99">
                <front>
                    <title>TCP Congestion Control with a Misbehaving
                    Receiver</title>
                    <author initials="S." surname="Savage"/>
                    <author initials="N." surname="Cardwell"/>
                    <author initials="D." surname="Wetherall"/>
                    <author initials="T." surname="Anderson"/>
                    <date month="ACM Computer Communication Review, 29 (5), pp.
                    71-78, October" year="1999"/> </front>
           </reference>

           <reference anchor="MM96">
                <front>
                    <title>Forward Acknowledgement: Refining TCP Congestion
                    Control</title>
                    <author initials="M." surname="Mathis"/>
                    <author initials="J." surname="Mahdavi"/>
                    <date month="ACM SIGCOMM 1996 Proceedings, in ACM Computer
                    Communication Review 26 (4), pp. 281-292, October"
                    year="1996"/>
                </front>
            </reference>
        </references>


        <section title="Acknowledgments">
            <t>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, 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.</t>
        </section>
    </back>
</rfc>
