RE: [Tsvwg] problem with draft-allman-tcp-sack-11.txt

"Henderson, Thomas R" <thomas.r.henderson@boeing.com> Tue, 09 July 2002 17:06 UTC

Received: from optimus.ietf.org (ietf.org [132.151.1.19] (may be forged)) by ietf.org (8.9.1a/8.9.1a) with ESMTP id NAA03594 for <tsvwg-archive@odin.ietf.org>; Tue, 9 Jul 2002 13:06:30 -0400 (EDT)
Received: (from daemon@localhost) by optimus.ietf.org (8.9.1a/8.9.1) id NAA22284 for tsvwg-archive@odin.ietf.org; Tue, 9 Jul 2002 13:07:23 -0400 (EDT)
Received: from optimus.ietf.org (localhost [127.0.0.1]) by optimus.ietf.org (8.9.1a/8.9.1) with ESMTP id MAA20363; Tue, 9 Jul 2002 12:48:00 -0400 (EDT)
Received: from ietf.org (odin [132.151.1.176]) by optimus.ietf.org (8.9.1a/8.9.1) with ESMTP id MAA20334 for <tsvwg@optimus.ietf.org>; Tue, 9 Jul 2002 12:47:58 -0400 (EDT)
Received: from slb-smtpout-01.boeing.com (slb-smtpout-01.boeing.com [12.13.237.21]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id MAA02702 for <tsvwg@ietf.org>; Tue, 9 Jul 2002 12:47:04 -0400 (EDT)
Received: from slb-av-01.boeing.com ([129.172.13.4]) by slb-smtpout-01.boeing.com (8.9.2/8.8.5-M2) with ESMTP id JAA19863; Tue, 9 Jul 2002 09:47:55 -0700 (PDT)
Received: from blv-hub-01.boeing.com (localhost [127.0.0.1]) by slb-av-01.boeing.com (8.9.3/8.9.2/MBS-AV-01) with ESMTP id JAA23206; Tue, 9 Jul 2002 09:47:54 -0700 (PDT)
Received: from xch-nwbh-02.nw.nos.boeing.com (xch-nwbh-02.nw.nos.boeing.com [192.54.12.28]) by blv-hub-01.boeing.com (8.11.3/8.11.3/MBS-LDAP-01) with ESMTP id g69Glr020301; Tue, 9 Jul 2002 09:47:53 -0700 (PDT)
Received: by xch-nwbh-02.nw.nos.boeing.com with Internet Mail Service (5.5.2650.21) id <N8R583P6>; Tue, 9 Jul 2002 09:47:52 -0700
Message-ID: <CFD05F4EAA7CCC4ABB08A47859D484140A0B6718@xch-nw-29.nw.nos.boeing.com>
From: "Henderson, Thomas R" <thomas.r.henderson@boeing.com>
To: 'Ethan Blanton' <eblanton@cs.ohiou.edu>
Cc: tsvwg@ietf.org, homa@crl.go.jp, Mark Allman <mallman@guns.grc.nasa.gov>, kfall@intel-research.net
Subject: RE: [Tsvwg] problem with draft-allman-tcp-sack-11.txt
Date: Tue, 09 Jul 2002 09:47:49 -0700
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2650.21)
Content-Type: text/plain
Sender: tsvwg-admin@ietf.org
Errors-To: tsvwg-admin@ietf.org
X-Mailman-Version: 1.0
Precedence: bulk
List-Id: Transport Area Working Group <tsvwg.ietf.org>
X-BeenThere: tsvwg@ietf.org

> It appears to me that by this you mean that the packets are actually
> *lost*, and not just delayed for a ridiculous period of time.
> 

Yes.

> > - at this point, correct behavior is somewhat ambiguous 
> (underspecified).
> > Murakami et al., who cite draft-allman-tcp-sack-07.txt, 
> describe a TCP
> > sender that waits again for timeouts for each subsequent 
> retransmission
> > (ever increasing the backoff), resulting in recoveries that 
> can last for
> > tens of minutes.  If instead the TCP sender always permits 
> at least one
> > transmission upon receipt of an ACK, it may instead send the next
> > retransmission in response to this ACK, without waiting for 
> a timeout.  But
> > the bottom line is that it seems that at most one segment 
> can be recovered
> > per RTT if pipe control is used and pipe > cwnd.
> 
> This appears to be incorrect.  At this point the TCP sender is not
> being governed by draft-allman-tcp-sack-11, but by traditional slow
> start with the added condition that "Update () MAY continue to be used
> appropriately upon receipt of ACKs".  Because of this, the values of
> LeftNetwork (), HighData, etc. are not relevant.
> 
> There may in fact be some issues if there is a second loss (after the
> RTO) losing a segment below HighData.  I will look at this.
> 

I agree that the behavior described above is incorrect, but one could arrive
at that kind of implementation the way things are worded now (proof by
example, in the paper cited).  You mention that "Update() MAY continue to be
used..." after timeout, but this text seems to be referring mainly to the
ability of the sender to capitalize on new SACK information to prevent
unnecessary retransmission.  I don't think it is clear that pipe control is
off after a timeout, nor is it clear when to turn it back on (I think that
you want to have it on during fast recovery phase, but perhaps that should
be stated).

I strongly prefer to give explicit guidance as to what should happen after a
timeout.  The text I proposed for section 4 is one way to do this.  Or
section 5.1 could be changed.

A possible source of confusion might be your use of "loss recovery phase" to
mean "fast recovery phase", since one could consider retransmissions after a
timeout also as "loss recovery".  Perhaps this should be in the definition
section 2.

> > The question of whether HighData should be changed upon a timeout is
> > interesting.  A cautious approach would be to not reset it 
> so as to avoid
> > false fast retransmissions that might arise from dupacks 
> that are generated
> > due to previously received segments that the sender 
> retransmits-- this would
> > be in line with NewReno principles.  However, if the 
> receiver is properly
> > sending SACK blocks, unnecessary retransmissions should be 
> avoided, and
> > dupacks would probably indicate an additional segment loss 
> (or possibly that
> > the receiver has discarded SACKed data).   
> 
> My personal feeling on this matter (and, I think, shared by my
> co-authors) is that an RTO is a Bad Thing.  We are working under the
> assumption that if our SACK-aware fast recovery was not sufficient
> something very wrong has happened (small windows do break this
> assumption in some cases) and all possible caution is merited.
> 

But are you then suggesting that you prefer the option I described above of
resetting HighData (that is, allowing for a fast retransmit after timeout if
you get dupacks before you have finished retransmitting past HighData)?
That option would lower the possibility of an additional timeout, at the
cost of possibly reducing cwnd due to false fast retransmissions.

Tom 

_______________________________________________
tsvwg mailing list
tsvwg@ietf.org
https://www1.ietf.org/mailman/listinfo/tsvwg