Forum Discussion

John_Heyer_1508's avatar
John_Heyer_1508
Icon for Cirrostratus rankCirrostratus
Dec 13, 2014

How do I enable the TCP Window Scaling option?

I've been doing some performance tests uploading and download large files over SSL with an F5 LTM in the middle. The virtual server setup is standard, using the default tcp profile.

 

In most performance tests going via the LTM compared to straight to the server gives about the same result, but as the latency increases, speed doing via the LTM starts to fall below going straight to the server thru the firewall.

 

One key difference that's shown up in packet captures - in the initial SYN+ACK the server sends back to the client, it shows the server supports TCP Window Scaling option, or WSOPT as it's abbreviated in Wireshark. I've been trying to figure out how to support this option on the F5, can't make it happen. TCP Window Scaling is part of RFC 1323 so it should be included in the default tcp profile, but I don't see it in the capture.

 

Is anyone out there familiar with this option, and knowledgeable of the trick to making it work?

 

  • That's certainly my understanding, but the packet captures don't lie, and I don't see it in the syn+ack coming back from the F5.

     

    Direct from the server, it's clearly there:

     

     

    • JG's avatar
      JG
      Icon for Cumulonimbus rankCumulonimbus
      You can run tcpdump on the backend app server to see what tcp options F5 advertises; and you can also run it on the end-user side.
  • what version are you running? have you tried to increase send/receive buffer e.g. 65536 bytes?

    Note: Beginning in 11.4.0, the window scale functionality is built into the TCP profile and cannot be manually disabled or enabled; it will be negotiated if the send or receive buffer is larger than 65535 bytes.
    

    sol7559: Overview of the TCP profile

    https://support.f5.com/kb/en-us/solutions/public/7000/500/sol7559.html
    • John_Heyer_1508's avatar
      John_Heyer_1508
      Icon for Cirrostratus rankCirrostratus
      That's probably something to do with it. I had created a custom TCP profile in order to turn on Rate Pace (which significantly speed things up) and also set these per F5 recommendations: Proxy Buffer Low: 98304 bytes Proxy Buffer High: 131072 bytes Send and receive buffer are not changed though: Send Buffer: 65535 bytes Receive Window: 65535 bytes
    • John_Heyer_1508's avatar
      John_Heyer_1508
      Icon for Cirrostratus rankCirrostratus
      Ahhh so I set "Send Buffer" and "Receive Window" to match the Proxy Buffer High, now WSOPT is showing up in the packet captures and speeds are actually surpassing hitting the server directly
  • what version are you running? have you tried to increase send/receive buffer e.g. 65536 bytes?

    Note: Beginning in 11.4.0, the window scale functionality is built into the TCP profile and cannot be manually disabled or enabled; it will be negotiated if the send or receive buffer is larger than 65535 bytes.
    

    sol7559: Overview of the TCP profile

    https://support.f5.com/kb/en-us/solutions/public/7000/500/sol7559.html
    • John_Heyer_1508's avatar
      John_Heyer_1508
      Icon for Cirrostratus rankCirrostratus
      That's probably something to do with it. I had created a custom TCP profile in order to turn on Rate Pace (which significantly speed things up) and also set these per F5 recommendations: Proxy Buffer Low: 98304 bytes Proxy Buffer High: 131072 bytes Send and receive buffer are not changed though: Send Buffer: 65535 bytes Receive Window: 65535 bytes
    • John_Heyer_1508's avatar
      John_Heyer_1508
      Icon for Cirrostratus rankCirrostratus
      Ahhh so I set "Send Buffer" and "Receive Window" to match the Proxy Buffer High, now WSOPT is showing up in the packet captures and speeds are actually surpassing hitting the server directly