[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ICMP response gets lost
On 05/07/2002, Steffen Beyer <cpunk@reactor.de> wrote To tech@openbsd.org:
> > Considering this, it makes more sense to return-rst for TCP, if you want
> > to keep retransmission low.
>
> That did the trick, thank you!
> But how does this kernel behaviour make sense?
It makes sense if you read RFC1122.
Section 3.2.2.1:
A Destination Unreachable message that is received MUST be
reported to the transport layer. The transport layer SHOULD
use the information appropriately; for example, see Sections
4.1.3.3, 4.2.3.9, and 4.2.4 below. A transport protocol
that has its own mechanism for notifying the sender that a
port is unreachable (e.g., TCP, which sends RST segments)
MUST nevertheless accept an ICMP Port Unreachable for the
same purpose.
Section 4.2.3.9:
o Destination Unreachable -- codes 0, 1, 5
Since these Unreachable messages indicate soft error
conditions, TCP MUST NOT abort the connection, and it
SHOULD make the information available to the
application.
DISCUSSION:
TCP could report the soft error condition directly
to the application layer with an upcall to the
ERROR_REPORT routine, or it could merely note the
message and report it to the application only when
and if the TCP connection times out.
Ok? Try an application, which does not retry, and it probably will
terminate the session (by itself) immediatly.
If you use udp, an icmp-port-unreachable will die immediately (on
stack basis), since there is no UDP-RST or similar.
ciao
--
Philipp Buehler, aka fips | sysfive.com GmbH | BOfH | NUCH | <double-p>
#1: Break the clue barrier!
#2: Already had buzzword confuseritis ?