[tcpm] Fwd: [Technical Errata Reported] RFC6582 (6871)

Martin Duke <martin.h.duke@gmail.com> Thu, 18 January 2024 23:10 UTC

Return-Path: <martin.h.duke@gmail.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 A8A6AC14F6BA for <tcpm@ietfa.amsl.com>; Thu, 18 Jan 2024 15:10:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.104
X-Spam-Level:
X-Spam-Status: No, score=-2.104 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=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=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 B8aLHBB0qZTn for <tcpm@ietfa.amsl.com>; Thu, 18 Jan 2024 15:09:57 -0800 (PST)
Received: from mail-ot1-x331.google.com (mail-ot1-x331.google.com [IPv6:2607:f8b0:4864:20::331]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 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 C2D78C14F6B5 for <tcpm@ietf.org>; Thu, 18 Jan 2024 15:09:57 -0800 (PST)
Received: by mail-ot1-x331.google.com with SMTP id 46e09a7af769-6dc83674972so92497a34.1 for <tcpm@ietf.org>; Thu, 18 Jan 2024 15:09:57 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1705619396; x=1706224196; darn=ietf.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=XWW2PvItFx1rNjYgfZlH9D3XAUxk9W3AADlruK/6vjY=; b=crQ+pNkUxsx3aKm07idzzlaLQmtNEpz2oUDtlg2ijkuq2BpUz+/Y0Tjq7t8YlXeiPj 5BKgDh8V2oM4TMQuYobQFiaqC0BILi8suj3lqxGTj+tNnRWn8IFmBa5xYMBzw+lE4u8M v9jwkd3nesyCMXdjoBtN8XmX/ZfPtksKD2iRBOO9xu48TPF25VhD2G42bdGd4gJB7Ws9 HKC33CkiFFaq1lM/iG7UQ7RWUqv3hoEdqJEV71k5xJr99pw9WJNBniHsm9DoLuzRja9L HCm7hKpFEo2BOUm8dg7zLtaWpz3lVpnjzeSxfospCH3ZYFl4brz3aUpAWHTzzuuLiWR3 K4CQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705619396; x=1706224196; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=XWW2PvItFx1rNjYgfZlH9D3XAUxk9W3AADlruK/6vjY=; b=IRxnlsi8avhb76sienRxWC19sB/3hiH7q/K/NraTUAoidDtD14n7TjsLhAT5qRQf7s QAF/gYIQloXl1Tkkq9d2P3u0iMq3kvOngTuBB8hmcAWGHn2dILkvE7+h359tU1daB5vZ COCikgnPRCgn82/HxKkcEcBBi396SLtv38E4VXtKxWaokHRB+Bo7OmxCmOhCvc7iDt3m b3ebpHP7lSdFqcSqfRP5xpXgm4uK1OssRTrTFBHcxKT4pk1U8qIIUQYTdQ97nkvfwfb6 QpiZaEtRANtPTLd7eVBF0EK5/jaE0jZGbtb0KofkYzRLR3NPgVmFvetqrkW3WzZEhu+C B5kA==
X-Gm-Message-State: AOJu0Yx725908mW/HctjjdCeqzDWh8Xqopeaz89NvijVCowKlGeypa2I PDfECqNJJKBatMySgwEBzQ3gQwpnumS9jwbVqfNlG/bMQV+Z/M83Y0qmLXKFbBYCXfdmvy94Bxd GGnLq/V4/WBWYyF/LtQTWQHtlpRmgptDH
X-Google-Smtp-Source: AGHT+IENw0UmZ+4RyzR7CaH6BWYJ1I/D9cVRuegbxr1iAjg/tCXfdutf4ZcMDqzkCiZDXu0X9nHj11zY36JqGAG6xeU=
X-Received: by 2002:a05:6359:6e89:b0:175:7be5:7355 with SMTP id ti9-20020a0563596e8900b001757be57355mr1494572rwb.31.1705619396455; Thu, 18 Jan 2024 15:09:56 -0800 (PST)
MIME-Version: 1.0
References: <20220307150858.E05E46AAB1@rfc-editor.org>
In-Reply-To: <20220307150858.E05E46AAB1@rfc-editor.org>
From: Martin Duke <martin.h.duke@gmail.com>
Date: Thu, 18 Jan 2024 15:09:43 -0800
Message-ID: <CAM4esxTxdcnNzr5p_o3SdZd5NCnUhyyFQeMwcMLoVp8Mg89mWg@mail.gmail.com>
To: "tcpm@ietf.org Extensions" <tcpm@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000003f70c3060f4076f1"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/ykPWcl9SbTJwS-csmfCuXINaGVc>
Subject: [tcpm] Fwd: [Technical Errata Reported] 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: Thu, 18 Jan 2024 23:10:01 -0000

I do not have any TCP code in front of me, but ISTM this errata is accurate.

if the window advances by 3 MSS or less, that implies that <= 2 DUPACKs
were lost, which would not have triggered a Fast Retransmit.

If the window advances by 4 MSS or more, then the peer should have sent at
least 3 DUPACKs, which if received would have triggered FR.

Am I thinking about this correctly?

---------- Forwarded message ---------
From: RFC Errata System <rfc-editor@rfc-editor.org>
Date: Mon, Mar 7, 2022 at 7:08 AM
Subject: [Technical Errata Reported] RFC6582 (6871)
To: <thomas.r.henderson@boeing.com>, <floyd@acm.org>, <gurtov@ee.oulu.fi>, <
nishida@wide.ad.jp>, <martin.h.duke@gmail.com>, <
Zaheduzzaman.Sarker@ericsson.com>, <nsd.ietf@gmail.com>, <
michael.scharf@hs-esslingen.de>, <tuexen@fh-muenster.de>
Cc: <q645v49v@anonaddy.me>, <tcpm@ietf.org>, <rfc-editor@rfc-editor.org>


The following errata report has been submitted 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

--------------------------------------
Type: Technical
Reported by: Clive Bloom <q645v49v@anonaddy.me>

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.

Instructions:
-------------
This erratum is currently posted as "Reported". If necessary, please
use "Reply All" to discuss whether it should be verified or
rejected. When a decision is reached, the verifying party
can log in to change the status and edit the report, if necessary.

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