Re: HTTP/2 and TCP CWND

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:00:09 UTC