Hi,
I think there is some mix up with reusing idle serverside connections and distributing clientside connections.
From different posts above it looks like some are stating OneConnect overrides LB others that it is not doing that.
I wonder then what is the "ultimate truth" here :-)
Assume VS with HTTP profile, Round Robin and OneConnect, two members - LB is done on per HTTP request basis.
My understanding of result is like that:
Clientside connection 1, request 1 - LB done - member1 selected, SNAT applied, no serverside connection (so probably no point in checking mask), NEW serverside TCP connection created, request send
Clientside connection 1, request 2 - LB done - member2 selected, SNAT applied, no serverside connection (so probably no point in checking mask), NEW serverside TCP connection created, request send
Clientside connection 1, request 3 - LB done - member1 selected, SNAT applied, idle serverside connection exists, mask checked - connection can be reused, NO new serverside TCP connection created, request send
and so on so on.
In short, LB is still sending requests in RR fashion - new request, new member. Only difference is that no new serverside connections are created if eligible idle connection exists.
So considering TCP connections distribution on serverside will look as uneven but distribution of HTTP requests will be even based on RR.
In simplified situation when we assume one TCP packet = one HTTP request in the Pool stats we will have situation like that:
Even number of Requests for each member
Uneven number of Total connections to members
Am I right or wrong here?
In general OC seems to be tightly connected to HTTP, but I am pretty sure that there were statements in docs that it can be used for other protocols that HTTP with notice that it will work correctly for simple messaging L7 protocols where request and reply both fits in one TCP packets.
Wonder if it is really the case and what are examples of other protocols that can be used with OC?
It's as well possible to create VS with only TCP profile and without any L7 profile. How OC is implemented in such case?
Will BIG-IP just try to keep TCP connection open using TCP Keep-Alive? Basically on L4 level we need to somehow convince other side (server) to not immediately close connection, but then how to achieve that?
Piotr