Forum Discussion

dragonflymr's avatar
dragonflymr
Icon for Cirrostratus rankCirrostratus
May 07, 2015

Adaptive TCP optimization - how to understand?

Hi,

My understanding of VS - TCP profile relation is that it's possible to have separate profiles for client and server side but there is no way to adjust such profile (from iRule) on the fly based on connection characteristics (like client connection via mobile or wired). I mean detect what is client network type and then based on some parameters change options in TCP profile (or choose another) - as far as I understand it's not possible this way.

Then I was reading

BIG-IP Application Acceleration Manager DATASHEET and found such info:

To overcome inherent protocol limitations, BIG-IP AAM uses adaptive TCP optimization, which combines session-level application awareness, rate pacing, congestion control algorithms, error correction, and optimized TCP windows. This enables BIG-IP AAM to adapt, in real time, to the latency, packet loss, and congestion characteristics of WAN links and mobile networks, fully utilizing available bandwidth and accelerating application traffic (for up to 20 Gbps LAN-side, TCP optimized throughput).

How should I interpret "uses adaptive TCP optimization" above? Is that mean that options in TCP profile are dynamically adjusted based on some detected client connection characteristics or that whit proper settings in TCP profile it is better able to auto tune up to changing connection characteristics - so in turn one profile can optimize connection for both mobile clients and wired clients?

Piotr

10 Replies

    • dragonflymr's avatar
      dragonflymr
      Icon for Cirrostratus rankCirrostratus
      So you mean "uses adaptive TCP optimization" = TCPExpress? I am bit lost here then. If TCPExpress can adapt to any client connection conditions using one profile why there is so many default profiles (with names suggesting usage - wan, mobile etc)? Adaptive suggest that one profile can accommodate all types by dynamically changing options (I guess that fine tuning of options in profiles is what makes given profile best for given type of client connectivity) - but I guess it's not working this way. I understand benefits of separate client and server stacks and profiles but my doubt was about client side profile that can provide best performance for all types of client connectivity types. I can as well see that plenty of settings in TCP profile is allowing for dynamic adjustments on per connection basis (at least I understand it like that) Still my question was more about why there are different TCP profiles configured and if there is a good reason (for sure there is) what is the best way to switch profiles online for VS - and I guess it's not possible? So if there is VS to which clients with different kinds of Internet access are connecting how to choose best profile on the fly - redirect to another VS, using virtual command in iRule, some other way? Probably I am mixing something up but it still is not clear for me. Sorry for long post but I am still learning and this looks like quite important are, would like to understand. Piotr
    • dragonflymr's avatar
      dragonflymr
      Icon for Cirrostratus rankCirrostratus
      So you mean "uses adaptive TCP optimization" = TCPExpress? I am bit lost here then. If TCPExpress can adapt to any client connection conditions using one profile why there is so many default profiles (with names suggesting usage - wan, mobile etc)? Adaptive suggest that one profile can accommodate all types by dynamically changing options (I guess that fine tuning of options in profiles is what makes given profile best for given type of client connectivity) - but I guess it's not working this way. I understand benefits of separate client and server stacks and profiles but my doubt was about client side profile that can provide best performance for all types of client connectivity types. I can as well see that plenty of settings in TCP profile is allowing for dynamic adjustments on per connection basis (at least I understand it like that) Still my question was more about why there are different TCP profiles configured and if there is a good reason (for sure there is) what is the best way to switch profiles online for VS - and I guess it's not possible? So if there is VS to which clients with different kinds of Internet access are connecting how to choose best profile on the fly - redirect to another VS, using virtual command in iRule, some other way? Probably I am mixing something up but it still is not clear for me. Sorry for long post but I am still learning and this looks like quite important are, would like to understand. Piotr
  • I suppose there are at least three reasons;

     

    1) The profile defines the initial options which would hopefully be tuned well for the majority of clients

     

    2) MSS, Windows Scale and SACK can only be specified during initial connection setup and thus, you would want to set these to an optimal value based on your needs

     

    3) The profile obviously allows you to enable or disable some features and settings and this ensures the adaptive optimisation does/does not make use of them; you are given control of what is or is not used

     

    • dragonflymr's avatar
      dragonflymr
      Icon for Cirrostratus rankCirrostratus
      Thanks, seems thar I have to dig around a little more and do some test to understand all the nuances.
    • What_Lies_Benea's avatar
      What_Lies_Benea
      Icon for Altostratus rankAltostratus
      Indeed, there are many ambiguous areas like this I've found. v11.6 certainly gives you more control via iRules, allowing you to change the congestion control algorithm for instance. See here for more: https://clouddocs.f5.com/api/irules/TCP.html. TCPExpress will only use the algorithm you specify in the profile. No doubt this is one of the 'extras' that AAM provides. You could do it manually now with iRules (checking the User-Agent for a mobile browser for example) but AAM makes it 'push button' easy.
  • I suppose there are at least three reasons;

     

    1) The profile defines the initial options which would hopefully be tuned well for the majority of clients

     

    2) MSS, Windows Scale and SACK can only be specified during initial connection setup and thus, you would want to set these to an optimal value based on your needs

     

    3) The profile obviously allows you to enable or disable some features and settings and this ensures the adaptive optimisation does/does not make use of them; you are given control of what is or is not used

     

    • dragonflymr's avatar
      dragonflymr
      Icon for Cirrostratus rankCirrostratus
      Thanks, seems thar I have to dig around a little more and do some test to understand all the nuances.
    • What_Lies_Bene1's avatar
      What_Lies_Bene1
      Icon for Cirrostratus rankCirrostratus
      Indeed, there are many ambiguous areas like this I've found. v11.6 certainly gives you more control via iRules, allowing you to change the congestion control algorithm for instance. See here for more: https://devcentral.f5.com/wiki/iRules.TCP.ashx. TCPExpress will only use the algorithm you specify in the profile. No doubt this is one of the 'extras' that AAM provides. You could do it manually now with iRules (checking the User-Agent for a mobile browser for example) but AAM makes it 'push button' easy.