I assume the protocol runs over TCP? You can do most of that with iRule functionaliy:
1. Collect the TCP data in the request, using TCP::collect (
Click here).
2. Parse the data using TCP::payload (
Click here).
3. Check the session table for an existing entry, and send the request to that node. If there isn't an entry, add one (
Click here). The session table entry would include the string, pool member and a timeout.
The last requirement to flush the table every 24 hours would probably need to be done using an iControl app (
Click here). I don't know of a way to get the current time with the TCL commands enabled in iRules.
Aaron