solving http problems with code and protocols
play

Solving HTTP Problems With Code and Protocols NATASHA ROONEY - PowerPoint PPT Presentation

@thisNatasha Solving HTTP Problems With Code and Protocols NATASHA ROONEY @thisNatasha Web 7. Application Data HTTP / IMAP HTTP 6. Data Presentation , SSL / TLS Encryption 5. Session and connection - management TLS 4. Transport of


  1. @thisNatasha Solving HTTP Problems With Code and Protocols NATASHA ROONEY

  2. @thisNatasha Web 7. Application Data HTTP / IMAP HTTP 6. Data Presentation , SSL / TLS Encryption 5. Session and connection - management TLS 4. Transport of packets and TCP / UDP streams 3. Routing and delivery of IP / IPSec TCP datagrams on the Network 2. Local Data Connection Ethernet 1. Physical data connection CAT5 IP (cables)

  3. @thisNatasha Some fundamental limitations

  4. @thisNatasha 300,000,000 m/s

  5. @thisNatasha 300,000,000 m/s Speed of Light

  6. 300km, 1ms @thisNatasha

  7. 10ms @thisNatasha

  8. 10ms @thisNatasha 5G

  9. @thisNatasha Only one way! And as the crow flies...

  10. @thisNatasha @thisNatasha Hops

  11. Not good enough! @thisNatasha

  12. CDNs, Edge @thisNatasha

  13. @thisNatasha Mobile Network (not wifi) The Internet

  14. @thisNatasha Amount of data

  15. @thisNatasha

  16. @thisNatasha

  17. @thisNatasha

  18. @thisNatasha

  19. @thisNatasha @thisNatasha Speed & Distance Amount of Data Capped by Speed of Light >100 objects per site 800k to 2.5mb data >50 resources on same domain

  20. @thisNatasha RTs are Evil Mostly because of physics. Not much you can do about that.

  21. @thisNatasha HTTP/1

  22. @thisNatasha HTTP/1 HTTP/1 Request TLS TLS TCP TCP IP

  23. @thisNatasha HTTP/1 HTTP/1 Request Response TLS TLS TCP TCP IP

  24. @thisNatasha HTTP/1 HTTP/1 Request Response TLS TLS Request TCP TCP IP

  25. @thisNatasha

  26. @thisNatasha

  27. Urgh... @thisNatasha

  28. @thisNatasha @thisNatasha Spriting

  29. @thisNatasha @thisNatasha Inlining

  30. @thisNatasha

  31. @thisNatasha

  32. @thisNatasha Image source: @jungkees

  33. @thisNatasha Pipelining

  34. @thisNatasha Home Supermarket Roads

  35. @thisNatasha Home Supermarket Roads

  36. @thisNatasha HTTP/1 HTTP/1 TCP Setup TLS TLS TLS Setup TCP TCP HTTP Request/Response IP

  37. @thisNatasha HTTP/2

  38. @thisNatasha SPDY

  39. @thisNatasha Home Supermarket Roads

  40. @thisNatasha Home Supermarket Roads

  41. @thisNatasha @thisNatasha 2009 Header Compression Parallel Connections SPDY Multiplexing Priority Marking A Protocol by Google Server Push TLS (to work)

  42. @thisNatasha @thisNatasha SPDY Header Compression A Protocol by Google

  43. @thisNatasha

  44. @thisNatasha

  45. @thisNatasha

  46. @thisNatasha

  47. @thisNatasha HTTP/2

  48. @thisNatasha “Idea was to maintain HTTP semantics but change how it is transported.” Daniel Stenberg https://daniel.haxx.se/blog/

  49. @thisNatasha Home Supermarket Roads

  50. @thisNatasha Home Supermarket Roads

  51. @thisNatasha HTTP/1 HTTP/1 Request Request TLS TLS Request Response TCP TCP IP

  52. @thisNatasha @thisNatasha Binary Header Compression HTTP2 Multiplexing Server Push A Protocol by IETF (SDPY base) TLS...

  53. @thisNatasha @thisNatasha HTTP2 A Protocol by IETF (SDPY base)

  54. @thisNatasha

  55. @thisNatasha @thisNatasha 35% Requests 70% HTTPS Connections Stats 13% Top 1,000,000 Sites 29% Top 1000 Sites Gimme gimme “90% your site”

  56. @thisNatasha 2% packet loss HTTP1 is better.

  57. @thisNatasha Head of line blocking

  58. @thisNatasha Home Supermarket Roads

  59. @thisNatasha Home Supermarket Roads

  60. Not good enough! @thisNatasha Home Supermarket Roads

  61. Not good enough! @thisNatasha Home Supermarket Roads

  62. @thisNatasha TCP issue (Can happen on any protocol with in-order delivery)

  63. @thisNatasha QUIC

  64. @thisNatasha “Idea was to maintain HTTP semantics but change how it is transported.” Daniel Stenberg https://daniel.haxx.se/blog/

  65. TCP @thisNatasha Home Supermarket Roads

  66. Transport Layer @thisNatasha @thisNatasha TCP UDP Suffers from Can work...with help. Head of Line Blocking

  67. @thisNatasha “We want QUIC to work on today’s internet” Jana Iyengar QUIC Editor, Google

  68. @thisNatasha Ossification

  69. @thisNatasha Why TCP or UDP only?

  70. @thisNatasha Image source: http://itpro.nikkeibp.co.jp/

  71. @thisNatasha Application HTTP/2 QUIC TLS 1.2+ Google Crypto Congestion Control TCP UDP IP

  72. @thisNatasha Application HTTP/2 QUIC TLS 1.2+ Google Crypto Congestion Control TCP UDP IP

  73. @thisNatasha @thisNatasha QUIC Goo A Protocol by Google

  74. @thisNatasha HTTP over QUIC HTTP/2 QUIC TLS 1.2+ TLS 1.3 TCP UDP IP

  75. @thisNatasha “A "stream" is an independent, bidirectional sequence of frames exchanged between the client and server within an HTTP/2 connection… A single HTTP/2 connection can contain multiple concurrently open streams…” Hypertext Transfer Protocol Version 2 (HTTP/2), RFC7540

  76. @thisNatasha Image source: High Performance Browser Networking https://hpbn.co/http2/

  77. @thisNatasha HTTP over QUIC HTTP over QUIC QUIC QUIC TLS 1.3 TLS 1.3 UDP UDP IP

  78. @thisNatasha HTTP over QUIC HTTP over QUIC QUIC QUIC TLS 1.3 TLS 1.3 UDP UDP IP

  79. @thisNatasha HTTP over QUIC HTTP over QUIC QUIC QUIC TLS 1.3 TLS 1.3 UDP UDP IP

  80. Head of Line @thisNatasha HTTP over QUIC HTTP over QUIC Blocking! QUIC QUIC TLS 1.3 TLS 1.3 UDP UDP IP

  81. @thisNatasha RTs are Evil Mostly because of physics. Not much you can do about that.

  82. @thisNatasha HTTP over QUIC HTTP over QUIC 0RTT: Setup + Data QUIC QUIC 1RTT: New Crypto Keys TLS 1.3 TLS 1.3 2RTT: If QUIC version negotiation needed UDP UDP IP

  83. Reduce the RTs! @thisNatasha

  84. @thisNatasha

  85. @thisNatasha

  86. @thisNatasha 7% Internet Traffic 35% Google Egress Traffic

  87. @thisNatasha How does this affect me?

  88. @thisNatasha Abstraction Is a computer scientist’s friend / fiend

  89. @thisNatasha n o i t a l o i V r e y a L

  90. @thisNatasha Web 7. Application Data HTTP / IMAP HTTP 6. Data Presentation , SSL / TLS Encryption 5. Session and connection - management TLS 4. Transport of packets and TCP / UDP streams 3. Routing and delivery of IP / IPSec TCP datagrams on the Network 2. Local Data Connection Ethernet 1. Physical data connection CAT5 IP (cables)

  91. @thisNatasha @thisNatasha Manage your resources logically Some things Detect on upgrade header and adapt Measure If you have to do something... Remember Physics!

  92. @thisNatasha @thisNatasha RTTs, Physics, Data SPDY, HTTP2, QUIC Recap Header compression Multiplexing & Streams We made it! Head of Line Blocking Make protocols for today’s internet

  93. @thisNatasha 3

  94. @thisNatasha

  95. @thisNatasha

  96. @thisNatasha

  97. @thisNatasha Thank-you People: Martin Thomson, Mark Nottingham, Jana Iyengar, Mike Bishop, Eric Rescola, Ian Swett

  98. @thisNatasha

  99. @thisNatasha

  100. @thisNatasha

Recommend


More recommend