Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Learn "QUIC" Quickly!

Dd280d6d98be3c13dfa14d63dde92299?s=47 FUGA0618
September 24, 2021

Learn "QUIC" Quickly!

2021.9.24 鹿児島.mkのLTで登壇した時の発表資料です。
QUICというプロトコルについて話しました。

Dd280d6d98be3c13dfa14d63dde92299?s=128

FUGA0618

September 24, 2021
Tweet

Transcript

  1. Learn “QUIC” Quickly! 2021.9.24 ࣛࣇౡ.mk

  2. ࣗݾ঺հ Chapter.0

  3. Who am i? ࣗݾ঺հ ▸ ;ʔ͕ ▸ ݱ৬͸ެ຿һ ૊৫ͷDXਪਐΛ୲౰ ▸

    FjordBootCampͰRuby/RailsͳͲΛֶश ࠷ऴͷΧϦΩϡϥϜͰࣗ࡞αʔϏε੡࡞த ▸ ݱࡏɺస৬׆ಈத ▸ ೝఆதຊϚελʔʢࣗশʣ ໤ݹλϯϝϯதຊΛ͜Αͳ͘Ѫ͢ΔRubyist Twitter: @fuga__ch
  4. ͳͥ͜ͷλΠτϧʹͨ͠ͷ͔ Chapter.0-1

  5. Chapter.0-1 ͳͥ͜ͷλΠτϧʹͨ͠ͷ͔ ▸ ϓϩάϥϛϯάΛֶͿதͰɺ͍͔ͭ͘ͷϓϩτίϧΛѻͬͨ HTTPɺSMTP΍ POPͰͷϝʔϧૹड৴ ͳͲ ▸ ͦΕΑΓ΋͞Βʹ௿ϨΠϠͷϓϩτίϧ΋͋Δ ଘࡏ͸஌Γͭͭ΋ษڧ͢ΔඞཁੑΛײ͍ͯ͡ͳ͔ͬͨ

    ▸ ͦΜͳதɺʮ”QUIC”ͱ͍͏৽͍͠ϓϩτίϧ͕Ͱ͖ͨʯهࣄΛಡΜͩ ʮͳΜͩΖ͏ʁʯʮԿ͕มΘΔΜͩΖ͏ʁʯʮτϥϯεϙʔτ૚ͬͯʁʯ ษڧͯ͠ΈΑ͏ʂ ൃදͨ͠Β΋ͬͱཧղͰ͖Δ͔΋ʂ
  6. ”QUIC”ͬͯɺͳʹʁ Chapter.1

  7. Chapter.1 “QUIC”ͬͯɺͳʹʁ ▸ τϥϯεϙʔτ૚ʹ͓͚Δ৽͍͠௨৴ϓϩτίϧ ▸ ʮTCPʹऔͬͯ୅ΘΔϓϩτίϧʯͱݴΘΕ͍ͯΔ ▸ Google͕WEBͷ଎౓վળΛओͳ໨తͱͯ͠։ൃ࢝͠Ίͨ ▸ 2021೥5݄ɺIETFʹΑͬͯඪ४Խ͞Εͨ

    ▸ QUIC্Ͱಈ࡞͢Δͷ͕HTTP/3 τϥϯε ϙʔτ૚ʁ ̩̘̥ʁ ̝̩̩̥ʗ̏ʁ
  8. HTTP/2·Ͱͷτϥϯεϙʔτ૚ Chapter.2

  9. Chapter.2 HTTP/2·Ͱͷτϥϯεϙʔτ૚ ▸ σʔλ఻ૹͷ৴པੑΛఏڙ͢Δ໾ׂ ▸ TCP·ͨ͸UDP͍ͣΕ͔ͷϓϩτίϧͰ௨৴͢Δ ɾσʔλ͕ૹΕ͍ͯΔ͔ ɾҰ౓ʹૹ৴Ͱ͖ΔαΠζʹ෼ׂʢ෼ׂͨ͠1ͭ͋ͨΓͷσʔλ୯Ґʹύέοτʣ ɾσʔλ͕յΕ͍ͯͳ͍͔ ɾॱ൪௨Γʹͳ͍ͬͯΔ͔

  10. Chapter.2 HTTP/2·Ͱͷτϥϯεϙʔτ૚ ▸ σʔλͷ׬શੑΛอূ ▸ ΫϥΠΞϯτ͕ύέοτΛड͚औ͔ͬͨͲ͏͔ΛஞҰ֬ೝ ̩̘̥ ɾίωΫγϣϯͷཱ֬ ɾ3wayϋϯυγΣΠΫ ▸

    จॻ౳ͷ׬શੑ͕ٻΊΒΕΔσʔλ఻ૹʹ࢖ΘΕΔ ग़యɿhttps://www.infraexpert.com/study/tcpip9.html ɾ࠶ૹ੍ޚɹɾ֬ೝԠ౴ɹɾϑϩʔ੍ޚɹɾ᫔᫓੍ޚ
  11. Chapter.2 HTTP/2·Ͱͷτϥϯεϙʔτ૚ ▸ σʔλͷ׬શੑ͸อূ͞Εͳ͍ ▸ ίωΫγϣϯ΍࠶ૹ੍ޚ͕ͳ͍෼ɺߴ଎ ̪̙̥ ɾ௨৴தʹσʔλ͕յΕ͍ͯΔ͔Ͳ͏͔͸֬ೝ͍ͯ͠Δ ▸ ಈը΍Ի੠௨࿩ͳͲͷେ༰ྔ͔ͭ׬શੑΛٻΊΒΕͳ͍௨৴ʹར༻

    ɾյΕ͍ͯͯ΋ɺഁغͯ͠ऴΘΓ ɾΫϥΠΞϯτ͕ύέοτΛड͚औ͔ͬͨͲ͏͔͸֬ೝ͠ͳ͍
  12. TCP/UDPͷ໰୊఺ Chapter.3

  13. Chapter.3 TCP/UDPͷ໰୊఺ ▸ ߴ଎Խͷݶք ▸ ϔουΦϒϥΠϯϒϩοΩϯά ઌߦ͢Δύέοτ͕ύέοτϩεͨ͠৔߹ɺޙଓͷύέοτ͕ಧ͍ͯ΋࢖͏͜ͱ͕Ͱ͖ͳ͍ ▸ ֦ுੑͷݶք ɾTCPͰ͸3wayϋϯυγΣΠΫ͕ඞਢͷͨΊɺ઀ଓͷཱ֬ʹ͕͔͔࣌ؒΔ

    ɾ͞ΒʹɺTLSͷϋϯυγΣΠΫ΋͋ΔͷͰ༨ܭʹ͕͔͔࣌ؒΔ ɾUDP͸ߴ଎͕ͩ৴པੑ͸ͳ͍ ɾTCP͸Χʔωϧ(OS)͕ఏڙ͢Δػೳ ɾ৽͍͠ϓϩτίϧ֦ுΛ࡞ͬͯ΋ɺϢʔβʔ͕OSΛߋ৽͠ͳ͍ͱద༻͞Εͳ͍ ɾΑͬͯɺϓϩτίϧͷվྑͷαΠΫϧΛૉૣ͘ճ͍ͯ͘͜͠ͱ͕Ͱ͖ͳ͍ Ͱ΋΋ͬͱૣ͘ ͍ͨ͠ΜͩΑʂ
  14. QUICͷొ৔ Chapter.4

  15. Chapter.4 QUICͷొ৔ ▸ TCPʹ૬౰͢Δ࠶ૹ੍ޚͷ͘͠Έ ▸ ϋϯυγΣΠΫͷ࡟ݮʹΑΔ௨৴ͷޮ཰Խ ɾτϥϯεϙʔτ૚ͱ҉߸ԽͷϋϯυγΣΠΫΛฒྻʹߦ͏ ɾཱ֬·Ͱʹ1ԟ෮൒͔͔͍ͬͯͨͱ͜Ζɺ1ԟ෮ʹ ▸ ϔουΦϒϥΠϯϒϩοΩϯάͷ๷ࢭ

    ▸ ΞϓϦέʔγϣϯͷҰ෦ͱ࣮ͯ͠૷ ɾվྑ΍֦ு͕༰қʹ ex)Webϒϥ΢β͕Ξοϓσʔτ͞ΕΕ͹QUIC΋Ξοϓσʔτ͞ΕΔ ౳ ͭ·Γɺɺɺ
  16. CHAPTER.4 QUICͷొ৔ τϥϯεϙʔτ૚ʹ͓͚Δ໰୊ͱ՝୊Λղܾ͠ɺ ߴ଎ੑɺ৴པੑͱ֦ுੑΛߴΊͨ৽͍͠ϓϩτίϧ ͦΕ͕ɺɺɺ ̦̪̞̘

  17. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ ͍͔͕Ͱ͔ͨ͠ʁQUICͷ֓ཁ͕ͳΜͱͳʙ͘ɺ͔ͭΊ·͔ͨ͠ʁ ;ʔ͕@fuga__ch