Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 12 Apr 2003 12:52:48 -0400 (EDT)
From:      Don <don@calis.blacksun.org>
To:        BelletJr@aol.com
Cc:        net@freebsd.org
Subject:   Re: connect(2) behavior with unreacheable hosts
Message-ID:  <20030412123544.B4056@calis.blacksun.org>
In-Reply-To: <134.1e1ff9dc.2bc95035@aol.com>
References:  <134.1e1ff9dc.2bc95035@aol.com>

next in thread | previous in thread | raw e-mail | index | archive | help
> Thank you Terry for your instructive explanation (though Barney has found it
> seems to be a real bug ;-).
> The infinite loop that seems to exist when tracerouting happens while I try
> to access an Internet host from my provider network without having
> authenticate before. Not a usual set up, but it was just a test...
> In this case, after a few hops, traceroute seems to show packets exchanged
> indefinitely between 2 interfaces.
It is not the responsibility of TCP/UDP to report a routing problem. When
the TTL on a packet reaches 0, (Due, for example, to a routing loop) an
ICMP message is generated to report a "TTL Expired in Transit" message:
ICMP Type 11. If the host does not receive this message, then the only
thing connect() can do is timeout. In that case connect() should return -1
and errno should return [ETIMEDOUT] or [ENETUNREACH] (I have no idea which
one).

If you are allowing the necessary ICMP traffic, well, then there is a
problem. Forgive me if I have no idea what I am talking about.

-Don



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030412123544.B4056>