[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ns] a small bug in delayed ACK ?



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