Title: A Unified Framework for Modeling TCPVegas, TCPSACK, and TCPReno
1A Unified Framework for Modeling TCP-Vegas,
TCP-SACK, and TCP-Reno
- Adam Wierman Takayuki OsogamiCarnegie Mellon
University
Jörgen OlsénUppsala University
2Motivation
TCP Reno
TCP is widely used and the protocol is constantly
evolving.
How will new mechanisms perform?
3Our goal is
- A framework for modeling TCP that
- Predicts both loss rate and throughput (the
full operating point) - Can model the network under on/off traffic
- Can model arbitrary variations of TCP
4TCP Source Models
Source Model
Loss Rate Round Trip Time (RTT) Delay
Distribution
Throughput
- Renewal Theory
- - Doesnt predict loss
- rate
- - Assume long flows
- Derived for multiple
- TCP variations
- Padhe, Firoiu, Kumar,
- Cardwell, Towsley,
- Vernon,
Our goal is
- Fluid Models
- Doesnt predict loss
- rate
- Arbitrary network
- - Use simplified TCP
- models
- Bonald, Towsley, Misra,
- Altman, Fekete,
- A framework for modeling TCP that
- Predicts both loss rate and throughput
- (the full operating point)
- Can model the network under on/off traffic
- Can model arbitrary variations of TCP
Lots of other work Markovian models, Processor
sharing models, Control theoretic, Mitrani,
Mitra, Roberts, Bonald, Van der Mei,
5Fixed-point Models
- Fixed-point methods
- Can predict the
- full operating point
- Can capture general
- network behavior
- Almost exclusively used
- for TCP Reno / Tahoe
- Misra, Ott, Firoiu,
- Casetti, Meo, Gibbens,
- Bu, Towsley, Roughan,
- Our Model
- Can predict the
- full operating point
- Can model on/off traffic
- Easily adapts to
- arbitrary variations
- of TCP
Our goal is
- A framework for modeling TCP that
- Predicts both loss rate and throughput
- (the full operating point)
- Can model the network under on/off traffic
- Can model arbitrary variations of TCP
6Our Model
This work generalizes the framework developed by
Casetti and Meo in 01
7Outline
- Model Overview
- TCP Model
- Application Model
- Network Model
8TCP Reno
9TCP Reno
Congestion Avoidance Infer congestion only
when a loss occurs, otherwise increase window
size on every RTT.
10TCP Reno Model
10
9
8
7
6
5
4
timeout state
3
The states are labeled by window
size. Transitions happen once every RTT (except
at a timeout state).
2
0
1
11TCP Reno
Slow-start The window size is doubled every
RTT as long as no packets are lost. Exit when
threshold window size is reached.
12TCP Reno Model
10
9
8
7
6
5
4
4
3
The states are labeled by window
size. Transitions happen once every RTT (except
at a timeout state).
2
2
2
0
0
1
1
1
0
13TCP Reno
Fast Retransmit If a loss occurs and can be
recovered from, cut the window size in half. If
the loss cant be recovered from, time-out.
14TCP Reno Model
10
9
8
7
6
5
5
4
4
4
3
3
The states are labeled by window
size. Transitions happen once every RTT (except
at a timeout state).
2
2
2
2
0
0
1
1
1
0
15TCP Reno
Exponential Backoff Consecutive timeouts cause
the timeout length to double.
16TCP Reno Model
10
9
8
7
6
5
5
4
4
4
3
3
The states are labeled by window
size. Transitions happen Once every RTT
(except at timeout states)
2
2
2
2
0
0
1
1
1
0
0
0
0
0
17TCP Comparison
18TCP Vegas
Congestion Avoidance Adjust window size in
response to the current network delay. e.g.
Too much delay causes the window size to be
reduced.
Time
Time
19TCP Vegas Model
10
9
8
7
6
5
5
4
4
4
3
3
The states are labeled by window
size. Transitions happen Once every RTT
(except at timeout states)
2
2
2
2
0
0
1
1
1
0
0
0
0
0
20TCP Vegas
Fast Retransmit Because the delay is used to
adjust window sizes, we need only drop the
window size by ¼ when we can recover from
loss.
Time
21TCP Vegas Model
10
10
9
9
8
8
7
7
7
6
6
6
5
5
5
4
4
4
4
3
3
3
The states are labeled by window
size. Transitions happen Once every RTT
(except at timeout states)
2
2
2
2
2
0
0
0
0
1
1
1
0
1
0
0
0
0
22TCP Vegas
Slow-start Query delay and exit slow-start early
if delay is too high, or if window size threshold
is reached.
Time
23TCP Vegas Model
10
10
9
9
8
8
7
7
7
6
6
6
5
5
5
4
4
4
4
4
3
3
3
The states are labeled by window
size. Transitions happen Once every RTT
(except at timeout states)
2
2
2
2
2
2
2
0
0
0
0
1
1
1
0
1
0
0
0
0
24Outline
- Model Overview
- TCP Model
- Application Model
- Network Model
25Application Model
App
TCP
Network
Idle
Link
26Outline
- Model Overview
- TCP Model
- Application Model
- Network Model
27Model Overview
This work generalizes the framework developed by
Casetti and Meo in 01
28Results
External Metrics Throughput Loss Rate
Internal Metrics Time spent in timeout
states Time spent in slow-start Time spent in
fast retransmit states
29Results External
External Metrics Throughput Loss Rate
Vegas
model ns
30Results External
External Metrics Throughput Loss Rate
31Results Internal
Internal Metrics Time spent in timeout
states Time spent in slow-start Time spent in
fast retransmit states
32Results Internal
Internal Metrics Time spent in timeout
states Time spent in slow-start Time spent in
fast retransmit states
Vegas SACK Reno
33Results Internal
Internal Metrics Time spent in timeout
states Time spent in slow-start Time spent in
fast retransmit states
Vegas SACK Reno
0
0
34Contributions
- A framework for modeling TCP that
- Predicts both loss rate and throughput
- (the full operating point)
- Can model the network under on/off traffic
- Can model arbitrary variations of TCP
Our model of TCP Vegas is top-of-the-line.
35A Unified Framework for Modeling TCP-Vegas,
TCP-SACK, and TCP-Reno
The WOO Model
- Adam Wierman Takayuki OsogamiCarnegie Mellon
University
Jörgen OlsénUppsala University
36TCP SACK
37TCP SACK
Fast Retransmit Uses Selective ACKs to guarantee
that all losses can be recovered from.
38TCP SACK Model
10
9
8
7
6
5
5
4
4
4
3
3
The states are labeled by window
size. Transitions happen Once every RTT
(except at timeout states)
2
2
2
2
0
0
1
1
1
0
0
0
0
0
39Network Model
Network Model
Arrival Rate
Loss Rate Delay Distribution
Bottleneck Buffer
TCP Sending Rate
Link Capacity
Buffer Capacity
What kind of queue? M/D/1/b, M10/M/1/b, M/M/1/b
40Extensions
41Network Models
Network Model
Arrival Rate
Loss Rate Delay Distribution
Lots of techniques from Queueing, Markov chains,
Learning theory, and others