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

Mark Allman <mallman@icir.org> Wed, 13 April 2011 19:59 UTC

Return-Path: <mallman@icir.org>
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 17706E084E for <tcpm@ietfc.amsl.com>; Wed, 13 Apr 2011 12:59:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -106.47
X-Spam-Level:
X-Spam-Status: No, score=-106.47 tagged_above=-999 required=5 tests=[AWL=0.129, BAYES_00=-2.599, 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 PR4x2U2Pq0HL for <tcpm@ietfc.amsl.com>; Wed, 13 Apr 2011 12:59:21 -0700 (PDT)
Received: from fruitcake.ICSI.Berkeley.EDU (fruitcake.ICSI.Berkeley.EDU [192.150.186.11]) by ietfc.amsl.com (Postfix) with ESMTP id DA14AE06BC for <tcpm@ietf.org>; Wed, 13 Apr 2011 12:59:20 -0700 (PDT)
Received: from lawyers.icir.org (jack.ICSI.Berkeley.EDU [192.150.186.73]) by fruitcake.ICSI.Berkeley.EDU (8.12.11.20060614/8.12.11) with ESMTP id p3DJxHSb025350; Wed, 13 Apr 2011 12:59:17 -0700 (PDT)
Received: from lawyers.icir.org (www.obdev.at [127.0.0.1]) by lawyers.icir.org (Postfix) with ESMTP id 539A73970266; Wed, 13 Apr 2011 15:59:17 -0400 (EDT)
To: Yuchung Cheng <ycheng@google.com>
From: Mark Allman <mallman@icir.org>
In-Reply-To: <BANLkTi=c80RgQFdXj=Bx5Gpd3RHQRCX9=Q@mail.gmail.com>
Organization: International Computer Science Institute (ICSI)
Song-of-the-Day: Pink Houses
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="--------ma147-1"; micalg="pgp-sha1"; protocol="application/pgp-signature"
Date: Wed, 13 Apr 2011 15:59:17 -0400
Sender: mallman@icir.org
Message-Id: <20110413195917.539A73970266@lawyers.icir.org>
Cc: "tcpm@ietf.org Extensions" <tcpm@ietf.org>
Subject: Re: [tcpm] Comments on draft-blanton-tcpm-3517bis-01
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: mallman@icir.org
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 19:59:24 -0000

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

Yes.

If **EITHER**:

  - You have DupThresh distinct blocks above 1 (so, e.g., if you
    continue your example a few more and you collect up SACKs for
    101-200, 301-400, 501-500 you'd declare sequence number 1 to be
    lost), 

    **OR**,

  - You have (DupThresh-1) * SMSS bytes SACKed in the scoreboard (so,
    (400-101) > (2 * 100) in the case you present)

then you declare the given sequence number to be lost.

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

My first hit here is that this could indeed be tightened up by just
getting rid of DupAcks and consulting IsLost (SND.UNA).  If that returns
true we enter loss recovery, if not we don't.  Do I understand that to
be what you're saying?

(I do need to go back and look at the context around this bit of the
document to make sure that is plausible, I guess.)

allman