Date: Mon, 26 Jan 2004 05:17:27 +0800 From: "Guohan Lu" <lguohan00@mails.tsinghua.edu.cn> To: <freebsd-net@freebsd.org> Subject: Bad "bad" retransmit recovery in TCP Message-ID: <001301c3e388$a35b8f90$6401a8c0@lyfnotebook>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?001301c3e388$a35b8f90$6401a8c0>
