I completely agree.

Marie-Jose Montpetit, Ph.D.
mari...@mit.edu
@SocialTVMIT

> On Jun 6, 2015, at 12:12 AM, Anna Brunstrom <anna.brunst...@kau.se> wrote:
> 
> 
> On 2015-06-05 22:17, Michael Welzl wrote:
>>> On 5. jun. 2015, at 19.52, Michael Tuexen 
>>> <michael.tue...@lurchi.franken.de> wrote:
>>> 
>>>> On 05 Jun 2015, at 16:03, Michael Welzl <mich...@ifi.uio.no> wrote:
>>>> 
>>>> 
>>>>> On 05 Jun 2015, at 15:52, Michael Tuexen 
>>>>> <michael.tue...@lurchi.franken.de> wrote:
>>>>> 
>>>>>> On 05 Jun 2015, at 15:39, Michael Welzl <mich...@ifi.uio.no> wrote:
>>>>>> 
>>>>>> 
>>>>>>> On 05 Jun 2015, at 12:35, Michael Tuexen 
>>>>>>> <michael.tue...@lurchi.franken.de> wrote:
>>>>>>> 
>>>>>>>> On 05 Jun 2015, at 11:05, Michael Welzl <mich...@ifi.uio.no> wrote:
>>>>>>>> 
>>>>>>>> 
>>>>>>>>> On 5. jun. 2015, at 10.12, Mirja Kühlewind 
>>>>>>>>> <mirja.kuehlew...@tik.ee.ethz.ch> wrote:
>>>>>>>>> 
>>>>>>>>> Okay, just to quickly clarify. In the charter only the word service 
>>>>>>>>> is used. We defined later on the words component and feature which 
>>>>>>>>> are currently not reflected in the charter. The part I've cited 
>>>>>>>>> below, I think, it should say components. However, it does not really 
>>>>>>>>> matter because we will in the current document first identify 
>>>>>>>>> components and then discuss features. In any case this document will 
>>>>>>>>> not define a new interface.
>>>>>>>> I got that but I disagree about "it should say components" for the 
>>>>>>>> part in the charter: from the definition, the component is an 
>>>>>>>> implementation, not what is exposed to the application. I think the 
>>>>>>>> more important part is to capture what's exposed to the application. 
>>>>>>>> For example: SCTP has a component called "strong error detection 
>>>>>>>> (CRC32C)". TCP has a component called "error detection (checksum)". 
>>>>>>>> This is probably not exposed to the application as such by any of 
>>>>>>>> these protocols. I'll explain below why this makes it less important 
>>>>>>>> in my opinion...
>>>>>>>> 
>>>>>>>> 
>>>>>>>>> I'd also say that this is not the flag ship document (as stated by 
>>>>>>>>> Joe). The flagship document probably is the third item on the charter 
>>>>>>>>> which then will probably also talk about the interface in more detail 
>>>>>>>>> (charter says on the third doc: "This document will explain how to 
>>>>>>>>> select and engage an appropriate protocol ...").
>>>>>>>> Well, this first document is no less important, everything hinges on 
>>>>>>>> it.
>>>>>>>> 
>>>>>>>> So let's think of the future system we're envisioning here. Is it 
>>>>>>>> going to provide "error detection" as a service? Is it going to 
>>>>>>>> provide "strong error detection"?
>>>>>>>> 
>>>>>>>> When making these decisions, I think we'd first need to go through the 
>>>>>>>> list of things provided to applications by the protocols in what Joe 
>>>>>>>> calls the abstract API. Probably we won't find it there: it's a static 
>>>>>>>> property of the protocols AFAIK. So, next, we go through all the 
>>>>>>>> static properties to figure out what we need to expose. Then, the 
>>>>>>>> question becomes: should a TAPS system decide for or against SCTP 
>>>>>>>> based on the level of error protection? Is this a basis for deciding 
>>>>>>>> for this or the other protocol?
>>>>>>>> 
>>>>>>>> These are important decisions but I think they are secondary, whereas 
>>>>>>>> what the protocols now explicitly offer is primary - because it would 
>>>>>>>> be very strange not to offer what is being offered today. We can 
>>>>>>>> decide to not expose "level of error protection" and give the TAPS 
>>>>>>>> more freedom in choosing the protocol; given that the goal is to stop 
>>>>>>>> connection applications to specific protocols, we CAN do that.
>>>>>>> I consider "protecting against bit errors" a service. And I think the 
>>>>>>> level is important. I agree, TCP and SCTP provide
>>>>>>> a protocol dependent level of protection, so there is no need to expose 
>>>>>>> this in the API of the particular protocol,
>>>>>>> however, I do think someone wants a strong checksum or not, and that 
>>>>>>> will influence the choice of protocols.
>>>>>>> So we do have services which are not configurable via the API.
>>>>>> Just for clarification: this wasn't about whether the level of 
>>>>>> "protection against bit errors" as such is important or not: I think the 
>>>>>> level of protection is a less important item to cover in the first 
>>>>>> document because, given current protocols (what this doc is about), you 
>>>>>> can't just switch it on or off - it comes with a choice of a whole 
>>>>>> protocol. So it's just a part of a protocol description - static 
>>>>>> protocol properties that come as a whole whenever you pick the protocol.
>>>>> Such as "reliable" for TCP? Or "byte stream" for TCP? These properties 
>>>>> come with choosing TCP...
>>>> Exactly.
>>>> 
>>>> I meant "important" as "to be discussed first" (hm, maybe simply "listed 
>>>> first in the doc"). I think it would make things easier and clearer to 
>>>> first discuss the things that are exposed by the abstract APIs today.
>>>> SCTP will help, then: it exposes "reliable". So if we'd go with that, the 
>>>> first item in your list above for TCP would already disappear from the 
>>>> discussion: it will eventually need to be exposed by a TAPS system because 
>>>> of SCTP anyway, and thus belongs in the list.
>>>> 
>>>> So if the document would, for instance, first list all the things that the 
>>>> protocol's abstract API now expose, and then follow with static properties 
>>>> that protocols have (and that a certain combination of chosen services 
>>>> would entail), then that list of static properties gets shorter - e.g., 
>>>> for TCP, from the two items above, only "byte stream" would be left.
>>> Structuring the things are a good idea. Which do you get "byte stream", not 
>>> "reliable byte stream"?
>> Only "byte stream" because you don't need to talk about reliability anymore 
>> when you have it covered by going through the abstract APIs.
>> 
>> Then, of course, things are tied to certain protocols ... after all TCP *IS* 
>> reliable so when you pick it e.g. for the byte stream (or perhaps MPTCP's 
>> functions) you always get reliability with it. But then, certain mechanisms 
>> are semantically compatible in a best effort world - e.g. an application 
>> asking for unreliable data transfer will not break if it gets reliability 
>> (it's just slower). This kind of match-making between the services and 
>> protocols might become easier if we first have a list of what protocols 
>> provide to upper layers, and then have the static properties per protocol 
>> MINUS the things in the first list. That's all I'm suggesting.
> 
> Even if there will be some overlap, I think it will be more clear to describe 
> the abstract API and the static properties per protocol. This is what a 
> protocol provides to upper layers and it will make the description of each 
> protocol self-contained. The static properties are not that many and we can 
> still make a clear distinction between the abstract API and the static 
> properties in the description of each protocol.
> 
> For the continued work it will also be useful to have a complete and agreed 
> upon view of what each protocol provides.
> 
> Cheers,
> Anna
> 
>> 
>> Cheers,
>> Michael
>> 
>> _______________________________________________
>> Taps mailing list
>> Taps@ietf.org
>> https://www.ietf.org/mailman/listinfo/taps
> 
> 
> _______________________________________________
> Taps mailing list
> Taps@ietf.org
> https://www.ietf.org/mailman/listinfo/taps

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
Taps mailing list
Taps@ietf.org
https://www.ietf.org/mailman/listinfo/taps

Reply via email to