Fast Recovery

vijay singh vijjus at rocketmail.com
Fri Mar 3 17:49:37 PST 2006


Hello all. I am puzzled by some strange network
behavior. This is for a WAN with BW*delay of 800KB or
so. I am looking at this case (in tcp_input.c):

/*
 * Out of fast recovery.
 * Window inflation should have left us
 * with approximately snd_ssthresh
 * outstanding data.
 * But in case we would be inclined to
 * send a burst, better to do it via
 * the slow start mechanism.
 */
if (SEQ_GT(th->th_ack + tp->snd_ssthresh,             
      
           tp->snd_max))
   tp->snd_cwnd = tp->snd_max - th->th_ack +
tp->t_maxseg;                                         
                                                
else
   tp->snd_cwnd = tp->snd_ssthresh;

I have a few doubts:

1. For the ACK that gets out of FAST RECOVERY (with
SACK enabled), wouldn't th->th_ack == tp->snd_max?

2. If [1] is not true, doesn't the formula reduce cwnd
if we did not send enough during fast recovery?

RFC 2581 seems to allow us to set cwnd to ssthresh
after fast recovery.

Any help is appreciated. 

br
vijay

PS: Kindly CC me.

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


More information about the freebsd-net mailing list