@Steeve:
- The TCP profile on server side is the same
- Without oneconnect, when server wants to close connection (sending TCP FIN), the BigIP transmit the FIN to the client but agin never care about the "TIME_WAIT" status, but I want to use oneconnect feature...
Hamish:
I agree, the doc is talking about "no traffic", but actually the problem is exactly the same. On every tcp keepalive, the idle value is reset (tmsh show sys connection all-properties)
Here is a small code I use to check the keepalive behaviour. Can you please check on your side with a VS, and tell me if the connection can stay indefinitly ?
!/usr/bin/env python
import socket
import sys
import time
HOST = 'X.X.X.X'
GET = '/toto'
PORT = 80
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
if 1:
sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
sock.setsockopt(socket.SOL_TCP, socket.TCP_KEEPIDLE, 2)
sock.setsockopt(socket.SOL_TCP, socket.TCP_KEEPINTVL, 5)
sock.connect((HOST, PORT))
sock.send("GET %s HTTP/1.1\r\nHost: %s\r\nConnection: Keep-Alive\r\n\r\n" % (GET, HOST))
while 1:
try:
data = sock.recv(1024)
if len(data):
print data
else:
break
except:
break
print "Socket end: Possibly TCP FIN received - TCP state should be TIME_WAIT"
while 1:
time.sleep(10)