From: Lu Guohan (lguohan00@mails.tsinghua.edu.cn)
Date: 04/07/04
Message-ID: <003601c41c5c$04252a50$668019d2@garfield> From: "Lu Guohan" <lguohan00@mails.tsinghua.edu.cn> Subject: Re: tcptrace "Default Send Window" in Windows XP/2000 Date: Wed, 7 Apr 2004 12:51:29 +0800
----- Original Message -----
From: "Bickerdike, Philip W" <Philip.W.Bickerdike@team.telstra.com>
To: "Tcptrace (E-mail)" <tcptrace@tcptrace.org>
Sent: Wednesday, April 07, 2004 7:31 AM
Subject: tcptrace "Default Send Window" in Windows XP/2000
> Hi all,
>
> I'm not sure if this is the correct forum to raise this query however I was hoping someone may be able to help or direct me to a more appropriate mailing list. I have discovered some strange behaviour doing upload tests with Windows XP. Firstly, there seems to be a limit on the packets in flight imposed by what I have discovered to be a registry entry the details of which are:
>
> DefaultSendWindow
> Value Type: REG_DWORD
> Default: 8192
> Description: Similar to DefaultReceiveWindow, but for the send side of connections.
>
> The result is a link that is dramatically underutilised particularly in situations with a high delay-bandwidth product. To my understanding this violates tcp congestion avoidance which should increase the congestion window until the limit imposed by the receiver's advertised window. Has anyone come across this before? Any ideas as to the justification for this approach in the implementation?
>
In a TCP connection, there are three windows to limit it flightsize, the sender window, the congestion window and the receiver advertised window. The sender window is the maximum buffer allocated for each socket in an operating system. For TCP, the sender needs to keep all the unacknowledged data in its sender buffer, so the flightsize can never grow beyond its send buffer size.
In order to overcome this limitation, you just need to increase this value. You can increase it by either using setsockopt() (per-socket modification) or change the OS default value. I remembered that window2000 server use pretty large value, probably 256KB.
> Also, in XP, there seems to be no MSS defined or adhered to. In slow-start segment sizes vary greatly from ~500 bytes to ~1500 bytes and when the connection reaches 'steady state' the sender sends fixed 4096 byte segments - ensuring no more than 2 segments (8192 bytes) are in flight at any time.
>
I also observed this phenomenon. Unlike BSDs which always send MSS-sized packet, It seems to me that packets sent by XP show the byte-alignment in the OS. Probably you will find the the sum of adjecent packets is 2048bytes.
4096 byte segments are probably observed where TCP connection is within local network. I never observed wide-area XP TCP connections use 4096byte segments. Where do your TCP connections take place?
> Thanks for your help
>
> Philip W. Bickerdike
>
>
> ----------------------------------------------------------------------------
> To unsubscribe, send a message with body containing "unsubscribe tcptrace" to
> majordomo@tcptrace.org.
>
Guohan
----------------------------------------------------------------------------
To unsubscribe, send a message with body containing "unsubscribe tcptrace" to
majordomo@tcptrace.org.
This archive was generated by hypermail 2.1.7 : 04/07/04 EDT