Date: Fri, 02 Mar 2012 17:45:15 +0100 From: Andre Oppermann <andre@freebsd.org> To: Andre Oppermann <andre@FreeBSD.org> Cc: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: Re: svn commit: r232396 - user/andre/tcp_workqueue/sys/netinet Message-ID: <4F50F91B.3020309@freebsd.org> In-Reply-To: <201203021635.q22GZIEu038375@svn.freebsd.org> References: <201203021635.q22GZIEu038375@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 02.03.2012 17:35, Andre Oppermann wrote: > Author: andre > Date: Fri Mar 2 16:35:18 2012 > New Revision: 232396 > URL: http://svn.freebsd.org/changeset/base/232396 > > Log: > Prevent a flurry of forced window updates when an application is > doing small reads on a (partially) filled receive socket buffer. > > Normally one would a send a window update every time the available > space in the socket buffer increases by two times MSS. This leads > to a flurry of window updates that do not provide any meaningful > new information to the sender. There still is available space in > the window and the sender can continue sending data. All window > updates then get carried by the regular ACKs. Only when the socket > buffer was (almost) full and the window closed accordingly a window > updates delivery new information and allows the sender to start > sending more data again. > > Send window updates only every two MSS when the socket buffer > has less than 1/8 space available, or the available space in the > socket buffer increased by 1/4 its full capacity, or the socket > buffer is very small. The next regular data ACK will carry and > report the exact window size again. > > Reported by: sbruno > Tested by: Darren Baginsky Oops, the correct last name is "Baginski" and previous version before some more recent changes to tcp_output() about Aug 2011. > PR: kern/116335 > > Modified: > user/andre/tcp_workqueue/sys/netinet/tcp_output.c -- Andre
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4F50F91B.3020309>