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.)