Internet DRAFT - draft-gurtov-tsvwg-tcp-delay-spikes

draft-gurtov-tsvwg-tcp-delay-spikes







Network Working Group                                      Andrei Gurtov
INTERNET-DRAFT                                                    Sonera
Expires: August 2002                                       Reiner Ludwig
                                                       Ericsson Research
                                                          February, 2002





                 Making TCP Robust Against Delay Spikes
              <draft-gurtov-tsvwg-tcp-delay-spikes-00.txt>


Status of this memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups. Note that other
   groups may also distribute working documents as Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time. It is inappropriate to use Internet-Drafts as reference
   material or cite them other than as "work in progress".

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/lid-abstracts.txt

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html


Abstract

   We suggest a more conservative management of TCP's retransmit timer,
   and a more careful response of the TCP sender to duplicate ACKs that
   arrive after a timeout. The former reduces the risk of triggering
   spurious timeouts, while the latter eliminates potentially
   unnecessary retransmits. Although, we believe that these suggestions
   are permitted (although not explicitly) by RFC2581 and RFC2988, they
   do not seem to be widely known nor deployed in existing TCP
   implementations. We therefore want to make implementers aware of
   these choices.







Gurtov & Ludwig                                                 [Page 1]








INTERNET-DRAFT            TCP and Delay Spikes            February, 2002


Terminology

   We use the term 'DupThresh' as the number of DUPACKs that need to
   arrive at the TCP sender to trigger the fast retransmit algorithm,
   the default value is three [RFC2581].


1. Introduction

   An increasing number of users access the Internet via data links
   provided by cellular Wide Area Wireless Networks (W-WANs). An end-to-
   end connection across a path including a W-WANs may often experience
   delay spikes on the order of seconds [GU01a]. We speak of a delay
   spike when the round-trip time (RTT) remains stable at a certain
   level for multiple RTTs, and then suddenly increases sharply. It may
   then drop again to the previous level. Reasons for delay spikes
   include handovers, resource preemption due to higher priority traffic
   (e.g., short messages service, or voice calls), or because the mobile
   transmitter traverses through a radio coverage hole. Such events may
   frequently occur in W-WANs over the lifetime of an end-to-end
   connection. How frequently they occur depends on user mobility,
   traffic load in a radio coverage cell, and cell sizes.

   Delay spikes may cause spurious timeouts that often lead to
   unnecessary (go-back-N) retransmits, and an unnecessary reduction of
   the TCP sender's send rate [LK00]. In this case, a TCP sender not
   only loads the network with useless traffic, but also violates the
   'packet conservation' principle [Jac88]. On W-WANs links unnecessary
   retransmits are particularly harmful as they directly translate into
   a waste of scarce radio resources such as spectrum and transmission
   (battery) power.

   One way of making TCP robust against delay spikes is to enhance TCP
   to detect and respond to spurious timeouts as suggested in [LM02] and
   [LG02]. Another alternative is to make TCP's retransmit timer more
   conservative. This can be achieved by using the TCP Timestamps option
   [RFC1323] since timing every segment allows the TCP sender to gain a
   more accurate estimate of the RTT. This leads to a more conservative
   retransmit timer if the RTT varies considerably [GU01c] [Ina02].
   Large RTT variations seem to be more common on bandwidth-dominated
   paths especially if the bottleneck link experiences a low degree of
   statistical multiplexing. On such paths, the RTT is largely
   determined by the packet transmission delay across the bottleneck
   link. Thus, packet sizes and rate changes of the bottleneck link can
   greatly impact the RTT. Paths across W-WANs fall into this category.
   Apart from the mentioned delay spikes such links may also be subject
   to rate changes by an order of magnitude (e.g. from 384 kb/s to 16
   kb/s).

   In this document, we suggest a more conservative management of TCP's
   retransmit timer, and a more careful response of the TCP sender to



Gurtov & Ludwig                                                 [Page 2]








INTERNET-DRAFT            TCP and Delay Spikes            February, 2002


   duplicate ACKs that arrive after a timeout. The former reduces the
   risk of triggering spurious timeouts, while the latter eliminates
   potentially unnecessary retransmits. Although, we believe that these
   suggestions are permitted (although not explicitly) by RFC2581
   [RFC2581] and RFC2988 [RFC2988], they do not seem to be widely known
   nor deployed in existing TCP implementations. We therefore want to
   make implementers aware of these choices. In addition, we believe
   that these suggestions should be explicitly addressed when advancing
   RFC2581 and RFC2988 further along the standards track. This document
   is therefore aimed at becoming an informational document. Traces that
   illustrate the recommendations in this document can be found in
   [GU01b] and [GU01c].


2. Restarting the Retransmit Timer on DUPACKs

   The general motivation for restarting the retransmit timer on DUPACKs
   is that a TCP sender may not want to timeout as long as it still
   receives feedback that segments are being delivered by the network.
   In addition, DUPACKs may carry useful SACK information [RFC2018].

2.1 Restarting on DUPACKs Before DupThresh

   The retransmit timer should be restarted for every DUPACK that
   arrives before DupThresh is reached. The time until DupThresh has
   been reached can be extensively long when a delay spikes occurs in
   this phase of the connection. Restarting the timer on DUPACKs before
   DupThresh increases the TCP sender's chance of receiving the DUPACK
   that triggers the fast retransmit. This is particularly important if
   the TCP sender uses the Limited Transmit algorithm [RFC3042]. This is
   because with that algorithm and a small congestion window, the time
   until DupThresh has been reached is commonly long even without a
   delay spike.


2.2 Restarting on Fast Retransmit

   The retransmit timer should be restarted when the fast retransmit is
   sent. Although, many TCP implementations already do this (e.g., see
   [WS95]), it is not explicitly recommended by RFC2988. However,
   RFC2988 does recommend it for timeout-based retransmits. A fast
   retransmit should not be treated differently from a timeout-based
   retransmit in this respect. In both cases the ACK for the retransmit
   should be given the same amount of time to return as for normal
   transmits.


2.2 Restarting on DUPACKs After DupThresh

   See Section 4.




Gurtov & Ludwig                                                 [Page 3]








INTERNET-DRAFT            TCP and Delay Spikes            February, 2002



3. Ignoring DUPACKs after a Timeout

   A TCP sender should ignore DUPACKs that arrive after a timeout has
   occurred. Despite a conservative retransit timer, delay spikes can
   trigger spurious timeouts to occur during fast recovery. The proper
   behavior in this case is to follow the timeout recovery procedure
   described in [RFC2581]. However, a fairly common behavior among TCPs
   is to use DUPACKs that arrive after a timeout to clock-out
   retransmits of outstanding segments. This has been observed in the
   following TCPs: FreeBSD4.1, various versions of Microsoft Windows,
   and ns2 [GU01b] [GU01c]. In most cases those retransmits were
   unnecessary. This can result into further misbehavior as the TCP
   receiver generates further DUPACKs for the arriving duplicate
   segments.


4. Open Research Issues

   At the time of writing, we believe that restarting the retransmit
   timer for every DUPACK that arrives after the DupThresh had been
   reached is still a research issue. Advanced loss recovery schemes
   have been proposed that account for the case when the fast retransmit
   was lost [LK98]. The idea is to count DUPACKs and to retransmit the
   fast retransmit when the first DUPACK returns that must correspond to
   a new segment sent during the second half of fast recovery. Clearly,
   on such multiple fast retransmits the congestion window should be
   halved again. For such advanced loss recovery schemes, we believe
   that the retransmit timer should also be restarted for every DUPACK
   that arrives after the DupThresh had been reached. However, this is
   still an open issue that we currently study.


5. Security Considerations

   Security consideration for computing the retransmit timer are given
   in RFC2988. There are do not seem to be additional security concerns
   for recommendations given in this document.


Acknowledgments

   Many thanks Mark Allman and Sally Floyd for discussions on the
   contents of this document. Alexey Kuznetsov, Noritoshi Demizu, Farid
   Khafizov provided valuable comments that contributed to this
   document.








Gurtov & Ludwig                                                 [Page 4]








INTERNET-DRAFT            TCP and Delay Spikes            February, 2002


References

   [RFC2581] M.Allman, V. Paxson, W. Stevens, TCP Congestion Control,
             RFC 2581, April 1999.

   [RFC3042] M. Allman, H. Balakrishnan, S. Floyd, Enhancing TCP's
             Loss Recovery Using Limited Transmit, RFC 3042,
             January 2001.

   [GU01a]   A. Gurtov, Effect of Delays on TCP Performance, In
             Proceedings of IFIP Personal Wireless Communications,
             August 2001.

   [GU01b]   A. Gurtov, Traces of TCP connections experiencing a delay
             spike, http://www.cs.helsinki.fi/u/gurtov/tcp/,
             January 2002.

   [GU01c]   A. Gurtov, Making TCP Robust Against Delay Spikes,
             University of Helsinki, Department of Computer Science,
             C-2001-53, http://www.cs.helsinki.fi/u/gurtov/papers/,
             November 2001.

   [Ina02]   H. Inamura et al., TCP over 2.5G and 3G Wireless Networks,
             work in progress, February 2002..

   [Jac88]   V. Jacobson, Congestion Avoidance and Control, In
             Proceedings of ACM SIGCOMM'88, 1988.

   [RFC1323] V. Jacobson, R. Braden, D. Borman, TCP Extensions for High
             Performance, RFC 1323, May 1992.

   [LK98]    D. Lin, H. T. Kung, TCP Fast Recovery Strategies: Analysis
             and Improvements, In Proceedings of IEEE INFOCOM 98,
             March 1998.

   [LK00]    R. Ludwig, R. H. Katz, The Eifel Algorithm: Making TCP
             Robust Against Spurious Retransmissions, ACM Computer
             Communication Review, Vol. 30, No. 1, January 2000.

   [LM02]    R. Ludwig, M. Meyer, The Eifel Detection Algorithm for TCP,
             work in progress, February 2002.

   [LG02]    R. Ludwig, A. Gurtov, The Eifel Response Algorithm to
             Spurious Timeouts in TCP, work in progress, February 2002.

   [RFC2018] M.Mathis, J. Mahdavi, S. Floyd, A. Romanow, TCP Selective
             Acknowledgement Options, RFC 2018, October 1996.

   [RFC2988] V. Paxson, M. Allman, Computing TCP's Retransmission Timer,
             RFC 2988, November 2000.




Gurtov & Ludwig                                                 [Page 5]








INTERNET-DRAFT            TCP and Delay Spikes            February, 2002


   [RFC793]  J. Postel, Transmission Control Protocol, RFC 793,
             September 1981.

   [WS95]    G. R. Wright, W. R. Stevens, TCP/IP Illustrated, Volume 2
             (The Implementation), Addison Wesley, January 1995.


Author's  Address:

   Andrei Gurtov
   Sonera Corp.
   Cellular Systems Development
   P.O. Box 970, FIN-00051
   Helsinki, Finland
   Fax: +358(0)204064365
   Tel: +358(0)20401
   Email: andrei.gurtov@sonera.com
   Homepage: http://www.cs.helsinki.fi/u/gurtov

   Reiner Ludwig
   Ericsson Research (EED)
   Ericsson Allee 1
   52134 Herzogenrath, Germany
   Phone: +49 2407 575 719
   Fax: +49 2407 575 400
   Reiner.Ludwig@Ericsson.com







   This Internet-Draft expires in August 2002.




















Gurtov & Ludwig                                                 [Page 6]