On 20 Dec 2014, at 00:14, Michael Welzl <mich...@ifi.uio.no> wrote:

> 
>> On 20. des. 2014, at 09.24, Michael Tuexen <tue...@fh-muenster.de> wrote:
>> 
>> On 19 Dec 2014, at 23:08, Michael Welzl <mich...@ifi.uio.no> wrote:
>> 
>>> 
>>>> On 20. des. 2014, at 01.13, Brian Trammell <i...@trammell.ch> wrote:
>>>> 
>>>> hi Michael,
>>>> 
>>>>> On 19 Dec 2014, at 10:29, Michael Welzl <mich...@ifi.uio.no> wrote:
>>>>> 
>>>>> 
>>>>>> On 19. des. 2014, at 20.05, Brian Trammell <i...@trammell.ch> wrote:
>>>>>> 
>>>>>> 
>>>>>>> On 18 Dec 2014, at 22:37, Michael Welzl <mich...@ifi.uio.no> wrote:
>>>>>>> 
>>>>>>> Hi,
>>>>>>> 
>>>>>>> Thanks for this update!
>>>>>>> 
>>>>>>> A question:
>>>>>>> 
>>>>>>>> We've posted a -01 rev of the TAPS transports document. We believe 
>>>>>>>> that the format and level of detail for the TCP section is about what 
>>>>>>>> we're targeting for each of the other sections, but this is still open 
>>>>>>>> to discussion.
>>>>>>> 
>>>>>>> Why is Nagle not a part of the protocol components and interface 
>>>>>>> description? It’s mentioned in the protocol description above, and it’s 
>>>>>>> something that an application decides.
>>>>>> 
>>>>>> Simple omission.
>>>>>> 
>>>>>> Should we make an attempt to give this (as a component) a generic name? 
>>>>>> "Selectable sender side buffering"? Or can we just call it simply 
>>>>>> "Nagle"?
>>>>> 
>>>>> In 
>>>>> http://heim.ifi.uio.no/michawe/research/publications/futurenet-icc2011.pdf
>>>>>  we took SCTP's term for the same function because we found it more 
>>>>> meaningful than "Nagle": Application PDU Bundling.  I like that - it's 
>>>>> also perhaps useful to folks to reuse terminology when we mean the exact 
>>>>> same thing.
>>>> 
>>>> So I'd argue that (1) this isn't *exactly* the same thing, as the 
>>>> interface to SOCK_SEQPACKET has application PDU preservation as an 
>>>> explicit part of the API contract,
>>> 
>>> Ahh… let me see if I get this right: your point is, in terms of the actual 
>>> function, the difference is:
>>> SCTP: app can give app PDUs 1, 2, 3, 4, each 450 bytes into the buffer, out 
>>> of which 3 may fit into a 1460-byte segment and get shipped together after 
>>> an RTT, wasting space for 110 bytes.
>> I guess the 1460 are related to the IP and TCP header.
> 
> Silly me, yes of course I was thinking of TCP while actually talking about 
> SCTP  :)
> 
> 
>> For SCTP it would be 
>> 20 bytes for IPv4 header,
>> 12 bytes for the SCTP common header,
>> 16 bytes for the DATA chunk header,
>> 450 byte payload
>> 16 bytes for the DATA chunk header,
>> 450 byte payload
>> 16 bytes for the DATA chunk header,
>> 450 byte payload
>> This gives 1430 bytes.
>> So 70 bytes are left. The SCTP implementation can just leave them unused or, 
>> and that is the point I want to make,
>> add
>> 16 bytes for the DATA chunk header
>> 54 bytes (the initial 54 bytes of the fourth 450 bytes user message)
>> Then the frame is completely used.
> 
> Ah, ok. I wasn’t aware of that. Is that decision up to the application?
Not via the socket API as it is defined right now.
> 
> 
>>> TCP: app gives the same app PDUs into the send buffer, where they are 
>>> treated as a byte stream and a segment of 1460 bytes can be exactly filled.
>>> 
>>> If that’s it, then I agree, that’s functionally different.
>>> 
>>> 
>>>> while SOCK_STREAM does not, but (2) that at the protocol level it might as 
>>>> well be, so "bundling" is exactly the right word. How about "sender 
>>>> segment bundling" for TCP?
>>> 
>>> Ok by me, but we'll have to be careful later: when trying to unify access 
>>> to these services across protocols, the two different names for SCTP and 
>>> TCP may make it seem like they are entirely different in functionality when 
>>> in fact they are not much different indeed: TCP’s Nagle operates on single 
>>> bytes, SCTP’s app PDU bundling operates on potentially larger blocks of a 
>>> given size?
>>> 
>>> What about: “data bundling (1 byte)”, as opposed to “data bundling 
>>> (application PDU)”  for SCTP ?
>> I wouldn't object against using the term Nagle also for SCTP. It refers to 
>> delaying the initial
>> sending of user message in case of outstanding data. Bundling in SCTP might 
>> happen even when
>> Nagle is turned off, for example when you retransmit messages.
> 
> I like Brian’s proposal of unqualified “data bundling” - it is just a bit 
> more meaningful than “Nagle” (despite the historic relevance of the latter).
OK. Then in both cases the application can't turn it off. Using TCP_NODELAY or 
SCTP_NODELAY just
affects it.

Best regards
Michael
> 
> Cheers,
> Michael
> 

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

Reply via email to