Re: [dcp] sequence numbers on resend

Mark Handley <mjh@icir.org> Wed, 08 May 2002 16:58 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 MAA16419 for <dcp-archive@odin.ietf.org>; Wed, 8 May 2002 12:58:54 -0400 (EDT)
Received: (from daemon@localhost) by optimus.ietf.org (8.9.1a/8.9.1) id MAA14401 for dcp-archive@odin.ietf.org; Wed, 8 May 2002 12:59:01 -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 MAA14388; Wed, 8 May 2002 12:58:49 -0400 (EDT)
Received: from ietf.org (odin [132.151.1.176]) by optimus.ietf.org (8.9.1a/8.9.1) with ESMTP id MAA14357 for <dcp@optimus.ietf.org>; Wed, 8 May 2002 12:58:48 -0400 (EDT)
Received: from aardvark.icir.org (aardvark.icir.org [192.150.187.20]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id MAA16392 for <dcp@ietf.org>; Wed, 8 May 2002 12:58:40 -0400 (EDT)
Received: from aardvark.icir.org (localhost [127.0.0.1]) by aardvark.icir.org (8.11.6/8.11.3) with ESMTP id g48Gwjk11343; Wed, 8 May 2002 09:58:45 -0700 (PDT) (envelope-from mjh@aardvark.icir.org)
From: Mark Handley <mjh@icir.org>
X-Organisation: ICIR
To: "Patrick R. McManus" <mcmanus@ducksong.com>
cc: Eddie Kohler <kohler@icir.org>, dcp@ietf.org
Subject: Re: [dcp] sequence numbers on resend
In-reply-to: Your message of "Wed, 08 May 2002 12:39:16 EDT." <20020508163916.GA1532@ducksong.com>
Date: Wed, 08 May 2002 09:58:45 -0700
Message-ID: <11341.1020877125@aardvark.icir.org>
Sender: dcp-admin@ietf.org
Errors-To: dcp-admin@ietf.org
X-Mailman-Version: 1.0
Precedence: bulk
List-Id: Datagram Control Protocol <dcp.ietf.org>
X-BeenThere: dcp@ietf.org

>t0: xmit A->B Req    SN=0 with data
>t3: xmit A->B Req    SN=1 with data
>
>t5: rcv  A->B Req    SN=1 with data
>t5: xmit B->A Resp   SN=0 ack=1 vector=0,192
>t6: rcv  A->B Req    SN=0 with data (dropped as we're in APP-ACCEPT)
>
>t7: rcv  B->A Resp   SN=0 ack=1 vector=0,192

>however new ack vectors at times > 6 will still represent
>sn=0 as unreceived (which is untrue) and will impinge on A's cwnd for
>a while.

How does the receiver even know that sn=0 was sent?  The ack vector it
sends at t5 wouldn't cover 0 because the request ISN was 1.  However
the sender knows it was sent, and should act accordingly.

>if A retransmits with the same isn (because it's the same data he is
>only expecting one ack bit for) this problem goes away. 

The flipside is that if you send with the same ISN, in the same
scenario, you also can't tell if the first packet was lost or not.
The sender MUST assume it was lost (it sent two SYNs, got one ACK).

So the problem is very similar, but there's less information if you
don't increment ISN for the sender to go on.

If you want to solve this corner-case problem correctly, I think you
need to increment the ISN, and in this case back off the start of the
ack-vector to 0 when you get the delayed request at t6 (you don't
completely ignore it - it just doesn't cause a state-machine
transition).

Cheers,
	Mark

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