Hi Zafer,
If you define a "session" as the duration that a client keeps the browser open, the only way to maintain a persistence record for as long as (and only as long as) the session would be to use a session cookie (cookie with no expiration time) persistence profile. With cookie persistence you're telling the browser to send the persistence cookie for every request and to remove the cookie from memory once the browser is closed. You don't actually maintain a persistence record on the BIG-IP, so there isn't anything to maintain.
There isn't a way to mimic this behavior in non-cookie based persistence. You could set the persistence record with no timeout, but then the record would never be cleared from BIG-IP's memory. I would expect this would eventually result in a failure on the BIG-IP. It would be far better to specify a persistence timeout either in the 'persist add' command in the iRule, or if you want on a UIE persistence profile associated with the VIP. I don't know of any advantage in adding a UIE persistence profile to the VIP if you're already configuring the UIE persistence in an iRule. Maybe someone else has feedback on this?
Also, the TCP idle timeout is independent of the persistence timeout. The TCP layer doesn't impact how the persistence record is maintained.
Aaron