Documente Academic
Documente Profesional
Documente Cultură
Allen B. Downey
Olin College of Engineering
TCP Performance
Goal: model and predict transfer times.
Interactive applications.
Predict duration of downloads.
Select mirror site.
Distributed applications.
Resource selection.
Scheduling.
2
Goals
Complementary questions:
What do we need to
know about a
network path?
What can we
measure about a
network path?
Minimize
measurement.
Complementary goals:
Maximize accuracy.
Two approaches
History-based.
Pro: Good statistical description.
Con: Availability of data?
Passive: Might not have seen what you need.
Active: Obtrusive?
Model-based.
Pro: small measurements parameters
model predictions
Con: single-value predictions.
Con: incomplete models, so far.
4
TCP Models
Hybrid model
ss0
ss1
ss2
ssn
ca
Model parameters
So what do we need to know?
Distribution of rtt.
Measurement
Timing chart
server 7 timing chart
100
size (1000 B)
80
Immediately, we
can estimate rtt,
cw, bw and bdp.
60
40
20
0
100
200
300
time (ms)
400
9
Estimating parameters
2, 4, 8, 16, 32 ...
2, 4, 6, 4, 5, 6 ...
2, 4, 6, (long pause) 11, 6 ...
3, 6, 12, 15, 15, 15 ...
3, 6, 12, 51, 17, 63 ...
10
Measurement
Measurements:
100,000 byte transfers.
100 transfers, with 100s between.
HTTP downloads:
2 URLs provided by collaborators.
11 URLs culled from proxy cache logs.
Window sizes
server 7 window sizes
observed window (packets)
4
3
2
1
40
30
20
10
0
20
40
60
measurement
80
12
Window sizes
server 3 window sizes
4
3
2
1
15
10
20
40
60
measurement
cw2 is
sometimes 3,
sometimes 4.
cwn+1 is
2 cwn m,
where m is
0, 1, 2, ...
10 out of 13 are
similar.
80
13
14
Estimating Parameters
R: Distribution of rtt.
T : Distribution of throughput.
ss0
ss1
ss2
ssn
ca
15
Generating predictions
Monte Carlo simulation of finite state model:
1. Start at ss0 .
2. Choose a state transition at random.
3. If in slow start, choose rtt from R and cw from W.
4. If in congestion avoidance, choose throughput from T.
5. Update total time and total data transmitted.
6. If total data > size, return total time.
7. Otherwise go to step 2.
16
Validation
17
Example #1
server 7 tts (cdf)
1.0
0.8
0.6
0.4
Deterministic
slow start.
Bandwidth
limited.
1000
5000
20000
50000
100000
0.2
0.0
62
119
231
x (ms)
447
866
18
Example #2
server 1 tts (cdf)
1.0
Nondeterministic
slow start
multimodal
distributions.
Modes at
multiples of rtt.
0.8
0.6
0.4
1000
5000
20000
50000
100000
0.2
0.0
563
1119
2227 4431
x (ms)
8815
19
Example #3
server 2 tts (cdf)
1.0
Buffer-limited.
0.8
0.6
0.4
1000
5000
20000
50000
100000
0.2
0.0
18
29
46
x (ms)
74
119
20
Example #4
server 9 tts (cdf)
1.0
0.8
0.6
0.4
Congestion
limited.
Underestimating
variability?
1000
5000
20000
50000
100000
0.2
0.0
121
419
Evil case #1
server 3 tts (cdf)
1.0
0.8
0.6
0.4
Up to 50,000
bytes, not bad.
Anything over
60,000, way off!
1000
5000
20000
50000
100000
0.2
0.0
101
190
355
x (ms)
665
1244
22
Server performance
23
Evil case #2
server 6 tts (cdf)
1.0
Model smoothes
the modes.
0.8
0.6
0.4
1000
5000
20000
50000
100000
0.2
0.0
19
41
91
x (ms)
201
443
24
Multiple paths
server 6 timing chart
100
size (1000 B)
80
Akamai-style
content delivery
multimodal
rtt.
60
40
20
0
100
200
300
time (ms)
400
25
Headlines
26
Ongoing work
Followup paper:
TCP Self-Clocking and Bandwidth Sharing.
27
Had enough?
Contact me at
downey@allendowney.com
28