10-27-2009 10:55 AM
using a SI-350, Version 10.2.01bTD2
it seems that regular HTTP traffic handled by a virtual host (without syn-proxy) forwarded to a binded port on a realserver that has window scaling enabled (successfully tested by accessing the real server directly) is not able to increase the receive window size to more than 64K.
how can this be configured? there is an global config option "tcp-options window scale DECIMAL" which takes values 0..14?!
SLB-telnet@lb02(config)#tcp-options window-scale 500000
Error: Invalid window scale 50000. Valid values are 0..14.
I have looked at the documentation, however couldn't find anything useful.
10-27-2009 05:20 PM
Here is an answer I got previously on this topic
Windows Scale follows the standard RFC based TCP option and the RFC defines what this feature should do. I pasted some text below on RFC 1323.
0 to 14 are the valid values for window scale and hence the CLI accepts only those values. This option does not specify the new window value, it specifies the multiplication factor. So, the TCP window would be
wnd * 2^ws where wnd is the TCP window advertised in the standard TCP header and ws is the value advertised in the window scale option"
"RFC 1323 details a method for supporting larger receive window sizes by allowing TCP to negotiate a scaling factor for the window size at connection establishment. The Window Scale TCP header option enables the programmer to set an option called the shift count, which indicates how many bits to the left to shift the value in the window size field, to arrive at the actual window size. For example, a shift count of 1 shifts the stated window size value once to the left, in effect multiplying it by two (2^1). A shift count of 5 multiplies the stated window size by 32 (2^5). This method allows for an actual receive window of up to 1 gigabyte."
10-30-2009 07:16 AM
10-30-2009 11:37 AM
I would suggest to raise a ticket if you do have to feeling that this is a bug. This community is not a good place to troubleshoot problems. You have mentioned a software release but tons of details are missing like if it is a CSW enabled virtual server, additional security options and so on. I doubt you would like to share you configuration here.
The global tcp-options command is related to the syn-proxy feature as you can see at the CLI:
tcp-options Enable or disable TCP option support when SynCookie is enabled
Looking at your example trace I do see a virtual server window size of 8000 - this sounds like it is an CSW enabled virtual server because the following is mentioned in the docs:
To change the TCP window size to 1460 bytes, enter the following command:
ServerIron(config)#server l7-tcp-window-size 1460
Syntax: server l7-tcp-window-size <window size>
The default TCP window size is 8000 bytes.
The possibilites with CSW are limited because the SI needs to buffer traffic in front of the load balancing decision. Follow-up with our TAC to get more details about it.