FreeBSD-6.1 modification about tcp_input fast recovery
Blue
Susan.Lan at zyxel.com.tw
Mon Jun 26 10:39:46 UTC 2006
Hi, all:
In FreeBSD-6.1, line 1878 - 1894 in tcp input() have been newly added
like below
if (tp->sack_enable && IN_FASTRECOVERY(tp)) {
int awnd;
/*
* Compute the amount of data in flight first.
* We can inject new data into the pipe iff
* we have less than 1/2 the original window's
* worth of data in flight.
*/
awnd = (tp->snd_nxt - tp->snd_fack) +
tp->sackhint.sack_bytes_rexmit;
if (awnd < tp->snd_ssthresh) {
tp->snd_cwnd += tp->t_maxseg;
if (tp->snd_cwnd > tp->snd_ssthresh)
tp->snd_cwnd = tp->snd_ssthresh;
}
} else
tp->snd_cwnd += tp->t_maxseg;
I am wondering why not just increase congestion window size by 1 when
receiving duplicated ACK when doing fast recover? I digged into RFC 3782
(NeReno) and RFC 3517 (SACK based loss recovery) and could not find
anything related to the modification. Could not we just follow RFC 3782
and simply increment congestion window size by one?
Best regards,
blue
More information about the freebsd-net
mailing list