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

Reply via email to