[e2e] using p2p overlays to overcome recursive NATs/realms
David P. Reed
dpreed at reed.com
Fri Feb 8 07:38:31 PST 2002
Man do I hate NATs. I'm prototyping a really neat collaborative real-time
platform that really wants UDP packets that are not connection-like at all
(yes, I've got some interesting ideas for adaptation that allows the
ensemble to respond helpfully to congestion - in fact, theoretically you
should be able to manage congestion better by coordinated ensemble action
than by pairwise-independent TCP-like cong.ctrl. - another thesis topic for
the grad student iconoclast).
Most NATs handle UDP as if it is TCP-like. That is, if you as party A are
behind the NAT, the mapping works such that you can't send a packet out to
party B which has a UDP port that will work for parties C, D, ... to send
a packet back to you. THis is one of the problems that was pointed out in
the original NAT RFC, back when NATs were being proposed as a serious
alternative to V6.
But UDP wasn't developed for pair-wise connections like this. It was
developed so that apps that don't have a sensible notion of pairwise
connections can work.
Yes I can and will do "overlay" level UDP routing as a workaround, but that
is wrong, because it creates special nodes that cannot fail, or a need for
highly dynamic overlay routing that can cope with loss of individual
"overlay routers". If you are building a scalable system that creates a
shared environment for thousands of peers, you don't want to have to create
a special class of fixed overlay routers.
Any solution to the NAT problem is good. Applying a clue-by-4 to the boxes
themselves, and their vendors, would be the best solution. That ain't
gonna happen.
At 10:19 AM 2/8/2002 +0000, Jon Crowcroft wrote:
>so the problem with most the proposed solutions to workign around nats
>is that they really assume there are only 2 realms -
>the great unwashed internet, and the poor deprived natted user.
>
>the real situation is that packets might traverse multiple natted realms
>(c.f. realm
>specific ip) - in this scenario, discovering the mapping involves
>discovering a path of
>several mappings-
>
>soluton might be to start a p2p service, which propgates mappings - take
>the ideas from
>stun, turn, rsip etc, and use them repeatedly...where multicast is
>available use it
>
>where one can infer the infernal internal algorithm used by a nat, use it.
>
>if the p2p service thus built (we might call it an InterNAT) has either
>dynamic DNS update, or
>uses ipv6 itself, then to provide global reachability is quite simple...
>
> cheers
>
> jon
More information about the end2end-interest
mailing list