Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Jun 2006 18:10:42 +0800
From:      Blue <Susan.Lan@zyxel.com.tw>
To:        freebsd-net@freebsd.org
Subject:   FreeBSD-6.1 modification about tcp_input fast recovery
Message-ID:  <449FB2A2.4040206@zyxel.com.tw>

next in thread | raw e-mail | index | archive | help
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





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?449FB2A2.4040206>