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
KLabエキスパートキャンプ成果発表
Search
teru0x1
August 29, 2019
Technology
55
0
Share
KLabエキスパートキャンプ成果発表
teru0x1
August 29, 2019
More Decks by teru0x1
See All by teru0x1
開発効率と信頼性を両立する Ubieのプラットフォームエンジニアリング
teru0x1
0
600
マルチクラスタの認知負荷に立ち向かう! Ubieのプラットフォームエンジニアリング
teru0x1
4
4.9k
ブラウザの外側でWasmを使おう
teru0x1
0
400
スタブサーバ自動生成ツール 〜負荷試験をもっと楽に〜
teru0x1
0
2.1k
バッチシステムをクラウドネイティブにするために考えたこと
teru0x1
17
8.6k
クラウド環境をFargateに 移行して得た知見
teru0x1
0
1.6k
Goと定数 DMM.go #3
teru0x1
0
2.8k
はてなインターン2020成果発表
teru0x1
0
1.2k
入門QUIC
teru0x1
0
600
Other Decks in Technology
See All in Technology
ポスター発表&デモと総括 / Poster Presentations & Demonstrations and Summary
ks91
PRO
0
180
layerx-fde-practices
cipepser
6
2.9k
Javaで学ぶSOLID原則
negima
1
240
Unlocking the Apps
pimterry
0
130
類似画像検索モデルの開発ノウハウ
lycorptech_jp
PRO
4
1.1k
AI-DLCを活用した高品質・安全なAI駆動開発実践 / AI Driven Development
yoshidashingo
1
270
APIテストとは?
nagix
0
160
20260528_生成AIを専属DSに_Howの次にすべきことを考える
doradora09
PRO
0
270
インフラが苦手でも大丈夫! 紙芝居 Kubernetes -WWGT 10周年編-
aoi1
1
310
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.5k
もりもり新機能を一挙紹介! AgentCoreに入門して、AWS上にAIエージェントを構築しよう
minorun365
PRO
6
350
AI時代の私の技術インプットとアウトプット術
tonkotsuboy_com
15
8k
Featured
See All Featured
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
Thoughts on Productivity
jonyablonski
76
5.2k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
190
We Are The Robots
honzajavorek
0
240
Navigating Weather and Climate Data
rabernat
0
200
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
260
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
210
So, you think you're a good person
axbom
PRO
2
2k
Raft: Consensus for Rubyists
vanstee
141
7.5k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
Exploring anti-patterns in Rails
aemeredith
3
380
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
230
Transcript
KLAB EXPERT CAMP Ռൃද খ ً
ࣗݾհ • ւಓେֶ ใΤϨΫτϩχΫεֶՊ 4 • དྷ͠·͢ • seccamp(2018), SecHack365(2017)
খ ً @teru0x1
ࢲͷςʔϚ RustͰTCPͷ࣮
ͳͥRUST͔ • CݴޠฒΈͷߴ͍ύϑΥʔϚϯε • ܕ҆શੑɺϝϞϦ҆શੑ - ະఆٛಈ࡞͕ൃੜ͠ͳ͍ - ແޮͳϙΠϯλ࡞͞Εͳ͍ʢ͔ؔΒϩʔΧϧมͷϙΠ ϯλΛฦ͢ͳͲʣ
- ίϯύΠϧ௨ͬͨ࣌ͷ҆৺ײ͕͍͢͝ • ߴ͍දݱྗ(ΫϩʔδϟɺΠςϨʔλ) • ॆ࣮ͨ͠ඪ४ϥΠϒϥϦʢϋογϡςʔϒϧɺλϓϧʣ
༷ͳͲ • TCPͷιέοτϥΠϒϥϦͱͯ͠ΞϓϦέʔγϣϯ͔Βར༻Ͱ͖Δ Α͏ʹͨ͠ • ࣮ͨ͠API - connect(): 3-way-handshakeΛߦ͍ଓΛཱ֬͢Δ -
bind(): Ϧεχϯάιέοτͷੜɺࢦఆͨ͠ΞυϨεͰϦοεϯ - accept(): ଓࡁΈιέοτΛฦ͢ - read(): ଓࡁΈιέοτ͔ΒಡΈࠐΉ - write(): ଓࡁΈιέοτॻ͖ࠐΉ • ࠶ૹ੍ޚ
࣮ʹ͍ͭͯ • TCP/IPࣗ࡞ຊɺmicropsͷ࣮Λ͔ͳΓࢀߟʹͨ͠ɻ • l3·ͰpnetΫϨʔτΛར༻ʢνΣοΫαϜͳͲϥΠϒϥϦΛ ͏ʣ • ϥΠϒϥϦΛར༻͢ΔΞϓϦέʔγϣϯͱͯ͠echoαʔόɺΫϥ ΠΞϯτΛ࡞ͨ͠ɻ
8/26 • ඈߦػͰඈΜͰ͘Δ • ݐͷೖΓํ͕Θ͔Βͳ͔ͬͨ • ͓ण͓͍͍࢘͠ • APIͷܗΛ࡞Δ •
ઃܭʹۤ࿑͢ΔʢTCPͷཧςʔϒϧͲ͜ʹ࣋ͨͤΑ͏ʁʣ
8/27 • 3-way-handshakeୡ
8/28 • connect(), read(), write()Λ࣮ • TCPΫϥΠΞϯτͷػೳྃ • bind()Λ࣮ɺαʔόʔͬΆ͍͜ͱ͕Ͱ͖ΔΑ͏ʹͳͬͨ •
͜ͷ࣌1ϙʔτ1ଓͩͬͨ
8/29 • accept()Λ࣮ • ࠶ૹ੍ޚΛ࣮
σϞ • ಈ͍͍͓ͯͩ͘͞ئ͍͠·͢ • echoαʔόVMʢUbuntuʣ, ΫϥΠΞϯτmacOSͰ͢
େมͩͬͨͱ͜Ζ • ࣗ࡞TCP͕͍ͬͯΔVMͷΧʔωϧ͕֎෦͔ΒདྷͨSYNʹରͯ͠ RSTΛฦ͢ - iptablesͰ֎͖ͷRSTυϩοϓͨ͠ • RustͷίϯύΠϧΛ௨͢͜ͱ
͞Γ͛ͳ͘એ • ιέοτϓϩάϥϛϯά • ύέοτΩϟϓνϟ • ϙʔτεΩϟϯπʔϧ • non-blocking web
αʔό • DHCPαʔό
ײͳͲ • TCPશʹཧղͨ͠ งғؾ͕গ͠Θ͔ΔΑ͏ʹͳͬͨ - ίωΫγϣϯཧͷख๏͕Θ͔ͬͨ - ঢ়ଶΛ࣋ͭͱҰؾʹෳࡶʹͳΔ • 1ʹҰճσουϩοΫͰϋϚͬͨ
- ͰɺʮσουϩοΫͯ͠ΔΑʂʯͱॲཧܥ͕ڭ͑ͯ͘ΕΔ • ggͬͯग़ͯ͜ͳ͍ਂ͍ࣝʹ͍࣭ͭͯͰ͖ͯษڧʹͳͬͨɻ • ߨٛͷํฉ͍ͯΈ͔ͨͬͨ • Rust͍͍ͧʂʂʂʂʂʂʂʂʂ ϝϯλʔ͞Μɺνϡʔλʔ͞ΜɺӡӦ͞Μɺ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ