Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Have you set the socket's recv buffer to as large as you can? </p> <p>See here for how to affect the TCP window size: <a href="http://msdn.microsoft.com/en-us/library/ms819736.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/ms819736.aspx</a></p> <p><strong>Edited</strong> to show what I get with two win 7 machines over a 1gb link, no changes to default settings, just setting <code>SO_RECVBUF</code> using <code>setsockopt()</code> on the listen socket, window size verified from the wireshark log of the connection... The actual window size is calculated from the advertised size and the multiplier that is implied by the scaling factor.</p> <blockquote> <pre><code> Set Recv |Advertised |Scaling|Multiply| Actual TCP |Difference| Buf to | Window | | By |Window size | | --------+-----------+-------+--------+----------- +----------+ default | 8192 | 8 | 256 | 2097152 | | 1024 | 1024 | 0 | 1 | 1024 | 0| 10240 | 10240 | 0 | 1 | 10240 | 0| 66666666 | 65535 | 10 | 1024 | 67107840 | -441174| 666666666 | 65535 | 14 | 16384 | 1073725440 |-407058774| 1000000000 | 65535 | 14 | 16384 | 1073725440 | -73725440| 1073725440 | 65535 | 14 | 16384 | 1073725440 | 0| 1073741823 | 65535 | 14 | 16384 | 1073725440 | 16383| 1073741824 | 8192 | 8 | 256 | 2097152 |1071644672| 2147483647 | 8192 | 8 | 256 | 2097152 |2145386495| </code></pre> </blockquote> <p>So, clearly, it IS possible to affect the TCP Window size on a per socket basis on Windows 7. Could you provide a link to the document that makes you believe that <em>"As of windows 7 I just said that there is no TCP Window Size available for manual setting anymore (auto-tune netsh option only)"</em> please. </p> <p>Note that the recv buf setting must be applied to the listening socket, or the outbound socket before you issue the connect as the window size scaling is transmitted in the opening handshake. </p> <p>In all cases the call to <code>setsockopt()</code> succeeded and an immediate call to <code>getsockopt()</code> reported the recv buffer to be the size that was requested in the previous call to <code>setsockopt()</code>.</p> <p>Note that although the theoretical maximum is the max value of an unsigned int, 2147483647, the actual maximum useful value appears to be 1073741823 (0x3FFFFFFF), this may vary with operating system version but bear in mind that an immediate call to <code>getsockopt()</code> returned the same value that had been set so it was impossible, except by looking at the wireshark log, to determine that values above 1073741823 were ignored entirely (at least from a window size perspective).</p> <p>Of course this requires that the connecting peer is specifying a window scale option, even 0, to show that it accepts window scaling.</p> <p>Please show us the wireshark connection log for the initial handshake packets. I can provide compiled code that you can you to test this is you want.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload