07-06-2010
How detect TCP/IP socket shutdown when ethernet cable is disconnected
Hi,
I want to code TCP/IP client/server in linux application capable to fastly detect ethernet cable disconnection in any condition.
So I have activate SO_KEEPALIVE options and set TCP_KEEPCNT, TCP_KEEPIDLE and TCP_KEEPINTVL to 1.
When I disconnect ethernet cable I have the following behaviour :
- If I wasn't sending data when I disconnect the cable, the TCP Keepavlie start and detect disconnection : expected behaviour.
- If I was sending data when I disconnect ethernet cable, I was notify that connection is down only after about 16 minutes : not expected behaviour, time very too long.
I have look with tcpdump the packet on the device. If I was sending data when I disconnect the ethernet cable, I packet is resend 8 times (normal behaviour of TCP) but after the last TCP request without acknoledge, I wasn't notify that the connection is down
Could you help me to solve this behaviour please?
Regards
10 More Discussions You Might Find Interesting
1. Solaris
Hi all
This is my first post in this forums. I hope some one can help me with this
my Sun Ultra 60 worked fine couple of months back when i used a dell (1280x1024). i move to a MN last month n bought a new sony monitor with (1280x1024) but when i connect it to the box it monitor displays... (1 Reply)
Discussion started by: venuavula
1 Replies
2. Programming
Hello everyone. Thanks for reading. I am using Ubuntu 7.04 to experience this problem:
I have written my own programs that communicate to eachother and I am having a hard time detecting a TCP socket disconnect when the remote side's computer has a power-failure (for example).
On the computer... (6 Replies)
Discussion started by: pjwhite
6 Replies
3. Red Hat
hi..
I unplug my eth0 lan cable.. and suddenly my system shutdown... no idea :eek::confused: (3 Replies)
Discussion started by: flekzout
3 Replies
4. IP Networking
Hi, I am trying to implement a server-client socket communication. My server and clients are in different PCs. During communications if the ethernet cable is removed from the server side it shows broken pipe due to unable to write on the socket. I want to know how to check whether the ethernet... (0 Replies)
Discussion started by: JagadishB
0 Replies
5. IP Networking
Hi,
I'm trying to communicate two servers (HP DLProliant 380 G5) via a crossover cable, but I don't get them to ping each other.
I am working in RHEL 4.
These are the steps I've performed:
1) Plugged the crossover cables in eth2.
(note: The cable is brand new. Also I built one myself... (3 Replies)
Discussion started by: jrodriguez365
3 Replies
6. UNIX for Dummies Questions & Answers
how to change ethernet cable of iscsi initiator (iscsi client) (0 Replies)
Discussion started by: pankajd
0 Replies
7. AIX
Hello,
Is there any API or any other approach to detect whether the network cable is connected to the network adapter, say, en0, en1 or en2?
The OS is AIX6.1.
Thank you. (4 Replies)
Discussion started by: zephyrbj
4 Replies
8. Programming
Hello!
I searched forum for similar topic, with no luck, if you know one, delete this topic, and send me private message with link please.
Little background:
I have a lot of clients and one serwer. Client can make multiple connections on different ports and ips, but only one can be acctive... (2 Replies)
Discussion started by: ikeban
2 Replies
9. IP Networking
Hello,
Our software is using a TCP socket (AF_INET, SOCK_STREAM) to communicate with an Ethernet device. When we send a message, the message object writes itself in full onto the socket's stream buffer before the software invokes send() from socket.h.
I'm still researching, but have 2... (1 Reply)
Discussion started by: bix_20002000
1 Replies
10. IP Networking
Hello,
I detect these errors in my logs :
Socket timeout calling url http://server:port/bla/soap/selfcare/infoRapide]
Unable to make proxyRequest
I've made a tcpdump capture this way :
tcpdump -i eth0 -s 0 -w /app/captura.pcap port 8080
But I'm fairly new in reading .pcap files with... (0 Replies)
Discussion started by: black_fender
0 Replies
LEARN ABOUT FREEBSD
blackhole
BLACKHOLE(4) BSD Kernel Interfaces Manual BLACKHOLE(4)
NAME
blackhole -- a sysctl(8) MIB for manipulating behaviour in respect of refused TCP or UDP connection attempts
SYNOPSIS
sysctl net.inet.tcp.blackhole[=[0 | 1 | 2]]
sysctl net.inet.udp.blackhole[=[0 | 1]]
DESCRIPTION
The blackhole sysctl(8) MIB is used to control system behaviour when connection requests are received on TCP or UDP ports where there is no
socket listening.
Normal behaviour, when a TCP SYN segment is received on a port where there is no socket accepting connections, is for the system to return a
RST segment, and drop the connection. The connecting system will see this as a ``Connection refused''. By setting the TCP blackhole MIB to
a numeric value of one, the incoming SYN segment is merely dropped, and no RST is sent, making the system appear as a blackhole. By setting
the MIB value to two, any segment arriving on a closed port is dropped without returning a RST. This provides some degree of protection
against stealth port scans.
In the UDP instance, enabling blackhole behaviour turns off the sending of an ICMP port unreachable message in response to a UDP datagram
which arrives on a port where there is no socket listening. It must be noted that this behaviour will prevent remote systems from running
traceroute(8) to a system.
The blackhole behaviour is useful to slow down anyone who is port scanning a system, attempting to detect vulnerable services on a system.
It could potentially also slow down someone who is attempting a denial of service attack.
WARNING
The TCP and UDP blackhole features should not be regarded as a replacement for firewall solutions. Better security would consist of the
blackhole sysctl(8) MIB used in conjunction with one of the available firewall packages.
This mechanism is not a substitute for securing a system. It should be used together with other security mechanisms.
SEE ALSO
ip(4), tcp(4), udp(4), ipf(8), ipfw(8), pfctl(8), sysctl(8)
HISTORY
The TCP and UDP blackhole MIBs first appeared in FreeBSD 4.0.
AUTHORS
Geoffrey M. Rehmet
BSD
January 1, 2007 BSD