Re: [tcpm] Comments on draft-blanton-tcpm-3517bis-01

Yuchung Cheng <ycheng@google.com> Wed, 13 April 2011 23:56 UTC

Return-Path: <ycheng@google.com>
X-Original-To: tcpm@ietfc.amsl.com
Delivered-To: tcpm@ietfc.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfc.amsl.com (Postfix) with ESMTP id 685A4E0742 for <tcpm@ietfc.amsl.com>; Wed, 13 Apr 2011 16:56:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -105.677
X-Spam-Level:
X-Spam-Status: No, score=-105.677 tagged_above=-999 required=5 tests=[AWL=-0.300, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, J_CHICKENPOX_33=0.6, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([208.66.40.236]) by localhost (ietfc.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wCF+NvGsF2e4 for <tcpm@ietfc.amsl.com>; Wed, 13 Apr 2011 16:56:23 -0700 (PDT)
Received: from smtp-out.google.com (smtp-out.google.com [216.239.44.51]) by ietfc.amsl.com (Postfix) with ESMTP id 99961E0679 for <tcpm@ietf.org>; Wed, 13 Apr 2011 16:56:23 -0700 (PDT)
Received: from kpbe18.cbf.corp.google.com (kpbe18.cbf.corp.google.com [172.25.105.82]) by smtp-out.google.com with ESMTP id p3DNuNpJ010799 for <tcpm@ietf.org>; Wed, 13 Apr 2011 16:56:23 -0700
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1302738983; bh=N5JG0ezsuPm9gvz4UeFg+18SEEg=; h=MIME-Version:In-Reply-To:References:From:Date:Message-ID:Subject: To:Content-Type:Content-Transfer-Encoding; b=oIrG7iAsbqZh/BV9fxGd4shYJfOD6Mb9/s2v7GFoGZzKq+cEHw5ZL6LfuQOHddnoB e9e89Srf9VLIRsUWq2y1A==
Received: from gxk9 (gxk9.prod.google.com [10.202.11.9]) by kpbe18.cbf.corp.google.com with ESMTP id p3DNu2sC000404 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for <tcpm@ietf.org>; Wed, 13 Apr 2011 16:56:21 -0700
Received: by gxk9 with SMTP id 9so704841gxk.40 for <tcpm@ietf.org>; Wed, 13 Apr 2011 16:56:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=beta; h=domainkey-signature:mime-version:in-reply-to:references:from:date :message-id:subject:to:content-type:content-transfer-encoding; bh=MC2cvUuMePYR/T5NGNfDs/OarRuujzMxgPNLbAO3N+0=; b=S3ZfEtJc5SYTs7tDA9g7UtTqrh41n0j5No+B7vJSpIkdOpRkNFQJEqUyILyAvZQaRD jEY/WXBWPK4DpL8NKg0w==
DomainKey-Signature: a=rsa-sha1; c=nofws; d=google.com; s=beta; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type:content-transfer-encoding; b=DbK1KeksnE2Yj02v37zHpzrXOZIBELqwhX916nWi6PdxO8JIcGvlOm1MWPodvM8mSv +sVFV3KK/2q7ii6ZmUVw==
Received: by 10.150.171.5 with SMTP id t5mr1120700ybe.332.1302738981310; Wed, 13 Apr 2011 16:56:21 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.151.109.8 with HTTP; Wed, 13 Apr 2011 16:56:01 -0700 (PDT)
In-Reply-To: <20110413201315.GC4240@colt>
References: <20110413182449.GA4240@colt> <BANLkTi=c80RgQFdXj=Bx5Gpd3RHQRCX9=Q@mail.gmail.com> <20110413201315.GC4240@colt>
From: Yuchung Cheng <ycheng@google.com>
Date: Wed, 13 Apr 2011 16:56:01 -0700
Message-ID: <BANLkTinkKp0GFg8_fYN+ESy62_p0WbF52g@mail.gmail.com>
To: "tcpm@ietf.org Extensions" <tcpm@ietf.org>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
X-System-Of-Record: true
Subject: Re: [tcpm] Comments on draft-blanton-tcpm-3517bis-01
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.12
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: <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: Wed, 13 Apr 2011 23:56:24 -0000

Thanks for the clarification. My example assumes SMSS=1460 (sorry for
not being clear).

AFAIK, Linux (even with fack disabled) triggers the fast-recovery when
any 3 packets (of any size) are sacked beyond SND.UNA.

On Wed, Apr 13, 2011 at 1:13 PM, Ethan Blanton <eblanton@cs.ohiou.edu> wrote:
> Yuchung Cheng spake unto us the following wisdom:
>> I have two questions:
>>
>> 1) IsLost (SeqNum):
>>
>>       This routine returns whether the given sequence number is
>>       considered to be lost.  The routine returns true when either
>>       DupThresh discontiguous SACKed sequences have arrived above
>>       'SeqNum' or more than (DupThresh - 1) * SMSS bytes with sequence
>>       numbers greater than 'SeqNum' have been SACKed.  Otherwise, the
>>       routine returns false.
>>
>> Does RFC require DupThresh discontinuous sack blocks? e.g.,
>> For example, if a sender sends 4 data packets
>> send pkt1: 1-100
>> send pkt2: 101-200
>> send pkt3: 201-300
>> send pkt4: 301-400
>> receive ack: ack1 with one sack block 101-400.
>> does IsLost(1) returns true?
>
> Let me clerify this a bit.  Are you positing this when SMSS >> 100
> bytes?  If so, then the answer is "maybe".  The draft is written in
> the context of a TCP which does not keep track of segments.   If, in
> this case, SMSS >> 100 bytes, then IsLost(1) will return false for a
> pure byte-counting TCP.  Note from Section 3:
>
>   Finally, note that the algorithm in this document assumes a
>   sender that is not keeping track of segment boundaries after
>   transmitting a segment.  It is possible that a sender that did
>   keep this extra state may be able to use a more refined and
>   precise algorithm than the one presented herein, however, we
>   leave this as future work.
>
> If SMSS == 100 bytes, then yes, IsLost(1) will return true.
>
>> 2)
>> If the incoming ACK is a duplicate acknowledgment and the TCP is
>>
>>    not currently in loss recovery, the TCP MUST increase DupAcks by
>>    one and take the following steps:
>>
>>    (1) If DupAcks >= DupThresh, go to step (4).
>>
>>    (2) If DupAcks < DupThresh but IsLost (SND.UNA) returns
>>        true---indicating at least three segments have arrived above
>>        the current cumulative acknowledgment point, which is taken
>>        to indicate loss---go to step (4).
>>
>> can we combine (1) and (2)? go to steps (4) if IsLost(SND.UNA) is
>> true. I guess it depends on your answer of my first question.
>
> No, not unless you assume a TCP which tracks segments, you assume that
> all segments are SMSS-sized, or you *always* use Nagle's algorithm.
> If a TCP is sending segments of size < SMSS, then counting incoming
> DupAcks allows you to trigger loss recovery when 3 incoming ACKs with
> new SACK information arrive, regardless of the size of the segments
> triggering those ACKs.
>
> Hope that helps.
>
> Ethan
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (GNU/Linux)
>
> iQEVAwUBTaYD2/8fixZ3H8crAQgazQf/W0CjlbO5bnIEFJq9syULb/R+bQrF7F+1
> 8g0VtV23PGoifylU+o6k6hxfyL1k4Q4uCpm/DgZEW6aYwo1CBOhTKYhhdAEqDwMK
> m5MRDpt2ZBmULZ8A8NaflrO0mSfLmsRuFcEpXrJm0mQNbIvK65ls2koNcxJ3Zyjl
> 2LsjT5iEzyi7/fBQNPe/AhwInR54ft4kFqZ+rp8AeAffts95xSRm6w4mXQbM18dQ
> urughzVo+dDM+NLO2TxsoeiUomEjRTfRmCfVQ4gx07iMYrLR3aThfniSIMHb0RlB
> 62E/4wLV+mQ/t97D2CgIFkmzp5VAeRCTFnEMg264xXl3hsOGtA+asQ==
> =g9zx
> -----END PGP SIGNATURE-----
>
>