Google SPDY/3 implementations are coming

870 views
Skip to first unread message

William Chan (陈智昌)

unread,
Feb 23, 2012, 12:17:13 PM2/23/12
to spdy...@googlegroups.com
In the interest of giving implementers enough time to update their implementations, I'm announcing the _rough_ (and always subject to change) schedule which we at Google will follow for the SPDY/2 to SPDY/3 update.

Chrome 19 will support both SPDY/2 and SPDY/3. Note that Chrome 19 is currently in dev channel. It is as yet undecided whether and how often SPDY/3 will be preferred over SPDY/2 when a server advertises support for both via NPN, because we are trying to make sure not to regress performance with SPDY flow control. Obviously at some point when we are happy with it, SPDY/3 will always be preferred over SPDY/2. Hopefully this can happen in the Chrome 19 release cycle, but might happen in a later release. Once it is stable, we will most likely retain support SPDY/2 for a release or two (this is still TBD), but we want to encourage servers to switch over to SPDY/3 support, so at some point we will drop support for SPDY/2.

Google servers will advertise support for both SPDY/2 and SPDY/3 sometime in March. Clients can begin testing against Google's SPDY/3 implementation at that point. It's likely that we will support SPDY/2 longer on Google servers than on Chrome (not all clients will auto-update, such as Android phones using a Android browser version that speaks SPDY/2), but we again will kill off SPDY/2 support at some point, so please transition to SPDY/3 implementations soon. We've spoken to Patrick McManus on the Firefox front and he will likely begin work on SPDY/3 as soon as there's Google server support so he can test his implementation. So we hope that Firefox will switch over to SPDY/3 in not too long, which should, combined with Chrome, account for the vast majority of SPDY use on the client side.

And of course, we will be updating http://code.google.com/p/spdy-compliance-tests/ to support SPDY/3 in the near future to help verify our SPDY/3 implementations.

Basically, the important thing to take away is that Google Chrome and servers will begin deploying SPDY/3 implementations in March and hoping to ditch SPDY/2 support as soon as we feel it is "reasonable" (which is very much TBD). And we want to encourage other implementors to switch over soon, and thus are declaring our intent to drop SPDY/2 support at some point in the future, so don't dawdle too long :)

Cheers.

patrick mcmanus

unread,
Feb 23, 2012, 8:45:41 PM2/23/12
to spdy...@googlegroups.com
On 2/23/2012 12:17 PM, William Chan (陈智昌) wrote:
> Basically, the important thing to take away is that Google Chrome and
> servers will begin deploying SPDY/3 implementations in March and
> hoping to ditch SPDY/2 support as soon as we feel it is "reasonable"
> (which is very much TBD). And we want to encourage other implementors
> to switch over soon,

I support this general approach while we work on standardization. No
flag days, but rather finite (and flexible) transition periods.

Once we reach a (hopefully) ietf proposed standard RFC level, then it is
suitable to talk about long term backwards compatibility. But until
then, let's iterate as quickly as we need to[*] and make sure deprecated
versions get the heck off the Internet. It certainly helps that HTTP/1
is pragmatically a fallback for implementations that fall way behind.

-Patrick

[*] a plea for discipline while we iterate: don't make official releases
of interim draft edits.. we should all have a single fixed value of what
v3 is and that should be unambiguous and once we have that discussion
should be focused around evolving v4.

Gautam Dewan

unread,
Feb 23, 2012, 9:33:51 PM2/23/12
to spdy...@googlegroups.com, will...@google.com
William: the flip_server code in the Chromium source was very useful as a reference in implementing a SPDY translator. Will you update that to spdy/3 as well ?

Regards,
Gautam.

William Chan (陈智昌)

unread,
Feb 23, 2012, 9:35:32 PM2/23/12
to Gautam Dewan, spdy...@googlegroups.com
Yes.

Simon B.

unread,
Feb 24, 2012, 3:13:56 PM2/24/12
to spdy-dev
On Feb 24, 2:45 am, patrick mcmanus <pmcma...@mozilla.com> wrote:
> [*] a plea for discipline while we iterate: don't make official releases
> of interim draft edits.. we should all have a single fixed value of what
> v3 is and that should be unambiguous and once we have that discussion
> should be focused around evolving v4.

How about reserving odd version numbers to signify mean "in
development"?
That way only spdy/even numbers} would be "allowed" to appear on
public sites and any test-deployments/half-baked spdy implementations
(imagine stray publicly deployed flip_server's) would be easy to spot
on the open internets.
(This idea could be implemented now, or otherwise I suggest waiting
one more version to keep the tradition with odd numbers as development
versions.)

Mike Belshe

unread,
Apr 1, 2012, 4:57:21 PM4/1/12
to spdy...@googlegroups.com
Hi, Will -

Any chance you can give an update on the Google server and Chrome status?

Thanks,
Mike

William Chan (陈智昌)

unread,
Apr 1, 2012, 5:06:02 PM4/1/12
to spdy...@googlegroups.com
It's supported in Chromium trunk (and will be released with Chrome 19, but not on by default, since we will be rolling out gradually via field trials so as to catch performance regressions due to flow control). I cannot comment in detail on the rollout server-side, but I believe it is already partially deployed.

Sam Young

unread,
Apr 2, 2012, 12:54:29 PM4/2/12
to spdy...@googlegroups.com, will...@google.com
Will,
Do you have any data or findings yet from enabling flow control? I'm interested to know how it performs. In which situations have you found it most useful?

Sam

William Chan (陈智昌)

unread,
Apr 2, 2012, 1:15:23 PM4/2/12
to Sam Young, spdy...@googlegroups.com
It's pretty important for proxies. We're gradually rolling it out *right now*. We've updated our performance dashboards with stuff to catch regressions, so hopefully I'll be able to report data soon. When we have stuff to report, we'll do so here. The only stuff I have to say currently is that we have definitely encountered some correctness bugs in our implementations :P

Antonio Vicente

unread,
Apr 3, 2012, 1:38:46 PM4/3/12
to spdy...@googlegroups.com, will...@google.com
On Mon, Apr 2, 2012 at 12:54 PM, Sam Young <sa...@amazon.com> wrote:
> Will,
> Do you have any data or findings yet from enabling flow control? I'm
> interested to know how it performs. In which situations have you found it
> most useful?

The main use of per-stream flow control is to protect proxies from
having to infinitely buffer POST data if data on the stream is coming
at a rate that is higher than what it can process while still
preventing head of line blocking from happening on the reader side
SPDY connections.

Flow control should have no effect on small requests and responses,
but could severely limit throughput on high bandwidth delay product
links. We will likely include recommendations once we have more data
from our experiments.

Patrick McManus

unread,
Apr 3, 2012, 1:54:48 PM4/3/12
to spdy...@googlegroups.com
On Tue, 2012-04-03 at 13:38 -0400, Antonio Vicente wrote:
> On Mon, Apr 2, 2012 at 12:54 PM, Sam Young <sa...@amazon.com> wrote:
> > Will,
> > Do you have any data or findings yet from enabling flow control? I'm
> > interested to know how it performs. In which situations have you found it
> > most useful?
>
> The main use of per-stream flow control is to protect proxies from

That's a good use case, but browser's consuming responses care too.
Especially when coordinating things like active tabs vs stalled/jerky
plugins that might be flowing over the same spdy session. The same
buffering conundrum exists that you describe with the proxy and the
right thing to do is to let the content source feel the back pressure
without screwing up the other streams.

so +1 flow control :)

Markus Johansson

unread,
Apr 26, 2012, 10:09:30 AM4/26/12
to spdy...@googlegroups.com, will...@google.com
Hi Will,

I want to test SPDY/3 without SSL and try start chrome using:

--use-spdy=no-ssl --enable-spdy3 --enable-spdy-flow-control

but I haven't yet managed to make chrome speak SPDY/3, only SPDY/2

I'm using 20.0.1115.1.dev-m

Is there a way to foce SPDY/3 ?

Markus

Roberto Peon

unread,
Apr 26, 2012, 2:28:35 PM4/26/12
to spdy...@googlegroups.com, will...@google.com
The server to which you're connecting must support SPDY/3 and say so in the NPN string.
If that doesn't happen, then chrome won't speak it either.
-=R

William Chan (陈智昌)

unread,
Apr 26, 2012, 2:36:28 PM4/26/12
to Roberto Peon, spdy...@googlegroups.com
This confusion probably came up since the *rough* timeline I outlined in the original announcement slipped. We'll be announcing a new timeline shortly.

Markus Johansson

unread,
Apr 27, 2012, 7:01:30 AM4/27/12
to spdy...@googlegroups.com, will...@google.com
I'm not using SSL / NPN. I'm using the --use-spdy=no-ssl option.

SPDY/3 can not be enabled without NPN ?

Markus

Colin Marc

unread,
May 15, 2012, 12:32:00 PM5/15/12
to spdy...@googlegroups.com, will...@google.com
Hi William - I see that chrome 19 was just released to stable. What is the status of preferring SPDY/3 over SPDY/2?

William Chan (陈智昌)

unread,
May 15, 2012, 1:11:37 PM5/15/12
to Colin Marc, spdy...@googlegroups.com
Thanks for asking! It's probably not going to happen in Chrome 20, but we're still discussing it. We've run into interesting situations where SPDY/3 is actually *faster* than SPDY/2 and also some other edge cases and implementation issues. We plan on discussing this publicly shortly, stay tuned. As for timelines, I'd say that Chrome 21 looks likely.

As always, this is just what we think will happen and we're not making any guarantees. Cheers.

Szabolcs Péter

unread,
May 15, 2012, 1:18:40 PM5/15/12
to spdy...@googlegroups.com
And what is SPDY/2.1? I see it at chrome://flags: Enable experimental SPDY/2.1 for flow control.
And it's not in Canary.

SyP

Roberto Peon

unread,
May 15, 2012, 1:35:05 PM5/15/12
to spdy...@googlegroups.com
SPDY/2.1 was our private testing of flow control. It was never exposed to the public via server, nor is it ever intended to so be..
-=R

Hark Lee

unread,
May 16, 2012, 7:49:58 AM5/16/12
to spdy...@googlegroups.com
I have one question about the difference between the length of Control Frame and Data Frame,
why the length of data frame is  8 bytes + length ,but not just the length of Data.

2012/5/16 Roberto Peon <fe...@google.com>

William Chan (陈智昌)

unread,
May 16, 2012, 8:52:34 AM5/16/12
to spdy...@googlegroups.com
The control bit + version + type + flags + length fields = 8 bytes. The value of the length field represents the length of the payload. Therefore, the total length of the data frame is header fields length + payload length which is 8 + "length".

Hark Lee

unread,
May 16, 2012, 11:53:07 AM5/16/12
to spdy...@googlegroups.com
Sorry my bad questions.
What I want to know is why the definition of the length of Data Frame and the Length of Control frame is different.

2012/5/16 William Chan (陈智昌) <will...@chromium.org>

Antonio Vicente

unread,
May 16, 2012, 12:00:59 PM5/16/12
to spdy...@googlegroups.com
On Wed, May 16, 2012 at 11:53 AM, Hark Lee <lihe...@gmail.com> wrote:
Sorry my bad questions.
What I want to know is why the definition of the length of Data Frame and the Length of Control frame is different.

The length field excludes the first 8 bytes of the frame in the case of both Data and Control frames.

Hark Lee

unread,
May 16, 2012, 12:07:33 PM5/16/12
to spdy...@googlegroups.com
ah I am sorry.
I misunderstood the middle sentence in this line 
"Length: An unsigned 24-bit value representing the number of bytes after the length field. The total size of a data frame is 8 bytes + length. It is valid to have a zero-length data frame."
I've got it now 
thanks.


2012/5/17 Antonio Vicente <a...@google.com>

William Chan (陈智昌)

unread,
Aug 21, 2012, 3:03:53 PM8/21/12
to Colin Marc, spdy...@googlegroups.com
Well, we totally slipped those estimates :P We're looking at this now again. We're currently considering dropping SPDY/2 support in Chrome 23, which should reach stable tentatively around early November. That's over 2 months from now. Would any other implementations/deployments have issues with transitioning to SPDY/3 by this point? If this is problematic, please speak up! Cheers.
Reply all
Reply to author
Forward
0 new messages