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
410
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Learn "QUIC" Quickly!
2021.9.24 鹿児島.mkのLTで登壇した時の発表資料です。
QUICというプロトコルについて話しました。
Fu-ga
September 24, 2021
More Decks by Fu-ga
See All by Fu-ga
初めてのパフォーマンス改善
fugakkbn
18
7.3k
OSSから学んだPR Descriptionの書き方
fugakkbn
4
570
入社数ヶ月のnewbieが 稼働7年超のプロジェクトに 型を導入して見えた世界
fugakkbn
4
4.3k
オンライン時代のペアプログラミング
fugakkbn
1
1.2k
Types teaches success, what will we do?
fugakkbn
1
12k
What I can do to get the job smoothly
fugakkbn
0
420
introduction-to-rindokurb
fugakkbn
0
540
fbc-lt-code-review
fugakkbn
0
1.3k
タスクの洗い出しという壁 /fjord-lt-slide-fuga
fugakkbn
2
970
Other Decks in Programming
See All in Programming
JavaDoc 再入門
nagise
1
350
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
5.1k
dRuby over BLE
makicamel
2
340
ふつうのFeature Flag実践入門
irof
7
3.9k
ローカルLLMを使ってB2Bサービスを作っていての学び
yaotti
0
170
The NotImplementedError Problem in Ruby
koic
1
790
スマートグラスで並列バイブコーディング
hyshu
0
140
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
8
4.6k
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
400
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
540
そのテスト、説明できますか?~LWテスト戦略FW~のご紹介
nakahara
0
120
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
130
Featured
See All Featured
Joys of Absence: A Defence of Solitary Play
codingconduct
1
390
エンジニアに許された特別な時間の終わり
watany
107
250k
Amusing Abliteration
ianozsvald
1
200
Building an army of robots
kneath
306
46k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
200
The Spectacular Lies of Maps
axbom
PRO
1
810
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
30 Presentation Tips
portentint
PRO
1
320
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
440
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
230
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