[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <p73slip4lyf.fsf@verdi.suse.de>
Date: 18 Sep 2006 10:29:12 +0200
From: Andi Kleen <ak@...e.de>
To: "Stuart MacDonald" <stuartm@...necttech.com>
Cc: linux-kernel@...r.kernel.org
Subject: Re: TCP stack behaviour question
"Stuart MacDonald" <stuartm@...necttech.com> writes:
> I'm having some trouble with a network application I've written. I've
> done a lot of research the last few days; man 7 ip, man 7 tcp, kernel
> 2.4.31 source code, Stevens' Illustrated TCP/IP Vol 1 & 3 (for some
> reason we don't have Vol 2), Usenet, websites. I'm hoping someone here
> can help me out, or point me in the correct direction.
Stevens is a good reference to BSD networking, but not necessarily to Linux.
> Question 1: There's the original packet, plus 7 retransmitted packets
> for a total of 8, then TCP gives up. How is 7 (or 8) derived from the
> tcp_retries[12] settings?
Documented in tcp(7)
> Question 1a: The time between last and second-last retransmit packets
> is only about 27 seconds. I've read there's a maximum time, but also
> that it's usually 100 or 120 seconds. Where can I find that setting in
> /proc?
It's fixed by the TCP specification.
> Question 2: After the retransmit has given up, the app is still
> making an occasional write(), which succeeds! However, tearing down
> and attemting a new connection results in an immediate EHOSTUNREACH
> error. Why is the write() succeeding?
It goes all in the local buffer, until it starts blocking (or EAGAIN
for non blocking sockets)
>
> Question 2a: How can my app find out the EHOSTUNREACH error
> immediately? IP_RECVERR is not implemented on TCP, and SO_ERROR always
> reports no error (0).
Did you really read the manpages? It is implemented and it's documented.
-Andi (your new temporary manpage proxy)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists