At 11:51 PM 12/9/99 +0100, Sean Doran wrote:
>Even trickier: how to get non-local hosts to use them intelligently.
This is definitely a research issue. I think however that there are at
least three possible solutions, and so I believe that this is not a very
difficult research issue.
The first solution is indeed what we do everyday: get several addresses
from the DNS, pick one more or less at random, try it, and if it fails try
the next one.
The second solution is when your DNS resolver has acquired some knowledge
of the Internet, and can sort the address list based on expected
performance. Strict provider addressing actually makes this kind of
knowledge acquisition slightly easier, as the knowledge table is
essentially similar to a routing table, and thus subject to the same kind
of aggregation. There are indeed many ways to acquire this knowledge, from
looking at the routing tables to getting feedback from the hosts, and this
is where research becomes interesting.
The third solution requires TCP implementation that have the "zero context"
hacks necessary to protect against SYN flooding attacks. In that case, the
caller simply sends parallel SYN messages to all possible addresses,
continue with the first response, and forgets anything else. Basically, you
trade routing complexity for increased traffic.
A related problem is the support of readdressing, i.e. changing the IP
addresses without losing the TCP connection, but there are already
solutions in the v6 spec.
-- Christian Huitema