Slashdot Mirror


Google's SPDY Could Be Incorporated Into Next-Gen HTTP

MojoKid writes "Google's efforts to improve Internet efficiency through the development of the SPDY (pronounced 'speedy') protocol got a major boost today when the chairman of the HTTP Working Group (HTTPbis), Mark Nottingham, called for it to be included in the HTTP 2.0 standard. SPDY is a protocol that's already used to a certain degree online; formal incorporation into the next-generation standard would improve its chances of being generally adopted. SPDY's goal is to reduce web page load times through the use of header compression, packet prioritization, and multiplexing (combining multiple requests into a single connection). By default, a web browser opens an individual connection for each and every page request, which can lead to tremendous inefficiencies."

40 of 275 comments (clear)

  1. It's a secret plot by apple by gearloos · · Score: 5, Funny

    Its a secret plot by Apple to fix the lag in IOS 5 Safari by getting Google to find a way to speed up web page loads to cover it up!

    --
    "Computers are a lot like Air Conditioners" "They both work great until you start opening Windows"
    1. Re:It's a secret plot by apple by Anonymous Coward · · Score: 5, Funny

      Look dude, if you're going to spread a conspiracy properly, you need to spread your ideas out to a least 3 excessively long paragraphs or raging insanity. You could have easily structured it:

      -Secret plot by apple. They're evil, man.

      -The secret plot happens to be cuz iOS is evil like them.
      -iOS version 5 is also evil.

      -They've drugged Google with evil for more evil.

    2. Re:It's a secret plot by apple by LeperPuppet · · Score: 5, Funny

      Your conspiracy needs more Illuminati/Lizard People/FEMA camps/Aliens/Other batshit craziness.

      Pick any two and try again

    3. Re:It's a secret plot by apple by scdeimos · · Score: 5, Insightful

      Hate to rain on your parade, but didn't you realize that Apple will wait three years then have a media conference introducing iSPDY as their own invention?

    4. Re:It's a secret plot by apple by phonewebcam · · Score: 3, Funny

      And Microsoft to merely wrap some bloatware round it and call it their own, like they do with their "search engine".

  2. It's going to fail by Anonymous Coward · · Score: 3, Funny

    Microsoft has announced their implementation, DirectSPEW.

    It's going to kill SPDY when it debuts in a few months with Windows Phone 7.1.

    Hi bonch

    1. Re:It's going to fail by marcello_dl · · Score: 3, Funny

      Can't tell if troll or usual MS tactic.

      --
      ---- MISSING MISCELLANEOUS DATA SEGMENT --- [sigdash] trolololol
  3. What about pipelining and keep-alive? by the_other_chewey · · Score: 5, Interesting

    I realise that SPDY is about reducing the latency of HTTP connection handshakes -
    but wouldn't using the already existing and even implemented HTTP 1.1 standards
    for pipelining (requesting multiple resources in one request) and keep-alive (keeping
    a once-established connection open for reuse) mostly remove the handshake latency
    bottleneck?

    1. Re:What about pipelining and keep-alive? by laffer1 · · Score: 5, Informative

      When pipelining first came out, there were many buggy implementations. As a result, many browsers and web servers disabled the feature. Maybe it's time to turn it on for everything.

    2. Re:What about pipelining and keep-alive? by zbobet2012 · · Score: 5, Informative

      Browsers and servers almost all use persistent connections these days and have since at least the early 2000's. SPDY doesn't claim to do anything with this (the summary above is incorrect). Speedy does however implement several features of "pipelining" but in a more elegant manner. There are a host of issues with pipelining on the server side (it is a security risk, a description of why is here). SPDY effectively implements pipelining but without the associated security risks. It also implements more advanced features that allow the server to push data to the client without the client requesting it.

    3. Re:What about pipelining and keep-alive? by zbobet2012 · · Score: 5, Informative

      To reiterate my reply below no, pipelining offers very little gain vs true "multiplexing" and it represents a security risk.

    4. Re:What about pipelining and keep-alive? by grmoc · · Score: 5, Informative

      As one of the creators of SPDY..

      No, HTTP suffers from head-of-line blocking. There is no way around that.
      HTTP also doesn't have header compression (which matters quite a bit on low-bandwidth pipes) nor prioritization to ensure that your HTTP, javascript and CSS load before the lolkittens :)

    5. Re:What about pipelining and keep-alive? by Chatterton · · Score: 3, Insightful

      The risk described in the page is a Denial Of Service risk.

    6. Re:What about pipelining and keep-alive? by symbolset · · Score: 5, Funny

      Now that's a comment you don't see every day. Glad you're thinking of the lolkittens. They're precious.

      --
      Help stamp out iliturcy.
    7. Re:What about pipelining and keep-alive? by FireFury03 · · Score: 3, Insightful

      No, HTTP suffers from head-of-line blocking.

      Head of line blocking is a feature of TCP, and my (very cursory) understanding is that SPDY still uses TCP so how is this not still a problem?

      A technologically better solution would probably be to use SCTP instead of TCP, but unfortunately suffers from the fact that SCTP is only 12 years old, so Microsoft have stated that they have no intention of ever supporting it. However, despite MS's lack of support, that doesn't prevent the possibility of using SCTP in environments where it is available.

    8. Re:What about pipelining and keep-alive? by Anonymous Coward · · Score: 5, Informative

      Yes, the layer-4 protocol still requires in-order delivery. But lost packets is not the sort of problem SPDY is trying to solve. SCTP might also be a good idea, but you'd still want SPDY on top of it instead of HTTP because it's faster even assuming perfect, in-order packet arrival.

      But SPDY adds encapsulation within the TCP stream so data frames from multiple SPDY streams can be interleaved. It's like opening a bunch of separate TCP streams (like browser do now) but with a lot less overhead. It's also less complicated to implement than HTTP pipelining because each request/response gets its own SPDY stream so the underlying HTTP server can treat them as fully independent connections.

      Using with HTTP, even with pipelining, the server must respond to requests in the order they are received. So if you request something slow -- say a DB query -- and then a bunch of static images, HTTP will have to wait for the slow request, send that response, and then send the images. Using SPDY each request creates a new SPDY stream, and the server can send back responses in each stream without respect for the order in which they arrived. So in the same slow-DB + static images scenario SPDY would be able to immediately start sending back images and then send back the DB response when it was ready. SPDY could even start sending images, and when it sees that the DB response is half-ready and has a higher priority, interrupt the image transfer, send the first half of the DB response, complete the image response, and then complete the DB response.

    9. Re:What about pipelining and keep-alive? by petermgreen · · Score: 4, Interesting

      It seems to me like it would be a big win for ssl sites.

      Consider a browser visits a ssl site. First they have to open a ssl connection and download the page. Then they have a few choices.

      1: download all the items sequentially using the same connection (obviously slow and bad)
      2: open multiple connections (wasting time and processing power on multiple ssl handshakes)
      3: use pipelining and hope they don't hit an item that is slow to retrive and blocks everything else.

      With spdy they can just open one ssl connection and do everything over it without having requests block each other.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
  4. Real issue is... by blahplusplus · · Score: 5, Insightful

    ... embedded links that activate scripts/contact other adservers, etc. There is so much junk embedded in modern web-pages that most users have no clue how bad their client is being raped of accumulating identifiable information.

    1. Re:Real issue is... by jeti · · Score: 3, Interesting

      Too true. Installing the Firefox NoScript extension has been an eye-opener for me.

  5. remove that Adsense first? by Anonymous Coward · · Score: 3, Insightful

    Maybe Google could remove all the useless Google Adsense ads first because the main reason why pages load so slow is because of the million ad calls to Google?

    1. Re:remove that Adsense first? by Anonymous Coward · · Score: 3, Insightful

      Yes, because before ads, there was no culture whatsoever and people didn't communicate. What was the point anyway? It's not like you could monetize it somehow...

      Protip: in the real world, content precedes advertisements... strangely, even on the Internet... I know you're probably too young to remember, but there _was_ a time when the Internet had more content than ads. Waaaaay back.

      Also, most things on the Internet are free, because most things in the Universe are free anyway and because... if you charged money for your blog... do you think people would bother even consider paying you? LOL

      Enjoy your stupid capitalist utopia.

  6. Grossly Incorrect Summary by zbobet2012 · · Score: 3, Interesting

    By default, a web browser opens an individual connection for each and every page request, which can lead to tremendous inefficiencies

    HTTP1.1 which is supported by everything newer than IE5 (at least) utilizes persistent connections. You can verify this yourself with Wireshark in seconds. SPDYs optimizations largely revolve around "pipelining", but without some of the issues that it causes.

    1. Re:Grossly Incorrect Summary by VortexCortex · · Score: 5, Funny

      By default, a web browser opens an individual connection for each and every page request, which can lead to tremendous inefficiencies

      ... SPDYs optimizations largely revolve around "pipelining", but without some of the issues that it causes.

      No no no... You're using the wrong definition of "pipelining". First you must realize the Internet is a Series of Tubes. The Series part is important because TCP is a Serial protocol. If any Tube in the Series cracks and data is lost, endpoints start spewing packets all over the place in alarm! SPDY's optimizations revolve around "pipelining" -- That is: Lining the Pipes to prevent such events from happening in the first place.

      HTTP1.1 is OLD! The pipes built around that time are OLD too. The HTTP1.1 "pipelining" is starting to wear through after 17 years... Connecting the Tubes is expensive too; If a Header is compressed there's less chance of part being lost in a data leak when it flows through the tubes.

      There is an underground movement to get rid of the whole ridiculous idea of Tubes. I mean, Why would you take something as permeable as a NET and build a Series of Tubes out of it?! OF COURSE YOU NEED PIPELINING if you want it to be efficient!

      However, what if you didn't need a "pipe" what if you could get your information from the Sea of Data by Casting about the Web and sorting out the results on your end? You could simply keep trying until you were satisfied with the data you had. Even better if relevant data could be naturally organized -- swarm together -- in a sort of BitTorrent so you could get the data in the Net with less Casting... One could even take the center out -- Decentralize it -- to help prevent conflicts about which data came from what side. I mean: Who cares if someone wants to DownLoad a car so much that it's undrivable from all the weight? It doesn't make your car any less usable! Besides, the naysayers are all Hypocrites: They have to participate in the things they say are wrong just to even see into what we're doing -- You have to Peer to Peer!

      Don't even get me started on Cloud Computing! Seriously... It's VaproWare!

  7. I before E... by grcumb · · Score: 5, Funny

    "[T]he SPDY (pronounced 'speedy') protocol ....

    No WAY am I pronouncing it 'speedy'. I'm a callin' it 'spidey'. That way, I can build wearable network monitors which vibrate at high frequencies when the web server gets bogged down.

    And then.... I'll be able to interrupt my boss in mid-sentence and say, "Hang on, my spidey sensors are tingling..."

    --
    Crumb's Corollary: Never bring a knife to a bun fight.
    1. Re:I before E... by Surt · · Score: 5, Funny

      "I better check my web servers."

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
  8. Countermeasure for Nokia/RIM/O... speedup-proxies? by q.kontinuum · · Score: 5, Interesting

    Several mobile phone companies and some browsers offer special proxies nowadays to speed up browser experience on mobile phone and to reduce data usage for customers by serving prerendered or otherwise optimized/reduced pages. This might severely reduce Googles ability to collect user data from these users on the visited web pages (unless the user is logged in to google+ or alike with his browser, which might be unlikely given that for social networks there are usually separate apps).

    Is this now a step to reduce the need for these proxies in order to protect their own business?

    --
    Trolling is a art!
  9. What above the layer below? by Lisandro · · Score: 4, Interesting

    SPDY's goal is to reduce web page load times through the use of header compression, packet prioritization, and multiplexing (combining multiple requests into a single connection).

    I'd like to see SCTP getting some love, which sadly enough seems unlikely if it hasn't happened so far. It's a very simple protocol mixing the good parts of both TCP and UDP, plus it supports multiplexing and priorization off the bat.

    1. Re:What above the layer below? by rdebath · · Score: 5, Informative

      That's a really poor way of describing SCTP. Firstly the relationship between TCP and UDP is such that TCP could be built entirely ontop of UDP, the only reason it isn't physically is so that the port numbers for UDP and TCP are distinct. On the other side the best description of UDP is actually "Bare IP packets with port numbers".

      SCTP is not that, it would probably be most accurate to describe it as being a protocol with multiple TCP streams in both directions within one connection. Because it's within a single connection a 'stream' can be very small (ie a little message) and still be efficient and because there are multiple streams messages don't have to wait for each other; though they can if you want. It is probably simpler that TCP, but only because TCP has had so much bolted on.

      But you are absolutely correct, this would be a very good protocol for throwing a load of tiny requests at a web server and getting the results back as soon as they're ready. BUT, mixing it with SSL would not be very simple, I guess you'd have to do what OpenVPN does.

  10. Adds bufferbloat and reduces VoIP sound quality by haffy · · Score: 5, Interesting

    SPDY is a great example of someone thinking only of their own application.

    By increasing the initial window size from 3 to 10 they add to the bufferbloat effect (at the microscopic level) and increase Jitter from tolerable 38 ms to intolerable 126 ms on a 1 Mbit/s ADSL line. This level of jitter severely affects VoIP sound quality. And for this calculation I have assumed that the web browser only uses one TCP connection to load the page; if it uses two TCP connections the Jitter may double.

    But hey! What does any application developer care about other applications? They are only concerned about getting their own application sped up.

    When you improve the performance of your application, you should think about how it degrades the performance of other applications. If someone recommended increasing the O/S priority level of the web browser to the maximum, so all your other applications slowed down to a halt while the web browser was running, you would probably object. The increased initial window size is a comparable recommendation, but at a network buffering level, so very few people understand its negative side effects.

    We all want faster loading web pages, but we also want other applications to respond faster, and we also want perfect VoIP sound quality without the walkie talkie effect caused by high latency or jitter.

    1. Re:Adds bufferbloat and reduces VoIP sound quality by FireFury03 · · Score: 5, Informative

      By increasing the initial window size from 3 to 10 they add to the bufferbloat effect (at the microscopic level) and increase Jitter from tolerable 38 ms to intolerable 126 ms on a 1 Mbit/s ADSL line.

      I can't really see how increasing the window size would increase jitter. Network bandwidth aside, the throughput of a TCP connection is a function of latency and window size. Increasing the window size simply increases the throughput on high-latency networks.

      You're still limited to MTU-size packets (probably 1500 octets), and if you're using a priority queuing discipline this gives you a network jitter of about 12ms on a 1Mbps connection: (1500*8)/1000000 = 0.012 since the priority queue will insert the small high priority RTP packets between the large low priority packets.

      When you improve the performance of your application, you should think about how it degrades the performance of other applications. If someone recommended increasing the O/S priority level of the web browser to the maximum, so all your other applications slowed down to a halt while the web browser was running, you would probably object. The increased initial window size is a comparable recommendation, but at a network buffering level, so very few people understand its negative side effects.

      Increasing the window size is not comparable to increasing the priority of the traffic. I would agree with you if the application were setting the ToS flags(*) in an abusive way, but the window size just affects the maximum throughput for a connection given a specific latency connection. Given that latency isn't something generally very controllable, this can't even be regarded as an effective method of intentionally throttling throughput (shaping the traffic on the router would be more sensible here).

      (* routers out on the internet won't generally pay attention to ToS flags, so setting them abusively wouldn't normally give you any advantage anyway. However, routers at the ends of low bandwidth links, such as ADSL, should be paying attention to ToS flags in order to prioritise latency-sensitive protocols. If you're not doing this and just relying on FIFO queuing then you're pretty much screwed already for VoIP unless you're using the connection for nothing else).

  11. Re:Waiting for ad.doubleclick.net ...zzz... by VortexCortex · · Score: 5, Interesting

    I have that option too, but I'm willing to allow Slashdot to make whatever meager income they can by my presence since they're kind enough to allow my positive (and negative) contributions.

  12. Re:Waiting for ad.doubleclick.net ...zzz... by FireFury03 · · Score: 4, Funny

    Great! But will it do anything to speed up pages that refuse to display until the advertisements do? Even Slashdot takes longer to display because of some third-party ad server.

    XHTML largely fixed that by banning document.write(). Unfortunately the "industry" didn't like that and produced the enormous brain-fart known as HTML5, which went back to allowing all the crazy shit that XHTML had banned for a good reason.

  13. The IMPORTANT bit about SPDY by YA_Python_dev · · Score: 5, Insightful

    I realize you guys are just kidding, but there's a very important and overlooked part of the SPDY protocol. Hopefully TPTB won't understand its implications before it's too late to stop SPDY adoption.

    You see, the way I read the spec and the way it's currently implemented, SPDY requires every single connection to be encrypted. It's not optional.

    Imagine that, a world where MITM attacks suddenly become much much harder, where your ISP doesn't inject ads in your search results, where your mobile provider cannot "help" you screwing up your HTTP connections with a transparent proxy, where the British government cannot censor a Wikipedia page, where even the small sites can be encrypted because web hosts save bandwidth money by offering this option to everyone.

    Imagine a world where net neutrality becomes much harder to break because all big protocols are encrypted all (or at least most) of the time and the deep packet inspection shit that's used much more widely than people think just doesn't work anymore.

    SSH, Freenet, Skype BitTorrent and other P2P protocols are already there. This is the chance to do it for HTTP.

    Disclaimer: I speak only for myself and not anyone else. IANARE.

    --
    There's a hidden treasure in Python 3.x: __prepare__()
    1. Re:The IMPORTANT bit about SPDY by makomk · · Score: 4, Insightful

      Imagine a world where every time you set up a website you have to fork over money to a certificate provider in order for people to be able to access your sites, where the prices for certificates are sky-high once again because the CAs know that they've got everyone over a barrel, where governments use their influence to get their own CAs into every browser and go right on ahead MITMing everything in site by painting anyone that refuses as a supporter of child porn...

    2. Re:The IMPORTANT bit about SPDY by Anonymous Coward · · Score: 4, Insightful

      My god. We might have to self-sign our own certificates.

    3. Re:The IMPORTANT bit about SPDY by Yosho · · Score: 3, Insightful

      Do you really, honestly, truly believe that the US Government needs its own CAs and can't simply ask Verisign/Symantec to hand over a valid CA for a domain they want?

      The USG doesn't want to use Verisign/Symantec's CAs. If it was using them, then it would be possible for Verisign/Symantec to sign something and make it look as though it was signed by the USG. That's why they need their own.

      (believe it or not, the government does things with SSL other than impersonate web sites so that they can do MitM attacks on civilian communications)

      --
      Karma: Terrifying (mostly affected by atrocities you've committed)
  14. Supported since Firefox 11 by Skuto · · Score: 5, Informative

    Go to about:config and switch network.http.spdy.enabled.

    Mozilla has been quite critical of some Google technologies (Dart, Native Client, ...) that it saw as not truly open and closing down the internet to be the GoogleWeb. SPDY got implemented though. So I guess it's a a keeper and might see wider adoption.

  15. Although by sakura+the+mc · · Score: 3, Funny

    The speed benefits provided by this new protocol will rapidly be negated by the ability to cram more shit into each connection.

  16. What about caching proxies & web filtering? by mangobrain · · Score: 4, Insightful

    By choosing TLS as the underlying transport, inspecting traffic for debugging or monitoring purposes becomes nigh on impossible. It will only be possible to capture traffic at the application level, after decryption and decapsulation (which, depending on the nature of any given bug, may be too late), or if it originates from servers you own (i.e. the server's private key is available to you). SPDY proxies will become dumb pipes, unable to perform any sort of content caching, unless users are willing to accept that the proxy may perform MITM on their traffic. For such MITM to be feasible, users need to trust a CA certificate associated with the proxy, and rely on the proxy performing upstream certificate checks on their behalf, because the browser no longer has a single end-to-end TLS session with the origin server. In corporate and other "managed" environments, people often find this acceptable in moderation*, but I would be worried if this became the norm - it creates a mind-set whereby it's acceptable to breach users' privacy, and the more proxy vendors have incentive to implement the necessary (proprietary) code, the more scope there is for them to get it wrong, completely undermining security.

    Not to mention that introducing a mux/demux layer in between the network traffic and the individual requests/responses greatly increases the complexity needed to implement a proxy compared to plain-old HTTP.

    Losing the functionality of caching proxies would seem counter to Google's goal of speeding up the Web. Losing the ability to monitor and filter network traffic will greatly diminish the ability of schools, employers, public hotspot providers etc. to enforce acceptable usage policies, to the extent that some - especially employers - may simply resort to blocking web access outright.

    IMHO, the behaviour of SPDY proxies needs to be tightly specified, if they are going to exist. Standardise MITM behaviour, so that users and admins are aware of the pros and cons. Make it mandatory that end users are warned when MITM is taking place. Perhaps introduce new extensions, such as the ability for the proxy to establish TLS with the browser using its own certificate, but transmit a copy of any origin server certificates corresponding to proxied requests, so that the browser isn't entirely at the proxy's mercy WRT certificate verification. Perhaps introduce the ability to multiplex requests to different domains on the same connection, something a browser can't do when talking directly to distinct origin servers.

    Note that similar concerns apply to reverse proxies, used by website providers themselves to speed up their own infrastructure. It may seem desirable for both front-end caching and back-end servers to use SPDY, but establishing TLS sessions between two halves of the same infrastructure, over the LAN, will be detrimental to resource usage.

    * Bear in mind that currently, MITM is only necessary for HTTPS sites, which means that there are vast swathes of in-the-clear HTTP traffic for which caching doesn't introduce any inherent security concerns. By making *everything* use TLS, MITM becomes a consideration if you want to perform *any* caching/filtering at all, not just caching/filtering of secure sites. If there is no longer any distinction between secure and insecure sites, how does even a responsible admin know where to draw the line?

  17. Re:Parent is trolling by grmoc · · Score: 4, Informative

    As one of the creators of SPDY I can say: SPDY as specified today requires TLS and is only deployed using TLS.