summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc5827.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc5827.txt')
-rw-r--r--doc/rfc/rfc5827.txt843
1 files changed, 843 insertions, 0 deletions
diff --git a/doc/rfc/rfc5827.txt b/doc/rfc/rfc5827.txt
new file mode 100644
index 0000000..d0b5881
--- /dev/null
+++ b/doc/rfc/rfc5827.txt
@@ -0,0 +1,843 @@
+
+
+
+
+
+
+Internet Engineering Task Force (IETF) M. Allman
+Request for Comments: 5827 ICSI
+Category: Experimental K. Avrachenkov
+ISSN: 2070-1721 INRIA
+ U. Ayesta
+ BCAM-IKERBASQUE and LAAS-CNRS
+ J. Blanton
+ Ohio University
+ P. Hurtig
+ Karlstad University
+ April 2010
+
+
+ Early Retransmit for TCP
+ and Stream Control Transmission Protocol (SCTP)
+
+Abstract
+
+ 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.
+
+Status of This Memo
+
+ This document is not an Internet Standards Track specification; it is
+ published for examination, experimental implementation, and
+ evaluation.
+
+ This document defines an Experimental Protocol for the Internet
+ community. This document is a product of the Internet Engineering
+ Task Force (IETF). It represents the consensus of the IETF
+ community. It has received public review and has been approved for
+ publication by the Internet Engineering Steering Group (IESG). Not
+ all documents approved by the IESG are a candidate for any level of
+ Internet Standard; see Section 2 of RFC 5741.
+
+ Information about the current status of this document, any errata,
+ and how to provide feedback on it may be obtained at
+ http://www.rfc-editor.org/info/rfc5827.
+
+
+
+
+
+
+
+Allman, et al. Experimental [Page 1]
+
+RFC 5827 Early Retransmit for TCP and SCTP April 2010
+
+
+Copyright Notice
+
+ Copyright (c) 2010 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents
+ (http://trustee.ietf.org/license-info) in effect on the date of
+ publication of this document. Please review these documents
+ carefully, as they describe your rights and restrictions with respect
+ to this document. Code Components extracted from this document must
+ include Simplified BSD License text as described in Section 4.e of
+ the Trust Legal Provisions and are provided without warranty as
+ described in the Simplified BSD License.
+
+ This document may contain material from IETF Documents or IETF
+ Contributions published or made publicly available before November
+ 10, 2008. The person(s) controlling the copyright in some of this
+ material may not have granted the IETF Trust the right to allow
+ modifications of such material outside the IETF Standards Process.
+ Without obtaining an adequate license from the person(s) controlling
+ the copyright in such materials, this document may not be modified
+ outside the IETF Standards Process, and derivative works of it may
+ not be created outside the IETF Standards Process, except to format
+ it for publication as an RFC or to translate it into languages other
+ than English.
+
+1. Introduction
+
+ Many researchers have studied the problems with TCP's loss recovery
+ [RFC793, RFC5681] when the congestion window is small, and they have
+ outlined possible mechanisms to mitigate these problems
+ [Mor97, BPS+98, Bal98, LK98, RFC3150, AA02]. SCTP's [RFC4960] loss
+ recovery and congestion control mechanisms are based on TCP, and
+ therefore the same problems impact the performance of SCTP
+ connections. When the transport detects a missing segment, the
+ connection enters a loss recovery phase. There are several variants
+ of the loss recovery phase depending on the TCP implementation. TCP
+ can use slow-start-based recovery or fast recovery [RFC5681], NewReno
+ [RFC3782], and loss recovery, based on selective acknowledgments
+ (SACKs) [RFC2018, FF96, RFC3517]. SCTP's loss recovery is not as
+ varied due to the built-in selective acknowledgments.
+
+ All of the above variants have two methods for invoking loss
+ recovery. First, if an acknowledgment (ACK) for a given segment is
+ not received in a certain amount of time, a retransmission timer
+ fires, and the segment is resent [RFC2988, RFC4960]. Second, the
+ "fast retransmit" algorithm resends a segment when three duplicate
+
+
+
+Allman, et al. Experimental [Page 2]
+
+RFC 5827 Early Retransmit for TCP and SCTP April 2010
+
+
+ ACKs arrive at the sender [Jac88, RFC5681]. Duplicate ACKs are
+ triggered by out-of-order arrivals at the receiver. However, because
+ duplicate ACKs from the receiver are triggered by both segment loss
+ and segment reordering in the network path, the sender waits for
+ three duplicate ACKs in an attempt to disambiguate segment loss from
+ segment reordering. When the congestion window is small, it may not
+ be possible to generate the required number of duplicate ACKs to
+ trigger fast retransmit when a loss does happen.
+
+ Small congestion windows can occur in a number of situations, such
+ as:
+
+ (1) The connection is constrained by end-to-end congestion control
+ when the connection's share of the path is small, the path has a
+ small bandwidth-delay product, or the transport is ascertaining
+ the available bandwidth in the first few round-trip times of slow
+ start.
+
+ (2) The connection is "application limited" and has only a limited
+ amount of data to send. This can happen any time the application
+ does not produce enough data to fill the congestion window. A
+ particular case when all connections become application limited
+ is as the connection ends.
+
+ (3) The connection is limited by the receiver's advertised window.
+
+ The transport's retransmission timeout (RTO) is based on measured
+ round-trip times (RTT) between the sender and receiver, as specified
+ in [RFC2988] (for TCP) and [RFC4960] (for SCTP). To prevent spurious
+ retransmissions of segments that are only delayed and not lost, the
+ minimum RTO is conservatively chosen to be 1 second. Therefore, it
+ behooves TCP senders to detect and recover from as many losses as
+ possible without incurring a lengthy timeout during which the
+ connection remains idle. However, if not enough duplicate ACKs
+ arrive from the receiver, the fast retransmit algorithm is never
+ triggered -- this situation occurs when the congestion window is
+ small, if a large number of segments in a window are lost, or at the
+ end of a transfer as data drains from the network. For instance,
+ consider a congestion window of three segments' worth of data. If
+ one segment is dropped by the network, then at most two duplicate
+ ACKs will arrive at the sender. Since three duplicate ACKs are
+ required to trigger fast retransmit, a timeout will be required to
+ resend the dropped segment. Note that delayed ACKs [RFC5681] may
+ further reduce the number of duplicate ACKs a receiver sends.
+ However, we assume that receivers send immediate ACKs when there is a
+ gap in the received sequence space per [RFC5681].
+
+
+
+
+
+Allman, et al. Experimental [Page 3]
+
+RFC 5827 Early Retransmit for TCP and SCTP April 2010
+
+
+ [BPS+98] shows that roughly 56% of retransmissions sent by a busy Web
+ server are sent after the RTO timer expires, while only 44% are
+ handled by fast retransmit. In addition, only 4% of the RTO timer-
+ based retransmissions could have been avoided with SACK, which has to
+ continue to disambiguate reordering from genuine loss. Furthermore,
+ [All00] shows that for one particular Web server, the median number
+ of bytes carried by a connection is less than four segments,
+ indicating that more than half of the connections will be forced to
+ rely on the RTO timer to recover from any losses that occur. Thus,
+ loss recovery that does not rely on the conservative RTO is likely to
+ be beneficial for short TCP transfers.
+
+ The limited transmit mechanism introduced in [RFC3042] and currently
+ codified in [RFC5681] allows a TCP sender to transmit previously
+ unsent data upon receipt of each of the two duplicate ACKs that
+ precede a fast retransmit. SCTP [RFC4960] uses SACK information to
+ calculate the number of outstanding segments in the network. Hence,
+ when the first two duplicate ACKs arrive at the sender, they will
+ indicate that data has left the network, and they will allow the
+ sender to transmit new data (if available), similar to TCP's limited
+ transmit algorithm. In the remainder of this document, we use
+ "limited transmit" to include both TCP and SCTP mechanisms for
+ sending in response to the first two duplicate ACKs. By sending
+ these two new segments, the sender is attempting to induce additional
+ duplicate ACKs (if appropriate), so that fast retransmit will be
+ triggered before the retransmission timeout expires. The sender-side
+ "Early Retransmit" mechanism outlined in this document covers the
+ case when previously unsent data is not available for transmission
+ (case (2) above) or cannot be transmitted due to an advertised window
+ limitation (case (3) above).
+
+ Note: This document is being published as an experimental RFC, as
+ part of the process for the TCPM working group and the IETF to assess
+ whether the proposed change is useful and safe in the heterogeneous
+ environments, including which variants of the mechanism are the most
+ effective. In the future, this specification may be updated and put
+ on the standards track if its safeness and efficacy can be
+ demonstrated.
+
+2. Terminology
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
+ document are to be interpreted as described in RFC 2119 [RFC2119].
+
+ The reader is expected to be familiar with the definitions given in
+ [RFC5681].
+
+
+
+
+Allman, et al. Experimental [Page 4]
+
+RFC 5827 Early Retransmit for TCP and SCTP April 2010
+
+
+3. Early Retransmit Algorithm
+
+ The Early Retransmit algorithm calls for lowering the threshold for
+ triggering fast retransmit when the amount of outstanding data is
+ small and when no previously unsent data can be transmitted (such
+ that limited transmit could be used). Duplicate ACKs are triggered
+ by each arriving out-of-order segment. Therefore, fast retransmit
+ will not be invoked when there are less than four outstanding
+ segments (assuming only one segment loss in the window). However,
+ TCP and SCTP are not required to track the number of outstanding
+ segments, but rather the number of outstanding bytes or messages.
+ (Note that SCTP's message boundaries do not necessarily correspond to
+ segment boundaries.) Therefore, applying the intuitive notion of a
+ transport with less than four segments outstanding is more
+ complicated than it first appears. In Section 3.1, we describe a
+ "byte-based" variant of Early Retransmit that attempts to roughly map
+ the number of outstanding bytes to a number of outstanding segments
+ that is then used when deciding whether to trigger Early Retransmit.
+ In Section 3.2, we describe a "segment-based" variant that represents
+ a more precise algorithm for triggering Early Retransmit. This
+ precision comes at the cost of requiring additional state to be kept
+ by the TCP sender. In both cases, we describe SACK-based and non-
+ SACK-based versions of the scheme (of course, the non-SACK version
+ will not apply to SCTP). This document explicitly does not prefer
+ one variant over the other, but leaves the choice to the implementer.
+
+3.1. Byte-Based Early Retransmit
+
+ A TCP or SCTP sender MAY use byte-based Early Retransmit.
+
+ Upon the arrival of an ACK, a sender employing byte-based Early
+ Retransmit MUST use the following two conditions to determine when an
+ Early Retransmit is sent:
+
+ (2.a) The amount of outstanding data (ownd) -- data sent but not yet
+ acknowledged -- is less than 4*SMSS bytes (as defined in
+ [RFC5681]).
+
+ Note that in the byte-based variant of Early Retransmit, "ownd"
+ is equivalent to "FlightSize" (defined in [RFC5681]). We use
+ different notation, because "ownd" is not consistent with
+ FlightSize throughout this document.
+
+ Also note that in SCTP, messages will have to be converted to
+ bytes to make this variant of Early Retransmit work.
+
+
+
+
+
+
+Allman, et al. Experimental [Page 5]
+
+RFC 5827 Early Retransmit for TCP and SCTP April 2010
+
+
+ (2.b) There is either no unsent data ready for transmission at the
+ sender, or the advertised receive window does not permit new
+ segments to be transmitted.
+
+ When the above two conditions hold and a TCP connection does not
+ support SACK, the duplicate ACK threshold used to trigger a
+ retransmission MUST be reduced to:
+
+ ER_thresh = ceiling (ownd/SMSS) - 1 (1)
+
+ duplicate ACKs, where ownd is expressed in terms of bytes. We call
+ this reduced ACK threshold enabling "Early Retransmission".
+
+ When conditions (2.a) and (2.b) hold and a TCP connection does
+ support SACK or SCTP is in use, Early Retransmit MUST be used only
+ when "ownd - SMSS" bytes have been SACKed.
+
+ If either (or both) condition (2.a) and/or (2.b) does not hold, the
+ transport MUST NOT use Early Retransmit, but rather prefer the
+ standard mechanisms, including fast retransmit and limited transmit.
+
+ As noted above, the drawback of this byte-based variant is precision
+ [HB08]. We illustrate this with two examples:
+
+ + Consider a non-SACK TCP sender that uses an SMSS of 1460 bytes
+ and transmits three segments, each with 400 bytes of payload.
+ This is a case where Early Retransmit could aid loss recovery if
+ one segment is lost. However, in this case, ER_thresh will
+ become zero, per Equation (1), because the number of outstanding
+ bytes is a poor estimate of the number of outstanding segments.
+ A similar problem occurs for senders that employ SACK, as the
+ expression "ownd - SMSS" will become negative.
+
+ + Next, consider a non-SACK TCP sender that uses an SMSS of
+ 1460 bytes and transmits 10 segments, each with 400 bytes of
+ payload. In this case, ER_thresh will be 2 per Equation (1).
+ Thus, even though there are enough segments outstanding to
+ trigger fast retransmit with the standard duplicate ACK
+ threshold, Early Retransmit will be triggered. This could cause
+ or exacerbate performance problems caused by segment reordering
+ in the network.
+
+
+
+
+
+
+
+
+
+
+Allman, et al. Experimental [Page 6]
+
+RFC 5827 Early Retransmit for TCP and SCTP April 2010
+
+
+3.2. Segment-Based Early Retransmit
+
+ A TCP or SCTP sender MAY use segment-based Early Retransmit.
+
+ Upon the arrival of an ACK, a sender employing segment-based Early
+ Retransmit MUST use the following two conditions to determine when an
+ Early Retransmit is sent:
+
+ (3.a) The number of outstanding segments (oseg) -- segments sent but
+ not yet acknowledged -- is less than four.
+
+ (3.b) There is either no unsent data ready for transmission at the
+ sender, or the advertised receive window does not permit new
+ segments to be transmitted.
+
+ When the above two conditions hold and a TCP connection does not
+ support SACK, the duplicate ACK threshold used to trigger a
+ retransmission MUST be reduced to:
+
+ ER_thresh = oseg - 1 (2)
+
+ duplicate ACKs, where oseg represents the number of outstanding
+ segments. (We discuss tracking the number of outstanding segments
+ below.) We call this reduced ACK threshold enabling "Early
+ Retransmission".
+
+ When conditions (3.a) and (3.b) hold and a TCP connection does
+ support SACK or SCTP is in use, Early Retransmit MUST be used only
+ when "oseg - 1" segments have been SACKed. A segment is considered
+ to be SACKed when all of its data bytes (TCP) or data chunks (SCTP)
+ have been indicated as arrived by the receiver.
+
+ If either (or both) condition (3.a) and/or (3.b) does not hold, the
+ transport MUST NOT use Early Retransmit, but rather prefer the
+ standard mechanisms, including fast retransmit and limited transmit.
+
+ This version of Early Retransmit solves the precision issues
+ discussed in the previous section. As noted previously, the cost is
+ that the implementation will have to track segment boundaries to form
+ an understanding as to how many actual segments have been
+ transmitted, but not acknowledged. This can be done by the sender
+ tracking the boundaries of the three segments on the right side of
+ the current window (which involves tracking four sequence numbers in
+ TCP). This could be done by keeping a circular list of the segment
+ boundaries, for instance. Cumulative ACKs that do not fall within
+ this region indicate that at least four segments are outstanding, and
+ therefore Early Retransmit MUST NOT be used. When the outstanding
+ window becomes small enough that Early Retransmit can be invoked, a
+
+
+
+Allman, et al. Experimental [Page 7]
+
+RFC 5827 Early Retransmit for TCP and SCTP April 2010
+
+
+ full understanding of the number of outstanding segments will be
+ available from the four sequence numbers retained. (Note: the
+ implicit sequence number consumed by the TCP FIN bit can also be
+ included in the tracking of segment boundaries.)
+
+4. Discussion
+
+ In this section, we discuss a number of issues surrounding the Early
+ Retransmit algorithm.
+
+4.1. SACK vs. Non-SACK
+
+ The SACK variant of the Early Retransmit algorithm is preferred to
+ the non-SACK variant in TCP due to its robustness in the face of ACK
+ loss (since SACKs are sent redundantly), and due to interactions with
+ the delayed ACK timer (SCTP does not have a non-SACK mode and
+ therefore naturally supports SACK-based Early Retransmit). Consider
+ a flight of three segments, S1...S3, with S2 being dropped by the
+ network. When S1 arrives, it is in order, and so the receiver may or
+ may not delay the ACK, leading to two scenarios:
+
+ (A) The ACK for S1 is delayed: In this case, the arrival of S3 will
+ trigger an ACK to be transmitted, covering S1 (which was
+ previously unacknowledged). In this case, Early Retransmit
+ without SACK will not prevent an RTO because no duplicate ACKs
+ will arrive. However, with SACK, the ACK for S1 will also
+ include SACK information indicating that S3 has arrived at the
+ receiver. The sender can then invoke Early Retransmit on this
+ ACK because only one segment remains outstanding.
+
+ (B) The ACK for S1 is not delayed: In this case, the arrival of S1
+ triggers an ACK of previously unacknowledged data. The arrival
+ of S3 triggers a duplicate ACK (because it is out of order).
+ Both ACKs will cover the same segment (S1). Therefore,
+ regardless of whether SACK is used, Early Retransmit can be
+ performed by the sender (assuming no ACK loss).
+
+4.2. Segment Reordering
+
+ Early Retransmit is less robust in the face of reordered segments
+ than when using the standard fast retransmit threshold. Research
+ shows that a general reduction in the number of duplicate ACKs
+ required to trigger fast retransmit to two (rather than three) leads
+ to a reduction in the ratio of good to bad retransmits by a factor of
+ three [Pax97]. However, this analysis did not include the additional
+ conditioning on the event that the ownd was smaller than four
+ segments and that no new data was available for transmission.
+
+
+
+
+Allman, et al. Experimental [Page 8]
+
+RFC 5827 Early Retransmit for TCP and SCTP April 2010
+
+
+ A number of studies have shown that network reordering is not a rare
+ event across some network paths. Various measurement studies have
+ shown that reordering along most paths is negligible, but along
+ certain paths can be quite prevalent [Pax97, BPS99, BS02, Pir05].
+ Evaluating Early Retransmit in the face of real segment reordering is
+ part of the experiment we hope to instigate with this document.
+
+4.3. Worst Case
+
+ Next, we note two "worst case" scenarios for Early Retransmit:
+
+ (1) Persistent reordering of segments coupled with an application
+ that does not constantly send data can result in large numbers of
+ needless retransmissions when using Early Retransmit. For
+ instance, consider an application that sends data two segments at
+ a time, followed by an idle period when no data is queued for
+ delivery. If the network consistently reorders the two segments,
+ the sender will needlessly retransmit one out of every two unique
+ segments transmitted when using the above algorithm (meaning that
+ one-third of all segments sent are needless retransmissions).
+ However, this would only be a problem for long-lived connections
+ from applications that transmit in spurts.
+
+ (2) Similar to the above, consider the case of that consist of two
+ segment each and always experience reordering. Just as in (1)
+ above, one out of every two unique data segments will be
+ retransmitted needlessly; therefore, one-third of the traffic
+ will be spurious.
+
+ Currently, this document offers no suggestion on how to mitigate the
+ above problems. However, the worst cases are likely pathological.
+ Part of the experiments that this document hopes to trigger would
+ involve better understanding of whether such theoretical worst-case
+ scenarios are prevalent in the network, and in general, to explore
+ the trade-off between spurious fast retransmits and the delay imposed
+ by the RTO. Appendix A does offer a survey of possible mitigations
+ that call for curtailing the use of Early Retransmit when it is
+ making poor retransmission decisions.
+
+5. Related Work
+
+ There are a number of similar proposals in the literature that
+ attempt to mitigate the same problem that Early Retransmit addresses.
+
+ Deployment of Explicit Congestion Notification (ECN) [Flo94, RFC3168]
+ may benefit connections with small congestion window sizes [RFC2884].
+ ECN provides a method for indicating congestion to the end-host
+ without dropping segments. While some segment drops may still occur,
+
+
+
+Allman, et al. Experimental [Page 9]
+
+RFC 5827 Early Retransmit for TCP and SCTP April 2010
+
+
+ ECN may allow a transport to perform better with small congestion
+ window sizes because the sender will be required to detect less
+ segment loss [RFC2884].
+
+ [Bal98] outlines another solution to the problem of having no new
+ segments to transmit into the network when the first two duplicate
+ ACKs arrive. In response to these duplicate ACKs, a TCP sender
+ transmits zero-byte segments to induce additional duplicate ACKs.
+ This method preserves the robustness of the standard fast retransmit
+ algorithm at the cost of injecting segments into the network that do
+ not deliver any data, and therefore are potentially wasting network
+ resources (at a time when there is a reasonable chance that the
+ resources are scarce).
+
+ [RFC4653] also defines an orthogonal method for altering the
+ duplicate ACK threshold. The mechanisms proposed in this document
+ decrease the duplicate ACK threshold when a small amount of data is
+ outstanding. Meanwhile, the mechanisms in [RFC4653] increase the
+ duplicate ACK threshold (over the standard of 3) when the congestion
+ window is large in an effort to increase robustness to segment
+ reordering.
+
+6. Security Considerations
+
+ The security considerations found in [RFC5681] apply to this
+ document. No additional security problems have been identified with
+ Early Retransmit at this time.
+
+7. Acknowledgments
+
+ We thank Sally Floyd for her feedback in discussions about Early
+ Retransmit. The notion of Early Retransmit was originally sketched
+ in an Internet-Draft co-authored by Sally Floyd and Hari
+ Balakrishnan. Armando Caro, Joe Touch, Alexander Zimmermann, and
+ many members of the TSVWG and TCPM working groups provided good
+ discussions that helped shape this document. Our thanks to all!
+
+8. References
+
+8.1. Normative References
+
+ [RFC793] Postel, J., "Transmission Control Protocol", STD 7,
+ RFC 793, September 1981.
+
+ [RFC2018] Mathis, M., Mahdavi, J., Floyd, S., and A. Romanow, "TCP
+ Selective Acknowledgment Options", RFC 2018,
+ October 1996.
+
+
+
+
+Allman, et al. Experimental [Page 10]
+
+RFC 5827 Early Retransmit for TCP and SCTP April 2010
+
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119, March 1997.
+
+ [RFC2883] Floyd, S., Mahdavi, J., Mathis, M., and M. Podolsky, "An
+ Extension to the Selective Acknowledgement (SACK) Option
+ for TCP", RFC 2883, July 2000.
+
+ [RFC2988] Paxson, V. and M. Allman, "Computing TCP's Retransmission
+ Timer", RFC 2988, November 2000.
+
+ [RFC3042] Allman, M., Balakrishnan, H., and S. Floyd, "Enhancing
+ TCP's Loss Recovery Using Limited Transmit", RFC 3042,
+ January 2001.
+
+ [RFC4960] Stewart, R., Ed., "Stream Control Transmission Protocol",
+ RFC 4960, September 2007.
+
+ [RFC5681] Allman, M., Paxson, V., and E. Blanton, "TCP Congestion
+ Control", RFC 5681, September 2009.
+
+8.2. Informative References
+
+ [AA02] Urtzi Ayesta, Konstantin Avrachenkov, "The Effect of the
+ Initial Window Size and Limited Transmit Algorithm on the
+ Transient Behavior of TCP Transfers", In Proc. of the
+ 15th ITC Internet Specialist Seminar, Wurzburg,
+ July 2002.
+
+ [All00] Mark Allman. A Web Server's View of the Transport Layer.
+ ACM Computer Communication Review, October 2000.
+
+ [Bal98] Hari Balakrishnan. Challenges to Reliable Data Transport
+ over Heterogeneous Wireless Networks. Ph.D. Thesis,
+ University of California at Berkeley, August 1998.
+
+ [BPS+98] Hari Balakrishnan, Venkata Padmanabhan,
+ Srinivasan Seshan, Mark Stemm, and Randy Katz. TCP
+ Behavior of a Busy Web Server: Analysis and Improvements.
+ Proc. IEEE INFOCOM Conf., San Francisco, CA, March 1998.
+
+ [BPS99] Jon Bennett, Craig Partridge, Nicholas Shectman. Packet
+ Reordering is Not Pathological Network Behavior.
+ IEEE/ACM Transactions on Networking, December 1999.
+
+ [BS02] John Bellardo, Stefan Savage. Measuring Packet
+ Reordering, ACM/USENIX Internet Measurement Workshop,
+ November 2002.
+
+
+
+
+Allman, et al. Experimental [Page 11]
+
+RFC 5827 Early Retransmit for TCP and SCTP April 2010
+
+
+ [FF96] Kevin Fall, Sally Floyd. Simulation-based Comparisons of
+ Tahoe, Reno, and SACK TCP. ACM Computer Communication
+ Review, July 1996.
+
+ [Flo94] Sally Floyd. TCP and Explicit Congestion Notification.
+ ACM Computer Communication Review, October 1994.
+
+ [HB08] Per Hurtig, Anna Brunstrom. Enhancing SCTP Loss
+ Recovery: An Experimental Evaluation of Early Retransmit.
+ Elsevier Computer Communications, Vol. 31(16),
+ October 2008, pp. 3778-3788.
+
+ [Jac88] Van Jacobson. Congestion Avoidance and Control. ACM
+ SIGCOMM 1988.
+
+ [LK98] Dong Lin, H.T. Kung. TCP Fast Recovery Strategies:
+ Analysis and Improvements. Proc. IEEE INFOCOM Conf.,
+ San Francisco, CA, March 1998.
+
+ [Mor97] Robert Morris. TCP Behavior with Many Flows. Proc.
+ Fifth IEEE International Conference on Network Protocols,
+ October 1997.
+
+ [Pax97] Vern Paxson. End-to-End Internet Packet Dynamics. ACM
+ SIGCOMM, September 1997.
+
+ [Pir05] N. M. Piratla, "A Theoretical Foundation, Metrics and
+ Modeling of Packet Reordering and Methodology of Delay
+ Modeling using Inter-packet Gaps," Ph.D. Dissertation,
+ Department of Electrical and Computer Engineering,
+ Colorado State University, Fort Collins, CO, Fall 2005.
+
+ [RFC2884] Hadi Salim, J. and U. Ahmed, "Performance Evaluation of
+ Explicit Congestion Notification (ECN) in IP Networks",
+ RFC 2884, July 2000.
+
+ [RFC3150] Dawkins, S., Montenegro, G., Kojo, M., and V. Magret,
+ "End-to-end Performance Implications of Slow Links",
+ BCP 48, RFC 3150, July 2001.
+
+ [RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition
+ of Explicit Congestion Notification (ECN) to IP",
+ RFC 3168, September 2001.
+
+ [RFC3517] Blanton, E., Allman, M., Fall, K., and L. Wang, "A
+ Conservative Selective Acknowledgment (SACK)-based Loss
+ Recovery Algorithm for TCP", RFC 3517, April 2003.
+
+
+
+
+Allman, et al. Experimental [Page 12]
+
+RFC 5827 Early Retransmit for TCP and SCTP April 2010
+
+
+ [RFC3522] Ludwig, R. and M. Meyer, "The Eifel Detection Algorithm
+ for TCP", RFC 3522, April 2003.
+
+ [RFC3782] Floyd, S., Henderson, T., and A. Gurtov, "The NewReno
+ Modification to TCP's Fast Recovery Algorithm", RFC 3782,
+ April 2004.
+
+ [RFC4653] Bhandarkar, S., Reddy, A., Allman, M., and E. Blanton,
+ "Improving the Robustness of TCP to Non-Congestion
+ Events", RFC 4653, August 2006.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Allman, et al. Experimental [Page 13]
+
+RFC 5827 Early Retransmit for TCP and SCTP April 2010
+
+
+Appendix A. Research Issues in Adjusting the Duplicate ACK Threshold
+
+ Decreasing the number of duplicate ACKs required to trigger fast
+ retransmit, as suggested in Section 3, has the drawback of making
+ fast retransmit less robust in the face of minor network reordering.
+ Two egregious examples of problems caused by reordering are given in
+ Section 4. This appendix outlines several schemes that have been
+ suggested to mitigate the problems caused by Early Retransmit in the
+ face of segment reordering. These methods need further research
+ before they are suggested for general use (and current consensus is
+ that the cases that make Early Retransmit unnecessarily retransmit a
+ large amount of data are pathological, and therefore, these
+ mitigations are not generally required).
+
+ MITIGATION A.1: Allow a connection to use Early Retransmit as long as
+ the algorithm is not injecting "too much" spurious data into the
+ network. For instance, using the information provided by TCP's
+ D-SACK option [RFC2883] or SCTP's Duplicate Transmission Sequence
+ Number (Duplicate-TSN) notification, a sender can determine when
+ segments sent via Early Retransmit are needless. Likewise, using
+ Eifel [RFC3522], the sender can detect spurious Early Retransmits.
+ Once spurious Early Retransmits are detected, the sender can
+ either eliminate the use of Early Retransmit, or limit the use of
+ the algorithm to ensure that an acceptably small fraction of the
+ connection's transmissions are not spurious. For example, a
+ connection could stop using Early Retransmit after the first
+ spurious retransmit is detected.
+
+ MITIGATION A.2: If a sender cannot reliably determine whether an
+ Early-Retransmitted segment is spurious or not, the sender could
+ simply limit Early Retransmits, either to some fixed number per
+ connection (e.g., Early Retransmit is allowed only once per
+ connection), or to some small percentage of the total traffic
+ being transmitted.
+
+ MITIGATION A.3: Allow a connection to trigger Early Retransmit using
+ the criteria given in Section 3, in addition to a "small" timeout
+ [Pax97]. For instance, a sender may have to wait for two
+ duplicate ACKs and then T msec before Early Retransmit is invoked.
+ The added time gives reordered acknowledgments time to arrive at
+ the sender and avoid a needless retransmit. Designing a method
+ for choosing an appropriate timeout is part of the research that
+ would need to be involved in this scheme.
+
+
+
+
+
+
+
+
+Allman, et al. Experimental [Page 14]
+
+RFC 5827 Early Retransmit for TCP and SCTP April 2010
+
+
+Authors' Addresses
+
+ Mark Allman
+ International Computer Science Institute
+ 1947 Center Street, Suite 600
+ Berkeley, CA 94704-1198
+ USA
+ Phone: 440-235-1792
+ EMail: mallman@icir.org
+ http://www.icir.org/mallman/
+
+
+ Konstantin Avrachenkov
+ INRIA
+ 2004 route des Lucioles, B.P.93
+ 06902, Sophia Antipolis
+ France
+ Phone: 00 33 492 38 7751
+ EMail: k.avrachenkov@sophia.inria.fr
+ http://www-sop.inria.fr/members/Konstantin.Avratchenkov/me.html
+
+
+ Urtzi Ayesta
+ BCAM-IKERBASQUE LAAS-CNRS
+ Bizkaia Technology Park, Building 500 7 Avenue Colonel Roche
+ 48160 Derio 31077, Toulouse
+ Spain France
+ EMail: urtzi@laas.fr
+ http://www.laas.fr/~urtzi
+
+
+ Josh Blanton
+ Ohio University
+ 301 Stocker Center
+ Athens, OH 45701
+ USA
+ EMail: jblanton@irg.cs.ohiou.edu
+
+
+ Per Hurtig
+ Karlstad University
+ Department of Computer Science
+ Universitetsgatan 2 651 88
+ Karlstad
+ Sweden
+ EMail: per.hurtig@kau.se
+
+
+
+
+
+Allman, et al. Experimental [Page 15]
+