Re: [tcpm] Should draft-ietf-tcpm-sack-recovery-entry update RFC 3717 (SACK-TCP)

Arnd Hannemann <hannemann@i4.informatik.rwth-aachen.de> Mon, 09 November 2009 15:21 UTC

Return-Path: <hannemann@i4.informatik.rwth-aachen.de>
X-Original-To: tcpm@core3.amsl.com
Delivered-To: tcpm@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 939B93A6B14 for <tcpm@core3.amsl.com>; Mon, 9 Nov 2009 07:21:16 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.801
X-Spam-Level:
X-Spam-Status: No, score=-4.801 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HELO_EQ_DE=0.35, HELO_MISMATCH_DE=1.448, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QQZ3NAQAd00A for <tcpm@core3.amsl.com>; Mon, 9 Nov 2009 07:21:15 -0800 (PST)
Received: from mta-2.ms.rz.rwth-aachen.de (mta-2.ms.rz.RWTH-Aachen.DE [134.130.7.73]) by core3.amsl.com (Postfix) with ESMTP id 9D18B3A6B75 for <tcpm@ietf.org>; Mon, 9 Nov 2009 07:21:15 -0800 (PST)
MIME-version: 1.0
Content-transfer-encoding: 7bit
Content-type: text/plain; charset="ISO-8859-1"
Received: from ironport-out-1.rz.rwth-aachen.de ([134.130.5.40]) by mta-2.ms.rz.RWTH-Aachen.de (Sun Java(tm) System Messaging Server 6.3-7.04 (built Sep 26 2008)) with ESMTP id <0KSU0070GLC46MH0@mta-2.ms.rz.RWTH-Aachen.de> for tcpm@ietf.org; Mon, 09 Nov 2009 16:21:40 +0100 (CET)
X-IronPort-AV: E=Sophos;i="4.44,708,1249250400"; d="scan'208";a="33056735"
Received: from relay-2.ms.rz.rwth-aachen.de (HELO relay.rwth-aachen.de) ([134.130.7.75]) by ironport-in-1.rz.rwth-aachen.de with ESMTP; Mon, 09 Nov 2009 16:21:41 +0100
Received: from [137.226.12.85] (informatik-4-137-226-12-85.nn.RWTH-Aachen.DE [137.226.12.85] (may be forged)) by relay.rwth-aachen.de (8.13.8+Sun/8.13.8/1) with ESMTP id nA9FLer8001750; Mon, 09 Nov 2009 16:21:40 +0100 (CET)
Message-id: <4AF8336B.1050005@i4.informatik.rwth-aachen.de>
Date: Mon, 09 Nov 2009 16:21:15 +0100
From: Arnd Hannemann <hannemann@i4.informatik.rwth-aachen.de>
User-Agent: Thunderbird 2.0.0.23 (X11/20090817)
To: rs@netapp.com
References: <5FDC413D5FA246468C200652D63E627A04B7BDD2@LDCMVEXC1-PRD.hq.netapp.com>
In-reply-to: <5FDC413D5FA246468C200652D63E627A04B7BDD2@LDCMVEXC1-PRD.hq.netapp.com>
Cc: tcpm@ietf.org
Subject: Re: [tcpm] Should draft-ietf-tcpm-sack-recovery-entry update RFC 3717 (SACK-TCP)
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/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: Mon, 09 Nov 2009 15:21:16 -0000

Scheffenegger, Richard schrieb:

> But what puzzles me the most - even with SACK enabled TCP stacks, virtually no
> implementation can detect / act upon detection of the loss of a retransmitted
> segment during fast recovery. This despite the fact, that the stipulations in
> RFC3517 requires the receiver to make the information to detect such an event
> implicitly available to the sender. The first SACK option has to reflect the 
> last segment, which triggered this SACK. 

Some implementations actually do detect lost retransmissions.
(see Linux tcp_mark_lost_retrans())
However, currently only for FACK enabled flows. (Comments indicate,
it would be non-trivial / too-expensive for SACK enabled flows.)

> Together with the scoreboard held at the sender, it should be rather easy to
> find out if the left edge of the lowest hole (relative to stream octets) closes

> If that left edge stays constant for "DupThresh" number of ACKs, which reduce
> the overall number of octets in holes (any one hole might close due to the
> retransmitted packets still received), AND the sender retransmits beginning
> with the lowest hole first, this would be a clear indication of another segment
> retransmit loss...

Sorry, I don't understand. You mean "DupThresh" number of DupACKs? Sack-blocks?
After which point in time? After the first retransmit?
SACK-blocks higher than recovery point? (the latter would make most sense, IMO)

> Even a less speedy detection logic would work for SACK-enabled sessions: once
> the fast recovery is finished from the sender's point of view, if the receiver
> still complains about missing segments (indicated by having the SACK rightmost
> edge - in the first slot SACK option - at a segment higher than when fast
> recovery started), another round of fast recovery could be invoked, rather than
> waiting for RTO.

How can fast recovery be "finished" if the sender is missing packets?

Best regards,
Arnd Hannemann