Forum Discussion
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
- What_Lies_Benea
Altostratus
You really already have this as a standard TMOS feature, in the form of TCPExpress - very old white paper here: https://f5.com/resources/white-papers/optimize-wan-and-lan-application-performance-with-tcp-express.
That being the case, the answer is yes.
I can only assume AAM takes this a step or two further in some way.
- dragonflymr
Cirrostratus
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
- What_Lies_Bene1
Cirrostratus
You really already have this as a standard TMOS feature, in the form of TCPExpress - very old white paper here: https://f5.com/resources/white-papers/optimize-wan-and-lan-application-performance-with-tcp-express.
That being the case, the answer is yes.
I can only assume AAM takes this a step or two further in some way.
- dragonflymr
Cirrostratus
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
- What_Lies_Benea
Altostratus
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
Cirrostratus
Thanks, seems thar I have to dig around a little more and do some test to understand all the nuances. - What_Lies_Benea
Altostratus
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.
- What_Lies_Bene1
Cirrostratus
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
Cirrostratus
Thanks, seems thar I have to dig around a little more and do some test to understand all the nuances. - What_Lies_Bene1
Cirrostratus
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.
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
