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.

HTTP and 5G (fixed1)

6,441 views

Published on

HTML5 Conference 2018 で使用したスライド
(SlideShare のバグで初回アップロードスライドが壊れていたので修正版)

動画はこちら: https://youtu.be/_GjWo2r96eM?t=24188

Published in: Technology
  • Be the first to comment

HTTP and 5G (fixed1)

  1. 1. HTTP HTTP 5G html5 conference 2018 on 2018.11.25 WebDINO Japan - Tomoya ASAI with Softbank - Yasuhiro NAGAI
  2. 2. about:me Tomoya ASAI - dynamis webdino.org CTO Tech Speaker dynamis @ Community Twitter: @dynamitter facebook.com/dynamis I LOVE Firefox = Red Panda = Petit Panda = Lesser Panda2 @
  3. 3. about: WebDINO Japan Web, Browser, Open ( : ) (Chromium, Firefox ) ( : Gecko ) Web & Open Web IoT 2017 : Mozilla Japan WebDINO Japan https://www.webdino.org/3
  4. 4. Today's Topics Introduction 5G Softbank 結 5G 5G 5G x IoT Studio 4
  5. 5. Introduction
  6. 6. : Web 2014/10 - HTML5 2015/02 - HTTP/2 (RFC 7540, SPDY) 2015/10 - CSS snapshot 2015 2016/06 - ECMAScript 2016 2016/09 - TCP BBR Linux 2018/08 - TLS 1.3 (RFC 8446) 2019/xx - HTTP/3 (RFC TBD) 6
  7. 7. : HTTP over QUIC HTTP/3 IETF 103 (2018/11) QUIC WG HTTPbis WG 
 HTTPbis WG 2018/11 Chrome gQUIC IETF QUIC HTTP/3 Litespeed Facebook : https://mailarchive.ietf.org/arch/msg/quic/RLRs4nB1lwFCZ_7k0iuz0ZBa35s7
  8. 8. Web / 8
  9. 9. : 1. × Minify Gzip Brotli (2 ) HTTP/2 QUIC 2. × TLS1.3 QUIC 0-RTT ほ BBR 駄 駄9
  10. 10. Web 201x HTTP/3 HTTP/2 + BBR #html5conf #html5j_h
  11. 11. a. b. 5G MEC :
  12. 12. Softbank WebDINO 5G x IoT Studio WebDINO Japan 5G ( )
  13. 13. Softbank & WebDINO Japan #html5conf #html5j_h 5G
  14. 14. about:me 15 Yasuhiro Nagai yasuhiro.nagai@g.softbank.co.jp LTE, LTE-Advanced, 5G IoT-platform IoT (NIDD) MaaS
  15. 15. 1Gbps 10Gbps 10ms 10 / 1ms 100 / 5G4G
  16. 16. 35 4 35 35
  17. 17. 0
  18. 18. ? ?
  19. 19. 0 GC 4 1 N G N N 4 5 1
  20. 20. 1 1 00 GC E C E N N 5 ( )( -)
  21. 21. () X U NW 1 6 C
  22. 22. 5 1 JShtml CSS
  23. 23. 5 G T 8 C
  24. 24. A82 A82 V I G5 N 0 G D / 1
  25. 25. F e C M tr n E U 2 / 2/ P tr n e d i r I g g BG P r A 0
  26. 26. HTTP/2 & TCP Web
  27. 27. HTTP/1.1 + TLS/1.2 HTTP/1.1 HTTP (HOL) (RTT )
 TLS 1.2 2-RTT (false start 1-RTT) ... TLS/1.2 CRIME ... :http://bit.ly/1gqR7WN (https://www.youtube.com/watch?v=hQZ-0mXFmk8)36 TCP 3-way 
 1~3 RTT
 (RTT = 100ms )
  28. 28. HTTP 1.1 TCP 1 1 CSS JS 6 Softbank37
  29. 29. TLS 1.2 (full handshake) RTT (Round Trip Time) = 2-RTT TLS False Start 1-RTT 
 (Finished Application Data ) HTTP Application Data 1-2 session id Hello 1-RTT Application Data 38 clientHello serverHello
 ServerCertificate
 (ServerKeyExchange)
 (CertificateRequest)
 ServerHelloDone (ClientCertificate)
 ClientKeyExchange
 (CertificateVerify)
 ChangeCipherSpec
 Finished
 (Application Data) ChangeCipherSpec Finished Application Data ( )
  30. 30. TCP TCP TCP (HOL) ( ) ( ) BBR 39
  31. 31. TCP TCP TCP ACK CWND ( ) TCP N 1/N TCP (1 ) : https://csperkins.org/research/tcp-hollywood/2016-05-19-networking/40
  32. 32. HTTP/1.1 HTTP/2 TCP HTTP TCP 1 TCP HPACK (HTTP ) ( ) Google SPDY HTTP/241 H2 H2 HTTP/1.1 TCP 
 HTTP/2 TCP
  33. 33. TLS 1.3 : 0-RTT ( 1-RTT) (TLS 1.2 1 RTT ) ( ) TCP 42
  34. 34. TLS 1.3 (full handshake) Full Handshake 1-RTT PSK Application Data clientHello 0-RTT 0-RTT Hello 43 clientHello (KeyShare) serverHello (KeyShare)
 EncryptedExtensions
 (CertificateRequest)
 (Certificate)
 (CertificateVerify)
 Finished
 Application Data (Certificate)
 (CertificateVerify)
 Finished
 Application Data Application Data ( )
  35. 35. 0-RTT Hello Application Data (PSK) PSK 
 (PSK Hello ) (TLS ) POST44 clientHello (Application Data) serverHello
 EncryptedExtensions
 Finished
 Application Data EndOfEarlyData
 Finished
 Application Data Application Data ( )
  36. 36. TCP : BDP ( x RTT) CWND RTT (Slow Start) 45 25 Deliveryrate BDP BDP+BufSize RTT Optimal: max BW and min RTT (Kleinrock) amount in flight Optimal operating point 23 Deliveryrate BDP BDP+BufSize RTT Loss based CC (CUBIC / Reno) amount in flight Loss based congestion control in deep buffers BDP = (max BW) * (min RTT) 26 Deliveryrate BDP BDP+BufSize RTT amount in flight Est min RTT = windowed min of RTT samples Est max BW = windowed max of BW samples Estimating optimal point (max BW, min RTT)
  37. 37. (BDP ) https://datatracker.ietf.org/meeting/101/materials/slides-101-iccrg-an-update-on-bbr-work-at-google-0046 25 Deliveryrate BDP BDP+BufSize RTT Optimal: max BW and min RTT (Kleinrock) amount in flight Optimal operating point
  38. 38. ( ) https://datatracker.ietf.org/meeting/101/materials/slides-101-iccrg-an-update-on-bbr-work-at-google-0047 23 Deliveryrate BDP BDP+BufSize RTT Loss based CC (CUBIC / Reno) amount in flight Loss based congestion control in deep buffers
  39. 39. : BBR RTT RTT RTT 駄 Google google.com 2% YouTube 13% YouTube RTT 32% Loss 1% 2% https://queue.acm.org/detail.cfm?id=302218448
  40. 40. BBR ( BW RTT ) https://datatracker.ietf.org/meeting/101/materials/slides-101-iccrg-an-update-on-bbr-work-at-google-0049 BDP = (max BW) * (min RTT) 26 Deliveryrate BDP BDP+BufSize RTT amount in flight Est min RTT = windowed min of RTT samples Est max BW = windowed max of BW samples Estimating optimal point (max BW, min RTT)
  41. 41. HTTP/3 & QUIC Web
  42. 42. QUIC HTTP + TLS over TCP UDP HTTP/2 ( ) HTTP/2 + TLS1.2 + TCP HOL 0-RTT ( TLS 1.3 ) Multipath (5G + LTE + WiFi ) http://www.davidromerotrejo.com/2016/09/moving-web-from-tcp-to-udp.html?m=151 
 TLS 1.3
  43. 43. HTTP/2 TCP HOL : http://bit.ly/1gqR7WN (https://www.youtube.com/watch?v=hQZ-0mXFmk8)52 H2 H2 H2 H2 HTTP/2 TCP 
 
 ( ) QUIC UDP 
 
 ( )
  44. 44. HTTP/3 ( HTTP over QUIC) Google QUIC IETF QUIC Google HTTP + TLS UDP gQUIC IETF QUIC (iQUIC) IETF iQUIC QUIC Transport HTTP over QUIC (hq) QPACK ( ) / HTTP over QUIC = hq HTTP/3 IETF 103 hq HTTP/3 Transport QUIC https://daniel.haxx.se/blog/2018/11/11/http-3/53
  45. 45. IETF QUIC https://datatracker.ietf.org/wg/quic/deps/svg/54 HTTP/3
 ( QUIC)
  46. 46. HTTP/3 + QUIC Transport HTTP/2 + TCP UDP TCP 
 ( ) LTE, 5G, WiFi IP ID 
 ( / IP+Port ) 255 range Negative ACK (NACK) HTTP/2 TCP 55
  47. 47. QUIC Transport MTU Google MTU = 1350,1370 (IPv6,v4) Path MTU MTU MTU HTTP/2 駄 MTU 1450 MTU (MEC on 5G ) : DDoS 1200 PMTU 1280 (IPv6 PMTU) 56
  48. 48. HTTP/3, QUIC Server: Google Frontend (GCP) or LiteSpeed Apach, Nginx QUIC Client: Chrome QUIC alt-svc HTTP/2 ( ) QUIC --origin-port-to-force-quic-on QUIC57
  49. 49. Google Quic Google Front End ( ) Google QUIC GCP LiteSpeed ( ) QUIC (2017/06 ) Caddy GO LTE 駄 issue 5G 駄 Satellite (by LINE) Google QUIC : Chrome IETF QUIC Server58
  50. 50. : Google OSS QUIC QUIC quic_server, quic_client toy server. (HTTP ) FYI: Chrome 2012 10 659
  51. 51. LiteSpeed HTTP/2 OSS QUIC Google Frontend HTTP/2 QUIC NIC (by LiteSpeed ) Google Web QUIC60
  52. 52. 5G x IoT Studio
  53. 53. 5G端末 5G基地局 5Gコア シールドルーム client server UDP 計測時設定の ダウンロード速度 計測時設定の アップロード速度 往復遅延時間 ( 最小 RTT ) 2Gbps 200Mbps 5~7msec 5G 環境 計測環境概要 4.7GHz 

  54. 54. 19 2 +63 4.7GHz 5G 5G
  55. 55. SYSTEM WORKS R8151 ( ) 64 CPU Intel Core i7-8700 (6core/3.2GHz) Memory Server: 16GB (DDR4-2666)
 Client: 32GB (DDR4-2666) HDD 256GB (NVMe SSD) NIC Intel X550-T1, PCIe3.0 (10Gbps) OS Linux (Ubuntu16.04LTS) 5G端末 5G基地局 シールドルーム 4.7GHz 5Gコア (有線計測時のみ) Ixia Network Emulator II サーバマシン x 2 クライアント x 2 MTU=140010Gbps
  56. 56. Nginx 1.10.3 (HTTP/1.1, HTTP/2 ) Lite Speed Enterprise 5.3 RC (QUIC ) Chrome 68.0.3440.106 TCP BBR Kernel Update OS Ubuntu 16.04LTS Let's Encrypt HTTPS Let's Deprecate HTTP! Chrome65
  57. 57. Chrome + Puppeteer ( ) JavaScript fetch Resource Timing API (5μs ) DL ( ) ping RTT (0.02 ) sar NIC/CPU/Memory sar tcpdump ( ) tcpdump 1 40GB66
  58. 58. HTTP/1.1 (cubic, bbr), HTTP/2 (cubic, bbr), QUIC 5 駄 5G 駄 駄 (DL ) fetch 4 x 5 = 20 467 fetch single 5GB movie 340MB MP4 (16 files)
 BigBuckBunny 1080p 60fps DL image 62KB 22MB PNG (712 files) BigBuckBunny movie chunk 100 chunk 1 2MB (139 files x 10) YouTube BBB ( 10 )
  59. 59. (ping, sar) Client : ping i 0.02 $server > $ lename RTT 0.02 chart.js ( ) Server/Client : sar A o $ lename sadf ( ) 1 : CPU Memory NIC (TCP, UDP ) block device I/O Transfer 68
  60. 60. 5G RTT ( ) http/1.1, cubic, movie (9/22)69 RTT (50ms ) RTT 
 
 RTT RTT 10ms
  61. 61. ... 1791 ... Chrome
  62. 62. 5G
  63. 63. ( ) 5G 駄 ( ) 5G 5G 5G ( ) MEC 駄 5G 駄 72
  64. 64. 5G CUBIC BBR HTTP/2 TCP 1 QUIC73 HTTP/1.1 (CUBIC) HTTP/2 (CUBIC) HTTP/1.1 (BBR) HTTP/2 (BBR) QUIC single movie image chunk : QUIC 
 
 ( )
  65. 65. 5G CUBIC BBR HTTP/2 TCP 1 QUIC74 HTTP/1.1 (CUBIC) HTTP/2 (CUBIC) HTTP/1.1 (BBR) HTTP/2 (BBR) QUIC single movie image chunk : QUIC 
 
 ( ) TCP BBR TCP CUBIC vs BBR 6 x TCP CUBIC vs BBR
  66. 66. (HTTP/1.1) movie, image TCP BBR CUBIC ( ) : 9/5 ( )75 ( , 9/5) (Mbps) http1.1, cubic, single 476, 697, 694, 746 653 http1.1, cubic, movie 969, 948, 878, 928 931 http1.1, cubic, image 1030, 1010, 902, 992 984 http1.1, cubic, chunk 864, 875, 885, 883 877 http1.1, bbr, single 555, 609, 578, 604 587 http1.1, bbr, movie 890, 866, 834, 867 864 http1.1, bbr, image 794, 790, 788, 634 751 http1.1, bbr, chunk 735, 818, 746, 767 767 ( , 8/23) (Gbps) http1.1, cubic, single 3.17, 3.18, 3.14, 3.12 3.15 http1.1, cubic, movie 2.73, 2.77, 2.72, 2.76 2.74 http1.1, cubic, image 2.00, 1.86, 1.86, 2.00 1.93 http1.1, cubic, chunk 1.30, 1.27, 1.28, 1.28 1.28 http1.1, bbr, single 3.13, 3.24, 3.15, 3.13 3.18 http1.1, bbr, movie 2.82, 2.90, 2.88, 2.88 2.87 http1.1, bbr, image 2.02, 1.86, 1.98, 1.95 1.95 http1.1, bbr, chunk 1.30, 1.27, 1.28, 1.28 1.28
  67. 67. (HTTP/2) HTTP/1.1 vs HTTP/2 CUBIC vs BBR HTTP/2 TCP 1 : 9/5 ( )76 ( , 8/23) (Gbps) http2, cubic, single 3.22, 3.11, 3.22, 3.20 3.19 http2, cubic, movie 2.83, 2.74, 2.80, 2.81 2.79 http2, cubic, image 1.93, 1.68, 1.91, 1.65 1.79 http2, cubic, chunk 1.35, 1.27, 1.34, 1.35 1.33 http2, bbr, single 3.22, 3.11, 3.22, 3.20 3.19 http2, bbr, movie 2.83, 2.74, 2.80, 2.81 2.79 http2, bbr, image 1.93, 1.68, 1.91, 1.65 1.79 http2, bbr, chunk 1.35, 1.27, 1.34, 1.35 1.33 ( , 9/5) (Mbps) http2, cubic, single 700, 896, 816, 959 823 http2, cubic, movie 826, 901, 699, 676 776 http2, cubic, image 740, 704, 560, 725 682 http2, cubic, chunk 875, 881, 878, 880 879 http2, bbr, single 700, 896, 816, 959 843 http2, bbr, movie 826, 901, 699, 676 776 http2, bbr, image 740, 704, 560, 725 682 http2, bbr, chunk 875, 881, 878, 880 879
  68. 68. (QUIC) QUIC movie HTTP/1.1 HTTP/2 QUIC Chrome ( ) Disk I/O ( ) QUIC, single 駄 n/a77 ( , 8/23) (Gbps) quic, single 3.22, 3.19, 3.22, 3.24 3.22 quic, movie 3.23, 3.20, 3.18, 3.14 3.19 quic, image 2.10, 1.89, 2.19, 2.15 2.08 quic, chunk 1.35, 1.28, 1.35, 1.32 1.32 ( , 9/21) (Mbps) quic, single n/a n/a quic, movie 374, 365, 395, 378 378 quic, image 492, 472, 488, 451 476 quic, chunk 495, 504, 540, 531 518
  69. 69. 5G 1. CUBIC RTT BBR RTT 5G 駄 2. QUIC HOL 78
  70. 70. 5G 1. a. 5G OR b. RTT 2. HTTP, TCP HOL QUIC note: NEXT TODO: 駄79
  71. 71. 5G HTTP/2 TCP LOH HTTP/1.1 TCP N ( 1/N ) (HTTP/1.1 ) TCP HTTP + TCP QUIC TCP LOH QUIC QUIC 5G RTT HTTP/280 YES. HTTP/2
 is slow on 5G.
  72. 72. 5G BBR CUBIC 5G 駄 
 0.1% BBR RTT 5G 駄 (TCP/IP ) RTT BBR RTT note: 50ping/sec81 YES. BBR
 is slow on 5G.
  73. 73. 5G RTT http/2, cubic, movie RTT82 
 RTT 
 RTT 10ms
  74. 74. HTTP/1.1, CUBIC, movie RTT CUBIC RTT 50ms RTT83 Average Variance Standard Deviation Max Min 18.1362 514.634 22.68553986 425 2.35 Mbps 1 935 2 928 3 928 4 878 50ms
  75. 75. HTTP/1.1, BBR, Movie RTT BBR RTT 50ms 10ms CUBIC84 Average Variance Standard Deviation Max Min 10.9638 88.354 9.399678951 81.3 2.21 Mbps 1 559 2 435 3 510 4 556 50ms 10ms
  76. 76. : TCP (CUBIC) iperf 60 ( ) 1.8Gbps 3 775Mbps 85 180s 1810Mbps

  77. 77. : TCP (BBR) iperf CUBIC 500Mbps 400Mbps RTT86
  78. 78. 5G CUBIC CUBIC BBR 4 60 80% CUBIC note: BBR 駄 CUBIC 駄 note: 50ping/sec87 NO. CUBIC
 CAN be slow. ( , 9/20) 1 2 3 4 http2, cubic, movie 634Mbps 686Mbps 905Mbps 500Mbps http2, cubic, chunk 240Mbps 549Mbps 264Mbps 339Mbps http2, bbr, movie 291Mbps 301Mbps 300Mbps 280Mbps http2, bbr, chunk 284Mbps 321Mbps 308Mbps 326Mbps
  79. 79. 5G QUIC QUIC 5G RTT RTT RTT 20-30ms 50ms RTT 5G ( ) NEXT TODO:88 QUIC CAN be fastest on 5G.
  80. 80. 1 x Chrome, HTTP/2, quic, movie 364 393Mbps 750Mbps (5G 1/3 ) 89 1 (374Mbps) 2 (364Mbps) 3 (393Mbps) 4 (378Mbps)
  81. 81. 2 x Chrome, HTTP/2, quic, movie 449 650Mbps 2 2.1Gbps ( 5G ) 90 1 (590/579Mbps ) 2 (590/579Mbps ) 3 (449/461Mbps ) 4 
 (650/618Mbps )
  82. 82. 4 x Chrome,HTTP/2,QUIC,Movie 4 2.3 Gbps 91 1 (286/279/
 279/273) 2 (397/325/
 371/328 3 (175/264/
 194/268 4 (317/269/
 270/266)
  83. 83. RTT Chrome QUIC RTT92 50ms
  84. 84. RTT RTT 2G ( 1 40GB) RTT ( ) RTT (RTT ) CUBIC, BBR 縮 縮 TODO NEXT: 縮94
  85. 85. TCP RST TCP RST (reset) TCP ( 縮 ) Web 
 HTTP/2, QUIC fetch 100 Wireshark rst95
  86. 86. fetch 駄 駄 5% 5G 駄 fetch fetch JS 96
  87. 87. ... ...
 ... ...
  88. 88. HTTP (TCP) CUBIC BBR 5G CUBIC BBR CUBIC BBR HTTP TCP HTTP/1.1 HTTP/2 QUIC ( ) MEC 99
  89. 89. 5G RTT RTT : HTTP/2 BBR QUIC RTT fetch catch resolve QUIC Web 100
  90. 90. 5G 5G 
 駄 101
  91. 91. 5G x IoT Studio 102 https://tm.softbank.jp/form/contact/5g/index.php 5G×IoT Studio に関するお問い合わせ
  92. 92. 5G x IoT Studio 103 https://tm.softbank.jp/form/contact/5g/index.php 5G×IoT Studio に関するお問い合わせ
  93. 93. 5G x IoT Studio 104 https://tm.softbank.jp/form/contact/5g/index.php 5G×IoT Studio に関するお問い合わせ
  94. 94. Thank You! Any Questions? Feel free to contact me: dynamis webdino.org
 @dynamitter, facebook.com/dynamis Slide Upload: slideshare.net/dynamis by @4687koSourijun @
  95. 95. References - TCP TCP/IP https://www.amazon.co.jp/dp/4894713209 Internet Week 99 TCP https://www.nic.ad.jp/ja/materials/iw/1999/notes/C3.PDF TCP http://www.ieice-hbkb.org/ les/03/03gun_04hen_01.pdf http://sacsis.hpcc.jp/2009/SACSIS2009_TCP.pdf CUBIC for Fast Long-Distance Networks RFC 8312 https://tools.ietf.org/html/rfc8312 CUBIC: a new TCP-friendly high-speed TCP variant https://dl.acm.org/citation.cfm? id=1400105 106
  96. 96. References - BBR BBR BBR: Congestion-Based Congestion Control https://queue.acm.org/ detail.cfm?id=3022184 BBR for Linux Kernel BBR congestion control https://lwn.net/Articles/701165/ patch https://git.kernel.org/pub/scm/linux/kernel/git/davem/net- next.git/commit/?id=0f8782ea14974ce992618b55f0c041ef43ed0b78 Linux Kernel 4.9 https://kernelnewbies.org/Linux_4.9 107
  97. 97. References - Google QUIC Chromium QUIC https://www.chromium.org/quic https://www.chromium.org/quic/playing-with-quic Design Doc https://docs.google.com/document/d/ 1RNHkx_VvKWyWg6Lr8SZ-saqsQx7rFV-ev2jRFUoVD34/edit?pli=1# 108
  98. 98. References - IETF QUIC IETF QUIC WG https://quicwg.org/ GitHub - WG materials https://github.com/quicwg/wg-materials IETF 103 Meeting https://datatracker.ietf.org/meeting/103/materials https://datatracker.ietf.org/meeting/103/session/quic HTTP/3 https://daniel.haxx.se/blog/2018/11/11/http-3/ QUIC RFC Drafts https://datatracker.ietf.org/wg/quic/documents/ https://github.com/ ano-yuki/my-quic-spec-translation 109
  99. 99. Reference - QUIC ASnoKaze Blog - QUIC https://asnokaze.hatenablog.com/ archive/category/QUIC : http://www.soumu.go.jp/ main_sosiki/joho_tsusin/hyojun/02tsushin04_03000123.html 110

×