$30 off During Our Annual Pro Sale. View Details »

すべては「サクサク感」のために! QUICで早くなる?インターネットの世界と,周辺プロトコルの話

Hironao Namba
September 01, 2018

すべては「サクサク感」のために! QUICで早くなる?インターネットの世界と,周辺プロトコルの話

すべては「サクサク感」のために!
QUICで早くなる?インターネットの世界と,周辺プロトコルの話
南波 寛直 (@brownbro)
iOSDC Japan 2018 (Sep. 1st)

Hironao Namba

September 01, 2018
Tweet

Other Decks in Technology

Transcript

  1. ͢΂ͯ͸ʮαΫαΫײʯͷͨΊʹʂ
    QUICͰૣ͘ͳΔʁΠϯλʔωοτͷੈքͱɼपลϓϩτίϧͷ࿩
    ೆ೾ ׮௚ (@brownbro)
    iOSDC Japan 2018 (Sep. 1st)
    1

    View Slide

  2. ࣗݾ঺հ
    • גࣜձࣾΞϓτϙου
    • ࢈ۀIoTϛυϧ΢ΣΞͷձࣾͰ͢
    • σʔλղੳܥͷϙδγϣϯͰ͕͢ɺΞόλʔϩϘοτͷڞಉ
    ϓϩδΣΫτ1΍ɺࠓճൃද͍ͯ͠Δ௨৴ϓϩτίϧͷௐࠪɾ
    ࣮૷ͳͲ΋΍ͬͯ·͢
    1 h$ps:/
    /www.aptpod.co.jp/news/news/mel5n_aptpod-2018
    2

    View Slide

  3. ϥϯν୲౰ in 20172
    ͝Έ୲౰ in 2017,2018
    ͓ؾ෇͖ͷ͜ͱ͋Ε͹͓ؾܰʹFB͍ͩ͘͞
    2 ը૾͸CC-BY-NC 4.0ϥΠηϯεʹجͮ͘iOSDC Japanͷ΋ͷ
    3

    View Slide

  4. ຊ೔ͷ֓ཁ
    ʮαΫαΫײʯ͕UXʹ௚݁͢Δ͜ͱ͸Α͘஌ΒΕ͍ͯΔ͔ͱࢥ͍·͢ɻ
    αʔόʔͱͷ௨৴Λߴ଎Խ͢ΔͨΊʹɼ޿͘ར༻͞Ε͍ͯΔHTTPͷվળ
    Λ໨ࢦͨ͠HTTP/2͕ඪ४Խ͞Ε·ͨ͠ɻ
    ҰํͰɼͦ΋ͦ΋HTTPͷԼͷϨΠϠΛ୲͏TCP͕஗͍͜ͱ͔Βɼͦͷ՝
    ୊Λղܾ͢ΔQUICͱ͍͏ϓϩτίϧ͕։ൃ͞Εɼ·ͨඪ४Խ͕ਐΜͰ͍
    ·͢ɻ
    ͜ͷQUICͷجຊతͳ֓೦΍ϞόΠϧʹؔ࿈͢Δಛ௃ͳͲΛ͓࿩͠͠·͢ɻ
    4

    View Slide

  5. ʮαΫαΫײʯ
    5

    View Slide

  6. ஗Ԇͱ஌֮
    • 0.1ඵҎ಺ɿॠ࣌
    • 1ඵҎ಺ɿಈ࡞ͯ͠Δ
    • 10ඵҎ্ɿଞͷ͜ͱΛ͢Δ
    ("Usability Engineering"3ΑΓҾ༻)
    3 h$ps:/
    /www.nngroup.com/books/usability-engineering/
    6

    View Slide

  7. վΊͯɺʮωοτϫʔΫ͕ૣ͍ʯͱ͸ʁ
    7

    View Slide

  8. ໰୊
    100m཭Εͨͱ͜Ζ͔Βɺ10m/sͰं͕૸ͬͯདྷ·͢
    Կඵޙʹ໨ͷલΛ௨ա͢ΔͰ͠ΐ͏͔ʁʁ
    8

    View Slide

  9. ౴͑. 10ඵޙ
    9

    View Slide

  10. ౴͑. 10ඵޙ
    Ͱ͸ͳ͍Մೳੑ
    10

    View Slide

  11. ਤղ
    11

    View Slide

  12. ंͷ௕͞΋ύϥϝʔλ
    ʢࢉ਺ͷ෼໺Ͱʮ௨աࢉʯͱ͍͏Β͍͠Ͱ͢ʣ
    12

    View Slide

  13. ௨ա͢Δ·Ͱͷ࣌ؒΛ୹͘͢Δʹ͸ʁ
    13

    View Slide

  14. ରࡦ
    • ंͷελʔτҐஔΛۙ͘͢Δ
    • ंͷ௕͞Λ୹͘͢Δ
    • ंͷεϐʔυΛૣ͘͢Δ
    14

    View Slide

  15. ωοτϫʔΫͷੈքͰߟ͑Δͱʁ
    15

    View Slide

  16. ंͷελʔτҐஔΛۙ͘͢Δ
    • ͢ͳΘͪɺίϯςϯπʢαʔόʔʣΛϢʔβʔͷͦ͹ʹஔ͘
    • CDN͕׆༂ʂ
    • ࠃ಺ͳΒยಓ10msʙ
    • ւΛӽ͑Δͱยಓ50msʙ100msҎ্
    16

    View Slide

  17. ंͷ௕͞Λ୹͘͢Δ
    • ͢ͳΘͪɺωοτϫʔΫʹ৐ͤΔσʔλྔΛগͳ͘͢Δ
    • ѹॖ͕׆༂ʂ
    • ϝσΟΞϑΝΠϧͷ඼࣭࠷దԽ
    • ςΩετϑΝΠϧͷgzipѹॖ
    17

    View Slide

  18. ंͷεϐʔυΛૣ͘͢Δ
    • ͢ͳΘͪɺσʔλͷ఻ୡ଎౓Λૣ͘͢Δ
    • 4G / 5G ͳͲͷ৽ੈ୅ͷߴ଎ωοτϫʔΫ͕׆༂ʂ
    • ຊ౰ʹʁ
    18

    View Slide

  19. ৘ใͷʢ෺ཧతͳʣ఻ୡํ๏
    • ಔઢʗޫϑΝΠόʔʗి೾ͳͲΛ௨ͬͯ఻ୡ͞ΕΔ
    • ͢ͳΘͪɺͲΜͳʹؤுͬͯ΋ޫͷ଎্͕͞ݶ
    • Ͱ͸ɺߴ଎ωοτϫʔΫͱ͸ʁ
    19

    View Slide

  20. ߴ଎ωοτϫʔΫͷᨳ͍จ۟
    • ʮ100ϝΨ઎༗ಠΓ઎Ίʯ
    • ʮ5G͸20GbpsͰɺطଘͷ4G LTEͷ20~100ഒఔ౓ʯ
    20

    View Slide

  21. Bit Per Second (bps)
    • 1ඵ͋ͨΓʹૹ৴Ͱ͖Δσʔλྔ
    • ٕज़ֵ৽ʹΑͬͯ૿Ճ͍ͯ͠Δͷ͸ɺ͋͘·Ͱ͜ͷࢦඪ
    21

    View Slide

  22. Before
    22

    View Slide

  23. A"er
    23

    View Slide

  24. ωοτϫʔΫଳҬ
    • ϏσΦετϦʔϛϯάͷΑ͏ʹɺ͋Δఔ౓ͷྔͷσʔλΛఆৗ
    తʹ఻ૹ͠ͳ͚Ε͹ͳΒͳ͍έʔεͰ͸΋ͪΖΜॏཁ
    • ͨͩ͠ɺଳҬ͕ແݶʹ޿ͯ͘΋ʮं͕௨ա͢Δ·Ͱͷ࣌ؒʯ͕
    θϩʹ͸ͳΒͳ͍͜ͱʹ΋஫ҙ
    • ͢ͳΘͪɺωοτϫʔΫΛ࢖༻͠ͳ͍ͱ͍͏؍఺΋ඞཁ
    • Ωϟογϡ͕׆༂ʂ
    24

    View Slide

  25. ʮωοτϫʔΫ͕ૣ͍ʯ͜ͱͷ·ͱΊ
    1. αʔόʔ·Ͱͷڑ཭͕͍ۙ
    2. ఻ૹ͢Δσʔλ͕খ͍͞
    3. ఻ૹ͢Δσʔλʹे෼ͳଳҬ͕͋Δ
    4. ωοτϫʔΫΛ࢖༻͠ͳ͍
    25

    View Slide

  26. ͯ͞
    26

    View Slide

  27. 27

    View Slide

  28. ࠓ೥ͷ΢Σϒϖʔδ4΋͍͍Ͱ͢ΑͶ
    4 h$ps:/
    /iosdc.jp/2018/
    28

    View Slide

  29. https://iosdc.jp/2018/
    ͕දࣔ͞ΕΔ·Ͱʹ
    ωοτϫʔΫతʹ͸ͲΜͳಈ͖ʹͳΔʁ
    29

    View Slide

  30. DNS
    • Domain Name System
    • αʔόʔͷυϝΠϯ໊͔ΒIPΞυϨεΛऔಘ͠·͢
    $ nslookup iosdc.jp
    Server: 240b:10:3c0:3b10::cafe:1
    Address: 240b:10:3c0:3b10::cafe:1#53
    Non-authoritative answer:
    Name: iosdc.jp
    Address: 160.16.207.67
    30

    View Slide

  31. TCP
    • Transmission Control Protocol
    • (IPΞυϨε/ϙʔτͷ4ͭ૊Ͱࣝผ͞ΕΔ)2ͭͷ
    ΤϯυϙΠϯτ͕ɺॱং੍ޚ͞ΕͨόΠτྻΛ
    ૹड৴Ͱ͖ΔػೳΛఏڙ͢Δϓϩτίϧ
    • σʔλͷ΍ΓͱΓͷ։࢝લͷίωΫγϣϯͷཱ֬
    ͷͨΊʹɺ1ԟ෮ͷ΍ΓͱΓͱ࣌ؒ(1-RTT; Round
    Trip Time)͕ඞཁ
    • "3-way handshake" ͷ໊લ΋༗໊
    • ʢը૾͸WikipediaΑΓҾ༻5ʣ
    5 h$ps:/
    /commons.wikimedia.org/wiki/File:Tcp_normal.png (Author: Dake,
    CC BY-SA 2.5)
    31

    View Slide

  32. TLS
    • Transport Layer Security
    • ೝূɺ҉߸Խɺ׬શੑΛఏڙ͢Δϓ
    ϩτίϧ
    • ωΰγΤʔγϣϯʢ҉߸伴ͷڞ༗ͳ
    ͲʣͷͨΊʹɺ2-RTT͕ඞཁ
    • ʢը૾͸O'ReillyΑΓҾ༻6ʣ
    6 h$ps:/
    /hpbn.co/transport-layer-security-tls/ (Figure 4-2. TLS handshake
    protocol)
    32

    View Slide

  33. HTTP
    • Hypertext Transfer Protocol
    • HTMLͳͲͷίϯςϯπͷૹड৴ʹ
    ༻͍ΒΕΔϓϩτίϧ
    • ʢURI಺ͷHTTPS͸HTTP over TLSΛ
    ҙຯ͠·͢ʣ
    • ϔομʔ͓ΑͼϑΝΠϧ಺ͷσʔλΛ
    ઌ಄͔Βॱʹऔಘ
    33

    View Slide

  34. ϖʔδ͕ෳ਺ϑΝΠϧ͔Βߏ੒͞ΕΔ৔߹
    |---index.html---|
    |--- app.js (too large) ---|
    |---a.png---|
    • TCPίωΫγϣϯͷதͰɺϑΝΠϧΛॱ൪ʹऔಘʢHTTP ϦΫΤετʗ
    Ϩεϙϯεʣ
    • ڊେͳϑΝΠϧ͕͋Δ৔߹ɺͦͷϑΝΠϧͷసૹ͕׬ྃ͢Δ·ͰҎ
    ߱ͷϑΝΠϧͷసૹΛ։࢝Ͱ͖ͳ͍
    • Head of Line Blocking; HoLϒϩοΩϯά
    34

    View Slide

  35. HTTP/1.1ʹ͓͚ΔHoLϒϩοΩϯάͷରࡦ(1)
    • TCPίωΫγϣϯΛෳ਺ར༻͢Δ
    • ϒϥ΢βͰ͋Ε͹ɺ1υϝΠϯʹର͠6ຊషΔ͜ͱͰฒྻԽ͠ӨڹΛܰݮ
    ͍ͯ͠Δ
    • ϑΝΠϧຖʹυϝΠϯΛ෼͚ΔΑ͏ͳ޻෉΋
    • ͨͩ͠ɺϝϞϦ౳ͷϦιʔεͷফඅ͸૿͑Δ
    • ίϯςϯπ͕6ݸҎ্ͷ৔߹ɺ֤ίωΫγϣϯ಺Ͱಉ༷ͷ͜ͱ͕ൃੜ͢
    ΔՄೳੑ͸๷͛ͳ͍
    35

    View Slide

  36. HTTP/1.1ʹ͓͚ΔHoLϒϩο
    Ωϯάͷରࡦ(2)
    • "pipeline"7Λར༻
    • ϨεϙϯεΛ଴ͨͣʹϦΫΤετΛ
    ෳ਺౤͛ΒΕΔػೳ
    • ͨͩ͠ɺϨεϙϯεͷॱং͸ݻఆ
    ͷͨΊɺϑΝΠϧ͕ڊେͳ৔߹ʹ
    ͸ޮՌ͕ബ͍৔߹΋
    7 h$ps:/
    /commons.wikimedia.org/wiki/File:HTTPpipelining2ja.svg
    36

    View Slide

  37. HTTP/2
    • GoogleʹΑΔSPDYͷऔΓ૊ΈΛݩʹɺHTTP/2͕RFC7540ͱͯ͠ࡦఆ͞ΕΔ
    • ίωΫγϣϯͷதʹɺετϦʔϜͱݺ͹ΕΔ୯Ґͷ΍ΓͱΓͷ୯ҐΛੜ੒
    ͠ɺଟॏԽ͢Δ
    • ετϦʔϜ಺Ͱ͸ॱং੍ޚΛߦ͏͕ετϦʔϜΛލ͍Ͱ͸ߦΘͳ͍ͨΊɺ
    HoLϒϩοΩϯάΛճආͰ͖Δ
    |---index.html---|
    |--- app.js (too large) ---|
    |---a.png---|
    37

    View Slide

  38. HTTP/2Ͱ͢΂ͯղܾʁ
    • HTTP͕ಈ͖࢝ΊΔ·ͰʹʢDNSΛআ͍ͯ΋ʣ3-RTT͕ඞཁ
    • 1ຊͷTCPίωΫγϣϯ಺ʹετϦʔϜΛܗ੒͍ͯ͠ΔͨΊɺ
    TCPϨϕϧͷHoLϒϩοΩϯά͕ൃੜ͢Δ৔߹͸શମ͕஗ΕΔ
    • HTTPΑΓԼͷϨΠϠʔ͔Βͷվળͷػӡ
    38

    View Slide

  39. QUICͷൃ໌
    • TCPͷʮॱং੍ޚ͞ΕͨόΠτྻΛૹ
    ड৴Ͱ͖ΔʯػೳͱɺTLSͷʮೝূɺ
    ҉߸Խɺ׬શੑʯͷػೳΛ·ͱΊͯఏ
    ڙ͢Δϓϩτίϧ
    • UDPͷ্ʹ࣮૷
    • ݱࡏIETFʹͯ࢓༷ͷࡦఆத
    • ʢը૾͸IETFࢿྉ8ΑΓҾ༻ʣ
    8 h$ps:/
    /datatracker.ie2.org/mee6ng/98/materials/slides-98-edu-sessf-
    quic-tutorial/
    39

    View Slide

  40. UDP
    • User Datagram Protocol
    • ʮσʔλάϥϜʯͱݺ͹ΕΔ୯ҰͷϝοηʔδΛૹड৴͢ΔͨΊͷϓ
    ϩτίϧ
    • TCPͱಉ͡ϨΠϠʔʢτϥϯεϙʔτ૚ʣʹଐ͢Δ͕ɺίωΫγϣϯΛ
    ੜ੒ͤͣɺॱং੍ޚͳͲͷ෇ՃػೳΛʮԿ΋ఏڙ͠ͳ͍ʯͷ͕ಛ௃
    • WebRTCΛ༻͍ͨετϦʔϛϯάͳͲɺଟগͷσʔλܽଛΑΓ΋஗Ԇʹහ
    ײͳΞϓϦέʔγϣϯ༻ͷϓϩτίϧʢͷԼճΓʣͱͯ͠ར༻͞Ε͍ͯΔ
    40

    View Slide

  41. ͳͥUDPͷ্ʹ࣮૷ʁ
    • TCP্ʹ࣮૷͢ΔݶΓɺTCPͷৼΔ෣͍͕ϘτϧωοΫͱͳΓ͏Δ
    • TCP/UDPʹଓ͘ୈ3ͷϓϩτίϧΛ։ൃ͢Δͱɺ௨৴Λதܧ͢Δ͢΂ͯͷػثΛஔ͖
    ׵͑ͳ͚Ε͹͍͚ͳ͍Մೳੑ͕͋Δ
    • UDPͰ͋Ε͹طଘͷ΋ͷͷͨΊɺʢ͓ͦΒ͘ʣ໰୊ͳ͘ಈ͘
    • ʢاۀ಺ͷϑΝΠΞ΢ΥʔϧઃఆͳͲͰด͍ͯ͡ΔՄೳੑ͸͋Δʣ
    • TCP/UDP͸OSϨϕϧͰ࣮૷͞Ε͍ͯΔ͜ͱ͕ଟ͘ɺͦͷ্ʹ࣮૷͢Δ͜ͱͰ৽͍͠
    όʔδϣϯΛൺֱత༰қʹσϓϩΠͰ͖Δ
    ͳͲͳͲ
    41

    View Slide

  42. QUICͷԸܙ
    • 1-RTTͰTCP+TLS૬౰ͷίωΫγϣϯΛཱ֬
    • ΞϓϦέʔγϣϯσʔλૹड৴લͷ଴ͪ࣌ؒΛ1/3ʹ
    • ίωΫγϣϯ಺Ͱ(HTTP/2ͱྨࣅͷ)ετϦʔϜΛ༻͍ͯଟॏԽ
    • HoLϒϩοΩϯάΛճආ
    !
    42

    View Slide

  43. QUICؔ࿈χϡʔε
    • ʮOCN ϞόΠϧ ONEʯͷ௨৴඼࣭޲্ʹΉ͚ͨऔΓ૊Έ
    • "ʮQUIC௨৴ͷྲྀྔίϯτϩʔϧʯΛద༻͠ɺʮOCN ϞόΠϧ ONEʯ͝ར༻ऀશମͷ௨৴඼
    ࣭վળΛਤΓ·͢ɻ"
    • Google CloudͷHTTPSϩʔυόϥϯαʔ͕QUICϓϩτίϧʹରԠ
    • The Road to QUIC
    • "The IETF working group is currently set to deliver the first version of the QUIC specificaGons
    by the end of the year"
    • QUIC Version 44 and IETF QUIC
    • "the Google QUIC team has started the transiGon to IETF QUIC"
    43

    View Slide

  44. ؓ࿩ٳ୊
    44

    View Slide

  45. Ҿ͖ଓ͖ϒϥ΢δϯά
    • ߦಈنൣ9Λݟʹ͍͘
    9 h$ps:/
    /iosdc.jp/2018/code-of-conduct
    45

    View Slide

  46. ͨͩ͠ɺWi-Fi͔ΒϞόΠϧω
    οτϫʔΫ΁੾ΓସΘͬͨ
    • ϞόΠϧσόΠεʹΑ͋͘Δέʔε
    • ը૾͸Googleࢿྉ10ΑΓҾ༻
    • ͲΜͳڍಈʹͳΔʁ
    • (DNSͱHTTP͸লུ)
    10 h%ps:/
    /docs.google.com/presenta6on/d/13LSNCCvBijabnn1S4-
    Bb6wRlm79gN6hnPFHByEXXptk/present?slide=id.g2a9e7f5ea_194
    46

    View Slide

  47. TCP+TLSͷ৔߹
    1. ΫϥΠΞϯτͷIPΞυϨε͕มΘΔͨΊɺTCPίωΫγϣϯͷ࠶ཱ͕֬ඞཁ
    • ʢίωΫγϣϯ͸IPΞυϨε/ϙʔτͷ4ͭ૊Ͱࣝผ͞ΕΔʣ
    • ͢ͳΘͪɺ1-RTTͷ଴͕ͪ࣌ؒൃੜ
    2. ৽ͨʹੜ੒͞ΕͨTCPίωΫγϣϯͷ্Ͱ࠶౓TLSωΰγΤʔγϣϯΛ࣮ࢪ
    • ͢ͳΘͪɺ2-RTT͕ඞཁ
    • ܰݮ͢ΔͨΊʹηογϣϯ࠶։(session resump8on)ͳͲͷػೳ΋͋Δ
    47

    View Slide

  48. ࠶ͼ3-RTT͕ඞཁͳՄೳੑ
    48

    View Slide

  49. QUICͩͱʁ
    • ίωΫγϣϯҠߦ(Connec(on Migra(on)ͷ࢓૊Έ͕ଘࡏ
    • αʔόʔʗΫϥΠΞϯτͦΕͧΕ͕࣋ͭ Connection ID ͷ૊Έ߹Θ͕ͤίωΫ
    γϣϯͷࣝผࢠͱͳΔ
    • ͢ͳΘͪɺIPΞυϨε΍ϙʔτͷ৘ใʹґଘ͍ͯ͠ͳ͍
    • Ҡಈͨ͠ઌͷૹ৴ݩΞυϨε͔Β΋ಉ͡ Connection ID Λ༻͍ͯσʔλΛૹ৴Մ

    • ʢͨͩ͠ɺِ૷ʹΑΔDoS߈ܸͷϦεΫ͸͋ΔͨΊɼࣄޙʹ௥Ճͷखଓ͖͸ඞཁʣ
    49

    View Slide

  50. 0-RTTͰҟͳΔωοτϫʔΫʹҠߦՄೳ
    50

    View Slide

  51. ༩ଠ࿩
    • εϚϗ͔ΒΠϯλʔωοτܦ༝ͷ։ด͕Ͱ͖ΔిࢠৣσόΠεΛৗ༻ͯ͠·͢
    • ʮʓʓඵͰΦʔτϩοΫʯͷػೳ΋ONʹͯ͠ΔͷͰɺ͋Δఔ౓͍ۙͮͨͱ͜ΖͰ
    ղৣૢ࡞Λߦ͏ͷͰ͕͢ɺɺ
    • ղৣૢ࡞ͷ్தͰͨ·ʹΤϥʔ͕ൃੜ͠·͢
    • Ұ࿈ͷಈ࡞ͷ్தͰWi-FiΛरͬͯ͠·͍ͬͯΔ͔Βʁʁʢ͋͘·Ͱ૝૾Ͱ͢ʣ
    • ΋͔ͨ͠͠Βɺςετέʔεͱͯ͠ݟͨ΄͏͕͍͍΋ͷͳͷ͔΋͠Ε·ͤΜʢ͘
    Ε͙Ε΋૝૾Ͱ͢ʣ
    51

    View Slide

  52. ؓ࿩ٳ୊
    52

    View Slide

  53. ຊ೔ͷ֓ཁʢ࠶ܝʣ
    ʮαΫαΫײʯ͕UXʹ௚݁͢Δ͜ͱ͸Α͘஌ΒΕ͍ͯΔ͔ͱࢥ͍·͢ɻ
    αʔόʔͱͷ௨৴Λߴ଎Խ͢ΔͨΊʹɼ޿͘ར༻͞Ε͍ͯΔHTTPͷվળ
    Λ໨ࢦͨ͠HTTP/2͕ඪ४Խ͞Ε·ͨ͠ɻ
    ҰํͰɼͦ΋ͦ΋HTTPͷԼͷϨΠϠΛ୲͏TCP͕஗͍͜ͱ͔Βɼͦͷ՝
    ୊Λղܾ͢ΔQUICͱ͍͏ϓϩτίϧ͕։ൃ͞Εɼ·ͨඪ४Խ͕ਐΜͰ͍
    ·͢ɻ
    ͜ͷQUICͷجຊతͳ֓೦΍ϞόΠϧʹؔ࿈͢Δಛ௃ͳͲΛ͓࿩͠͠·͢ɻ
    53

    View Slide

  54. ·ͱΊ
    • ʮωοτϫʔΫ͕ૣ͍ʯͱ͸ʁ
    • αʔόʔ·Ͱͷڑ཭͕͍ۙɺ఻ૹ͢Δσʔλ͕খ͍͞ɺ఻ૹ͢Δσʔλʹे
    ෼ͳଳҬ͕͋Δ
    • ͨͩ͠ɺͦ΋ͦ΋ωοτϫʔΫΛ࢖༻͠ͳͯ͘Α͍ͳΒϕλʔ
    • QUIC͸͜ͷ؍఺ͷվળ΋ఏڙ
    !
    • 1-RTTͰTCP+TLS૬౰ͷίωΫγϣϯΛཱ֬
    • 0-RTTͰίωΫγϣϯҠߦ
    54

    View Slide

  55. ·ͱΊ(ଓ͖)
    • ֤छϥΠϒϥϦ΍αʔόʔʗΠϯϑϥνʔϜͷΈͳ͞·ͷؤு
    ΓʹΑͬͯɺجຊతʹ͸͍ͭͷ·ʹ͔ʮαΫαΫʯʹͳ͍ͬͯ
    Δ͸ͣ
    !
    • ϞόΠϧσόΠεʹԸܙͷ͋Δٕज़ͳͷͰɺงғؾ͚ͩͰ΋஌
    ͬͯΔͱָ͍͔͠΋ʁ
    • ΈΜͳͰ޾ͤʹͳΓ·͠ΐ͏
    "
    55

    View Slide

  56. ؔ࿈ʢʁʣτʔΫ
    • WebSocketΛiOSʹ࣋ͪࠐΜͰਏ͍ࢥ͍Λͨ͠ܦݧ͕͋Γ·͔͢ʂʁ
    (9/1 16:00- @Track C)
    • ͋͑ͯWebΤϯδχΞҎ֎ͷਓʹฉ͍ͯ΄͍͠WebRTCͷ࿩ (9/2
    15:10- @Track D)
    • ΠϯυͷΠϯλʔωοτ؀ڥͱͷઓ͍ํ (9/2 LT)
    • WebSocketʹΑΔϏσΦ௨࿩ (9/2 LT)
    ָ͠Έʹ͍ͯ͠·͢ʂʂ
    !
    56

    View Slide

  57. ࢀߟࢿྉ
    • ϋΠύϑΥʔϚϯε ϒϥ΢βωοτϫʔΩϯά
    • TCP / UDP / HTTP/2ͷ࿩͸͜ͷຊ1࡭ͰOK
    • QUIC: A UDP-Based Mul;plexed and Secure Transport (draE-13)
    • draE-14͕ग़ͯͨ͜ͱΛઌ೔஌Γ·͕ͨ͠·ͩಡΊͯ·ͤΜɻɻ
    • IETFʹ͓͚Δ௨৴ίωΫγϣϯվળʹؔ͢Δࠃࡍඪ४Խಈ޲ௐࠪใࠂॻ (pdf)
    • Head of Line Blocking - High Performance Web 2015
    • ֤छWikipediaϖʔδ
    57

    View Slide

  58. ͓ΘΓʹ
    • ͋͘·Ͱࢿྉϕʔεʹௐ΂ͨ΋ͷͰ͋ΓɺޡղͳͲʹىҼ͢Δ
    ޡΓ΍આ໌ෆ଍౳͋Δ͔ͱࢥ͍·͢
    • దٓमਖ਼͠·͢ͷͰɺίϝϯτ͍͚ͨͩΕ͹޾͍Ͱ͢
    58

    View Slide

  59. ɹ
    59

    View Slide