Internet DRAFT - draft-blanton-dupack-thresh-adjust

draft-blanton-dupack-thresh-adjust



Internet Engineering Task Force                            Ethan Blanton
INTERNET DRAFT                                           Ohio University
File: draft-blanton-dupack-thresh-adjust-00.txt              Mark Allman
                                                            BBN/NASA GRC
                                                              July, 2001
                                                  Expires: January, 2002


             Adjusting the Duplicate ACK Threshold to Avoid
                          Spurious Retransmits

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 to cite them other than as "work in progress."

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

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

Abstract

    This document outlines steps TCP and SCTP senders can take after the
    determine that a spurious retransmission has been sent to revert a
    needless change of the congestion control state.  In addition, we
    present several methods to prevent or mitigate unnecessary TCP and
    SCTP fast retransmits in the face of segment reordering.

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].

1   Introduction
    
    The TCP or SCTP fast retransmit mechanism can be triggered by the
    reordering of packets in the network even in no-loss situations
    [BA01a,BPS99].  This document presents several mechanisms to prevent
    or mitigate these unnecessary fast retransmits caused by reordering.
    This document is not intended to describe every possible approach to
    the problem; on the contrary, it aims to outline a few potential

Expires: January 2002                                           [Page 1]

draft-blanton-dupack-thresh-adjust-00.txt                      July 2001

    algorithms in order to spur further interest and research on the
    subject.

    The problem of detecting unnecessary retransmissions and
    disambiguating reordering from loss is outside the scope of this
    document, although some reliable method of doing this is required.
    [BA01b] and [Lud00] present such algorithms.

2   Definitions

    It is assumed that the reader is familiar with the congestion
    control concepts and terminology in [RFC2581] for TCP and/or
    [RFC2960] for SCTP.
    
    In addition, the following terms will be used:
    
        ``dupthresh'' represents the number of duplicate ACKs (or
	SACKs in the case of SCTP) required to trigger a fast
	retransmit.
    
3   Reverting Congestion Control State
    
    [RFC2883,LK00] both mention the possibility of reverting congestion
    control state when a sender determines that the congestion window
    was reduced unnecessarily due to a spurious retransmission.  This
    document specifies that a sender that reliably detects a spurious
    retransmission MAY ``undo'' the needless congestion control state
    changes using the following algorithm:

    (1)	When retransmitting a segment and before reducing cwnd, save 
        the value of cwnd as cwnd_prev.

    (2) Upon the detection of a spurious retransmit, set ssthresh to
        cwnd_prev.

    This causes a 1 RTT slow start back to the cwnd state held before
    the sender needlessly made changes to the congestion control
    state. Furthermore, using the above algorithm causes a smooth
    increase of cwnd, whereas simply setting cwnd to cwnd_prev upon
    detection of a spurious retransmit would cause the transmission
    of a potentially large burst.

    If a sender uses the above algorithm, one of the algorithms
    specified in the next section MUST be used in an attempt to prevent
    further needless retransmissions.

4   Preventing Spurious Retransmits

    [Editor's Note: The descriptions of the algorithms in this section
    are necessrily terse -- the I-D deadline being near.  These
    subsections will be filled out more in future revisions of this
    document.]

4.1 Increase dupthresh by some constant

Expires: January 2002                                           [Page 2]

draft-blanton-dupack-thresh-adjust-00.txt                      July 2001

    
    A very simple approach is to increase dupthresh by some small
    constant each time a spurious fast retransmit is detected.

4.2 Increase dupthresh by some factor dependent on the reordering

    Taking the length of the reordering event that caused a spurious
    fast retransmit into consideration, dupthresh can be increased to
    some value large enough to have prevented this spurious
    retransmission.

4.3 Delayed fast retransmit

    As proposed in [Pax97], the fast retransmit can be delayed by some
    small amount of time after dupthresh duplicate ACKs have been
    received.  When an unnecessary fast retransmit is detected, this
    delay can be increased by a small amount that would have been
    sufficient to prevent the spurious retransmission.

4.4 Average duplicate ACK count tracking
    
    If the average number of duplicate ACKs received during a
    reordering event is tracked, then dupthresh can be set to some
    function of this value in order to minimize false retransmits.

5   Future Work

    In addition to changing the duplicate ACK treshold this document
    will eventually outline mechanisms for adjusting the retransmission
    timeout when the RTO is firing prematurly.

6   Security Considerations

    Reversion of congestion control state and adjustment of the
    duplicate ACK threshold themselves have no obvious security
    considerations.  Any security considerations pertaining to the
    method of determining that a fast retransmit was spurious are
    directly applicable to this document.  Reversion of congestion
    control state depends on an accurate indication that the
    retransmission was spurious to prevent the intentional disabling
    of congestion control.

Acknowledgments

    The authors would like to thank Sally Floyd, Reiner Ludwig, Vern
    Paxson and Randall Stewart for spurring this work through their
    previous work for providing input during the formative stages of
    this draft.

References

    [BA01a] E. Blanton, M. Allman.  On Making TCP More Robust to Packet
        Reordering.  In preparation.


Expires: January 2002                                           [Page 3]

draft-blanton-dupack-thresh-adjust-00.txt                      July 2001

    [BA01b] E. Blanton, M. Allman.  Using TCP DSACKs and SCTP Duplicate
        TSNs to Detect Spurious Retransmissions. Internet-Draft
        draft-blanton-dsack-use-00.txt, July 2001. Work in progress.
    
    [BPS99] J. Bennett, C. Partridge, N. Shectman.  Packet Reordering
        is Not Pathological Network Behavior.  IEEE/ACM Transactions
	on Networking, December 1999.

    [LK00] R. Ludwig, R. Katz.  The Eifel Algorithm: Making TCP Robust
        Against Spurious Retransmissions.  Computer Communication Review
        Volume 30 Number 1, January 2000.
    
    [Lud00] R. Ludwig.  The Eifel Algorithm for TCP.
        draft-ietf-tsvwg-tcp-eifel-alg-00.txt, February 2001.  Work in
	progress.

    [Pax97] V. Paxson.  End-to-End Internet Packet Dynamics.
	Presented at ACM SIGCOMM, September 1997.
    
    [RFC2581] M. Allman, V. Paxson, W. Stevens, TCP Congestion Control,
        RFC 2581, April 1999.

    [RFC2960] R. Stewart, Q. Xie, K. Morneault, C. Sharp, H.
        Schwarzbauer, T. Taylor, I. Rytina, M. Kalla, L. Zhang, V.
        Paxson.  Stream Control Transmission Protocol.  RFC 2960,
        October 2000.

Authors' Addresses:

    Ethan Blanton
    Ohio University Internetworking Research Lab
    Stocker Center
    Athens, OH  45701
    eblanton@irg.cs.ohiou.edu

    Mark Allman
    BBN Technologies/NASA Glenn Research Center
    Lewis Field
    21000 Brookpark Rd.  MS 54-5
    Cleveland, OH  44135
    Phone: 216-433-6586
    Fax: 216-433-8705
    mallman@bbn.com
    http://roland.grc.nasa.gov/~mallman











Expires: January 2002                                           [Page 4]