> On 28. mai 2015, at 11.08, Brian Trammell <i...@trammell.ch> wrote: > > hi Mirja, Joe, > > two more points inline... > >> On 28 May 2015, at 10:49, Mirja Kühlewind <mirja.kuehlew...@tik.ee.ethz.ch> >> wrote: >> >> Hi Joe, >> >> see below... >> >> >>> Am 27.05.2015 um 19:20 schrieb Joe Touch <to...@isi.edu>: >>> >>> >>> On 5/27/2015 6:02 AM, Mirja Kühlewind wrote: >>>> Hi Joe, >>>> >>>> I agree. This is a working document and we are still in the phase of >>>> collecting data while the next step is to discuss which things that are >>>> currently listed must/should be listed or not and also which of the >>>> things must/should be exposed to the app. >>> >>> To be clear, can you clarify the focus?: >>> >>> - what IS/IS NOT (i.e., current requirements) >>> >>> - what WILL BE/WILL NOT BE (i.e., future goals) >>> >>> AFAICT, this is about IS/IS NOT. With that in mind, it should not be >>> necessary to "collect data" and then decide later what is exposed or not. >> >> It’s about IS/IS NOT. However, currently there is very little (explicitly) >> exposed to the app. >> >> So the question is actually what should be exposed from the transport >> service components that are currently implemented in the then different >> existing transport protocols. >> >>>> However, I think we are on the write track for the TSC because these >>>> are thing that are implemented independent of the question if these >>>> things should be exposed to the app or not. >>> >>> There seems to be ample confusion about: >>> >>> - upper layer interface (abstract "API"): services to the user >>> >>> - lower layer interface: services needed from the next protocol layer >>> >>> - the protocol itself (as an abstract specification: i.e., the finite >>> state machine rules that relate commands and responses to the ULI, calls >>> and returns to the LLI, and internal state and events (e.g., timers) >>> >>> - the *implementation* of any of the above, e.g.: >>> - Unix sockets API >>> - interface to IPv4 >>> - Differences that include Reno vs. Cubic..., MTU algs, etc. >>> >>>> However, features in >>>> contrast should really only be the things that should be exposed. >>> >>> IMO, implementation issues should be fully out of scope. > > I disagree that implementation- (and indeed, deployment-) level concerns are > out of scope here. It's implementation level concerns which have made it > necessary to do something like TAPS in the first place. In a world without > middlebox impairment you don't need any path condition measurement or > negotiation at all, and "transport flexibility" would simply be a matter of > sticking libraries on top of TCP and/or SCTP options.
This sounds like you were talking cross purposes. My interpretation here is that Joe is saying (as in his other email) that "concept A" in his other email: http://www.ietf.org/mail-archive/web/taps/current/msg00490.html should be in scope of the discussion, but B and C should not. I agree with that and your answer doesn't say you don't. How to implement / deploy something are concerns that should be in scope of TAPS (they clearly are as per item 3 in its charter), but not necessarily in scope of this first document. >> It’s not about implementation issues but it’s not always absolutely clear >> which level of detail must be exposed to the app. Is it enough to only have >> an interface where you can choose to use congestion control or not, or do >> you need to choose between delay-based and lost-based congestion control, or >> foreground and background congestion control, or one specify algorithm, or >> just specify one specify detail of the algorithm e.g. don’t increase fast >> than one packet per RTT…? > > There's a second issue here, as well, and it's kind of hiding behind the > current structure of the document and the terminology. > > Right now, which transport protocol to use is either an explicit choice of > the application developer (by selecting an API / library and set of > configuration parameters which always map to a single wire protocol) or an > implicit one (e.g. by selecting a library or higher-layer protocol on which > to develop the application which only supports a single transport protocol). > > These protocols have positive properties (which we've called components) and > negative properties (that is, use of this protocol excludes some other thing > you might want to have). Stupid example: fully reliable single-streaming > implies head-of-line blocking. Here the positive and negative properties are > intrinsically linked. Less stupid example: assume you want reliable transport > of messages but don't care at all about the order in which they arrive (e.g. > because you're doing bulk object synchronization as with NORM). In this case > reliability would be a positive property of TCP, and head-of-line blocking is > a negative property, the positive counterpart of which (stream orientation) > you don't even want. In this case, it is the choice of components pulled > together into a single protocol at protocol design time which sets up the > conflict. > > I'm not quite sure how to capture this, or indeed whether this document is > where it should be captured, but it is very important for any approach to > TAPS which will use off-the-shelf protocols. I do believe, based on our own prior work, that you'll find surprisingly few such conflicts. I agree that documenting them will be important, but it seems obvious to me that this should be done as a second step, after creating a list of what all the protocols offer to applications. Probably in the same document, but let's first get that list right. Cheers, Michael _______________________________________________ Taps mailing list Taps@ietf.org https://www.ietf.org/mailman/listinfo/taps