[tcpm] [Errata Verified] RFC6582 (6871)

RFC Errata System <rfc-editor@rfc-editor.org> Tue, 12 March 2024 22:21 UTC

Return-Path: <wwwrun@rfcpa.amsl.com>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C29A0C14F6B8; Tue, 12 Mar 2024 15:21:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.656
X-Spam-Level:
X-Spam-Status: No, score=-1.656 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, CTE_8BIT_MISMATCH=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=no autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8rluOAQxHEzL; Tue, 12 Mar 2024 15:20:59 -0700 (PDT)
Received: from rfcpa.amsl.com (rfcpa.amsl.com [50.223.129.200]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 42D28C14F6B5; Tue, 12 Mar 2024 15:20:59 -0700 (PDT)
Received: by rfcpa.amsl.com (Postfix, from userid 499) id EB5DDE82C3; Tue, 12 Mar 2024 15:20:58 -0700 (PDT)
To: q645v49v@anonaddy.me, thomas.r.henderson@boeing.com, floyd@acm.org, gurtov@ee.oulu.fi, nishida@wide.ad.jp
From: RFC Errata System <rfc-editor@rfc-editor.org>
Cc: martin.h.duke@gmail.com, iesg@ietf.org, tcpm@ietf.org, iana@iana.org, rfc-editor@rfc-editor.org
Content-Type: text/plain; charset="UTF-8"
Message-Id: <20240312222058.EB5DDE82C3@rfcpa.amsl.com>
Date: Tue, 12 Mar 2024 15:20:58 -0700
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/scvVoWdEr2Z_H2Zmg52ZMZD8E9s>
X-Mailman-Approved-At: Wed, 13 Mar 2024 10:27:21 -0700
Subject: [tcpm] [Errata Verified] RFC6582 (6871)
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpm/>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 12 Mar 2024 22:21:03 -0000

The following errata report has been verified for RFC6582,
"The NewReno Modification to TCP's Fast Recovery Algorithm". 

--------------------------------------
You may review the report below and at:
https://www.rfc-editor.org/errata/eid6871

--------------------------------------
Status: Verified
Type: Technical

Reported by: Clive Bloom <q645v49v@anonaddy.me>
Date Reported: 2022-03-07
Verified by: Martin Duke (IESG)

Section: 4.1

Original Text
-------------
If the Cumulative Acknowledgment field didn’t cover more than
recover, check to see if the congestion window is greater than
SMSS bytes and the difference between highest_ack and
prev_highest_ack is at most 4*SMSS bytes. If true, duplicate
ACKs indicate a lost segment (enter fast retransmit).
Otherwise, duplicate ACKs likely result from unnecessary
retransmissions (do not enter fast retransmit).

Corrected Text
--------------
If the Cumulative Acknowledgment field didn’t cover more than
recover, check to see if the congestion window is greater than
SMSS bytes and the difference between highest_ack and
prev_highest_ack is at most 3*SMSS bytes. If true, duplicate
ACKs indicate a lost segment (enter fast retransmit).
Otherwise, duplicate ACKs likely result from unnecessary
retransmissions (do not enter fast retransmit).

Notes
-----
RFC6582 (as well as RFC3782) references to Gur03 and GF04 papers as to the initial sources
of the heuristics both ACK-based and Timestamp-based. Neither of those
papers nor Gur03 nor GF04 defines difference between highest_ack and previous_highest_ack
of at least 4*SMSS bytes upon receiving the third duplicate ACK as an indication 
of droped retransmitted segment. Instead, section III of GF04 says:

"The acknowledgment heuristic is based on an observation that if the 
TCP sender unnecessarily retransmits at least three adjacent packets,
there will be a jump by at least four segments in a cumulative 
acknowledgment field. The sender will have correctly retransmitted at least
one packet, to advance the cumulative acknowledgment field, and 
unnecessarily retransmitted at least three more to result in three duplicate
acknowledgments. Following the advancement of the cumulative acknowledgment
field, the sender stores the value of the previous cumulative acknowledgment
as prev_highest_ack and stores the latest cumulative acknowledgment as
highest_ack. Upon receiving the third duplicate acknowledgment,
the sender invokes a Fast Retransmit if its congestion window is greater
than one MSS (Maximum Segment Size), and the difference between highest_ack
and prev_highest_ack is at most three MSS."

According to GF04 if TCP sender in absence of any droped acknowledgments upon receiving
the third duplicate ACK has difference between highest_ack and prev_highest ack values 
of at most/i.e. no more than 3*SMSS bytes then this is explicite indication of droped retransmitted
segment and leads TCP sender to invoke Fast Retransmit, but current description of ACK-based
heuristic in RFC6582 section 4.1 in part of: "If the Cumulative Acknowledgment field didn’t cover more  than recover, check to see if the congestion window is greater than
SMSS bytes and the difference between highest_ack and prev_highest_ack is at most 4*SMSS bytes. 
If true, duplicate ACKs indicate a lost segment (enter fast retransmit). Otherwise, duplicate ACKs 
likely result from unnecessary retransmissions (do not enter fast retransmit). ", makes TCP sender 
to treat difference between highest_ack and prev_highest_ack of 4SMSS bytes upon receiving 3rd
duplicate ACK as indication of lost retransmitted segment but again according to GF04 this is NOT so, 
and makes TCP sender to invoke Fast Retransmit when in fact those three duplicate acknowledgments 
indicate unnecessarily retransmitted segments and have in their acknowledgment fields sequence 
number which receiver expects to receive next but which sender has NOT sent yet, so Fast Retransmit 
has no point in this case.

--------------------------------------
RFC6582 (draft-ietf-tcpm-rfc3782-bis-05)
--------------------------------------
Title               : The NewReno Modification to TCP's Fast Recovery Algorithm
Publication Date    : April 2012
Author(s)           : T. Henderson, S. Floyd, A. Gurtov, Y. Nishida
Category            : PROPOSED STANDARD
Source              : TCP Maintenance and Minor Extensions
Area                : Transport
Stream              : IETF
Verifying Party     : IESG