This is a static archive of our old Q&A Site. Please post any new questions and answers at ask.wireshark.org.

TCP window size on Windows Server 2008 and FTP transfer

0

Hello,

I'm currently doing a performance analyis about FTP transfer to two Servers. PROD server : Win 2008 TEST server : Win 2008 R2 Latency between client and server : ~140ms (RTT ~280ms)

Doing several transfer with the TEST server it appears something strange. The TCP Windows size is never the same. I discover the new automatic mechanism on Win 2008 to define the TCP window size by using a factor. But this factor is never the same eve using the same client and the same server.

During a first test where the client was on site A, the TCP window scaling was 256. Durind a second test where the client was on site B, the TCP window scaling was only 4 !!!!

I search on google informations about how Window 2008 server select the factor and the TCP window size but I didn't find any concrete explanation.

Do you have any detail about this behaviour ? Thanks for your help

asked 19 Feb '14, 02:38

any-one's gravatar image

any-one
1557
accept rate: 0%


One Answer:

0

Window scaling on Windows is indeed very confusing, because there is no real pattern for how it behaves (unless you disable it, of course).

If you issue the command "netsh interface tcp show global" on a command line, you'll get something like this:

Querying active state...
TCP Global Parameters
Receive-Side Scaling State          : enabled
Chimney Offload State               : automatic
NetDMA State                        : enabled
Direct Cache Acess (DCA)            : disabled
Receive Window Auto-Tuning Level    : normal
Add-On Congestion Control Provider  : none
ECN Capability                      : disabled
RFC 1323 Timestamps                 : disabled
** The above autotuninglevel setting is the result of Windows Scaling heuristics
overriding any local/policy configuration on at least one profile.

If you take a look at the last two lines (about the autotunglevel) you can see why it does things differently sometimes: because "Windows Scaling heuristics" have kicked in and decided how to run things. So far nobody I've spoken to could tell me what it actually does - it's just doing something to the Window Scaling values when the PC has run for a while.

answered 19 Feb '14, 05:18

Jasper's gravatar image

Jasper ♦♦
23.8k551284
accept rate: 18%

So far nobody I've spoken to could tell me what it actually does

There is description (more or less detailed) in an article of 'The Cable Guy'.

http://technet.microsoft.com/en-us/magazine/2007.01.cableguy.aspx

At the end: Receive Window Auto-Tuning in Windows Vista.

Apparently they calculate the BDP (bandwidth delay product) and then dynamically adjust the window size. As the value will be adjusted to the BDP (and other statistics), the window size is totally non-deterministic. The algorithms and parameters used for the adjustment are (obviously) not described.

(19 Feb '14, 06:32) Kurt Knochner ♦

The algorithms and parameters used for the adjustment are (obviously) not described.

That's what I meant. I (think) have seen all available documentation on that matter :-)

(19 Feb '14, 06:40) Jasper ♦♦

thanks for your answer both of you.

I already seen this article. I tried to google it and seen lot ot article website but never find answer explaining how M. MICROSOFT calculate the factor and the window size to use.

maybe it's random :)

(19 Feb '14, 06:42) any-one

I know, but maybe the OP has not yet seen them ;-))

UPDATE: Apparently he has already seen that :-) See comment above....

(19 Feb '14, 06:42) Kurt Knochner ♦

I verified the TCP setting on each server

PROD : Receive window auto-tuning level : normal window scaling heuristics : disabled

TEST : Receive window auto-tuning level : normal window scaling heuristics : disabled

(19 Feb '14, 07:47) any-one

I have seen systems where the Window Scaling factor changed depending on software installed, e.g. an Avira virus scanner.

(19 Feb '14, 07:50) Jasper ♦♦
showing 5 of 7 show 2 more comments