RE: WGLC comments for draft-ietf-dccp-dtls-04

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

 



Hi Gorry,

On your bottom bit, I agree.  A basic principle is that DCCP's view of
PMTU is dominant -- that's why the draft says DTLS "MAY choose to use
its own PMTU Discovery", but, "MUST NOT use a value greater than the
value determined by DCCP".

I'll parse this a little more closely to see what new/changed text is
necessary in the draft.

Tom P.

> -----Original Message-----
> From: Gorry Fairhurst [mailto:gorry@xxxxxxxxxxxxxx]
> Sent: Tuesday, January 15, 2008 12:03 PM
> To: Phelan, Tom
> Cc: gorry Fairhurst; dccp@xxxxxxxx; Pasi.Eronen@xxxxxxxxx
> Subject: Re:  WGLC comments for draft-ietf-dccp-dtls-04
> 
> See also in-line comments from me (this has opened some new questions
on
> the text).
> 
> Phelan, Tom wrote:
> > Hi Pasi,
> >
> > Thanks for the careful reading and comments.  See inline...
> >
> > Tom P.
> >
> >> -----Original Message-----
> >> From: Pasi.Eronen@xxxxxxxxx [mailto:Pasi.Eronen@xxxxxxxxx]
> >> Sent: Monday, January 14, 2008 2:33 AM
> >> To: dccp@xxxxxxxx
> >> Subject:  WGLC comments for draft-ietf-dccp-dtls-04
> >>
> >> Hi,
> >>
> >> 1) Section 3 says "Multiple DTLS records MAY be sent in one
DCCP-Data
> >> packet, as long as the resulting packet is within the Path Maximum
> >> Transfer Unit (PMTU) currently in force, if the Don't Fragment (DF)
> >> bit is being used, or within the current DCCP maximum packet size
if
> >> the DF bit is not being used (see section 3.5 for more information
on
> >> PMTU Discovery)"
> >>
> >> This sentence may not be fully correct, depending on what exactly
> >> is meant by "the PMTU currently in force".  RFC 4821 distinguishes
> >> between the PMTU used for normal data packets, and the packet
> >> size used for probe packets (which are larger than the current
PMTU,
> >> and in case of IPv4, have the DF bit set).
> >
> > [Tom P.] So it should say "(PMTU) currently in force [for normal
data
> > packets]" (inserted text in the brackets)?
> >
> Please see my question at end.
> 
> >> 2) Section 3.5, "A DTLS over DCCP implementation MAY use the
> >> DCCP-managed value for PMTU and not perform PMTU Discovery on its
> >> own."
> >>
> >> Well... although skipping some parts of PMTU Discovery may be
> >> possible, I think it would be an extremely bad idea to ignore this
> >> PMTU Discovery related part from RFC 4347: "DTLS implementations
> >> SHOULD back off handshake packet size during the retransmit backoff
> >> described in Section 4.2.4." I think this should be mentioned
> >> explicitly.
> >>
> > [Tom P.] OK.
>  >
> Fine with me too, if DTLS wishes to be more conservative than other
DCCP
> applications, that's no problem.
> 
> >> 3) Section 3.5, "DTLS implementations also sometimes allow
> >> applications to control the use of the DF bit (when running over
> >> IPv4)." This sentence should probably continue "or the use of
> >> fragmentation extension headers (when running over IPv6)"?
> >>
> > [Tom P.] OK.
>  >
> OK with me too, but note that sending bigger than MPS in either IPv4
or
> IPv6 using DCCP REQUIRES an API option in DCCP - by default, DCCP will
> not send any datagram that exceeds MPS, and hence requires
fragmentation.
> 
> >> 4) Section 3.2 says "DTLS server implementations MAY choose to
respond
> >> to a ClientHello message received in a DCCP-Request packet with a
> >> HelloVerifyRequest message, if denial of service countermeasures
are
> >> to be used, or a ServerHelloDone message otherwise, in the
> >> DCCP-Response packet."
> >>
> >> This text gives the impression that the server replies to
ClientHello
> >> with ServerHelloDone; this isn't correct.  It replies with a bunch
of
> >> handshake messages (ServerHello, Certificate, ServerKeyExchange,
> >> CertificateRequest, ServerHelloDone; some of which are optional in
> >> some cases).
> >>
> > [Tom P.] Oops!  I meant ServerHello.  I'll fix.
> 
> >> 5) Section 3.4 says "It could conceivably contain multiple DTLS
> >> sessions, in series or even in parallel, while simultaneously
> >> transferring non- DTLS data.  In practice this could be difficult
to
> >> demultiplex at the application/DTLS level and support for this is
> >> likely to be rare to nonexistent.  [RFC4347] does not specifically
> >> exclude multiple DTLS sessions simultaneously sharing the same
> >> underlying transport."
> >>
> >> RFC 4347 does require that the transport must be able to do the
> >> multiplexing, as DTLS cannot do it. Since DCCP doesn't contain any
> >> field which could be used for multiplexing, and DTLS records are
> >> encrypted, the claim "it could be difficult" is misleading -- it
> >> simply isn't possible to have multiple simultaneous DTLS sessions
> >> (without inserting some kind of application multiplexing layer
between
> >> DCCP and DTLS). (Having DTLS and non-DTLS data may be possible,
> >> though.)
> >>
> >> I would suggest rephrasing this along the lines "A DCCP connection
> >> has no knowledge of the type of application data it is
transferring.
>  >>
> - We should be careful here, since Service Codes do something at a
> connection level.
> - I'd prefer "DCCP cannot differentiate different types of application
> data sent over a DCCP Connection"
> 
> >> If the application performs appropriate multiplexing, a DCCP
> > connection
> >> could conceivably contain both DTLS and non-DTLS data in parallel.
> >> However, [RFC4347] cannot multiplex simultaneous DTLS sessions (as
> > DTLS
> >> records do not contain any kind of association identifier), and
thus
> >> running multiple parallel DTLS sessions over a single DCCP
connection
> >> is not possible."
> >>
> > [Tom P.] OK (thanks for the wording :-)).
> 
> >> 6) Editorial nit: Section 6.1, reference RFC4347 is missing the
second
> >> author's name.
> >>
> > [Tom P.] Thanks.
> >
> >> Best regards,
> >> Pasi
> >
> -----
> 
> If DTLS wants to probe, just to be absolutely sure the path supports
it,
> that's fine with DCCP. So, can I check my understanding here:
> 
> * DTLS SHOULD discover the DCCP MPS (as per RFC4340).
> 
> * DTLS MAY probe BELOW the MPS (to ensure the integrity of the path).
> 
> * DTLS could attempt to probe ABOVE MPS and
> (i) By default DCCP will refuse to send these packets at the API (but
> could I guess use them to trigger a PMTUD probe by DCCP or even use
some
> of them as a probe - not considered by anyone as far as I know). DTLS
> will anyway discover this limit.
> (ii) DTLS could request via the API that the datagram is permitted to
be
> fragmented by the end host. If DTLS REALLY wants to send large packets
> it could using this method. This does not seem helpful for PMTUD (but
> could I guess DCCP use them to trigger a PMTUD probe by DCCP or even
use
> them as a probe).
> 
> * DTLS SHOULD signal via the DCCP API to increase the MPS when needed.
> This will create a PMTUD trigger - always less than the CCMPS (e.g.
> sending a larger DCCP-Sync packet to update PMTUD, when allowed by the
> PMTUD algorithm).
> 
> 
> Therefore, I interpret this as DTLS would be bound to conform to
DCCP's
> view of whether a "probe" was allowed to be sent at this time. DTLS
can
> NOT independently probe for capacity above the DCCP MPS value in some
> un-coordinated way (e.g. when DCCP is also probing using DCCP-SYNC
> packets).
> 
> DCCP stacks that do not yet support PMTUD have no way of increasing
MPS.
> I'd argue that insuch implementations DTLS should not probe above the
MPS.
> 
> To me, it is not correct to suggest that the probes are an ALTERNATIVE
> to DCCP doing this.
> 
> Thoughts?
> 
> Gorry
> 
> 
> 




[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