Re: why not multiple, short-lived HTTP/2 connections?

On Tue, Jun 24, 2014 at 10:50 AM, <bizzbyster@gmail.com> wrote:

> I've raised this issue before on the list but it's been a while and
> reading Mark's ops guide doc (https://github.com/http2/http2-spec/wiki/Ops) I'm
> reminded that requiring the use of a single connection for HTTP/2 ("Clients
> SHOULD NOT open more than one HTTP/2 connection") still makes no sense to
> me. Due to multiplexing, HTTP/2 will naturally use FEWER connections than
> HTTP/1, which is a good thing, but requiring a single connection has the
> following drawbacks:
>
>
>    1. Servers must keep open idle connections, making load balancing more
>    complex and creating DOS vulnerability.
>
>
They can close them at any time if needed


>
>    1. Servers must turn off *tcp_slow_start_after_idle* in order for
>    browsers to get good performance, again creating DOS vulnerability.
>
> At least they have an option to keep the previous window. A new tcp
connection will always have slow start.

>
>    1. The number of simultaneous GET requests I'm able to upload in the
>    first round trip is limited to the compressed amount that can fit in a
>    single initcwnd. Yes compression helps with this but if I use multiple
>    connections I will get the benefit of compression for the requests on the
>    same connection, in addition to having multiple initcwnds!
>
>
And you loose congestion control, just by hacking the protocol to get more
throughput. Also browsers will unlikely request many requests on the first
batch, they will fetch a html, and once is being downloaded and new
resources discovered, then will trigger more requests.

>
>    1. The amount of data I'm able to download in the first round trip is
>    limited to the amount that can fit in a single initcwnd.
>
> Yes, that's the point of congestion control on tcp, discover the available
BW, reduce the potential looses of pkts.


>
>    1. Head of line blocking is exacerbated by putting all objects on a
>    single connection.
>
> HTTP2 should not show head of line blocking, multiplexes requests and
responses. That's the whole point of http2 and spdy, stop hacking tcp
congestion algorithm by opening parallel connections, multiplex onto one
and let it have decent transfer windows after a couple of requests.

-- 
Guille -ℬḭṩḩø- <bishillo@gmail.com>
:wq

Received on Tuesday, 24 June 2014 18:06:03 UTC