Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Learn "QUIC" Quickly!
Search
Fu-ga
September 24, 2021
Programming
0
350
Learn "QUIC" Quickly!
2021.9.24 鹿児島.mkのLTで登壇した時の発表資料です。
QUICというプロトコルについて話しました。
Fu-ga
September 24, 2021
Tweet
Share
More Decks by Fu-ga
See All by Fu-ga
初めてのパフォーマンス改善
fugakkbn
18
6.2k
OSSから学んだPR Descriptionの書き方
fugakkbn
4
390
入社数ヶ月のnewbieが 稼働7年超のプロジェクトに 型を導入して見えた世界
fugakkbn
4
3.7k
オンライン時代のペアプログラミング
fugakkbn
1
920
Types teaches success, what will we do?
fugakkbn
1
11k
What I can do to get the job smoothly
fugakkbn
0
350
introduction-to-rindokurb
fugakkbn
0
420
fbc-lt-code-review
fugakkbn
0
1.2k
タスクの洗い出しという壁 /fjord-lt-slide-fuga
fugakkbn
2
840
Other Decks in Programming
See All in Programming
生成AIでGitHubソースコード取得して仕様書を作成
shukob
0
310
テストコードのガイドライン 〜作成から運用まで〜
riku929hr
1
140
create_tableをしただけなのに〜囚われのuuid編〜
daisukeshinoku
0
240
競技プログラミングへのお誘い@阪大BOOSTセミナー
kotamanegi
0
360
今からはじめるAndroidアプリ開発 2024 / DevFest 2024
star_zero
0
1k
From Translations to Multi Dimension Entities
alexanderschranz
2
130
バグを見つけた?それAppleに直してもらおう!
uetyo
0
180
なまけものオバケたち -PHP 8.4 に入った新機能の紹介-
tanakahisateru
1
120
これが俺の”自分戦略” プロセスを楽しんでいこう! - Developers CAREER Boost 2024
niftycorp
PRO
0
190
Refactor your code - refactor yourself
xosofox
1
260
CSC305 Lecture 25
javiergs
PRO
0
130
テストケースの名前はどうつけるべきか?
orgachem
PRO
0
130
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
A designer walks into a library…
pauljervisheath
204
24k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
Producing Creativity
orderedlist
PRO
341
39k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Unsuck your backbone
ammeep
669
57k
We Have a Design System, Now What?
morganepeng
51
7.3k
How GitHub (no longer) Works
holman
311
140k
Agile that works and the tools we love
rasmusluckow
328
21k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
GitHub's CSS Performance
jonrohan
1030
460k
Transcript
Learn “QUIC” Quickly! 2021.9.24 ࣛࣇౡ.mk
ࣗݾհ Chapter.0
Who am i? ࣗݾհ ▸ ;ʔ͕ ▸ ݱ৬ެһ ৫ͷDXਪਐΛ୲ ▸
FjordBootCampͰRuby/RailsͳͲΛֶश ࠷ऴͷΧϦΩϡϥϜͰࣗ࡞αʔϏε࡞த ▸ ݱࡏɺస৬׆ಈத ▸ ೝఆதຊϚελʔʢࣗশʣ ݹλϯϝϯதຊΛ͜Αͳ͘Ѫ͢ΔRubyist Twitter: @fuga__ch
ͳͥ͜ͷλΠτϧʹͨ͠ͷ͔ Chapter.0-1
Chapter.0-1 ͳͥ͜ͷλΠτϧʹͨ͠ͷ͔ ▸ ϓϩάϥϛϯάΛֶͿதͰɺ͍͔ͭ͘ͷϓϩτίϧΛѻͬͨ HTTPɺSMTP POPͰͷϝʔϧૹड৴ ͳͲ ▸ ͦΕΑΓ͞ΒʹϨΠϠͷϓϩτίϧ͋Δ ଘࡏΓͭͭษڧ͢ΔඞཁੑΛײ͍ͯ͡ͳ͔ͬͨ
▸ ͦΜͳதɺʮ”QUIC”ͱ͍͏৽͍͠ϓϩτίϧ͕Ͱ͖ͨʯهࣄΛಡΜͩ ʮͳΜͩΖ͏ʁʯʮԿ͕มΘΔΜͩΖ͏ʁʯʮτϥϯεϙʔτͬͯʁʯ ษڧͯ͠ΈΑ͏ʂ ൃදͨ͠ΒͬͱཧղͰ͖Δ͔ʂ
”QUIC”ͬͯɺͳʹʁ Chapter.1
Chapter.1 “QUIC”ͬͯɺͳʹʁ ▸ τϥϯεϙʔτʹ͓͚Δ৽͍͠௨৴ϓϩτίϧ ▸ ʮTCPʹऔͬͯΘΔϓϩτίϧʯͱݴΘΕ͍ͯΔ ▸ Google͕WEBͷվળΛओͳతͱͯ͠։ൃ࢝͠Ίͨ ▸ 20215݄ɺIETFʹΑͬͯඪ४Խ͞Εͨ
▸ QUIC্Ͱಈ࡞͢Δͷ͕HTTP/3 τϥϯε ϙʔτʁ ̩̘̥ʁ ̝̩̩̥ʗ̏ʁ
HTTP/2·Ͱͷτϥϯεϙʔτ Chapter.2
Chapter.2 HTTP/2·Ͱͷτϥϯεϙʔτ ▸ σʔλૹͷ৴པੑΛఏڙ͢Δׂ ▸ TCP·ͨUDP͍ͣΕ͔ͷϓϩτίϧͰ௨৴͢Δ ɾσʔλ͕ૹΕ͍ͯΔ͔ ɾҰʹૹ৴Ͱ͖ΔαΠζʹׂʢׂͨ͠1ͭ͋ͨΓͷσʔλ୯Ґʹύέοτʣ ɾσʔλ͕յΕ͍ͯͳ͍͔ ɾॱ൪௨Γʹͳ͍ͬͯΔ͔
Chapter.2 HTTP/2·Ͱͷτϥϯεϙʔτ ▸ σʔλͷશੑΛอূ ▸ ΫϥΠΞϯτ͕ύέοτΛड͚औ͔ͬͨͲ͏͔ΛஞҰ֬ೝ ̩̘̥ ɾίωΫγϣϯͷཱ֬ ɾ3wayϋϯυγΣΠΫ ▸
จॻͷશੑ͕ٻΊΒΕΔσʔλૹʹΘΕΔ ग़యɿhttps://www.infraexpert.com/study/tcpip9.html ɾ࠶ૹ੍ޚɹɾ֬ೝԠɹɾϑϩʔ੍ޚɹɾ੍ޚ
Chapter.2 HTTP/2·Ͱͷτϥϯεϙʔτ ▸ σʔλͷશੑอূ͞Εͳ͍ ▸ ίωΫγϣϯ࠶ૹ੍ޚ͕ͳ͍ɺߴ ̪̙̥ ɾ௨৴தʹσʔλ͕յΕ͍ͯΔ͔Ͳ͏͔֬ೝ͍ͯ͠Δ ▸ ಈըԻ௨ͳͲͷେ༰ྔ͔ͭશੑΛٻΊΒΕͳ͍௨৴ʹར༻
ɾյΕ͍ͯͯɺഁغͯ͠ऴΘΓ ɾΫϥΠΞϯτ͕ύέοτΛड͚औ͔ͬͨͲ͏͔֬ೝ͠ͳ͍
TCP/UDPͷ Chapter.3
Chapter.3 TCP/UDPͷ ▸ ߴԽͷݶք ▸ ϔουΦϒϥΠϯϒϩοΩϯά ઌߦ͢Δύέοτ͕ύέοτϩεͨ͠߹ɺޙଓͷύέοτ͕ಧ͍ͯ͏͜ͱ͕Ͱ͖ͳ͍ ▸ ֦ுੑͷݶք ɾTCPͰ3wayϋϯυγΣΠΫ͕ඞਢͷͨΊɺଓͷཱ֬ʹ͕͔͔࣌ؒΔ
ɾ͞ΒʹɺTLSͷϋϯυγΣΠΫ͋ΔͷͰ༨ܭʹ͕͔͔࣌ؒΔ ɾUDPߴ͕ͩ৴པੑͳ͍ ɾTCPΧʔωϧ(OS)͕ఏڙ͢Δػೳ ɾ৽͍͠ϓϩτίϧ֦ுΛ࡞ͬͯɺϢʔβʔ͕OSΛߋ৽͠ͳ͍ͱద༻͞Εͳ͍ ɾΑͬͯɺϓϩτίϧͷվྑͷαΠΫϧΛૉૣ͘ճ͍ͯ͘͜͠ͱ͕Ͱ͖ͳ͍ Ͱͬͱૣ͘ ͍ͨ͠ΜͩΑʂ
QUICͷొ Chapter.4
Chapter.4 QUICͷొ ▸ TCPʹ૬͢Δ࠶ૹ੍ޚͷ͘͠Έ ▸ ϋϯυγΣΠΫͷݮʹΑΔ௨৴ͷޮԽ ɾτϥϯεϙʔτͱ҉߸ԽͷϋϯυγΣΠΫΛฒྻʹߦ͏ ɾཱ֬·Ͱʹ1ԟ෮͔͔͍ͬͯͨͱ͜Ζɺ1ԟ෮ʹ ▸ ϔουΦϒϥΠϯϒϩοΩϯάͷࢭ
▸ ΞϓϦέʔγϣϯͷҰ෦ͱ࣮ͯ͠ ɾվྑ֦ு͕༰қʹ ex)Webϒϥβ͕Ξοϓσʔτ͞ΕΕQUICΞοϓσʔτ͞ΕΔ ͭ·Γɺɺɺ
CHAPTER.4 QUICͷొ τϥϯεϙʔτʹ͓͚Δͱ՝Λղܾ͠ɺ ߴੑɺ৴པੑͱ֦ுੑΛߴΊͨ৽͍͠ϓϩτίϧ ͦΕ͕ɺɺɺ ̦̪̞̘
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ ͍͔͕Ͱ͔ͨ͠ʁQUICͷ֓ཁ͕ͳΜͱͳʙ͘ɺ͔ͭΊ·͔ͨ͠ʁ ;ʔ͕@fuga__ch