> Date: Fri, 24 Dec 2010 22:50:22 -0500 (EST)
> From: Ted Unangst <[email protected]>
>
> As I mentioned previously, the auto recv space scaling algorithm isn't
> optimized for all links. At list in my case, with the proverbial
> satellite link (high bandwidth, high latency), the window never appears to
> grow.
I can believe that a satellite link has high latency, but high bandwidth?
> Manually setting the default recv space allows me to download at high
> speed again. This diff brings back the two relevant sysctls.
Anyway, it'd be nice if the algorithm could be improved such that it
works for a broader range of links. For example, you probably want to
scale more aggressively if the RTT is large.
That said, my experience with Linux, which supposedly has had window
auto-tuning for quite some time, tells me that there will always be
corner cases where some manual tuning is necessary. So this diff
makes sense to me. Make sure you get an ok from claudio though.
> Index: tcp_var.h
> ===================================================================
> RCS file: /home/tedu/cvs/src/sys/netinet/tcp_var.h,v
> retrieving revision 1.97
> diff -u -r1.97 tcp_var.h
> --- tcp_var.h 21 Oct 2010 11:38:27 -0000 1.97
> +++ tcp_var.h 24 Dec 2010 23:08:33 -0000
> @@ -481,8 +481,8 @@
> { "keepintvl", CTLTYPE_INT }, \
> { "slowhz", CTLTYPE_INT }, \
> { "baddynamic", CTLTYPE_STRUCT }, \
> - { NULL, 0 }, \
> - { NULL, 0 }, \
> + { "recvspace", CTLTYPE_INT }, \
> + { "sendspace", CTLTYPE_INT }, \
> { "ident", CTLTYPE_STRUCT }, \
> { "sack", CTLTYPE_INT }, \
> { "mssdflt", CTLTYPE_INT }, \
> @@ -506,8 +506,8 @@
> &tcp_keepintvl, \
> NULL, \
> NULL, \
> - NULL, \
> - NULL, \
> + &tcp_recvspace, \
> + &tcp_sendspace, \
> NULL, \
> NULL, \
> &tcp_mssdflt, \