On 21-sep-2007, at 7:54, Martin Hannigan wrote:
>> All applications are supposed to use getaddrinfo()
which sorts
>> these addresses per the above specification, the
app should then
>> connect() to them in order, fail/timeout and try
the next one
> Since when is a timeout on the Internet ok? Haven't we
moved beyond
> that? This is a controllable timeout. We don't have to
do it, which is
> the point. What's the right way to do this?
I agree that it's not acceptable to engineer things such
that
timeouts occur by design. However, things tend to break, and
in those
situations it's important to recover as well as can be
expected. So
the correct way to operate here is for the network designer
to make
reasonably sure ("unreliable datagram" etc) that
everything works,
for the stack designer to make sure that there is a good
algorithm
for selecting the "best" combination of
destination and source
addresses and for the application to cycle through all
addresses if
the two former efforts weren't completely successful.
|