Re: HTTP/2 and TCP CWND

One way or another, we will most certainly need significantly more
interaction and thought between the Transport and Application groups with
respect to this topic.
The fact that most sites end up with a CWND which is 36 times larger than
the default (by opening up that many connections on average) means that the
interaction between transport and application layer is totally broken today.
This really needs addressing, else all the wonderful pictures we have about
separation of layers are already defunct and broken...

To be absolutely clear, the problem that Gabriel stated here is far less
scary (it still converges, we rarely see large windows requested, we do see
*smaller* windows requested) given the one connection of HTTP/2 that the
current behavior is with the many connections of HTTP/1 as it exists today.
If the one connection of HTTP/2 fails to compete with the many of HTTP/1,
implementors will "work around" this limitation and make things strictly
worse for everyone.
-=R


On Mon, Apr 15, 2013 at 7:59 AM, Simpson, Robby (GE Energy Management) <
robby.simpson@ge.com> wrote:

> At the risk of piling on, I'd like to elaborate (some of) my concerns with
> SETTINGS_CURRENT_CWND:
>
> When I saw this thread start 2 weeks ago, I thought of replying with a
> simple "+1 layer violation".  However, I have seen the argument that
> "layers are lovely ways of thinking about things - but they aren't goals
> unto themselves" so I took some time to think about some problems this
> could cause.
>
> User-land vs. Kernel-land — HTTP (and likely HTTP/2.0) is often (at least
> partially) implemented in user-land.  Most TCP implementations are
> implemented in "kernel-land".  From a pragmatic implementation approach,
> this could be problematic.  I'll grant that many parameters are passed from
> one layer to another, but in this case, where is the history or state
> preserved?  This could get nasty.  Bottom line, this does cross some
> typical implementation boundaries.
>
> Multiple applications, threads, or whatever — If HTTP/2.0 is going to be
> tracking settings from previous flows, these settings will need to persist
> across multiple threads, processes, or whatever (where flow properties may
> differ — think caches) as well as different applications (I personally use
> multiple HTTP/1.1 applications simultaneously).
>
> Other applications — While I recognize that HTTP/1.1 is a large
> contributor to TCP traffic, it is not the only application that uses TCP.
>  I realize we may all be excited with the optimizations we can provide as
> part of HTTP/2.0, but wouldn't it be better if all applications that use
> TCP could utilize these improvements?
>
> Other TCP flavors — Most of my interest in HTTP/2.0 is in the embedded
> space.  Sometimes in the embedded space we use other TCP flavors and do
> various "weird" things.  I think this group would be best-served not having
> to consider all of those various scenarios and the impact that
> SETTINGS_CURRENT_CWND may have.
>
> I'm quite glad that folks are thinking about ways to improve TCP flows.  I
> really hope that continues.  However, I'd suggest that work not occur here,
> but within the transport area, and that SETTINGS_CURRENT_CWND be removed
> from HTTP/2.0.
>
> Thanks,
> Robby
>
>
>
> Robby Simpson, PhD
>
> System Architect
>
> GE Energy
>
> Digital Energy
>
> M: +1 404 219 1851
>
> Robby.Simpson@GE.com
>
>
> From: Eliot Lear <lear@cisco.com<mailto:lear@cisco.com>>
> Date: Monday, April 15, 2013 12:55 AM
> To: Gabriel Montenegro <Gabriel.Montenegro@microsoft.com<mailto:
> Gabriel.Montenegro@microsoft.com>>
> Cc: Roberto Peon <grmocg@gmail.com<mailto:grmocg@gmail.com>>, Robert
> Collins <robertc@squid-cache.org<mailto:robertc@squid-cache.org>>, Jitu
> Padhye <padhye@microsoft.com<mailto:padhye@microsoft.com>>, "
> ietf-http-wg@w3.org<mailto:ietf-http-wg@w3.org>" <ietf-http-wg@w3.org
> <mailto:ietf-http-wg@w3.org>>, "Brian Raymor (MS OPEN TECH)" <
> Brian.Raymor@microsoft.com<mailto:Brian.Raymor@microsoft.com>>, Rob Trace
> <Rob.Trace@microsoft.com<mailto:Rob.Trace@microsoft.com>>, Dave Thaler <
> dthaler@microsoft.com<mailto:dthaler@microsoft.com>>, Martin Thomson <
> martin.thomson@skype.net<mailto:martin.thomson@skype.net>>, "Eggert,
> Lars" <lars@netapp.com<mailto:lars@netapp.com>>, Martin Stiemerling <
> martin.stiemerling@neclab.eu<mailto:martin.stiemerling@neclab.eu>>
> Subject: Re: HTTP/2 and TCP CWND
> Resent-From: <ietf-http-wg@w3.org<mailto:ietf-http-wg@w3.org>>
> Resent-Date: Monday, April 15, 2013 12:55 AM
>
>
> On 4/12/13 11:52 PM, Gabriel Montenegro wrote:
> I’ve opened issue #65 to track what we should do about
> SETTINGS_CURRENT_CWND:
> https://github.com/http2/http2-spec/issues/65
>
> As for my opinion about what to do: I think we should delete this TCP
> congestion window setting from HTTP/2.0.
>
> +1 for all the reasons Gabriel mentioned.
>
> Eliot
>
>

Received on Monday, 15 April 2013 15:18:59 UTC