Re: draft-phelan-dccp-natencap-00.txt

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

 



Hi Eddie,

Is DCCP dead?  Hell no!  It's at a minimum a highly valuable platform
for research into congestion control algorithms and how applications can
benefit from and cope with those algorithms.  Can a real (non-research)
application use it today?  Maybe, if the app is deployed in constrained
circumstances (on a single managed network) and the app developers can
find/create a good-enough-quality DCCP implementation.  Will such an app
emerge?  Well, no one is beating down our doors right now.

Could a general-Internet-wide-deployment application use DCCP today?
Hell no!  Many of the reasons for that are enumerated in
rosenberg-hourglass.  You may disagree with the long-term implications
of that draft, but from an application developer's point of view, it
very accurately describes the current state.

If DCCP had transparent NAT-traversal could a general-deployment app use
DCCP?  Maybe (availability of quality implementations is still a
problem, among others).  Would such an app emerge?  Well, again, no one
is beating down our doors.

Will NATs with DCCP understanding ever be widely deployed in the
Internet?  I believe that people who think they will are ignoring
fundamental economic processes.  Many people at the IETF seem to argue
that fundamental economic processes are not the IETF's business.  To me,
that's akin to designing a building for Southern California and ignoring
earthquakes.  No matter how beautiful your building is, if it's going to
collapse in a minor earthquake it isn't good architecture.  But this is
a much bigger topic than DCCP.

Will transparent NAT traversal be the deciding factor in the success of
DCCP?  Once more, hell no!  DCCP is a highly complex protocol, its
benefits are difficult to explain to people who would prefer to ignore
the problems it solves (that's a good chuck of application developers)
and it requires those people to change their ways of thinking.  These
factors are all independent of NAT traversal.  Transparent NAT traversal
for DCCP will make our lives easier though.

Structured Stream Transport -- that's the thing that was presented at
tsvwg in Vancouver?  That was very interesting, but it seemed to me that
the only really new ground it broke was running the protocol over UDP
instead of natively and writing an application that actually took
advantage of things that you can do with SCTP.  I'm not convinced that
it's necessary to reinvent transport protocols just to get NAT traversal
(and get around the rosenberg-hourglass problem).

Tom P.

> -----Original Message-----
> From: Eddie Kohler [mailto:kohler@xxxxxxxxxxx]
> Sent: Tuesday, February 26, 2008 5:31 PM
> To: Phelan, Tom
> Cc: Colin Perkins; 'dccp' working group
> Subject: Re:  draft-phelan-dccp-natencap-00.txt
> 
> This mail is a somewhat disconnected response to the whole thread.
> 
> - Like Colin I am skeptical of the benefits of standardizing a UDP
> encapsulation.
> 
> - NAT traversal is a problem.
> 
> - draft-rosenberg-hourglass is an overstatement and I'm fundamentally
> against it.
> 
> - draft-iab-protocol-success is not normative.
> 
> - DCCP is not perfect.
> 
> - If DCCP is considered dead without NAT traversal, and if NAT
traversal
> for
> DCCP is considered impossible, then it'd be better to design a new
> congestion
> control protocol intended to layer over UDP than to design a
DCCP-in-UDP
> layer.  Such a protocol could fix some of DCCP's design mistakes and
would
> avoid warty duplication of functionality between DCCP and UDP headers.
> 
> - I don't consider DCCP dead without NAT traversal.
> 
> - I think NAT traversal for DCCP will happen; among other things it is
> easy
> for NATs to do (by design).
> 
> - If DCCP is dead, the reason is not the protocol number, but rather
that
> we
> made mistakes in the analysis of the problem -- for instance, maybe
there
> is
> no great upswelling of need for either congestion controlled UDP or
for
> new
> congestion control algorithms -- or in our design assumptions -- for
> instance,
> maybe minimal protocol headers aren't worth the pain they cause.
> 
> - I'm not sure DCCP is dead.
> 
> - Structured Stream Transport's worth a look anyway.
> 
> http://www.bford.info/pub/net/sst.pdf
> 
> Eddie
> 
> 
> 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
> >> http://csperkins.org/
> >>
> >


[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