Re: dccp-udpencap discussed in TSVWG

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

 



 

> -----Original Message-----
> From: Phelan, Tom [mailto:tphelan@xxxxxxxxxxxx] 
> Sent: Wednesday, April 07, 2010 7:52 AM
> To: Dan Wing; Pasi Sarolahti; DCCP working group
> Cc: draft-ietf-dccp-udpencap@xxxxxxxxxxxxxx
> Subject: RE:  dccp-udpencap discussed in TSVWG
> 
> Hi Dan,
> 
> Good comments -- thanks.  See inline...
> 
> Tom P.
> 
> PS.	Colin, if you're reading this, there are some comments about the
> SDP that could use your input.
> 
> > -----Original Message-----
> > From: dccp-bounces@xxxxxxxx [mailto:dccp-bounces@xxxxxxxx] On Behalf
> Of
> > Dan Wing
> > Sent: Wednesday, April 07, 2010 1:00 AM
> > To: 'Pasi Sarolahti'; 'DCCP working group'
> > Cc: draft-ietf-dccp-udpencap@xxxxxxxxxxxxxx
> > Subject: Re:  dccp-udpencap discussed in TSVWG
> > 
> > > -----Original Message-----
> > > From: dccp-bounces@xxxxxxxx [mailto:dccp-bounces@xxxxxxxx] On
> > > Behalf Of Pasi Sarolahti
> > > Sent: Thursday, March 18, 2010 11:01 AM
> > > To: DCCP working group
> > > Subject:  dccp-udpencap discussed in TSVWG
> > >
> > > Hi,
> > >
> > > Even though we do not have a DCCP session in the Anaheim
> > > meeting, the
> > > dccp-udpencap draft will be discussed in the TSVWG session.
> > > TSVWG will
> > > meet on Monday, March 22 at 13:00, so if you are 
> interested in this
> > > draft, please consider attending that session.
> > >
> > > Now might also be a good time to read the draft, if you 
> haven't done
> > > so yet. The draft is available at
> > > http://tools.ietf.org/html/draft-ietf-dccp-udpencap-00
> > 
> > Introduction:
> > 
> > 
> > The introduction should more clearly indicate if DCCP-NAT 
> is intended
> to
> > work
> > with NAPT (as defined in Section 4.1.2 of RFC2663) or not.  
> I believe
> that
> > is
> > the intent; please make the document clearer on that point.
> > 
> [Tom P.] OK
> 
> > 
> > OLD:
> >    In order for the [RFC4340] encapsulation to pass through Network
> >    Address Translation (NAT) devices, these devices must be 
> updated to
> >    recognize and properly modify DCCP.  This is the long-term
> objective
> >    for DCCP, and work is underway to specify the necessary 
> operations.
> > NEW:
> >    In order for the [RFC4340] encapsulation to pass through Network
> >    Address Translation (NAT) devices, these devices must be 
> updated to
> >    recognize and properly modify DCCP, as described in [RFC5597].
> > .....................................^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > 
> [Tom P.] OK
> 
> > 
> > 
> > Section 3.1, "UDP Header"
> > 
> >   "Source and Dest(ination) Ports: 16 bits each
> > 
> >       These fields identify the UDP ports on which the source and
> >       destination (respectively) of the packet are listening for
> >       incoming DCCP-NAT packets (normally both are the 
> default port to
> >       be assigned by IANA).  Note that they do not identify the DCCP
> >       source and destination ports."
> > 
> > With a NAPT, due to the UDP port being used by another host, or
> another
> > DCCP-NAT instance running on the same host, it is not true that
> "normally"
> > the
> > source and destination ports will be whatever IANA assigns.  If
> anything,
> > the
> > parenthetical statement should be almost reversed and say something
> like
> > "implementations should be aware that a NAPT may, for 
> various reasons,
> > assign
> > a different source UDP port than used by the host sourcing the
> DCCP-NAT
> > packets".
> > 
> [Tom P.] OK
> 
> > 
> >   "Length: 16 bits
> > 
> >       This field is the length of the portion of the UDP datagram,
> >       including the UDP header and the payload (which for 
> DCCP-NAT is
> >       the DCCP-NAT datagram) that is covered by the UDP Checksum."
> > 
> > Is the "DCCP-NAT datagram" the same as the "Application Data Area"
> from
> > the
> > diagram in section 3?  If they are the same, please pick 
> one term; if
> they
> > are
> > different, the I-D needs to explain the difference.  I believe it
> > encompasses
> > the DCCP-NAT Generic Header, Additional Fields, DCCP Options, and
> [DCCP?]
> > Application Data Area.
> > 
> [Tom P.] Your belief is what I intended.  It might be clearer to just
> remove the parenthetical statement.
> 
> > 
> > The I-D does not say if the UDP source/destination ports 
> need to agree
> > with
> > the DCCP source/destination ports, or what it means if they disagree
> > (nothing?).  Is there a reason there are ports in both places?  I
> presume
> > it
> > is so that one DCCP-NAT "tunnel" can be run between two DCCP-NAT
> hosts,
> > carrying various different DCCP flows?
> > 
> [Tom P.] The basic way this works is that the UDP ports indicate the
> DCCP-over-UDP service and the DCCP ports indicate the DCCP 
> service being
> used.  I thought this was clear but I guess it isn't.  I'll 
> try to clear
> it up.
> 
> There seems to be this idea circulating that you could eliminate the
> DCCP ports and use the UDP ports for the DCCP application.  Well, you
> could do this if you didn't want to run UDP services on those 
> ports.  I
> don't think we want to eliminate the ability to run UDP services other
> than DCCP-over-UDP.

That isn't the best way to look at it.  I mean, you will *always* be
running DNS over UDP/53, so UDP services aren't eliminated.  

Rather, I would look at it that once a specific UDP port is being used 
for DCCP-over-UDP, it is solely used for DCCP-over-UDP.  I don't think
that is a limitation at all; afterall, that is how IPsec-over-UDP and
lots of other tunnel-over-UDP function.  However, adding compression 
to the DCCP-NAT header (to eliminate the DCCP ports) would make
DCCP-over-UDP more complex so, for that reason, I would keep it out
of scope of your current I-D.  Such compression could be done in the
future to save 4 bytes.

> > Section 3.3:
> > 
> >   "If the UDP Checksum field, computed using standard UDP methods
> except
> >    including only UDP Length bytes of the UDP packet, is 
> invalid, the
> >    packet MUST be dropped."
> > 
> > I don't understand the phrase "except including only UDP 
> Length bytes
> of
> > the
> > UDP packet".  Can that be clarified?
> > 
> [Tom P.] Normally in UDP the Length field is the length of the entire
> packet.  DCCP-UDP modifies the semantics of the Length field to be the
> length of the packet that the checksum applies to.  So the DCCP-UDP
> checksum process differs from the standard by "including only 
> UDP Length
> bytes of the UDP packet."

Hm.

Are you prohibiting the UDP checksum from being 0?

> This is explained in the section describing the Length field (in 3.1).
> Maybe this can be cleared up by explicitly saying in that section that
> this is a change to standard UDP behavior.

That would help a lot, yes.

It makes me nervous, though.

> > Section 3.5:
> > 
> >    DCCP-NAT implementations should follow DCCP-STD section 14 with
> >                             ^^^^^^
> >                             SHOULD
> >    regard to maximum packet size and Path Maximum Transmission Unit
> >    Discovery (PMTUD).
> > 
> [Tom P.] OK
> 
> > 
> > 
> > Section 4:
> > 
> >    In general, the encapsulation of a higher-layer protocol within
> DCCP
> >    SHOULD be the same in both DCCP-STD and DCCP-NAT.  At this time,
> >    encapsulations of DTLS over DCCP, defined in [RFC5238] 
> and RTP over
> >    DCCP, defined in [I-D.ietf-dccp-rtp], have been already defined.
> The
> >    encapsulations of those protocols in DCCP-NAT SHALL be 
> the same as
> >    specified in those documents.
> > 
> > Except that, for native DCCP, the encapsulation allows 
> short sequence
> > numbers -- but that isn't allowed with DCCP-NAT.  That 
> should be made
> > clearer
> > 
> [Tom P.] OK
> 
> > 
> > Section 5.1:
> > 
> >    [I-D.ietf-dccp-rtp] defines SDP extensions for signaling RTP over
> >    DCCP connections.  Since it predates this document, it does not
> >    define a method for determining the DCCP encapsulation type.
> >                        ^^^^^^^^^^^
> >                        signaling
> > 
> [Tom P.] OK
> 
> > 
> > Section 5.1:
> > 
> >    This
> >    document updates [I-D.ietf-dccp-rtp] to add a method for
> determining
> >    the DCCP encapsulation type.
> > 
> > Then it needs "Updates: ietf-dccp-rtp" in the document 
> header.  Which
> > makes me
> > notice that DCCP-NAT is Experimental, whereas draft-ietf-dccp-rtp is
> > standards-track.  So, I think you cannot 'update' the 
> standards-track
> > document.  Rather, the extension to SDP needs to, itself, be
> > experiemental.
> > 
> [Tom P.] I see your point.  Can I replace "updates" with "extends"?

sure.

You should get an IANA registration for the a=dccp-in-udp (I *think*
there is a registry for the "a=" stuff; maybe there isn't...).

> > This is Experimental, so the a=dccp-in-udp is probably okay.  If it
> wasn't
> > experimental, it would probably be better to use the SDP 
> Capabilities
> > Negotiation stuff from MMUSIC (draft-ietf-mmusic-sdp-capability-
> > negotiation).
> > 
> > I would encourage the I-D require the UDP port *always* be 
> provided in
> the
> > signaling, and not allow it optionally as currently in the spec.
> Havoc
> > will
> > ensue if the port is not signaled, as implementations will
> expect/require
> > the
> > NAPT to not change port numbers (relying on the NAPT 
> keeping the port
> the
> > same), which will break outside of a quiescent lab environment.  We
> had a
> > similar problem with RTCP port numbers not being signaled 
> (assumed to
> be
> > the
> > RTP port number + 1) which has not worked out well in practice.
> > 
> [Tom P.] I tend to agree with you on this, but the draft is this way
> because of input from Colin Perkins, who would prefer that there be no
> way at all to signal the UDP port.  What's in the draft now is a
> compromise.

With a NAPT, the source port is can be changed (rewritten) by the
NAPT purposefully (all the time, such as to randomize the source
port used; or sometimes, because another host behind the same 
NAPT is already using the same port).  We need to support 
DCCP-over-UDP being used by two hosts behind the same NAPT 
(imagine in your own house or at Starbucks or a hotel, for 
example).  As it is, it creates an opportunity for two hosts
behind the same NAT to simply signal the 'default DCCP-over-UDP
port' and get their traffic [RTP or whatever] sent to the other
host.  Which I guess will drop it unless the DCCP ports match
(and occasionally they will - birthday problem).

> Colin -- do you have any input?
> 
> > 
> > 
> > Section 5.1:  What happens if the offerer supports 
> DCCP-over-UDP, but
> the
> > answerer only supports native DCCP?
> 
> [Tom P.] Then they can't communicate, and won't know that 
> until they try
> it. 

Ouch.

> Again, this is a compromise between my initial version of this
> (which allowed explicit signaling of which encapsulations were
> supported) and Colin's input.

You might want to hand-waive towards SDP Capability Negotiation and
towards ICE.

-d


> > Also, what happens if both offerer
> > and
> > answerer support DCCP-over-UDP, but there isn't a NAT between them
> (and
> > they
> > could have used DCCP for more efficient communication)?  It seems
> adding a
> > 'for future study' reference to ICE might be helpful if someone
> decides
> > they
> > want to optimize that situation.
> > 
> [Tom P.] OK
> 
> > -d
> > 
> > 
> > 
> > 
> 


[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