[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [ns] a small bug in delayed ACK ?
On Tue, 4 Apr 2000, Joo Changhee wrote:
> Maybe I had misconcept in terminology, "out-of-order".
> I use "out-of-order" as the packet at the arrival of which the receiver
> should send an ACK without delaying it.
That's one way of looking at it, certainly.
> So, what I am willing to indicate is that an ACK of some "next expected"
> packets should not be delayed.
> for example, The sender send W packets from seq. 1.
large initial windows?
> Assuming the first W-1
> packets are dropped and the last W-th packet arrived at the receiver,
> after any kind of retransmission method, the sender retransmit the dropped
> packet from seq. 1. At this time, the receiver has "next expected" seq. 1
> but the receiver should not delayed the ACK of it.
Why shouldn't the receiver delay the ACK? Delayed acks have to start
somewhere; you're basically saying that delayed acks should be
exclusively second-in-order-and-onwards, rather than
first-in-order-and-onwards. I'd argue that this first packet is not
out of order as far as the window and its needs are concerned, and is
therefore correctly delayed.
> But unfortunely in current ns implementation, the receiver delayed it.
> So, I think that if we use maxseen_ instead of next_, we can correct it.
maxseen_? Definitely not.
L.
> Thanks
> jchee
>
> I observe this behavior in some ns simulations.
>
> On Mon, 3 Apr 2000, Lloyd Wood wrote:
>
> > On Sun, 2 Apr 2000, [ks_c_5601-1987] ��� wrote:
> >
> > > I think there is a small bug in the implementation of delayed ACK in "tcp-sink.cc"
> > >
> > > At line 300 of tcp-sink.cc of ns 2.1b6, (DelAckSink::recv).
> > > To delay an ACK, packet seq. "th->seqno()" is compared to "acker_->Seqno()"
> > >
> > > It can cause a problem, because received packet can be "next expected"
> > > and simultaneously "out-of-order".
> > > Hence the comparison should be changed to between packet seq. "th->seqno()" and
> > > _max seq._ "maxseen_".
> >
> > Definitely not.
> >
> > maxseen_ is the highest sequence number seen to date, so can be from
> > an out of order packet.
> >
> > A received packet cannot be next expected and out-of-order, where
> > 'out-of-order' means not-what-is-needed-to-move-the-left-window-edge-
> > along. The delack timer is only started when a received packet is
> > in-order, ie was expected, and maxseen_ doesn't tell you that.
> >
> > L.
> >
> > <[email protected]>PGP<http://www.ee.surrey.ac.uk/Personal/L.Wood/>
> >
>
> -------------------------------------------------------------
> Changhee Joo [email protected]
> School of Electrical Engineering, Seoul National Univ., Korea
> -------------------------------------------------------------
>
>
<[email protected]>PGP<http://www.ee.surrey.ac.uk/Personal/L.Wood/>