Owen DeLong wrote:
On Apr 27, 2010, at 11:49 AM, Matthew Kaufman wrote:
Owen DeLong wrote:
On Apr 27, 2010, at 10:48 AM, Matthew Kaufman wrote:
Andy Davidson wrote:
On Tue, Apr 20, 2010 at 11:29:59AM -0400, John R. Levine wrote:
Did you use Yahoo IM, AIM, or Skype?
Yes, yes, and yes. Works fine.
What about every other service/protocol that users use today, and might be invented
tomorrow ? Do & will they all work with NAT ?
Anyone inventing a new service/protocol that doesn't work with NAT isn't
planning on success.
Respectfully, I disagree. There are many possible innovations that are
available in a NAT-less world and it is desirable to get to that point rather
than hamper future innovation with this obsolete baggage.
I would argue that every one of those innovations, if even passably useful, can
also be implemented in a NAT-full world.
Perhaps, but, often at significant additional code, development time, QA
resources and other costs.
Also, often at a degraded level requiring a non-NAT'd third-party broker to
intermediate between any two NAT'd parties attempting to trade information.
Yes, there's additional development, but if NAT was more standardized
(which it has a chance of being for IPv6, if we'd just stop arguing
about whether or not it is going to happen... it'll happen, the question
is whether or not there'll be a standard to follow) that development
cost could be nearly a one-time library cost vs. custom code to deal
with every situation and changing situations.
Do many others work as well or act reliably through NAT ?
Yes.
In reality, it's more like some yes, some not so much.
== Some designed to work properly in the face of NAT, some ignored reality at
their peril.
We can agree to disagree about this. The reality is that there are cool things
you can do with peer to peer networking that simply aren't possible in an
enforced client-server model.
Agreed.
NAT enforces a client-server model and permanently and irrevocably relegates
some administrative domains to the client role. This is an unfair disadvantage
to the users within those domains when it is not by the choice of the
administrator (and NAT in IPv4 so far, often is not).
No. Most NAT *doesn't* enforce a client-server model, it enforces a
deliberate signaling model for establishing peer-to-peer communication,
and allows open client-server communication (and most communication is,
and will forever be, client-server). Assuming, again, that the NATs
behave reasonably when trying to do peer-to-peer communication through
them, which most (over 90% of what's deployed for IPv4) do. And *all*
could, if there were standards people could code to. Which, again, for
IPv6 there could be, if we'd stop claiming that NAT will never happen /
is a bad idea and so shouldn't be standardized / etc.
Will it stop or hamper the innovation of new services on the
internet ?
Hasn't so far.
Here I have to call BS... I know of a number of cases where it has.
Ok, you called it... so where's the list of such services that haven't
materialized as a result of NAT?
Haven't materialized, for one, is an attempt to redefine the question. Note that the original
question included "hamper". I would argue that the cost of maintaining a NAT
compatibility lab and the QA staff to use it is a sufficient burden to call it "hamper".
Again, such a lab would not be needed if NAT operation were codified in
standards. Which could happen, if not for the vocal set who keeps
arguing against them, even when there's 5+ good reasons for them, even
in IPv6.
For the ones that did not materialize, however, I am at an unfortunate
disadvantage in the argument. I can tell you that I know of at least 5 such
cases. However, I cannot reveal the details because I am under NDA to the
companies that were developing these products. I can tell you that in 3 of the
5 cases, adapting them to cope with a NAT world would have required the company
to run an external service in perpetuity (or at least so long as the
application would function, no server, no function) in order to do the
match-making between clients that could not directly reach each-other.
I guess a good analogy is this:
In a NAT world, you have only matchmaking services and all of your ability to
meet potential mates is strictly controlled through these matchmaking services.
There are many services available independent of each other, and, each has its
own limitations, biases, and quirks. However, you cannot meet potential mates
without involving at least one matchmaker.
True, but that's essentially true for all software, and certainly true
for all "web-based" software.
In a NAT-Free world, you have the ability to use a matchmaking service if you
like, but, you also have the ability to meet potential mates at bars, in the
grocery store, on the street, in restaurants, through chance meetings,
introductions by a friend, or even at work.
Really? There's still the name/service to address lookup problem. If the
controlling entity goes away, you're again dead in the water. We're just
lucky that some of those services (e.g., DNS) have a group who's agreed
to run them in perpetuity as far as we can tell. If every root
nameserver moved to a new IP address on a random whim tomorrow, most of
these apps you talk about would stop working. No different than losing
access to the aforementioned matchmaking service.
It is possible that if you never knew it was possible to meet potential mates
in all of these other ways, you would happily deal with a vast number of
matchmaking services hoping to find a useful result. On the other hand, if you
were to ask the average person who has experienced the latter scenario if they
would be willing to limit their choices to only using a dating service, my
guess would be that most people would reject the idea outright.
Some people want the matchmaking controlled by an entity other than the
de facto one, actually. Lots of benefits to trying to register your
highly-mobile computer in a peer-to-peer introduction system designed
for that instead of in a DNS that isn't.
Matthew Kaufman
ps. In the spirit of disclosure, I should point out that I've shipped a
peer-to-peer networking protocol that works through most NATs and which
is almost certainly already installed on the computer you are using now.