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

Re: ICMP response gets lost

On 05/07/2002, Steffen Beyer <cpunk_(_at_)_reactor_(_dot_)_de> wrote To tech_(_at_)_openbsd_(_dot_)_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.

            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
  ,, 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.

            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

                      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.

Philipp Buehler, aka fips | sysfive.com GmbH | BOfH | NUCH | <double-p> 

#1: Break the clue barrier!
#2: Already had buzzword confuseritis ? 

Visit your host, monkey.org