Subject: Re: Question about NewReno
To: Kentaro A. Kurahone <kurahone@sekhmet.sigusr1.org>
From: Charles M. Hannum <abuse@spamalicious.com>
List: tech-net
Date: 01/04/2005 07:11:51
And one final problem.
I think section 5 of the RFC actually has a bug. It says send_high is updated
on a retransmit timeout. However, in a perfect little world where fast
retransmit wins and we never get a RTO (hah!), this could lead to problems
with sequence number wraparound. It needs to chase behind th_una; i.e. when
we get an ack and are updating th_una, we should probably also do:
if (SEQ_LT(tp->send_high, th->th_ack - 1))
tp->send_high = th->th_ack - 1;
(Of course, the worst that happens if we hit the wraparound case is that fast
retransmit doesn't fire and we go through slow retransmit, but still.)