[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [ns] a small bug in delayed ACK ?
On Wed, 5 Apr 2000, Joo Changhee wrote:
> > but they don't do that AFAIK. I think this could be implemented in ns
> > by changing:
> >
> > if (delay_timer_.status() != TIMER_PENDING &&
> > th->seqno() == acker_->Seqno()) {
> >
> > to
> >
> > if (delay_timer_.status() != TIMER_PENDING &&
> > th->seqno >= maxseen_ && th->seqno() == acker_->Seqno()) {
> >
> > in DelAckSink::recv(), to decrease the amount of times the timer is
> > set to when the left edge isn't being moved along to fill a gap.
> >
> > Joo, is this what you were getting at?
>
> Yes. In addtion, I think the condition can be reduced to 'th->seqno() ==
> maxseen_' because
> if th->seqno() > maxseen_, the packet is out-of-ordered.
> if th->seqno() < maxseen_, the packet fill the hole or unnecessary
> retransmitted packet
Oh, I finally see.
You're explicitly relying on
acker_->update(th->seqno(), numBytes)
being called _before_ the timer test is carried out; neat but not
clear.
I'd imagine that any change to ns is likely to be messier and involve
testing a bound variable (if (rfc2581delhaviour_==TRUE etc.)
L.
<[email protected]>PGP<http://www.ee.surrey.ac.uk/Personal/L.Wood/>