Re: [udp-encap rev2] discussion/comments

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

 



Hi Pasi,

See inline...

Tom P.

> -----Original Message-----
> From: Pasi Sarolahti [mailto:pasi.sarolahti@xxxxxx]
> Sent: Thursday, October 07, 2010 5:55 AM
> To: Phelan, Tom
> Cc: Gerrit Renker; dccp@xxxxxxxx
> Subject: Re:  [udp-encap rev2] discussion/comments
> 
> Hi,
> 
> I'm picking a selection of the Gerrit's comments for discussion
below...
> 
> I'd appreciate prompt responses, so that we can soon be able to
determine
> if we have common understanding about the draft, and then move
forward.
> 
> On Oct 5, 2010, at 10:32 PM, Phelan, Tom wrote:
> 
> >> If the latter is the main aim, then it would be great not to make
> > changes
> >> to
> >> the encapsulated data (DCCP header + DCCP payload), since this
would
> >> require
> >> a separate implementation for generating the DCCP-UDP payload data.
> >>
> >> Even if the DCCP checksum should break as a result of NAT-ing some
of
> > the
> >> IP adresses - the DCCP checksum can easily be recomputed at the UDP
> >> endpoint.
> >>
> > [TomP] I am very against doing the checksum calculation twice, once
for
> > UDP and then again for DCCP.  In my opinion, implementations should
know
> > which encapsulation is being used.
> 
> Maybe it would be useful to explain in 3.3 a bit more why this
approach
> was chosen, as Gorry suggested in an earlier mail. Trying to remember
the
> months-old discussion this, I guess the thinking was:
> 
> * UDP checksum is needed, to avoid problems caused by possible header
> corruption
> * Since UDP checksum covers the packet, DCCP checksum is redundant and
> adds complexity especially with pseudoheaders and assumed NATs along
the
> way (that cannot be assumed to recalculate the encapsulated DCCP
checksum)
> * From this then follows why we don't support partial checksums, which
I
> think is already pretty well said in the following subsection.
> 
[TomP] OK, I'll add some text on the rationale with regard to checksums.
Hopefully this won't just open another can of worms :-).

> >>  a. It would be good to specify how UDP ICMP errors are translated
> > into
> >> DCCP
> >>     semantics, in particular the "administratively prohibited"
> > variants
> >> of
> >>     Destination Unreachable (RFC 1122, 3.2.2.1), and how these
> > options
> >> are
> >>     to be passed on to UDP.
> >>
> >> GF>  Agree, something is needed to specify at the sender to say the
> >> procedure for generating errors
> >> and processing then at the receiver.
> >>
> > [TomP] I'll look into this for the next version.
> 
> Could we outline the main points already now on the mailing list, so
that
> we have a common understanding what the next version is going to say
about
> this. I'd like to avoid a second WGLC, if possible.
> 
> Gerrit, Gorry: do you have proposal about what should be said about
ICMP
> errors?
> 
[TomP] I'll look into this and send something to the list.

> >>  b. Are network-layer options (e.g. setting TOS) which may be set
> > with
> >> DCCP-STD
> >>     simply to be transferred to DCCP-UDP (same question for PMTUD -
> > is
> >> the
> >>     DCCP-UDP MTU the same the UDP_MTU - 8 ?).
> >>
> > [TomP] I believe this is already covered in the draft (sections 3.4
and
> > 3.5).  As to how implementations will choose to do this (as you
suggest
> > or some other mechanism), I don't thinks that's the business of this
> > draft.
> 
> Section 3.4 speaks only about ECN, but that could be extended to
clarify
> that TOS and other IP options are handled as they would be with
DCCP-STD
> (right?)
> 
[TomP] I'm not sure that 4340 has anything to say about the sections of
TOS besides ECN, or about IP options.  I'll look into it.

Sorry about the section confusion :-(.

> Nit: in 3.4 add a reference to RFC4340, section 12, instead of just
saying
> "DCCP-STD, section 12". The HTML version of the draft doesn't know in
its
> hyperlinks which document is being referred to :-)
> 
[TomP] OK.

> >>  c. Why does there need to be an IANA-assigned default port for
DCCP
> >>     encapsulation? The benefit of a well-known for
current-generation
> > NAT
> >> boxes
> >>     is not clear (it would not help NAT traversal). For
> > future-generation
> >> NAT
> >>     boxes might give the wrong impression to implementors that
> > DCCP-UDP
> >> is the
> >>     only feasible way of supporting DCCP.
> >>     For out-of-band signalling SDP has already been specified by
the
> >> document.
> >>
> > [TomP] For applications that don't use a rendezvous protocol such as
> > SDP, a default port is very useful.  That it might be changed along
the
> > way doesn't change the initial need.
> >
> >> GF>  This is debatable - I can see pros and cons, at the moment I'd
> > favour
> >> using
> >> a well known port. The document should say WHY the method is
chosen.
> >>
> > [TomP] I think that such as statement is not necessary.
> 
> This whole port issue has triggered a few comments, so I think it
needs to
> be clarified. The text in 3.1 could say:
> 
> * DCCP-UDP implementation binds to well-known UDP port XXX (specified
by
> IANA) for receiving incoming datagrams. It MUST accept datagrams from
any
> UDP source port, because it is possible that a NAPT has changed source
> port along the way.
> 
> * DCCP-UDP sender sends datagrams to well-known UDP destination port
XXX.
> It is left for the implementation to choose the UDP source port.
> 
> (With this draft particularly, it is important to be specific about
when
> we are talking about UDP ports and when we are talking about DCCP
ports.)
> 
[TomP] OK, I'll incorporate something along the lines of your
suggestion.

> >>  * 'For convenience, the [RFC 4340] encapsulation (updated by [RFC
> >> 5596])'
> >>    =>  as above, perhaps one could refer to RFC 4340 as "native
> >> packetization of
> >>       DCCP within IP" or something similar;
> > [TomP] I find that very clumsy.
> 
> I agree with Gerrit's point here. Something like "native DCCP over IP
is
> referred to as DCCP-STD" would be clearer than "[RFC4340]
> encapsulation..." but I'll leave it to you to think about the wording.
> 
[TomP] I thought Gerrit was saying to change DCCP-STD to "native
packetization of DCCP within IP" in all uses.  If it's just clearing up
that paragraph I have no problem doing that.

> >>  * Checksum:
> >>    - the specification (reference) of the UDP pseudo-header is
> > missing;
> > [TomP] RFC 0768 has already been referred to.  I can add another
> > reference here.
> 
> Yes, it probably clarifies to say that this is as specified in
original
> UDP spec.
> 
[TomP] OK

> >>  * section 3.3, checksum computation
> >>    - as per (e) above, this section could be omitted
> >>    - with regard to checksum validity it could be simplified by
> >>      referring validate DCCP-UDP packets according to RFC 768, with
> >>      the restriction that the checksum MUST NOT be disabled (zero
> > csum)
> >>    - (The term 'DCCP-NAT' has not been introduced in this
document.)
> >>
> > [TomP] I disagree.
> 
> but note the DCCP-NAT catch
> 
[TomP] Yes.

> >>  * section 3.5
> >>    - would be good to clarify the use of UDP fragmentation:
> >>      UDP implementations support fragmentation, UDPv6 in addition
> >> supports
> >>      jumbograms (RFC 2675), hence need clarification whether to
> >>      a) bump the maximum inner MTU of DCCP to exploit the limits of
> > UDP
> >> or
> >>      b) completely disallow fragmentation of DCCP-UDP packets
(since
> >> possibly
> >>         not supported by hardware)
> >>    - how shall section 14 of RFC 4340 be interpreted in this
context:
> >>      * is DCCP's MPS simply the UDP PMTU minus 8?
> >>      * apply RFC 5405 for UDP MTU fallback values?
> >>
> > [TomP] I think that 4340 section 14 (including 14.2) covers these
> > issues.
> 
> I agree with Gerrit. Section 3.5 is very minimal (one sentence) at the
> moment. It doesn't hurt to clarify how the MTU handling works, even if
it
> was trivial. This relates to the discussion of the ICMP errors in
general.
> Maybe there we could discuss also the PMTU case. Anyways, I assume the
> main logic works as specified in RFC 4340.
> 
[TomP] OK, I'll look into what can be done without completely repeating
4340.

> >>  * section 3.6
> >>    I don't understand the purpose of specifying the service code of
> > an
> >>    encapsulated protocol. Service code and encapsulation seem not
> >> related,
> >>    a connection could have any service-code value and still need
UDP
> >>    encapsulation, but why not leaving this transparent to DCCP?
> >>    In particular, if assuming a "DCCP tunnelling service" or a type
> > of
> >>    overlay network, it would be difficult to alter the contained
> > service
> >>    code. Also, like the checksums, this again introduces new
> > assumptions
> >>    into DCCP and complicates the specification. My personal view is
> > to
> >>    allow DCCP to pick whatever service code is appropriate for the
> > type
> >>    of service used, and not to add additional rules restricting
this
> > use
> >>    because the protocol ends up being "tunneled".
> >>
> > [TomP] I think you mean section 3.7.  I believe the section says
pretty
> > much what you say above.
> 
> I don't have section 3.7 in my -02 version of the draft.
> 
> I don't disagree with section 3.6 (that discusses service codes), but
> maybe it could be clarified and shortened a bit. As I read it, the
main
> point is that DCCP service code allocations and DCCP port allocations
are
> common for DCCP-UDP and DCCP-STD (there are no separate IANA tables
for
> these anyway). Whether an application chooses to not support some
> combination of these does not seem so relevant to discuss. That's
> something we cannot affect in any case.
> 
[TomP] I'll look into cleaning this up.

> - Pasi




[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