- From: James M Snell <jasnell@gmail.com>
- Date: Wed, 8 May 2013 17:12:38 -0700
- To: Poul-Henning Kamp <phk@phk.freebsd.dk>
- Cc: William Chan (ιζΊζ) <willchan@chromium.org>, Martin Thomson <martin.thomson@gmail.com>, "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
Suggested replacement text for the current "Frame Size" discussion in the spec... ... While the flow control protocol and framing mechanisms defined by this specification are largely independent of one another, the flow control WINDOW_SIZE places an upper limit on the total amount of data an endpoint can send to a peer at any given time. DATA, HEADERS, HEADERS+PRIORITY and PUSH_PROMISE frame sizes MUST NOT exceed the current WINDOW_SIZE for the stream or connection and MUST NOT be greater than 65,535 bytes. The 8 bytes of the frame header are not counted toward this limit. When a new connection is established, both endpoints are permitted to begin sending frames prior to the establishment of an initial flow control WINDOW_SIZE. Accordingly, there is a risk that an endpoint might initially send frames that are too large for the peer to handle. To mitigate this risk, it is RECOMMENDED that, until the initial WINDOW_SIZE is established, the total size of individual header-bearing frames not exceed the current TCP Maximum Segment Size (MSS) and that individual DATA frames are no larger than 4096 bytes. The 8-byte frame header is included in these limits. If an endpoint is unable to process a frame due to its size and the frame specifies any stream identifier field value other than 0x0, the endpoint MUST respond with a <xref target="StreamErrorHandler">stream error</xref> using the FRAME_TOO_LARGE error code. If the stream identifier field value is 0x0, the endpoint MUST send a <xref target="ConnectionErrorHandler">connection error</xref> using the FRAME_TOO_LARGE error code. ... - James On Wed, May 8, 2013 at 1:56 PM, Poul-Henning Kamp <phk@phk.freebsd.dk> wrote: > In message <CABP7Rbc8rs4-ktyGKwVxVC4MztcvYtARqBDoyEBYujfcpo4YDw@mail.gmail.com> > , James M Snell writes: > >>Going back through this, here's a counter proposal: >> >>Let's get rid of the 8192 frame size rule and simply say that the >>maximum size for all DATA, HEADERS, HEADERS+PRIORITY and PUSH_PROMISE >>frames is either 65,535 or the current flow control WINDOW_SIZE, >>whichever is less. > > Hmm, *now* you're talking... > > I like it. > > -- > Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 > phk@FreeBSD.ORG | TCP/IP since RFC 956 > FreeBSD committer | BSD since 4.3-tahoe > Never attribute to malice what can adequately be explained by incompetence.
Received on Thursday, 9 May 2013 00:13:25 UTC