Re: [tcpm] RFC 5827 on Early Retransmit for and Stream Control Transmission Protocol (SCTP)

Fred Baker <fred@cisco.com> Tue, 27 April 2010 04:13 UTC

Return-Path: <fred@cisco.com>
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 63A303A6C38 for <tcpm@core3.amsl.com>; Mon, 26 Apr 2010 21:13:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -100.216
X-Spam-Level:
X-Spam-Status: No, score=-100.216 tagged_above=-999 required=5 tests=[AWL=-0.031, BAYES_40=-0.185, USER_IN_WHITELIST=-100]
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 OiOEkLEL43fP for <tcpm@core3.amsl.com>; Mon, 26 Apr 2010 21:13:31 -0700 (PDT)
Received: from ams-iport-2.cisco.com (ams-iport-2.cisco.com [144.254.224.141]) by core3.amsl.com (Postfix) with ESMTP id E0EF73A67A6 for <tcpm@ietf.org>; Mon, 26 Apr 2010 21:13:23 -0700 (PDT)
Authentication-Results: ams-iport-2.cisco.com; dkim=neutral (message not signed) header.i=none
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AjIBACsB1kuQ/uCWiWdsb2JhbACQPYwMFQEBAQoLEREGHKQqmh+FDAQ
X-IronPort-AV: E=Sophos;i="4.52,277,1270425600"; d="scan'208";a="6238017"
Received: from ams-core-1.cisco.com ([144.254.224.150]) by ams-iport-2.cisco.com with ESMTP; 27 Apr 2010 03:36:22 +0000
Received: from [10.10.35.113] (ams3-vpn-dhcp1091.cisco.com [10.61.68.67]) by ams-core-1.cisco.com (8.13.8/8.14.3) with ESMTP id o3R4DA7A005889; Tue, 27 Apr 2010 04:13:10 GMT
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: text/plain; charset="us-ascii"
From: Fred Baker <fred@cisco.com>
In-Reply-To: <20100427031619.661E0F22DD7@lawyers.icir.org>
Date: Tue, 27 Apr 2010 05:13:10 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <8D6E7279-21DC-44CC-A623-671A18D951C3@cisco.com>
References: <20100427031619.661E0F22DD7@lawyers.icir.org>
To: mallman@icir.org
X-Mailer: Apple Mail (2.1078)
X-Mailman-Approved-At: Tue, 27 Apr 2010 08:18:41 -0700
Cc: jblanton@masaka.cs.ohiou.edu, tcpm@ietf.org, k.avrachenkov@sophia.inria.fr
Subject: Re: [tcpm] RFC 5827 on Early Retransmit for and Stream Control Transmission Protocol (SCTP)
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: Tue, 27 Apr 2010 04:13:32 -0000

I'm sure you're wiser than I. I'm just thinking that in a context where cwnd<4 (pretty normal at my house when uploading to Picasa, which is an obvious file-transfer test, because the RTT is relatively short) sending after two dup-acks inserts a relatively large delay on the line in the event that it is a wrong guess. If you're going to increase the chance of guessing wrong, it seems like you might want to minimize the side-effect of being wrong.

On Apr 27, 2010, at 4:16 AM, Mark Allman wrote:

> 
>> In cases in which cwnd < 4, it seems like your biggest concern is to
>> elicit the information necessary to trigger the retransmission without
>> unnecessarily burdening the path. That is in essence why we use three
>> dup-acks as a trigger - it is "enough" information to ensure that with
>> high probability it is not being triggered by simple packet
>> reordering.  
>> 
>> Would it make sense to, when cwnd < 4 or all of the data available to
>> transmit is in flight, in response to a SACK, send a segment
>> containing exactly the TCP header, and one byte of SACKed data? The
>> receipt of the SACK says that it is highly likely that the missing
>> segment cleared the bottleneck, and would trigger an additional
>> dup-ack containing the SACK record in question (which might trigger
>> another of the same type of segment). If the missing segment is in
>> fact lost, doing that would allow you to trigger three dup-acks in
>> three RTTs even if you only had two segments outstanding (cwnd=2 or
>> that's all the data you have). You only take the RTO if you literally
>> have a single segment outstanding. If the missing segment in fact
>> arrived but the ACK was lost, it would trigger the ACK. 
> 
> My quick response is ...
> 
>  - ER explicitly defers to Limited Transmit (RFC 3042) when possible,
>    which is sorta what you describe, but not with dummy sorts of
>    packets, but with packets off the top.  But, the point is the
>    same---to try to drive the ACK process to a less ambiguous state.
> 
>  - I am not a big fan of dummy packets that really don't accomplish any
>    work [*] (and, not just here; they've been proposed in a number of
>    contexts).  My mental model says one of these packets you sketch
>    above is about as much work as a data carrying packet and so why not
>    just retransmit and be done with it?  Yeah, if we're wrong because
>    of small scale reordering then we needlessly injected a packet.
>    But, using the scheme above to try to better ensure the right action
>    is taken we also injected a packet (or two).  And, in either case,
>    the cwnd is so small cutting it isn't a huge deal, it seems to me.
> 
>    [*] By work I mean in the context transfer process, not in terms of
>        the underlying mechanisms to get that done.  So, in my mind
>        "work" == data packets or their ACKs and not control things such
>        as you sketch.
> 
> allman
> 
> 
> 

http://www.ipinc.net/IPv4.GIF