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
360
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.3k
OSSから学んだPR Descriptionの書き方
fugakkbn
4
400
入社数ヶ月のnewbieが 稼働7年超のプロジェクトに 型を導入して見えた世界
fugakkbn
4
3.8k
オンライン時代のペアプログラミング
fugakkbn
1
940
Types teaches success, what will we do?
fugakkbn
1
11k
What I can do to get the job smoothly
fugakkbn
0
360
introduction-to-rindokurb
fugakkbn
0
430
fbc-lt-code-review
fugakkbn
0
1.2k
タスクの洗い出しという壁 /fjord-lt-slide-fuga
fugakkbn
2
850
Other Decks in Programming
See All in Programming
Androidアプリの One Experience リリース
nein37
0
1.2k
Alba: Why, How and What's So Interesting
okuramasafumi
0
210
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
6
700
선언형 UI에서의 상태관리
l2hyunwoo
0
270
ASP.NET Core の OpenAPIサポート
h455h1
0
120
オニオンアーキテクチャを使って、 Unityと.NETでコードを共有する
soi013
0
370
PHPとAPI Platformで作る本格的なWeb APIアプリケーション(入門編) / phpcon 2024 Intro to API Platform
ttskch
0
390
GitHub CopilotでTypeScriptの コード生成するワザップ
starfish719
26
6k
AppRouterを用いた大規模サービス開発におけるディレクトリ構成の変遷と問題点
eiganken
1
450
asdf-ecspresso作って 友達が増えた話 / Fujiwara Tech Conference 2025
koluku
0
1.4k
Amazon Nova Reelの可能性
hideg
0
200
Итераторы в Go 1.23: зачем они нужны, как использовать, и насколько они быстрые?
lamodatech
0
1.4k
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7.1k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Faster Mobile Websites
deanohume
305
30k
Thoughts on Productivity
jonyablonski
68
4.4k
Designing for Performance
lara
604
68k
Six Lessons from altMBA
skipperchong
27
3.6k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
98
18k
Practical Orchestrator
shlominoach
186
10k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
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