On 2015-03-29 16:59, Stuart Henderson wrote:
By default tcp_do_rfc3390=2, so the usual case is this:
1.252 claudio 3143: } else if (tcp_do_rfc3390 == 2) {
3144: /* increase initial window */
3145: tp->snd_cwnd = ulmin(10 * mss,
ulmax(2 * mss, 14600));
There is no existing sysctl to allow fine tuning, just the "IW4, max
4380"
and "IW10, max 14600" switch of net.inet.tcp.rfc3390. But you could
easily
locally extend that variable if you want to experiment with changing
the
multiplier and max value (or something else).
Ah now I finally got what you meant.
Thank you very much for your clarifications.
I guess also this means that all values > 2 for this sysctl are
unclaimed and free to play with.
Last question now just to get the whole picture: (This is slightly OT as
it's a general anti-congestion question, however you have the specific
stack sourcecode at hand so have authoritative answer.)
An incoming connection comes in. The initial [congestion] window is
14600. 4600 bytes are sent at time 0, 123 bytes are received at time X,
and then another 10000 bytes are sent at time Y.
The RTT is such that ACK:s confirming reception come in within 3
seconds. All packets go through.
In this usecase, is there any risk (because of some timeout constraint
or alike) that the anti-congestion or slow-start would reduce the
initial window size that hasn't been used yet, under any circumstance,
so that the send at Y would be speed-capped/blocked?
Thanks,
Tinker