ufft: ultra-fast file transfer
DESCRIPTION
UFFT: Ultra-Fast File Transfer. Sandeep Kakumanu Cheng-Lin Tsao Muhammad Raza Khan. Background. Current bulk file transfer Either single path from single server Or multiple paths from multiple servers (one from each) in a costly CDN Multi-path routing - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: UFFT: Ultra-Fast File Transfer](https://reader036.vdocuments.net/reader036/viewer/2022082422/56812d53550346895d92584a/html5/thumbnails/1.jpg)
UFFT: Ultra-Fast File Transfer
Sandeep KakumanuCheng-Lin Tsao
Muhammad Raza Khan
![Page 2: UFFT: Ultra-Fast File Transfer](https://reader036.vdocuments.net/reader036/viewer/2022082422/56812d53550346895d92584a/html5/thumbnails/2.jpg)
Background Current bulk file
transfer Either single path from
single server Or multiple paths from
multiple servers (one from each) in a costly CDN
Multi-path routing Existence of multiple
paths from single server to single client
Potential benefits: increased end-to-end throughput, loss/failure tolerance
Source
Client
Source 2
Source 3
Data Streams
Paths
![Page 3: UFFT: Ultra-Fast File Transfer](https://reader036.vdocuments.net/reader036/viewer/2022082422/56812d53550346895d92584a/html5/thumbnails/3.jpg)
Proposed architecture Multi-path routing using overlay
networks One direct path from server to client Multiple indirect paths through overlay
nodes
Source
Client
Indirect paths
Direct path
![Page 4: UFFT: Ultra-Fast File Transfer](https://reader036.vdocuments.net/reader036/viewer/2022082422/56812d53550346895d92584a/html5/thumbnails/4.jpg)
Our solution Use overlay networks to setup multiple pat
hs Use digital fountain codes to minimize prob
ing Fountain codes: a class of rateless codes Generate huge number of encoded packets Decode from any subset of K encoded packets Inherent functionality of integrating traffic
![Page 5: UFFT: Ultra-Fast File Transfer](https://reader036.vdocuments.net/reader036/viewer/2022082422/56812d53550346895d92584a/html5/thumbnails/5.jpg)
Milestones Finished implementing 3 different rateless codes in
C++ # symbols K = 10000, size of symbol = 1000 bytes Random codes: high decoding complexity O(K3) LT codes: O(K) complexity, 2 seconds Online codes: also O(K)
Implement overlay network on PlanetLab Send encoded packets over multiple paths on the
overlay Performance measurements
![Page 6: UFFT: Ultra-Fast File Transfer](https://reader036.vdocuments.net/reader036/viewer/2022082422/56812d53550346895d92584a/html5/thumbnails/6.jpg)
Select symbols
Choose degree
Degree Prob.
1 0.0040
2 0.4738
3 0.1585
4 0.0796
… …
10000 9.44e-9
Degree distribution (k=10000,c=0.03,δ=0.01)
Original symbols
Random generation
XOR encoding
Header Encoded symbol
Original data
LT codes (encoding)
Random seed
![Page 7: UFFT: Ultra-Fast File Transfer](https://reader036.vdocuments.net/reader036/viewer/2022082422/56812d53550346895d92584a/html5/thumbnails/7.jpg)
LT codes (decoding)
Original symbols
Original data
Encoded symbols
Encoded symbols
![Page 8: UFFT: Ultra-Fast File Transfer](https://reader036.vdocuments.net/reader036/viewer/2022082422/56812d53550346895d92584a/html5/thumbnails/8.jpg)
Measurements
Throughput and overhead vs. # of paths
0
20
40
60
80
100
1 2 3 4Number of paths
Thro
ughp
ut (M
bps)
0.00
2.00
4.00
6.00
8.00
10.00
Ove
rhea
d (%
)
throughputoverhead
Throughput and overhead vs. file size
0
200
400
600
800
1000
1200
1 5 10 20File size (MByte)
Thro
ughp
ut (M
bps)
0
5
10
15
20
Ove
rhea
d (%
)
throughputoverhead
UDP Throughput using multiple paths
0
20
40
60
80
100
120
1 2 3 4
No of paths
Th
rou
gh
pu
t an
d G
oo
dp
ut
Mb
ps
Throughput
Goodput
![Page 9: UFFT: Ultra-Fast File Transfer](https://reader036.vdocuments.net/reader036/viewer/2022082422/56812d53550346895d92584a/html5/thumbnails/9.jpg)
Improvements in LT Codes
LT Codes on the average require 500 more encoded blocks then the original number of blocks
Can we some how reduce this upper bound? Online Codes
![Page 10: UFFT: Ultra-Fast File Transfer](https://reader036.vdocuments.net/reader036/viewer/2022082422/56812d53550346895d92584a/html5/thumbnails/10.jpg)
Online Codes
Select symbols
Choose degree
Degree Prob.
1 0.0040
2 0.4738
3 0.1585
4 0.0796
… …
F 9.44e-9
Original symbols
Random generation
XOR encoding
Header Encoded symbol
Original data
Random seed
ε = sub-optimality
Q= success probability
F= Function(ε)
Composite symbols X XX
Aux symbols
XOR encoding
12 … Q
Step 1
Step 2
Step3 Step4
Step5
Step6
![Page 11: UFFT: Ultra-Fast File Transfer](https://reader036.vdocuments.net/reader036/viewer/2022082422/56812d53550346895d92584a/html5/thumbnails/11.jpg)
Online Codes (Decoding)
Original symbols
Original data
Encoded symbols
X XX
No of Encoded Blocks needed to decode a file of Blocks n = (1+ 3*ε )n
Aux symbols
Arrows indicate decoding from Aux blocks
![Page 12: UFFT: Ultra-Fast File Transfer](https://reader036.vdocuments.net/reader036/viewer/2022082422/56812d53550346895d92584a/html5/thumbnails/12.jpg)
Decoded Blocks vs Received Blocks
![Page 13: UFFT: Ultra-Fast File Transfer](https://reader036.vdocuments.net/reader036/viewer/2022082422/56812d53550346895d92584a/html5/thumbnails/13.jpg)
Overhead of Online Codes Encoding
Overhead
0
0.2
0.4
0.6
0.8
1
1.2
1.4
2557 5238 9869 16873
No of Original blocks
% overhead
![Page 14: UFFT: Ultra-Fast File Transfer](https://reader036.vdocuments.net/reader036/viewer/2022082422/56812d53550346895d92584a/html5/thumbnails/14.jpg)
Conclusions Diversity of multi-path was exploited to
increase capacity Digital fountain codes are used to prevent
adverse effects of blasting packets Implemented 2 different Digital fountain codes in C+
+ Digital Fountain Codes can be used as Poor
Man solution for transmitting data on multiple paths. Instead of first analyzing different paths just encode data using Digital Fountain Codes and send.
![Page 15: UFFT: Ultra-Fast File Transfer](https://reader036.vdocuments.net/reader036/viewer/2022082422/56812d53550346895d92584a/html5/thumbnails/15.jpg)
Issues and Future Work Issues
Computation overhead Not suitable for slow machines
Inconsistent data transfer Difference in file system?
Future work Complete implementation
Control mechanism Segmentation into blocks
Offline processing Primary thread: decoding decision, secondary thread: XOR Reserve network resources
Rate control No rate control in this project Not TCP-friendly