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.4k
OSSから学んだPR Descriptionの書き方
fugakkbn
4
410
入社数ヶ月のnewbieが 稼働7年超のプロジェクトに 型を導入して見えた世界
fugakkbn
4
3.8k
オンライン時代のペアプログラミング
fugakkbn
1
960
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
440
fbc-lt-code-review
fugakkbn
0
1.2k
タスクの洗い出しという壁 /fjord-lt-slide-fuga
fugakkbn
2
860
Other Decks in Programming
See All in Programming
How mixi2 Uses TiDB for SNS Scalability and Performance
kanmo
40
16k
GAEログのコスト削減
mot_techtalk
0
120
『テスト書いた方が開発が早いじゃん』を解き明かす #phpcon_nagoya
o0h
PRO
6
2.2k
ソフトウェアエンジニアの成長
masuda220
PRO
12
2k
PHPのバージョンアップ時にも役立ったAST
matsuo_atsushi
0
210
Conform を推す - Advocating for Conform
mizoguchicoji
3
710
ファインディLT_ポケモン対戦の定量的分析
fufufukakaka
0
890
バッチを作らなきゃとなったときに考えること
irof
2
480
プログラミング言語学習のススメ / why-do-i-learn-programming-language
yashi8484
0
150
新宿駅構内を三人称視点で探索してみる
satoshi7190
2
110
CloudNativePGを布教したい
nnaka2992
0
100
もう僕は OpenAPI を書きたくない
sgash708
5
1.9k
Featured
See All Featured
Site-Speed That Sticks
csswizardry
4
400
Automating Front-end Workflow
addyosmani
1368
200k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Building Your Own Lightsaber
phodgson
104
6.2k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Git: the NoSQL Database
bkeepers
PRO
427
65k
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