Re: Airport NAT behavior
Re: Airport NAT behavior
- Subject: Re: Airport NAT behavior
- From: email@hidden
- Date: Tue, 28 Mar 2006 18:25:46 -0700
On Mar 27, 2006, at 10:05 PM, Tim Dorcey wrote:
Have you looked at STUN (RFC 3489)? It seems to solve some of these
problems, but it does require at least one end to have a
Yes, but it will also be stymied by NAT's which use a different
port for
each connection. The core issue is this. A host can signal their
NAT that
inbound traffic is desired from a certain remote (addr,port) simply by
sending a packet to that (addr,port). But, to do that, they must
first know
where the inbound traffic will be coming from, which is impossible
if the
NAT on the other end is choosing a new port for each connection.
The only
way to learn the port is to receive a packet, and the only way to
receive a
packet is to first know the port.
I have implemented something like STUN, without knowing what it was.
Basically it's intuitive that once you get a public IP and port
mapped, you can tell your friends about it. The only gotcha is that
most NATs make you send outgoing packets to those external machines
before you can get an answer back, so the 2 peers usually send junk
packets to each other until they both ACK each other (after getting
each other's external IP and port from a central tracker server on
the net somewhere). Of course the only type of NAT this fails for
this is symmetric NAT, since the peers will get different external
ports than the central tracker got, meaning their packets won't make
it through the NAT if they send to the port the tracker provided.
(This is another way of saying the above paragraph).
So is there a firmware update or something to upgrade current
airports to allow NAT-PMP? Does anyone know which models support
it? If I can say "the following list of routers will allow our games
to work, with the following firmware upgrades for these airports",
that would be great.
P.S. Does somebody have a link for UPnP, like the kind used by
Azureus (a java bittorrent client)? This has probably been answered
before but I am thinking this thread is going to be searched on a lot
someday. I would like to implement both methods for our games.
P.P.S. The NAT-PMP explained at:
http://files.dns-sd.org/draft-cheshire-nat-pmp.txt
and provided by Tim is quite easy to understand, and is almost
trivial to implement for anyone who has used UDP. Each packet is
just a couple of bytes, and the format is completely intuitive, even
the nontrivial edge cases like what happens should the router
reboot. It should honestly not take more than 15 minutes to set up a
console app to demonstrate it, if you already have UDP sending and
receiving programmed. OK multiply by 100 for the real world but you
get the idea.
Thanx,
------------------------------------------------------------------------
Zack Morris Z Sculpt Entertainment This Space
email@hidden http://www.zsculpt.com For Rent
------------------------------------------------------------------------
If the doors of perception were cleansed, everything would appear to man
as it is, infinite. -William Blake, The Marriage of Heaven and Hell
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Macnetworkprog mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden