Re: DCCP-over-UDP [was draft-phelan-dccp-natencap-00.txt]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Tom,

I essentially agree with all your arguments below. There's a clear short term benefit to having a UDP encapsulation for DCCP to ease NAT traversal. This is the incremental deployment argument from draft-iab-protocol-success, and also the argument made in draft-rosenberg-internet-waist-hourglass. 

There's also a significant, long-term, architectural penalty from encouraging the two existing transport protocols (TCP and UDP) to become the new waist of the Internet. We don't want to tunnel DCCP over UDP: it's extra overhead, and it complicates firewalls, debugging, and so on. Long term, we should encourage NAT vendors to support new transport protocols, and build native support for DCCP, SCTP, UDP-lite, etc.

Call me an ivory tower academic if you like (although, reflecting the Glasgow style, our ivory tower is made of stone), but I'm not yet convinced we should give up all semblance of architectural purity...

Cheers,
Colin




On 18 Feb 2008, at 18:09, Phelan, Tom wrote:
Hi Colin,

So there are two independent threads to your comment below -- one, is
what DCCP-NAT is trying to achieve worthwhile?  And two, what's the best
way to go about it?

On the first issue, I'd love to hear your detailed thinking.  What got
me thinking seriously about the need for DCCP-NAT was
draft-iab-protocol-success.  One of the factors for initial success that
it points out is incremental deployment.  DCCP-RAW doesn't have that.
For DCCP-RAW to be useable in the general Internet, it requires entities
that have nothing to gain from DCCP deployment to make changes (the NAT
vendors).  Some people argue that there are some market pressures that
could pull the NAT vendors to support DCCP, but I see these scenarios as
having slim chance of success.

It didn't seem to me to be too difficult to define a UDP-encapsulation
for DCCP that would be supported by NATs, and the potential benefit of
that support seems much greater than the effort to me.  Some of these
benefits seem very near-term to me.

For example, it's currently very difficult for me (and most other people
too, I think) to offer a DCCP demo application that can be accessed by a
large public.  I have no easy access to a host outside of a NAT on which
I can run arbitrary code.  On the other hand, I have no problem finding
hosts behind NATs on which I can do absolutely anything I desire.  So
with DCCP-NAT it's much easier to expand the group of people
experimenting with DCCP and also expand the opportunities for
interactions among the various groups.

Of course just having DCCP-NAT will hardly be the one thing that breaks
DCCP into wild (or even initial) success, but I do believe it will make
early experimentation easier and will be necessary (but not sufficient)
for eventual initial success.

As far as the second issue, I'll put that in another e-mail.

Tom P.

-----Original Message-----
From: Colin Perkins [mailto:csp@xxxxxxxxxxxxx]
Sent: Sunday, February 17, 2008 9:57 AM
To: Phelan, Tom
Cc: Ian McDonald; 'dccp' working group
Subject: Re: draft-phelan-dccp-natencap-00.txt

Hi,

On 14 Feb 2008, at 20:13, Phelan, Tom wrote:
It's definitely my intention that DCCP-NAT happens in the end
nodes.  It
isn't intended to be some middlebox intercepting a DCCP stream and
converting it.  The end nodes originate the packets with DCCP-NAT
encapsulation.  I'll try to make that more clear in the next
revision.

Nice to hear about NAT for DCCP(-RAW) in Linux.  To expand a bit on
the
above paragraph, I wouldn't expect DCCP-NAT in Linux to be
implemented
below the DCCP layer as I imagine NAT for DCCP is.  In my view, the
encapsulation to use (NAT, RAW, IPv4, IPv6) is chosen by the
application
and implemented (mostly) within the DCCP layer.

Allowing the application to choose runs into connectivity problems
when some applications support the UDP encapsulation, and some do
not. If we're going to define a UDP encapsulation - and it's not at
all clear to me that such a thing is a good idea - then I'd recommend
that we do so in a way that it can be done by the DCCP stack,
transparently to the applications, with a well-defined order for
trying native vs. encapsulated connection requests.

--
Colin Perkins





-- 
Colin Perkins



[Index of Archives]     [Linux Kernel Development]     [Linux DCCP]     [IETF Annouce]     [Linux Networking]     [Git]     [Security]     [Linux Assembly]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [DDR & Rambus]

  Powered by Linux