Re: [tsvwg] draft-stewart-tsvwg-sctpecn

John Leslie <john@jlc.net> Sat, 04 August 2012 01:03 UTC

Return-Path: <john@jlc.net>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7018721F8D4D for <tsvwg@ietfa.amsl.com>; Fri, 3 Aug 2012 18:03:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -105.672
X-Spam-Level:
X-Spam-Status: No, score=-105.672 tagged_above=-999 required=5 tests=[AWL=0.927, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UXwWp9rc+1qD for <tsvwg@ietfa.amsl.com>; Fri, 3 Aug 2012 18:03:04 -0700 (PDT)
Received: from mailhost.jlc.net (mailhost.jlc.net [199.201.159.4]) by ietfa.amsl.com (Postfix) with ESMTP id E100621F8D56 for <tsvwg@ietf.org>; Fri, 3 Aug 2012 18:03:03 -0700 (PDT)
Received: by mailhost.jlc.net (Postfix, from userid 104) id BBCC133C21; Fri, 3 Aug 2012 21:03:03 -0400 (EDT)
Date: Fri, 03 Aug 2012 21:03:03 -0400
From: John Leslie <john@jlc.net>
To: "Scheffenegger, Richard" <rs@netapp.com>
Message-ID: <20120804010303.GC15012@verdi>
References: <012C3117EDDB3C4781FD802A8C27DD4F0D4E24FC@SACEXCMBX02-PRD.hq.netapp.com> <955ED31B-9201-43FA-8C8C-13B622DB2D80@lakerest.net> <012C3117EDDB3C4781FD802A8C27DD4F0D4E3811@SACEXCMBX02-PRD.hq.netapp.com> <C824EAB0-BA4D-4D81-9EC9-980D589C2E9E@lakerest.net> <012C3117EDDB3C4781FD802A8C27DD4F0D4E3C80@SACEXCMBX02-PRD.hq.netapp.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <012C3117EDDB3C4781FD802A8C27DD4F0D4E3C80@SACEXCMBX02-PRD.hq.netapp.com>
User-Agent: Mutt/1.4.1i
Cc: tsvwg@ietf.org, Randy Stewart <randall@lakerest.net>
Subject: Re: [tsvwg] draft-stewart-tsvwg-sctpecn
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tsvwg>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 04 Aug 2012 01:03:04 -0000

Scheffenegger, Richard <rs@netapp.com> wrote:
> 
> Suppose you are restricted on bits available to signal the congestion
> back to the sender, would you implement a continuously increasing
> counter (that eventually wraps), or a gauge that only increases up to
> a certain point before requiring an explicit reset.

   [tcpm] is facing this issue for TCP: I haven't posted an opinion
there yet; but frankly my opinion is that a counter that wraps is a
better mechanism. It end-runs a lot of race conditions.

   I don't know the exact details for SCTP -- but it seems avoiding
race conditions would be best here, too.

> Independently from this, do you see value in letting the receiver
> (and implicitly, the network) explicitly know that the sender
> (supposedly) did perform a congestion control reaction?

   There is arguably some value in that; but it tends to strike me as
a MAY rather than a MUST.

> Think of this scenario as when the send window (# packets) is larger
> than the largest value that the counter could hold; With TCP, that
> happens with windows > 1 packet; with this draft, when the window
> grows beyond 2^32 packets (purely hypothetical).

   TCP, here, serves only as a bad example IMHO. The one-bit counter
was barely adequate when first specified, and can never pass more than
one event per RTT. This is already considered inadequate for things we
want TCP to do today.

   IMHO, if there is a CWR indication at all, it deserves to be the
value of the ECE counter when the window was reduced -- thus as many
bits as the ECE counter. Again, this end-runs race conditions.

   (The mechanism is analogous to the circular-buffer algorithms from
the 1960s when we dealt with shared-memory communication between
processes that could interrupt each other.)

--
John Leslie <john@jlc.net>