Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
SPDY
Daniel Stenberg●    Free Software●    Network hacker●    Embedded developer●    Consultant    Email:     daniel@haxx.se   ...
network and protocols●    created curl●    lead c­ares and libssh2●    participate within IETFs HTTPbis,     ftpext2, http...
Agenda●    Why SPDY            ●                            Alternatives●    Goals               ●                        ...
Questions?●    interrupt!●    comment!●    remark!
Why SPDY    Growing HTTP requests – ●    uncompressed headers                                     ●                       ...
Goals●   50% reduction in page load time●   minimize deployment complexity – done over TCP●   avoid the need for any chang...
Who makes SPDY●    Created by Google in 2009●    Pioneered in Chrome●    Discussed in the open●    Several independent    ...
Basic features●    Multiplexed streams●    Request prioritization●    HTTP header compression●    Server­initiated streams
Multiplexed streams         Single TCP
Multiple streams●    Cheap to create new●    Amount limit can be set by peer     but it is unlimited by default●    Per­st...
Request prioritization●    Each stream has a 0­7 priority●    sender and recipient SHOULD use     best­effort to process s...
HTTP header compression●    zlib compression●    pre­populated compression     dictionary●    request headers: ~88% reduct...
Some Google numbers●   25 of the "top 100" websites●   simulated home network connections●   1% packet loss●   speedups ov...
Critiques●    SSL makes hard to debug and prevents     use in some schools and companies●    header compression prevents s...
Some implementations●    Chrome●    Firefox●    Amazon Kindle Fire●    more!
Alternative paths●   Waka ­ 2002●   HTTP­MPLEX ­ 2008●   HTTP pipelining with several TCP     connections●   SCTP●   SSH?●...
TCP initial congestion              Window●   ICW is 4K today●   ICW 10K: “average latency of HTTP responses     improved ...
TCP Fast Open●   IETF I­D●   transfer data in SYN and SYN­ACK●   1 RTT savings on 35% of HTTP requests     (10­40% have 40...
SPDY for curl?●    SPDY is here to speed up the web●    curls supposed to be speedy●    SPDY fits the spirit of curl●    m...
the Future●    will SPDY replace HTTP?●    will there be a HTTP 2.0?     websockets etc pushes it further     away●    wil...
Summary●    SPDY speeds up the web●    Theres no viable alternatives●    It will not replace HTTP within a     foreseeable...
Stuff to readhttp://www.blaze.io/mobile/http-pipelining-big-in-mobile/http://www.blaze.io/technical/http-pipelining-reques...
SPDY
Daniel Stenberg●    Free Software●    Network hacker●    Embedded developer●    Consultant    Email:     daniel@haxx.se   ...
network and protocols●    created curl●    lead c­ares and libssh2●    participate within IETFs HTTPbis,     ftpext2, http...
Agenda●    Why SPDY            ●                            Alternatives●    Goals               ●                        ...
Questions?●    interrupt!●    comment!●    remark!
Why SPDY    Growing HTTP requests – ●    uncompressed headers                                     ●                       ...
Goals●   50% reduction in page load time●   minimize deployment complexity – done over TCP●   avoid the need for any chang...
Who makes SPDY●    Created by Google in 2009●    Pioneered in Chrome●    Discussed in the open●    Several independent    ...
Basic features●    Multiplexed streams●    Request prioritization●    HTTP header compression●    Server­initiated streams
Multiplexed streams         Single TCP
Multiple streams●    Cheap to create new●    Amount limit can be set by peer     but it is unlimited by default●    Per­st...
Request prioritization●    Each stream has a 0­7 priority●    sender and recipient SHOULD use     best­effort to process s...
HTTP header compression●    zlib compression●    pre­populated compression     dictionary●    request headers: ~88% reduct...
Some Google numbers●   25 of the "top 100" websites●   simulated home network connections●   1% packet loss●   speedups ov...
Critiques●    SSL makes hard to debug and prevents     use in some schools and companies●    header compression prevents s...
Some implementations●    Chrome●    Firefox●    Amazon Kindle Fire●    more!
Alternative paths●   Waka ­ 2002●   HTTP­MPLEX ­ 2008●   HTTP pipelining with several TCP     connections●   SCTP●   SSH?●...
TCP initial congestion              Window●   ICW is 4K today●   ICW 10K: “average latency of HTTP responses     improved ...
TCP Fast Open●   IETF I­D●   transfer data in SYN and SYN­ACK●   1 RTT savings on 35% of HTTP requests     (10­40% have 40...
SPDY for curl?●    SPDY is here to speed up the web●    curls supposed to be speedy●    SPDY fits the spirit of curl●    m...
the Future●    will SPDY replace HTTP?●    will there be a HTTP 2.0?     websockets etc pushes it further     away●    wil...
Summary●    SPDY speeds up the web●    Theres no viable alternatives●    It will not replace HTTP within a     foreseeable...
Stuff to readhttp://www.blaze.io/mobile/http-pipelining-big-in-mobile/http://www.blaze.io/technical/http-pipelining-reques...
Upcoming SlideShare
Loading in …5
×

SPDY

6,577 views

Published on

Published in: Technology
  • Be the first to comment

SPDY

  1. 1. SPDY
  2. 2. Daniel Stenberg● Free Software● Network hacker● Embedded developer● Consultant Email: daniel@haxx.se Twitter: @bagder Web: daniel.haxx.se Blog: daniel.haxx.se/blog
  3. 3. network and protocols● created curl● lead c­ares and libssh2● participate within IETFs HTTPbis,  ftpext2, httpstate, hybi and more
  4. 4. Agenda● Why SPDY ● Alternatives● Goals ● can TCP improve?● Who makes SPDY ● SPDY for curl● Basic features ● Future● Some Numbers● Critiques● Implementations
  5. 5. Questions?● interrupt!● comment!● remark!
  6. 6. Why SPDY Growing HTTP requests – ● uncompressed headers ● Mozilla bug ● HTTP pipelining problems 264354 open ● Desire for multiple  simultaneous transfers since Oct 2004● TCP 3­way handshake● TCP slow start● Client­only initiated requests● HTTP has Optional  compression
  7. 7. Goals● 50% reduction in page load time● minimize deployment complexity – done over TCP● avoid the need for any changes to content● allow many concurrent HTTP requests over a single TCP  session● reduce bandwidth use● make TLS the underlying transport protocol
  8. 8. Who makes SPDY● Created by Google in 2009● Pioneered in Chrome● Discussed in the open● Several independent  implementations
  9. 9. Basic features● Multiplexed streams● Request prioritization● HTTP header compression● Server­initiated streams
  10. 10. Multiplexed streams Single TCP
  11. 11. Multiple streams● Cheap to create new● Amount limit can be set by peer  but it is unlimited by default● Per­stream flow­control (hello  SCTP!)
  12. 12. Request prioritization● Each stream has a 0­7 priority● sender and recipient SHOULD use  best­effort to process streams in  prio order
  13. 13. HTTP header compression● zlib compression● pre­populated compression  dictionary● request headers: ~88% reduction● response headers: ~85%  reduction
  14. 14. Some Google numbers● 25 of the "top 100" websites● simulated home network connections● 1% packet loss● speedups over HTTP of 27% ­ 60% in page  load time over plain TCP (without SSL)● and 39% ­ 55% over SSL
  15. 15. Critiques● SSL makes hard to debug and prevents  use in some schools and companies● header compression prevents single  header extraction, makes adding  headers expensive adds memory use per  connection● server push is potentially wasteful when  contents already cached
  16. 16. Some implementations● Chrome● Firefox● Amazon Kindle Fire● more!
  17. 17. Alternative paths● Waka ­ 2002● HTTP­MPLEX ­ 2008● HTTP pipelining with several TCP  connections● SCTP● SSH?● MPTCP
  18. 18. TCP initial congestion  Window● ICW is 4K today● ICW 10K: “average latency of HTTP responses  improved by approximately 10%”● “compounding HTTP pipelining with increasing  the ICW size can lead to reduction in page  load times by up to 80%” ­ Yahoo!
  19. 19. TCP Fast Open● IETF I­D● transfer data in SYN and SYN­ACK● 1 RTT savings on 35% of HTTP requests  (10­40% have 400+ms RTT)● Cookie to mitigate security  vulnerabilities
  20. 20. SPDY for curl?● SPDY is here to speed up the web● curls supposed to be speedy● SPDY fits the spirit of curl● multi interface, appear as  separate  ­ use the same● libspdy
  21. 21. the Future● will SPDY replace HTTP?● will there be a HTTP 2.0?  websockets etc pushes it further  away● will there be a TCP replacement?
  22. 22. Summary● SPDY speeds up the web● Theres no viable alternatives● It will not replace HTTP within a  foreseeable future
  23. 23. Stuff to readhttp://www.blaze.io/mobile/http-pipelining-big-in-mobile/http://www.blaze.io/technical/http-pipelining-request-distribution-algorithms/http://www.mnot.net/blog/2011/08/05/pipeline_nowhttp://tools.ietf.org/html/draft-cheng-tcpm-fastopen-00http://code.google.com/speed/articles/tcp_initcwnd_paper.pdfhttp://conferences.sigcomm.org/imc/2011/docs/p569.pdfhttp://www.chromium.org/spdyhttp://www.libspdy.org/http://daniel.haxx.se/blog/2011/10/18/libspdy/
  24. 24. SPDY
  25. 25. Daniel Stenberg● Free Software● Network hacker● Embedded developer● Consultant Email: daniel@haxx.se Twitter: @bagder Web: daniel.haxx.se Blog: daniel.haxx.se/blog
  26. 26. network and protocols● created curl● lead c­ares and libssh2● participate within IETFs HTTPbis,  ftpext2, httpstate, hybi and more
  27. 27. Agenda● Why SPDY ● Alternatives● Goals ● can TCP improve?● Who makes SPDY ● SPDY for curl● Basic features ● Future● Some Numbers● Critiques● Implementations
  28. 28. Questions?● interrupt!● comment!● remark!
  29. 29. Why SPDY Growing HTTP requests – ● uncompressed headers ● Mozilla bug ● HTTP pipelining problems 264354 open ● Desire for multiple  simultaneous transfers since Oct 2004● TCP 3­way handshake● TCP slow start● Client­only initiated requests● HTTP has Optional  compression
  30. 30. Goals● 50% reduction in page load time● minimize deployment complexity – done over TCP● avoid the need for any changes to content● allow many concurrent HTTP requests over a single TCP  session● reduce bandwidth use● make TLS the underlying transport protocol
  31. 31. Who makes SPDY● Created by Google in 2009● Pioneered in Chrome● Discussed in the open● Several independent  implementations
  32. 32. Basic features● Multiplexed streams● Request prioritization● HTTP header compression● Server­initiated streams
  33. 33. Multiplexed streams Single TCP
  34. 34. Multiple streams● Cheap to create new● Amount limit can be set by peer  but it is unlimited by default● Per­stream flow­control (hello  SCTP!)
  35. 35. Request prioritization● Each stream has a 0­7 priority● sender and recipient SHOULD use  best­effort to process streams in  prio order
  36. 36. HTTP header compression● zlib compression● pre­populated compression  dictionary● request headers: ~88% reduction● response headers: ~85%  reduction
  37. 37. Some Google numbers● 25 of the "top 100" websites● simulated home network connections● 1% packet loss● speedups over HTTP of 27% ­ 60% in page  load time over plain TCP (without SSL)● and 39% ­ 55% over SSL
  38. 38. Critiques● SSL makes hard to debug and prevents  use in some schools and companies● header compression prevents single  header extraction, makes adding  headers expensive adds memory use per  connection● server push is potentially wasteful when  contents already cached
  39. 39. Some implementations● Chrome● Firefox● Amazon Kindle Fire● more!
  40. 40. Alternative paths● Waka ­ 2002● HTTP­MPLEX ­ 2008● HTTP pipelining with several TCP  connections● SCTP● SSH?● MPTCP
  41. 41. TCP initial congestion  Window● ICW is 4K today● ICW 10K: “average latency of HTTP responses  improved by approximately 10%”● “compounding HTTP pipelining with increasing  the ICW size can lead to reduction in page  load times by up to 80%” ­ Yahoo!
  42. 42. TCP Fast Open● IETF I­D● transfer data in SYN and SYN­ACK● 1 RTT savings on 35% of HTTP requests  (10­40% have 400+ms RTT)● Cookie to mitigate security  vulnerabilities
  43. 43. SPDY for curl?● SPDY is here to speed up the web● curls supposed to be speedy● SPDY fits the spirit of curl● multi interface, appear as  separate  ­ use the same● libspdy
  44. 44. the Future● will SPDY replace HTTP?● will there be a HTTP 2.0?  websockets etc pushes it further  away● will there be a TCP replacement?
  45. 45. Summary● SPDY speeds up the web● Theres no viable alternatives● It will not replace HTTP within a  foreseeable future
  46. 46. Stuff to readhttp://www.blaze.io/mobile/http-pipelining-big-in-mobile/http://www.blaze.io/technical/http-pipelining-request-distribution-algorithms/http://www.mnot.net/blog/2011/08/05/pipeline_nowhttp://tools.ietf.org/html/draft-cheng-tcpm-fastopen-00http://code.google.com/speed/articles/tcp_initcwnd_paper.pdfhttp://conferences.sigcomm.org/imc/2011/docs/p569.pdfhttp://www.chromium.org/spdyhttp://www.libspdy.org/http://daniel.haxx.se/blog/2011/10/18/libspdy/

×