datatracker.ietf.org
Sign in
Version 5.9.0, 2014-12-18
Report a bug

A Conservative Loss Recovery Algorithm Based on Selective Acknowledgment (SACK) for TCP
RFC 6675

Internet Engineering Task Force (IETF)                        E. Blanton
Request for Comments: 6675                             Purdue University
Obsoletes: 3517                                                M. Allman
Category: Standards Track                                           ICSI
ISSN: 2070-1721                                                  L. Wang
                                                        Juniper Networks
                                                             I. Jarvinen
                                                                 M. Kojo
                                                  University of Helsinki
                                                              Y. Nishida
                                                            WIDE Project
                                                             August 2012

            A Conservative Loss Recovery Algorithm Based on
                Selective Acknowledgment (SACK) for TCP

Abstract

   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.

Status of This Memo

   This is an Internet Standards Track document.

   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).  Further
   information on Internet Standards is available in 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/rfc6675.

Blanton, et al.              Standards Track                    [Page 1]
RFC 6675          SACK Loss Recovery Algorithm for TCP       August 2012

Copyright Notice

   Copyright (c) 2012 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.

1.  Introduction

   This document presents a conservative loss recovery algorithm for TCP
   that is based on the use of the selective acknowledgment (SACK) TCP
   option.  While the TCP SACK option [RFC2018] is being steadily
   deployed in the Internet [All00], there is evidence that hosts are
   not using the SACK information when making retransmission and
   congestion control decisions [PF01].  The goal of this document is to
   outline one straightforward method for TCP implementations to use
   SACK information to increase performance.

   [RFC5681] allows advanced loss recovery algorithms to be used by TCP
   [RFC793] provided that they follow the spirit of TCP's congestion
   control algorithms [RFC5681] [RFC2914].  [RFC6582] outlines one such
   advanced recovery algorithm called NewReno.  This document outlines a
   loss recovery algorithm that uses the SACK TCP option [RFC2018] to
   enhance TCP's loss recovery.  The algorithm outlined in this
   document, heavily based on the algorithm detailed in [FF96], is a
   conservative replacement of the fast recovery algorithm [Jac90]
   [RFC5681].  The algorithm specified in this document is a
   straightforward SACK-based loss recovery strategy that follows the
   guidelines set in [RFC5681] and can safely be used in TCP
   implementations.  Alternate SACK-based loss recovery methods can be
   used in TCP as implementers see fit (as long as the alternate
   algorithms follow the guidelines provided in [RFC5681]).  Please
   note, however, that the SACK-based decisions in this document (such
   as what segments are to be sent at what time) are largely decoupled
   from the congestion control algorithms, and as such can be treated as
   separate issues if so desired.

   This document represents a revision of [RFC3517] to address several
   situations that are not handled explicitly in that document.  A

Blanton, et al.              Standards Track                    [Page 2]

[include full document text]