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,387 views
6,235 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,387
On SlideShare
0
From Embeds
0
Number of Embeds
3,237
Actions
Shares
0
Downloads
62
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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/

×