Bad "bad" retransmit recovery in TCP

Guohan Lu lguohan00 at mails.tsinghua.edu.cn
Sun Jan 25 13:18:55 PST 2004


hi,
    I noticed in my TCP trace that there are many bad "bad" retransmit recoveries. That is the packet get lost,
the timeout happens. However, when the lost packet are acknowledged, the cwnd of sender is not 2, 
but resumes the value before timeout. This kind of behavior happens when the RTT is very small, 
around several ms, no more than 10ms.
    It seems to me that following code is run when the acknowledgement for the lost packet is received.
  if (tp->t_rxtshift == 1 && ticks < tp->t_badrxtwin) {
   tp->snd_cwnd = tp->snd_cwnd_prev;
   tp->snd_ssthresh = tp->snd_ssthresh_prev;
   tp->snd_nxt = tp->snd_max;
   tp->t_badrxtwin = 0; /* XXX probably not required */ 
  }
   I wonder if t_badrxtwin is not correctly set in this situation? (when the rtt is very small)
   
Guohan Lu


More information about the freebsd-net mailing list