[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RAM] The mapping problem: rendezvous points?
[sorry, replying to an even older message... but I think this is
important]
On 9-mei-2007, at 20:07, David Conrad wrote:
If an application works today, I'm having trouble understanding how
the introduction of additional O(10-100ms) latencies in the event
of a cache miss (which will likely only occur at the first packet
in a packet train) is going to have significant impact. In those
odd cases that there is an impact, how much work would it be to
modify the application operation to be more tolerant of network
delays?
I'm assuming an encapsulation device close to the source host that
serves more than a single host, and maybe even a great number of hosts.
If nothing much is happening and caches are empty, and a host then
starts a session towards some remote destination, in a pull model,
the encapsulating device must first look up a mapping so it can
perform the required encapsulation. So the first packet must be
dropped. At the start of a session, that would be the first TCP SYN
(or equivalent packet for other transport protocols). At this point,
it doesn't matter all that much how fast the mapping information
becomes available, because the application has to wait for a
retransmission of the first packet. Obviously it doesn't help if the
mapping system is so slow that the second packet is also dropped. But
I think 10 - 100 ms is extremely optimistic, DNS is about an order of
magnitude slower than that in practice and it takes ~ 350 ms round
trip across the world.
So the difference here is that unlike with the DNS, where you can
proceed as soon as there is an answer, you have to time out here, and
both doing that too fast and too slow increases latency.
But that's only when the sky is blue and the sun is shining. When an
encapsulation device suddenly gets a lot of traffic that has been
going for a while, so it's happening at high speeds, but it somehow
doesn't have any mapping state (mapping state timed out, rerouting
between encapsulation devices, maybe even a reboot), very many
packets will be lost while a mapping lookup is done. Also, if a large
number of flows require mapping requests, it's entirely possible that
these must be rate limited, increasing delays even further.
I guess it would be possible for the encapsulation device to send a
message back to the source host that indicates that the packet was
dropped so it should be retransmitted. I'm guessing TCP will do that
for ICMP "packet too big" messages today.
However, I would prefer "initial non-optimizedness" over "initial
loss". If there is some place packets for destinations that aren't
mapped yet can be sent to so they arrive anyway, even if this path is
slower, this takes a lot of pressure off of the encapsulation
devices, making the downsides of pull and caching less problematic:
mapping requests can be done at the rate that best suit the
encapsulation device rather than as fast as possible to avoid
application impact.
I suppose there are some applications that will try to judge network
characteristics based on the first few packets, and in such a
situation, they would come to unnecessarily conservative conclusions.
However, this could be addressed by changing these applications
rather than restricting the internet architecture.
The issue of determining rendezvous locations that Marshall brought
up is simple enough: have each rendezvous point handle a very long
prefix, such as 96.0.0.0/6. This of course sucks if you have 97.0.0.1
and you're in South Africa while the relevant rendezvous point for
96.0.0.0/6 is in Japan, but since the detour only happens for the
first few packets this shouldn't be a huge issue.
_______________________________________________
RAM mailing list
RAM at iab.org
https://www1.ietf.org/mailman/listinfo/ram