tech-net archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Increase tcp initial window
In article <B79017F6-3A40-4E22-96CD-EF41C3865E37%3am-software.com@localhost>,
Matt Thomas <matt%3am-software.com@localhost> wrote:
>
>On Mar 29, 2013, at 11:23 AM, Loganaden Velvindron
><loganaden%devio.us@localhost> wrote:
>
>>
>> From: draft-ietf-tcpm-initcwnd-08.txt
>>
>> http://www.ietf.org/id/draft-ietf-tcpm-initcwnd-08.txt
>>
>> This document proposes to raise the upper bound on TCP's initial
>> window (IW) to 10 segments (maximum 14600B). It is patterned after
>> and borrows heavily from RFC 3390 [RFC3390] and earlier work in this
>> area. Due to lingering concerns about possible side effects to other
>> flows sharing the same network bottleneck, some of the
>> recommendations are conditional on additional monitoring and
>> evaluation.
>>
>> The primary argument in favor of raising IW follows from the evolving
>> scale of the Internet. Ten segments are likely to fit into queue
>> space available at any broadband access link, even when there are a
>> reasonable number of concurrent connections.
>>
>> My attempt on netbsd box:
>>
>> --- /root/src/sys/netinet/tcp_var.h 2013-03-22 21:44:12.000000000 +0000
>> +++ /usr/src/sys/netinet/tcp_var.h 2013-03-22 21:57:39.000000000 +0000
>> @@ -613,7 +613,7 @@ struct syn_cache_head {
>> * Compute the initial window for slow start.
>> */
>> #define TCP_INITIAL_WINDOW(iw, segsz) \
>> - (((iw) == 0) ? (min(4 * (segsz), max(2 * (segsz), 4380))) : \
>> + (((iw) == 0) ? (min(10 * (segsz), max(2 * (segsz), 14600))) : \
>> ((segsz) * (iw)))
>
>Why not make the 4 or 10 a tuneable via sysctl?
>net.inet.tcp.initseg ?
>
> (((iw) == 0) ? (min(tcp_initset * (segsz), max(2 * (segsz),
> tcp_initseg*1460)))
4380 == 3 * 1460 ...
So if you want to be compatible, you need to provide initseg=ninit,nmss
with 4,3:
(((iw) == 0) ? (min(ninit * (segsz), max(2 * (segsz), nmss*1460)))
christos
Home |
Main Index |
Thread Index |
Old Index