Re: Proposal: New Frame Size Text (was: Re: Design Issue: Frame Size Items)

On May 10, 2013 12:05 PM, "William Chan (陈智昌)" <willchan@chromium.org>
wrote:
>
> On Fri, May 10, 2013 at 3:23 PM, James M Snell <jasnell@gmail.com> wrote:
>>
>> On Fri, May 10, 2013 at 11:11 AM, Roberto Peon <grmocg@gmail.com> wrote:
>> > The continuation bit is necessary for headers at a minimum, as we do
have
>> > headers which are > 65k, and something indicating either
>> > end-of-semantic-header-block is necessary to support that.
>> >
>> >
>> > I don't understand why it makes sense to limit header frames by the
window
>> > size.
>> > what if the window size is zero?
>> > What if it is 1 byte.
>> >
>>
>> If the window size is unreasonably low, then communication would not
>> be possible. Simple as that.
>>
>> Or, we can go ahead and set a lower-bound also.. say frame size is <=
>> min(WINDOW_SIZE,65k) && > 1k .. the low bound is fairly arbitrary and
>> we can set that at whatever is reasonable.
>>
>> The rationale for tying this to window size is to limit the number of
>> knobs that have to be turned to control the communication flow. window
>> size is already established as the amount of data the receiver is
>> willing to accept at any given time, it's reasonable to consider that
>> significant thought will have gone into establishing that window size
>> and that it will be tuned to achieve maximum network utilization.
>
>
> I don't really understand the point of this halfway stance of not
counting towards the window, yet having the frame size be bounded by the
window. DATA frames count towards the window, and their frame sizes are
bounded by the window as well (otherwise it'd be a PROTOCOL_ERROR). All the
control frames don't count towards any flow control window, and don't have
their frame sizes bounded by any window either.
>

Other control frames don't contain arbitrarily large sets of user or
application provided data like header bearing frames do.

> I kinda get the impression from reading this email of yours that you
think window sizes are fairly static, and while it's true that the target
window size may be somewhat static (target the size to match the buffers),
in practice window sizes as viewed by the sender shrink and grow (every
time you send bytes, you use up more of the window(s) and hence it shrinks,
and requires a WINDOW_UPDATE to grow it(them)). If the sender sends data
faster than the receiver can process, I believe that the connection window
will be 0 (from the sender's perspective, although a WINDOW_UPDATE may be
incoming to increase the window), which will block the sender from sending
any header frames.
>

I do not presume the Window to be static at all.  In fact, quite the
opposite,  I expect it to be quite variable.  I do not want header frames
that are beyond an endpoints ability to process at any given point in
time.  It's conceivable that if the widow size is 0, the receiver really
doesn't want the sender to initiate any new requests or to send arbitrarily
large blocks of headers.

>>
>>
>> - James
>>
>> > I don't see any real benefits for limiting control frames to anything
having
>> > to do with the window size as compared to sending a SETTING and having
the
>> > default before there and having it completely decoupled from window
size,
>> > and I do see a number of complications and ewws :/
>> > -=R
>> >
>> >
>> > On Fri, May 10, 2013 at 10:58 AM, Hasan Khalil <hkhalil@google.com>
wrote:
>> >>
>> >> While I love the idea of limiting frames to 65535B, I hate the idea
of a
>> >> continuation bit.
>> >>
>> >>     -Hasan
>> >>
>> >>
>> >> On Fri, May 10, 2013 at 1:54 PM, Martin Thomson <
martin.thomson@gmail.com>
>> >> wrote:
>> >>>
>> >>> On 10 May 2013 10:40, William Chan (陈智昌) <willchan@chromium.org>
wrote:
>> >>> > [...] are we going to move forward with the frame
>> >>> > continuation bit?
>> >>>
>> >>> I think that this was implicit in our decision to limit frames to
>> >>> 65535 bytes (or less).
>> >>
>> >>
>> >
>
>

Received on Friday, 10 May 2013 19:50:43 UTC