Re: NAT-PMP Broadcast Address?
Re: NAT-PMP Broadcast Address?
- Subject: Re: NAT-PMP Broadcast Address?
- From: Josh Graessley <email@hidden>
- Date: Wed, 12 Sep 2007 12:54:58 -0700
On Sep 12, 2007, at 12:00 PM, email@hidden wrote:
On Sep 11, 2007, at 12:02 PM, Josh Graessley wrote:
Ya I will listen for changes, maybe with just the notifications
that happen in the spec though. Also, I think I found a flaw in
NAT-PMP...because you can't query what ports your machine opened?
I want to be able to check a port and see what it is. But the
only way to do that is to basically try to remove the port. You
will get an error code if another machine is using the port.
However, if your computer had a port allocated, you just get an
answer that you successfully either got the port, or changed its
timeout, which for removal is a timeout of 0. There doesn't seem
to be a way to determine if the port was already open. I realize
that is how the spec is designed to work, so that multiple
requests return multiple success replies, but this still seems to
be a pretty major thing to overlook.
This is by design. Do your own book keeping :) If you need a
mapping, create it. Renew it periodically as a DHCP lease would be
renewed (about half way through). When you're done with it, dispose
of it.
I actually agree with this, because normally there is no need to spy
on your neighbors, so it makes sense for each machine to do its own
thing. However, I want to be able to bring up some kind of dialog
like "Sorry, port 1234 is in use by 192.168.0.2" or whatever, so
people can tell their buddies to stop hogging the port. I will just
say the port is in use by another machine.
NAT-PMP is intended to be used in conjunction with a service that
discovers address/port pairs. Whether this is some third party server
that keeps track of people looking to play a game together or
something like wide area bonjour, the port number is arbitrary. If you
want to map the local port 80 to the global port 80 and the global
port 80 is in use, NAT-PMP will happily give you back some other port
instead. As long as someone is using another service to discover the
port instead of just assuming it's 80, you're fine. You have to
discover the address somehow. The port is really just another another
piece of information you have to discover along with the address.
-josh
_______________________________________________
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