Fw: TCP_KEEPIDLE socket option is not working

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi, 

I have a server program running under linux-2.6.15 on ARM9. I have two sockets 4096 and 4097 which accept connections from other PCs and do 
send/receive data. I have set the following setsockopt for the two sockets 

    setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &on,sizeof(on)); 
    setsockopt(sockfd,IPPROTO_TCP,TCP_NODELAY,&on,sizeof(int)); 

     setsockopt(sockfd, SOL_SOCKET, SO_KEEPALIVE, &keep_alive_time, sizeof(keep_alive_time)); 

      alive_time = 4; 

       setsockopt(sockfd,IPPROTO_TCP,TCP_KEEPIDLE,&alive_time,sizeof(int)); 


I have no other sockets so I have set the sysctl entries 
/proc/sys/net/ipv4/tcp_keepalive_probes ---> 3 
/proc/sys/net/ipv4/tcp_keepalive_intvl ---> 60 

So that the connections get closed if they are idle for 7 minutes. 
The "alive_time" can be programmed so that different sockets can have different TCP keepidle times. 

If I connect to 4096 from a Windows PC and send data then everything works fine. 

But when I connect to 4097 also and transfer, both my connections at server side are getting closed in between data transfer. 
>From the ethereal capture I came to know that TCP keep alive probes were sent on both sockets after 4 minutes of starting data transfer, 
and after that two times with a gap of 60secs. 

How can TCP keepalive kickoff when there is data transfer going on 
socket. And also I am not getting TCP_keepalive_ack for the keepalive 
probes sent. 

One more observation is that when I do data transfer from 4096 socket 
to PC socket, keepalive timer is not triggering. 
Why TCP_KEEPIDLE is not working on both directions?? 
And also, the PC is not replying to the Keep Alive probes. 

Regards, 
Mohan


      ____________________________________________________________________________________
Never miss a thing.  Make Yahoo your home page. 
http://www.yahoo.com/r/hs
-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux