Hi John, Thanks for your comments.
> On 2 Feb 2022, at 03:47, John Scudder via Datatracker <[email protected]> > wrote: > > John Scudder has entered the following ballot position for > draft-ietf-quic-datagram-08: No Objection > > When responding, please keep the subject line intact and reply to all > email addresses included in the To and CC lines. (Feel free to cut this > introductory paragraph, however.) > > > Please refer to https://www.ietf.org/blog/handling-iesg-ballot-positions/ > for more information about how to handle DISCUSS and COMMENT positions. > > > The document, along with other ballot positions, can be found here: > https://datatracker.ietf.org/doc/draft-ietf-quic-datagram/ > > > > ---------------------------------------------------------------------- > COMMENT: > ---------------------------------------------------------------------- > > As a rank QUIC neophyte my ability to offer serious technical review of this > document is limited at best. However I do have a few questions that (in the > best case) might reveal lacunae that experts overlooked but which trip up a > neophyte, or (in the worst case) only my own ignorance. > > 1. In the Motivation section you write, > > * Applications that open both a reliable TLS stream and an > unreliable DTLS flow to the same peer can benefit by sharing a > single handshake and authentication context between a reliable > QUIC stream and flow of unreliable QUIC datagrams. This can > reduce the latency required for handshakes. > > This threw me off, considering that in the previous section (Introduction) you > point to UDP/DTLS as a prior way of providing a similar service. In the > quotation above it seems as though you’re using them synonymously… or > something. > > TBH, I just don’t follow what the quoted text is getting at. :-( I do get (in > a > general way) that QUIC makes use of (parts of?) TLS, but that doesn’t allow me > to make sense of it. The quoted text supposed to mean that when a single application want to use both TLS and DTLS (for whatever reason) flows to the same peer, if done separately, they would need to use two handshake and authentication to make that happen. Where as with the QUIC datagram, as QUIC has already support for stream, you can collapse that two one handshake and authentication context. If this is not clear with the current text that can be rephrased. But I am not sure the introduction text is in conflict with motivation or makes things difficult to understand. > > 2. You’re inconsistent about whether DATAGRAM frames have a type, singular, or > types, plural. Plural seems right to me, but read on. In §3, you refer to “the > DATAGRAM frame types”, plural. But then in §4 you say that the LSB of “the > DATAGRAM frame type” (singular) “is the LEN bit”. Seems to me you should make > up your mind: either you have two types, 0x30 and 0x31, whose semantics differ > with respect to the Length field, OR you have a single type and a flag. > > Really I think you have two types (witness the IANA allocation: two, not one) > and the characterization of the LSB as a flag is just a distraction, I would > remove it. Clearly that doesn’t prevent an implementor from taking advantage > of > the structure if they want to, but I think it would clean up some awkwardness > in the prose. This specification defines two new DATAGRAM QUIC frame types. > > 3. Further to that, in Section 4 you say, > > The DATAGRAM frame type takes the form 0b0011000X > (or the values 0x30 and 0x31). > > It took me an embarrassingly long time to recognize that the first form you > list means “binary 0011000x, where x indicates ‘don’t care’”. I suppose maybe > I > was slow because we use hex notation all the time in our document set, and > binary notation exceedingly seldom in my experience. Possibly I am the only > person who will stumble on this. But possibly not. In any case if you were to > clean up my “is it one type, or two” complaint by collapsing the waveform to > “it’s two”, this problem would also go away. “Binary” can be explicitly mentioned here. > > 4. In Section 5 you say, > > When a QUIC endpoint receives a valid DATAGRAM frame, it SHOULD > deliver the data to the application immediately, as long as it is > able to process the frame and can store the contents in memory. > > Isn’t the final clause in the category of “well, duh”? I mean, is there a > situation in which a QUIC endpoint is *not* able to process the frame or *not* > able to store the contents in memory, but still might be expected to deliver > the data to the application? Seems like that’d be a “no”. > > I mean, the remark does no real harm, but why bother stating the obvious? I actually don’t mind stating the obvious, sometimes I feel that we dont mention the things that we often think obvious and that leads to some misinterpretation based on knowledge and experience of the readers. > >
smime.p7s
Description: S/MIME cryptographic signature
