From owner-freebsd-net@FreeBSD.ORG Mon Jun 26 10:39:46 2006 Return-Path: X-Original-To: freebsd-net@freebsd.org Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5741816A53D for ; Mon, 26 Jun 2006 10:39:46 +0000 (UTC) (envelope-from Susan.Lan@zyxel.com.tw) Received: from zyadd226.zyxel.com.tw (zyadd226.zyxel.com.tw [61.222.65.226]) by mx1.FreeBSD.org (Postfix) with ESMTP id DA8294418B for ; Mon, 26 Jun 2006 10:10:41 +0000 (GMT) (envelope-from Susan.Lan@zyxel.com.tw) Received: from zytwbe01.zyxel.com ([172.23.5.10]) by smtp.zyxel.com.tw with InterScan Messaging Security Suite; Mon, 26 Jun 2006 18:18:51 +0800 Received: from zytwfe01.ZyXEL.com ([172.23.5.5]) by zytwbe01.zyxel.com with Microsoft SMTPSVC(6.0.3790.1830); Mon, 26 Jun 2006 18:10:37 +0800 Received: from [172.23.17.43] ([172.23.17.43]) by zytwfe01.ZyXEL.com with Microsoft SMTPSVC(6.0.3790.1830); Mon, 26 Jun 2006 18:10:37 +0800 Message-ID: <449FB2A2.4040206@zyxel.com.tw> Date: Mon, 26 Jun 2006 18:10:42 +0800 From: Blue User-Agent: Mozilla Thunderbird 0.9 (Windows/20041103) X-Accept-Language: en-us, en MIME-Version: 1.0 To: freebsd-net@freebsd.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 26 Jun 2006 10:10:37.0063 (UTC) FILETIME=[C5016970:01C69908] Subject: FreeBSD-6.1 modification about tcp_input fast recovery X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Jun 2006 10:39:46 -0000 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