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
54
0
Share
KLabエキスパートキャンプ成果発表
teru0x1
August 29, 2019
More Decks by teru0x1
See All by teru0x1
開発効率と信頼性を両立する Ubieのプラットフォームエンジニアリング
teru0x1
0
580
マルチクラスタの認知負荷に立ち向かう! Ubieのプラットフォームエンジニアリング
teru0x1
4
4.8k
ブラウザの外側でWasmを使おう
teru0x1
0
390
スタブサーバ自動生成ツール 〜負荷試験をもっと楽に〜
teru0x1
0
2k
バッチシステムをクラウドネイティブにするために考えたこと
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
カオナビに Suspenseを導入するまで / The Road to Suspense at kaonavi
kaonavi
1
440
Vision Banana: Image Generators are Generalist Vision Learners
kzykmyzw
0
340
雑談は、センサーだった
bitkey
PRO
2
220
PdM・Eng・QAで進めるAI駆動開発の現在地/aidd-with-pdm-eng-qa
shota_kusaba
0
160
フロントエンドの相手が変わった - AIが加わったWebの新しいインターフェース設計
azukiazusa1
33
11k
AI時代の品質はテストプロセスの作り直し #scrumniigata
kyonmm
PRO
4
1.4k
20260513_生成AIを専属DSに_AI分析結果の検品テクニック_ハンズオン_交通事故データ
doradora09
PRO
0
210
Purview 勉強会報告 Microsoft Purview 入門しようとしてみた
masakichixo
1
200
Claude Code / Codex / Kiro に AWS 権限を 渡すとき、何を設計すべきか
k_adachi_01
3
420
多角的な視点から見たAGI
terisuke
0
130
要件定義の精度を高めるための型と生成AIの活用 / Using Types and Generative AI to Improve the Accuracy of Requirements Definition
haru860
0
310
Shiny New Tools Won't Fix Your Problem
trishagee
1
120
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.7k
Scaling GitHub
holman
464
140k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
160
A designer walks into a library…
pauljervisheath
211
24k
Visualization
eitanlees
150
17k
Ruling the World: When Life Gets Gamed
codingconduct
0
220
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
210
Measuring & Analyzing Core Web Vitals
bluesmoon
9
820
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
340
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
340
First, design no harm
axbom
PRO
2
1.2k
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͍͍ͧʂʂʂʂʂʂʂʂʂ ϝϯλʔ͞Μɺνϡʔλʔ͞ΜɺӡӦ͞Μɺ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ