This is our old Q&A Site. Please post any new questions and answers at


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

accept rate: 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.

permanent link

answered 19 Feb '14, 05:18

Jasper's gravatar image

Jasper ♦♦
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'.

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
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text]( "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:


question asked: 19 Feb '14, 02:38

question was seen: 14,559 times

last updated: 19 Feb '14, 07:50

p​o​w​e​r​e​d by O​S​Q​A