Originally posted by: SystemAdmin
we have some socket keep in established state foerver,because the remote side doesn't
exist this socket which associated this source ip address and source port.This issue
lasts about one month,and we have capture communication between following address,but these socket doesn't transmit or receive any packets.
So,I wonder whether the os itself or the application has some bug in this special scenario,and which is proper process to release socket,just like application invoke some syscall first then OS release socket or reverse process.
According to my comprehension of TCP/IP theory,when a tcp socket idle for some time(AIX 2hours by defualt),a keepalive mechanism will probe ,and then OS inform upper-level application to close socket if remote node doesn't response or OS release socket directly ,which is correct?
But at first ,this application must some optional parameters when creating socket,like set setoption() library funtion.Unfortunately,this application doesn't use keepalive
fyi,
osadmin@szxei04-in $ netstat -an|grep 172.18.4.51
tcp 0 0 10.82.60.60.49674 172.18.4.51.8080 ESTABLISHED
tcp 0 0 10.82.60.60.49675 172.18.4.51.8080 ESTABLISHED
tcp 0 0 10.82.60.60.49679 172.18.4.51.8080 ESTABLISHED
tcp 0 0 10.82.60.60.49680 172.18.4.51.8080 ESTABLISHED
tcp 0 0 10.82.60.60.49684 172.18.4.51.8080 ESTABLISHED
tcp 0 0 10.82.60.60.49685 172.18.4.51.8080 ESTABLISHED
root@szxei04-in # netstat -Aan|grep "172.18.4.51"
f1000600056eb398 tcp 0 0 10.82.60.60.49674 172.18.4.51.8080 ESTABLISHED
f1000600057e7b98 tcp 0 0 10.82.60.60.49675 172.18.4.51.8080 ESTABLISHED
f100060005c5e398 tcp 0 0 10.82.60.60.49679 172.18.4.51.8080 ESTABLISHED
f100060005d8db98 tcp 0 0 10.82.60.60.49680 172.18.4.51.8080 ESTABLISHED
f100060005b18398 tcp 0 0 10.82.60.60.49684 172.18.4.51.8080 ESTABLISHED
f100060005a69398 tcp 0 0 10.82.60.60.49685 172.18.4.51.8080 ESTABLISHED
root@szxei04-in # kdb
(0)> sockinfo f1000600057e7b98 tcpcb |grep -E "KEEP|opts"
t_timer....... 00000000 (TCPT_KEEP)
timewait.prv@0000000000000000 inp_v6opts @0000000000000000
opts........ 0000 () -->should like opts........ 010C (REUSEADDR|KEEPALIVE|OOBINLINE) when open keepalive
osadmin@szxei04-in $ oslevel -s
5300-06-03-0732
BTW,the application in this OS is a component of Tibico Enterprise Integrated Platform called BC(Business Connector) which used to exchange PO(Purchase Order)data with business partner
#AIX-Forum