RE: Gen-ART LC Review of draft-thornburgh-adobe-rtmfp-07

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

 



hi Ben, all.

i have uploaded a new revision -08 of this draft that addresses comments raised during the IETF Last Call, which has now concluded.

Ben: i believe the "second-person" voice in this memo is used exclusively for detailing algorithms that are to be performed. i believe the imperative "do it like this" voice is appropriate to that use, so i did not change it.  i also feel that the change in voice helps indicate that the implementation is being addressed/instructed.

thank you for helping to improve the quality of this document.

-michael thornburgh


> From: Michael Thornburgh
> Sent: Friday, June 21, 2013 2:35 PM
> 
> hi Ben. thanks for your review. comments/replies inline.
> 
> > From: Ben Campbell [mailto:ben@xxxxxxxxxxx]
> > Sent: Thursday, June 20, 2013 4:07 PM
> >
> > I am the assigned Gen-ART reviewer for this draft. For background on
> > Gen-ART, please see the FAQ at
> >
> > <http://wiki.tools.ietf.org/area/gen/trac/wiki/GenArtfaq>.
> >
> > Please resolve these comments along with any other Last Call comments
> > you may receive.
> >
> > Document:  draft-thornburgh-adobe-rtmfp-07
> > Reviewer: Ben Campbell
> > Review Date:  2013-06-20
> > IETF LC End Date: 2013-06-25
> >
> > Summary: This draft is almost ready for publication as an informational RFC. However, I have some
> > concerns about the purpose and intended status of the document that I think should be considered
> prior
> > to publication.
> >
> >
> > Note: This is an informational draft that describes what I understand to be an existing protocol as
> > implemented by commercial products. Therefore, this review does not attempt to evaluate the protocol
> > itself. I assume the protocol is what it is, and it is not up to the IETF to agree or disagree with
> > it.
> >
> > *** Major issues:
> >
> > -- Why does this need to be published as an IETF stream RFC?  If I understand correctly, this
> > documents an existing protocol as implemented by commercial products. I agree with Martin's comment
> > that there is value in publishing this sort of thing, but I applaud the Adobe and the author for
> > publishing it so other implementations can interoperate with their products. But that could have
> done
> > that in an independent stream document, or even in an Adobe published document. (Perhaps even in a
> > prettier format ;-)  )  If we publish this as an IETF stream document, then I think it needs
> stronger
> > clarification that it is not an IETF consensus doc than just its informational status.
> 
> this memo documents an existing network transport protocol that is widely deployed and in widespread
> use in the Internet.  we felt that the IETF community (and in particular the participants in the
> Transport and Services Area) is the most appropriate community with which to share this work: 1)
> members of this community have the necessary and relevant expertise not only to understand the
> protocol, but to make use of it potentially in new applications beyond Flash; 2) it is a transport
> protocol similar in many ways to TCP and SCTP and widely deployed and used; 3) Adobe is interested in
> pursuing standardization of this protocol (with all that entails) if there is community interest, and
> the IETF is definitely the right place for that.
> 
> we are very grateful that Martin Stiemerling chose to sponsor this document.
> 
> with regard to comments in later messages in this thread, i'd be happy to include some (IESG-supplied)
> boilerplate in the document to clarify that it is not the product of an IETF WG.  however, note that
> both the title and first sentence of the Introduction indicate that this is "Adobe's blahblahblah",
> consistent with other vendor-protocol RFCs and consistent with IESG editorial insistence (as told to
> me by a former TSV AD).  see RFC 4332 and RFC 6802 for two examples of vendor-specific/supplied
> protocols.  see also the IESG note in RFC 4332 as an example disclaimer that could be added.
> 
> > Along those lines:
> >
> > 	-- Is this document the authoritative specification? (I suspect not.) Who owns change control? I
> > assume that to be Adobe and/or the authors. What expectation do readers of this draft have that it
> > represents the current version of RTMFP at any point in time?
> 
> this memo is the authoritative specification for Adobe's RTMFP.  Adobe owns change control.  i believe
> the second and third paragraphs of the Introduction indicate to a reader that this draft represents
> RTMFP as deployed in the named Adobe products at the time of writing.
> 
> > 	-- Under what circumstances would one desire to implement this? I can infer that from the
> > introduction, but it would be nice to see some sort of applicability statement making it explicitly
> > clear that this is not an IETF protocol, and that one would implement it in order to interoperate
> with
> > certain Adobe products. I know that some of this may be implied by the fact that this is
> informational
> > rather than standards track. But I don't expect readers who are not IETF insiders to understand that
> > subtlety without some explicit words to that effect. In particular, it would be good to clarify the
> > difference between this and the many "not quite accepted as standards track by some working group"
> > nature of a number of our informational RFCs that describe protocols.
> 
> i will expand on applicability beyond what i specify in the first paragraph of the Introduction, in
> general terms such as the kinds of functionality we use this protocol for in Flash. note that
> interoperation with certain Adobe products, such as Flash Player, requires additional information such
> as the Flash-specific Cryptography Profile and syntax/semantics of mapping Flash's "Real Time
> Messaging Protocol (RTMP)" messages onto RTMFP flows.  these Flash-specific profiles and mappings are
> application-layer for RTMFP, analogous to HTTP over TCP.
> 
> > That all being said, this is overall a well written document. The rest of my comments are mostly
> > pedantic nits.
> >
> > *** Minor issues:
> >
> > -- section 1.2:
> >
> > I find the use of "MUST ONLY" confusing. I gather it means "you are _allowed_ to do X only under
> > certain conditions" rather than "you are _required_ to do X under certain conditions." If correct, I
> > think the words "MAY ONLY" would be more clear. If not, then I think the construct would be better
> > handled using existing 2119 language.
> 
> you're not the first person to be confused by that construct. i will change instances of "MUST ONLY"
> to "is allowed only if" (or similar) and remove the definition for "MUST ONLY" from Section 1.2.
> 
> > -- section 3.2:
> >
> > Do I understand correctly that all endpoints are expected to be able to present certificates? Do you
> > find that common in the field? I realize the nature of the certs will depend on the security
> profiles.
> 
> yes, all endpoints have certificates. in the RTMFP-for-Flash world, these certificates are not X.509
> certs, and are anonymous and ephemeral.
> 
> > -- sections 3.2 and 5
> >
> > Do I assume correctly that endpoints need a common crypto profile to communicate? Is there a
> > repository where one might find crypto profile documentation? Is there a commonly implemented one to
> > which this draft could refer?
> 
> yes, endpoints need a common cryptography profile to interoperate.  there is no repository for crypto
> profile documentation at this time. currently, there is one defined cryptography profile (the one used
> for Flash communication) that is not publicly documented, because i do not yet have permission to
> publish it.  i (meaning me personally) hope that a memo documenting the crypto/application profile for
> Flash communication (as being a widely deployed and used profile for RTMFP) would also be published
> someday as an I-D and hopefully an Informational RFC.
> 
> > -- section 3.2: "Multiple endpoints SHOULD NOT have the same identity."
> >
> > Why not MUST? Will things not break if two endpoints do have the same identity?
> 
> this should be "It is RECOMMENDED that multiple endpoints not have the same identity."  if two
> endpoints have the same identity, then they will be indistinguishable.  this will not break RTMFP, but
> might confuse an application.  that being said, there could potentially be reasons to have different
> endpoints with indistinguishable identities and that potential should not be normatively prohibited.
> 
> > -- "Authenticity MAY comprise verifying an issuer signature chain in a public key infrastructure"
> >
> > Is that really normative, or just an observation of fact?
> 
> that "MAY" should be "can".
> 
> > -- " Canonical Endpoint Discriminators for distinct identities SHOULD be distinct."
> >
> > What if they are not? Do things break? It might be worth making this a MUST, or adding some
> additional
> > guidance about what might happen if the SHOULD is violated.
> 
> i will add a note that if the canonical EPD is the same for two distinct identities, then the
> "duplicate session" logic in section 3.5.1.1.1 (paragraph 6 step 1) might abort a new opening session
> to the second identity, which might not be desired.
> 
> > -- "A comparison function MAY comprise performing a lexicographic ordering..."
> >
> > Is that really normative, or just an example of something one might do?
> 
> that "MAY" should be "can".
> 
> > -- "A test SHOULD comprise testing whether the certificates are identical."
> >
> > What if it doesn't? Also, what constitutes "identical"? All fields match values? Bitwise match?  Is
> it
> > simply including the same identity or identities? Maybe an identity function provided by the crypto
> > profile?
> 
> again, that SHOULD should be reworded to RECOMMENDED.  i will change "identical" to "bitwise
> identical".
> 
> > -- 3.5, last paragraph:
> >
> > Can you offer guidance on reasonable buffer size and number ranges?
> 
> i assume you mean "3.4, last paragraph" (referring to packet reassembly buffers).  i will add some
> guidance and a "for example".  the guidance will depend on how that RTMFP will be used and the
> expected amount of resources available to it.
> 
> > -- 3.5.1.1.1, 3rd paragraph:
> >
> > What are the consequences of having a tag with less than 8 bytes of length? Is the SHOULD reasonable
> > here?
> 
> both of those SHOULDs should be RECOMMENDEDs.
> 
> > -- 3.5.1.1.1 throughout, and following sections:
> >
> > Does the upper case AND have special meaning?
> 
> upper case is the closest to bold face available in this format.  the intention is to emphasize (since
> there are multiple conditionals) that all conditionals are required to hold.
> 
> > -- 3.5.1.4, Deployment Note:
> >
> > How would a redirector know which endpoints might do this? Or should it never initiate a session?
> 
> this is guidance for designing and deploying an RTMFP system.  the redirector wouldn't know -- the
> designer should design the system such that the described circumstance doesn't happen (for example, by
> having the redirector never initiate a session).  this is properly a SHOULD NOT since doing so can
> cause undesired behavior (as described).  it is not desirable to give a normative prohibition or
> recommendation against a redirector initiating any sessions.  i feel this paragraph gives the
> narrowest normative limitation and an explanation for that limitation.
> 
> > -- 3.5.2:
> >
> > Do I infer correctly that two endpoints need not share the same congestion control algorithm to
> > communicate?
> 
> correct.  the timestamp echo facility, ack behavior (as described for flow receivers), and limitations
> on aggressiveness in 3.5.2/.* impose the normative envelope in which any congestion control algorithms
> should interoperate.
> 
> > -- 3.6.2.3.2, 2nd paragraph: "...an implementation SHOULD encode a Next User Data chunk instead of a
> > User Data chunk"
> >
> > I'm not sure why this needs to be normative, as I assume its just normal behavior. But if it does
> need
> > to be normative, why not a MUST?  Can the far endpoint reasonably handle things if the SHOULD is
> > violated?
> 
> this should be a RECOMMENDED.  the far end will work just fine if Next User Data is never used.
> 
> > *** Nits/editorial comments:
> >
> > -- General: There's quite a bit of inconsistent use of third-person vs second-person language.
> 
> i will try to clean that up.
> 
> > -- 3.1: It would be nice to see the overview earlier in the draft. I found it difficult to read
> > through all the data format stuff prior to section 3 putting them into context.
> 
> others have commented that they'd prefer sections 2 and 3 to be swapped. i resisted that as this order
> ("here are the pieces" and then "here's how they fit together") is my preferred way of explaining
> stuff.  also swapping those sections would be a huge editorial change which might have significant
> cross-reference and forward/back reference implications and could introduce hard-to-detect errors into
> the spec.  however, i think i can move the overview (or a summary thereof) to earlier in the spec
> (probably in Section 1).
> 
> > -- 3.5.1.4, Deployment Note:
> >
> > s/which/that
> 
> good catch.
> 
> > -- 3.5.1.6, last paragraph:
> >
> > Which diagram? (An explicit cross-ref would help.)
> 
> oops. that paragraph used to be the postamble of the figure, so it obviously meant "this figure".
> i'll change "the figure" to "Figure 17".
> 
> > -- 3.5.2:
> >
> > What is meant by "aggressive" in this context? Aggressive in avoiding congestion, or aggressive in
> > sending data?
> 
> aggressive in sending data. i'll make that clarification.
> 
> > -- 3.6.2.3.1 and subsequent sections:
> >
> > Does the all-caps "FIRST" have special meaning?
> 
> it is all-caps for typographical emphasis.
> 
> thank you!
> 
> -michael thornburgh





[Index of Archives]     [IETF Annoucements]     [IETF]     [IP Storage]     [Yosemite News]     [Linux SCTP]     [Linux Newbies]     [Fedora Users]