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
EZIO, Torrent-based Recovery
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Date Huang
May 01, 2017
Programming
0
250
EZIO, Torrent-based Recovery
Date Huang
May 01, 2017
Tweet
Share
More Decks by Date Huang
See All by Date Huang
STUNMESH-go: Wireguard NAT穿隧工具的源起與介紹
tjjh89017
0
480
從大學到出社會,這十年的參與和維護的開源專案
tjjh89017
0
1.2k
開源專案的商業困境
tjjh89017
0
410
Rapidly Deploy NFV with VyOS on Kubernetes
tjjh89017
0
470
設計Kubernetes Controller與CRD的實踐 - 以網路為例
tjjh89017
0
950
維護自己的開源專案EZIO的心路歷程
tjjh89017
1
540
Massive Bare-Metal Operating System Provisioning Improvement - OpenInfra Day Taiwan 2019/11/12
tjjh89017
0
120
Cloud Infrastructure Interconnect with Wireguard and OSPF
tjjh89017
0
550
Build Redundant Gaming Network with Wireguard and BGP
tjjh89017
1
2.6k
Other Decks in Programming
See All in Programming
2年のAppleウォレットパス開発の振り返り
muno92
PRO
0
190
[AI Engineering Summit Tokyo 2025] LLMは計画業務のゲームチェンジャーか? 最適化業務における活⽤の可能性と限界
terryu16
2
590
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
5.9k
Patterns of Patterns
denyspoltorak
0
1.3k
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
1
1k
TerraformとStrands AgentsでAmazon Bedrock AgentCoreのSSO認証付きエージェントを量産しよう!
neruneruo
4
2.6k
Oxlintはいいぞ
yug1224
5
1.2k
Grafana:建立系統全知視角的捷徑
blueswen
0
310
GISエンジニアから見たLINKSデータ
nokonoko1203
0
190
CSC307 Lecture 06
javiergs
PRO
0
670
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
11
6.1k
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.2k
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
190
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
110
Building AI with AI
inesmontani
PRO
1
660
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
48
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
0
300
Site-Speed That Sticks
csswizardry
13
1k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
280
Technical Leadership for Architectural Decision Making
baasie
1
230
Navigating Team Friction
lara
192
16k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
75
Transcript
EZIO BT-based Data Transfer Yu-Chiang Huang
Outline • CloneZilla • EZIO
CloneZilla • 猋犩牏螭ܻ敟誢 • Server Edition • Multicast-based • UDPcast
Multicast • ᗭ砮 • 盄蕦褾牧ℂ㬵䷱睞螂 • 墋ᘒԏ牧觊犲 Broadcast ጱ狶ဩ
UDPcast • Multicast • ݶྍ秚ګ
CloneZilla • 猻玊 • ݢ瓟婘 • ە玊 • 殾ಅ磪ፓ秂伛猋ਠ౮胼樄ত •
殾ݶྍ蒂ቘ牧ݢ胼䨝ݑک絑ह磧眸ጱࢩᔰ段
EZIO • BT-based • 䲆礯羬翄螭ܻ • ᪡螂绚玟璸
BT
BT • BitTorrent • P2P • ֑๐瑊犵毱疝揗斉
BT 礍䯤 • 獮๗ BT • Torrent • Tracker •
盅๗ BT • Magnet • DHT
Tracker • 戢㲘㪔ᔱ玲ٌ犢 Peer ጱ蝫娄虻懱 • Peer 戢㲘 Tracker ᛔ૩ጱ虻懱
Piece • 裾ଶ傶 2^N ጱ蝫媲玟ྦྷ • 疥ಅ磪䲆礯蝫矑牧ྯ 2^N 㴟獤傶Ӟ㮆 Piece
• 虻碘涢挨ጱ磧ੜ㻌֖ • Piece 碍ᰁ蝢ଉ䨝段蝧ଶ • 蝢ଉ Piece 碍ᰁࣁ 1000 ~ 2000 ԏ樌䨝磧֯
Torrent • 蝢圸物圵ৼ • Tracker 虻懱 • 䲆礯虻懱
Torrent Info { 'announce': 'http://tracker.site1.com/announce', 'info': { 'name': 'directoryName', 'piece
length': 262144, 'files': [ {'path': ['111.txt'], 'length': 111}, {'path': ['222.txt'], 'length': 222} ], 'pieces': '6a8af7eda90ba9f851831073c48ea6b7b7e9feeb... 8a43d9d965a47f75488d3fb47d2c586337a20b9f' } }
Tracker { 'announce': 'http://tracker.site1.com/announce', 'info': { 'name': 'directoryName', 'piece length':
262144, 'files': [ {'path': ['111.txt'], 'length': 111}, {'path': ['222.txt'], 'length': 222} ], 'pieces': '6a8af7eda90ba9f851831073c48ea6b7b7e9feeb... 8a43d9d965a47f75488d3fb47d2c586337a20b9f' } }
Files { 'announce': 'http://tracker.site1.com/announce', 'info': { 'name': 'directoryName', 'piece length':
262144, 'files': [ {'path': ['111.txt'], 'length': 111}, {'path': ['222.txt'], 'length': 222} ], 'pieces': '6a8af7eda90ba9f851831073c48ea6b7b7e9feeb... 8a43d9d965a47f75488d3fb47d2c586337a20b9f' } }
Piece Info { 'announce': 'http://tracker.site1.com/announce', 'info': { 'name': 'directoryName', 'piece
length': 262144, 'files': [ {'path': ['111.txt'], 'length': 111}, {'path': ['222.txt'], 'length': 222} ], 'pieces': '6a8af7eda90ba9f851831073c48ea6b7b7e9feeb... 8a43d9d965a47f75488d3fb47d2c586337a20b9f' } }
Filename { 'announce': 'http://tracker.site1.com/announce', 'info': { 'name': 'directoryName', 'piece length':
262144, 'files': [ {'path': ['111.txt'], 'length': 111}, {'path': ['222.txt'], 'length': 222} ], 'pieces': '6a8af7eda90ba9f851831073c48ea6b7b7e9feeb... 8a43d9d965a47f75488d3fb47d2c586337a20b9f' } }
File Hash { 'announce': 'http://tracker.site1.com/announce', 'info': { 'name': 'directoryName', 'piece
length': 262144, 'files': [ {'path': ['111.txt'], 'length': 111}, {'path': ['222.txt'], 'length': 222} ], 'pieces': '6a8af7eda90ba9f851831073c48ea6b7b7e9feeb... 8a43d9d965a47f75488d3fb47d2c586337a20b9f' } }
BT • 猻玊 • 覍ݶྍ蒂ቘ • 虻碘涢挨 • ە玊 •
犋ݢ瓟婘
Implement
Implement • ल䲆礯羬翄蝱 Torrent • ፗ矑䌃蝱Ꮭ繕
Filesystem • Idea • Filesystem = Metadata + Data
Filesystem • Implement • Filesystem = Blocks • inode ∈
Block • data ∈ Block
None
None
Filesystem • Block 傶च器牧Block size ࢴਧ • 磪 Superblock 牧獵ӥ磪ֵአکጱ
Block ᮷ݢ犥Ꭳ • Block offset • Block size
Filename { 'announce': 'http://tracker.site1.com/announce', 'info': { 'name': 'directoryName', 'piece length':
262144, 'files': [ {'path': ['111.txt'], 'length': 111}, {'path': ['222.txt'], 'length': 222} ], 'pieces': '6a8af7eda90ba9f851831073c48ea6b7b7e9feeb... 8a43d9d965a47f75488d3fb47d2c586337a20b9f' } }
Filesystem Block • ल䲆礯羬翄蝱 Torrent • Offset —> Filename •
Length —> File Length
Write Disk Directly • 眤蘛 libtorrent.org • 䋿֢ custom_storage •
ፗ矑 Block 䌃کᏝ繕ྋ嘦ጱ֖ᗝӤ
Benchmark
Benchmark • ፓ獮ጱ䋿涢᮷氥纈䨝穉 Multicast ጱ狶ဩ盠 • To be continue
Optimization
Connection • 蝫娄碍哴ݢ胼牧Ӭ犋胼犵ෝ 2 牧犥ع蝐玕 • 姘瞱犵蝫娄碍牏ṛߝ搡蝫娄
Cache • 盠玲哴ݢ胼य़ • 碉誢蝧ଶ疰犋䨝ݑ褖ෝᏝ繕蝧ଶ • 翕᪠蝧ଶ > Ꮭ繕褰秚ਂ玲蝧ଶ
Origin Server • ܻত秚ጱ蝧ଶ段碉誢蝧ଶ • ܻত秚哴ݢ胼盠
WARNING!
Warning • ݢ胼蝧ଶ盠ک䨝虏֦ጱ Switch 稴吚 • ইຎ Switch 胙礂毱疝磪猂碘 •
森 P2P ጱ翕᪠ݢ胼䨝犋胼ֵአ
How to
How to • Standalone EZIO • EZIO integrated CloneZilla