Hi Hanno,

Thank you for your clarifications.  The example you gave helps a lot.
I believe I now understand the text as written in this bullet (first
bullet, not second--my bad).  I no longer think it needs re-wording.

Best regards,
Jonathan

On Sun, Mar 29, 2020 at 11:07 AM Hanno Becker <hanno.bec...@arm.com> wrote:
>
> Hi Jonathan,
>
> > In Section 7.1, the 2nd bullet following para 1 reads: "When they
> > receive a message or fragment which is out of order, either because it
> > is not the next expected message or because it is not the next piece
> > of the current message. Implementations MUST NOT send ACKs for
> > handshake messages which they discard as
> > out-of-order, because otherwise those messages will not be retransmitted."
> > This is confusing as the difference between "out of order" messages
> > that require an ACK and those that do not is not quite clear. Also the
> > term "out of order" is written in two ways in this paragraph.
>
> On second read, I agree that this is confusing. The point is that
> while, to my understanding, out-of-order messages should trigger
> the transmission of an ACK acknowledging what has been processed
> so far, the out-of-order messages themselves must not be included
> in those ACKs unless they have been buffered.
>
> In more detail, there are two kinds of feedback signals from the
> handshake layer to the record layer:
>
> 1. Signal whether there is some disruption in the incoming flight
>    which the peer should be informed about via an ACK of those
>    messages received and processed so far.
>
>    That's what the first sentence in the above quote is about.
>
> 2. Signal whether a handshake message has been processed.
>
>    That's what the second sentence in the above quote is about,
>    which can also be rephased as follows:
>    An ACK must only be sent for those records which consist of
>    handshake messages each of which has been signalled as
>    processed by the handshake layer.
>
>    In particular, in situations where a single record contains
>    multiple handshake messages/fragments, and the implementation
>    processes only some of them, the record must not be acknowledged.
>    A real-world example for this would be an implementation which
>    supports out-of-order buffering but only contiguous reassembly:
>    If the initial fragment of a HS message gets sent in one record
>    which is lost, and the final fragment together with a subsequent
>    handshake message is sent in another record, then this latter
>    record must not be ACKed if the stack drops the fragment.
>
> Unbuffered out-of-order handshake messages do trigger signal 1,
> but they don't trigger signal 2.
>
> At least, that's my understanding.
>
> Best,
> Hanno
> ________________________________
> From: TLS <tls-boun...@ietf.org> on behalf of Jonathan Hammell 
> <jfhamme.c...@gmail.com>
> Sent: Friday, March 27, 2020 5:10 PM
> To: Sean Turner <s...@sn3rd.com>
> Cc: TLS List <tls@ietf.org>
> Subject: Re: [TLS] 3rd WGLC for draft-ietf-tls-dtls13
>
> I know that this WGLC was supposed to focus on the diff between -34
> and -37.  I don't have any comments on that diff, but I do have some
> comments on the draft following a re-read of the entire document.
>
> # Minor
>
> The term "deprotection" is used twice in document but never defined.
>
> Section 5.11 abandoning vs destroying association.  In the document we
> see the term "abandon" being used, referring to associations. However
> section 5.11 states that a server "MUST NOT destroy the existing
> association" and then further along it states that "the server MUST
> abandon the previous association". Do abandon and destroy mean the
> same thing?
>
> In Section 7, what does "handshake-containing" mean in the phrase "The
> ACK message is used by an endpoint to indicate
> handshake-containing..."?
>
> In Section 7, what does "non-duplicative" mean in phrase
> "Implementations MUST NOT acknowledge records containing
> non-duplicative handshake messages..."?
>
> In Section 7.1, the 2nd bullet following para 1 reads: "When they
> receive a message or fragment which is out of order, either because it
> is not the next expected message or because it is not the next piece
> of the current message. Implementations MUST NOT send ACKs for
> handshake messages which they discard as
> out-of-order, because otherwise those messages will not be retransmitted."
> This is confusing as the difference between "out of order" messages
> that require an ACK and those that do not is not quite clear. Also the
> term "out of order" is written in two ways in this paragraph.
>
> In Figure 10, the edge going from SENDING to FINISHED has no label to
> differentiate with edge to WAITING. Should it read: "send last
> flight"?
>
> In Figure 13, why is there no NewConnectionID message in the exchanges
> since new CIDs are offered?  Also, a short explanation of the CID
> negotiation and exchange could be helpful in the text.
>
> The state machine in Figure 10 is somewhat puzzling.  How do we
> differentiate between "Receive ACK for last flight" and "Receive last
> flight"? According to Figure 7, for example, the last ACK is a flight
> itself.  Also, with respect to the client, if sending last flight
> takes him to finished state, how will he then receive the ACK for his
> final flight?
>
>
> # Nits
>
> Section 3.1 Packet Loss.  Figure 1 is a little confusing since it
> resembles Figure 5; as each has the server sending a
> HelloRetryRequest. Might illustrate the concept better to have the
> server send a ServerHello in Figure 1 rather than a HelloRetryRequest?
>
> Section 5.1. para 3 - Typo.  "The DTLS 1.3 specification changes the
> way how cookies are exchanged compared to DTLS 1.2. DTLS 1.3 re-uses
> the HelloRetryRequest message". The "... the way how cookies..."
> either use "how" or "the way" but not both.
>
> Page 9 last para - Typo.  s/assocatiation/association
>
> In section 3, bullet #3, the term "flight" is used without being
> defined; a reference to section 5.6 would be nice.
>
> MSL is used first in section 4.2.1 but only defined in section 5.7.1
>
> In section 5.11 the notion of "CID concept" is mentioned. Might be
> nice to refer to section 9.1 where an example of the concept is
> presented. Also, section 9.1 never mentions "CID concept"; might be
> good to add the term to know that we are talking about the same
> thing.
>
> Figure 11 has no commentary describing the sequence. It would be helpful, for
> example, to add details on why the two ACKs are sent.
>
> In Section 6.1, the phrase "...loss and re-order an identifier is needed to
> determine..." could use a comma after "re-order" and possibly replace
> "re-order" with "re-ordering".
>
> In Section 6.1, the phrase "In addition to the key derivation steps
> described in Section 7 of [TLS13] triggered by the states during the
> handshake a sender may want to rekey at any time during the lifetime
> of the connection and has to have a way to indicate that it is
> updating its sending cryptographic keys" is long and difficult to
> follow.  It could be rephrased as "In addition to
> the key derivation steps described in Section 7 of [TLS13], a sender
> may want to rekey at any time during the lifetime of the connection.
> The epoch value provides a means to indicate that the sender is
> updating its sending cryptographic keys."
>
> In Section 6.1, replace "For example, client incorrectly uses..." with
> "For example, if a client incorrectly uses..."
>
> In Section 7, the term "current key" is used in the phrase
> "Implementations SHOULD simply use the current key."  Would it be
> clearer to say that "Implementations SHOULD use the key material of
> the current epoch"?
>
> In Section 8, paragraph 3, what does a "canned ACK message" mean?
>
> Section 11, second para, s/Even with such a test, An/Even with such a test, an
>
> Section 11, third bullet: the statement "...DTLS 1.3 records
> irrespectively of the use of a CID" could be rephrased as "...DTLS 1.3
> records irrespective of whether a CID is used or not."
>
> On Fri, Mar 20, 2020 at 10:18 AM Sean Turner <s...@sn3rd.com> wrote:
> >
> > This is the third working group last call for the "The Datagram Transport
> > Layer Security (DTLS) Protocol Version 1.3" draft available at
> > https://datatracker.ietf.org/doc/draft-ietf-tls-dtls13/. Please
> > review the document and send your comments to the list by 2359 UTC on
> > 27 March 2019.
> >
> > This is a targeted one-week WGLC intended to focus on the changes from -34, 
> > which was the subject of the second working group last call, and -37. The 
> > diffs between -34 and -37 can be found at:
> > https://www.ietf.org/rfcdiff?url1=draft-ietf-tls-dtls13-34&url2=draft-ietf-tls-dtls13-37
> > As you will see in the diffs, the changes include 2119-language related 
> > changes in s5.1 and s7. These two changes were introduced in -35, which was 
> > post in November.
> >
> > Note the the GH repo for this draft can be found at:
> > https://github.com/tlswg/dtls13-spec
> >
> > Thanks,
> > Chris, Joe, and Sean
> > _______________________________________________
> > TLS mailing list
> > TLS@ietf.org
> > https://www.ietf.org/mailman/listinfo/tls
>
> _______________________________________________
> TLS mailing list
> TLS@ietf.org
> https://www.ietf.org/mailman/listinfo/tls
> IMPORTANT NOTICE: The contents of this email and any attachments are 
> confidential and may also be privileged. If you are not the intended 
> recipient, please notify the sender immediately and do not disclose the 
> contents to any other person, use it for any purpose, or store or copy the 
> information in any medium. Thank you.

_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to