Performance models of TCP
can simulate (ns-2)
+ faithful to operation of TCP
- expensive, time consuming
deterministic approximations
+ quick
- ignore some TCP details, steady state
fluid models
+ transient behavior
- ignore some TCP details
TCP behavior
TCP runs at end-hosts
congestion control:
decrease sending rate
when loss detected,
increase when no loss
routers
discard, mark packets
when congestion occurs
interaction between end
systems (TCP) and
routers?
want to understand congested router drops packets
(quantify) this interaction
Generic TCP behavior
window algorithm (window W)
up to W packets in network
return of ACK allows sender to send another
packet
cumulative ACKS
increase window by one per RTT
W window
reduced to one, W p = p(x)
1
Marking probability p
More generally:
active queue
management pmax
(AQM) 0 tmin tmax
2tmax
Average queue length x
Bottleneck behavior
bottleneck router:
capacity fully utilized
all interfering sessions
see same loss prob.
do all sessions see
same thruput?
i Bi (RTTi ,p) = C
C - router bandwidth
Bi - throughput of flow i
Single bottleneck: infinite flows
N infinite TCP sessions
two way propagation
delay Ai, i = 1,…,N
throughput Bi(p,RTTi)
one bottleneck router
RED queue management
• avg. queue length x ; dropping probability p(x)
to discover
Bi: TCP sessions’ throughput,
router behavior, e.g., drop prob. avg. queue len.
Model and solution
model
p = p(x) (AQM)
RTTi = Ai + x /C (round trip time)
i Bi (x) = C, for i =1 ,…,N
i B (p , RTT i) = C, for i =1 ,…,N
solve a fixed point problem for x
unique solution provided B is monotonic and
continuous on x
resulting x can be used to obtain RTTi and p
Model versus simulation: single
bottleneck, infinite flows
• fixed router capacity 4 Mbps and RED parameters
• 10-120 TCP flows
• two-way prop. delay 20+2i ms, i = 1,…,N
throughput router loss
Bottleneck principle: a qualitative
result
Bnew(p)
new/improved,
Bnew(p)
thruput
TCP, BTCP(p)
BTCP(p)
Bnew(p) > BTCP(p)
p
Sharing bottleneck with TCP
C
Nnew
NTCP
Nnew Bnew(p) + NTCP Bni(p) = C
Bnew(p) > BTCP(p)
a win! friendly? p
Replacing TCP with TCP-new
N Bnew(pnew) = C C
vs N
N BTCP(pTCP) = C
pnew > pTCP
a loss!
pTCP pnew
simple model for TCP B c , c ≈ 1.2
T p
bottleneck principle
multiple bottlenecks
fluid models
Multiple Bottleneck: infinite flows
N TCP flows
throughputs B =
V congested AQM routers
capacities C =
avg. queue lengths x =
discard prob. p =
bottleneck router model
i Bi (x ) = Cv , v =1,…,V
V equations, V unknowns
Results: multiple bottleneck, infinite flows
• tandem network core, 5 -
10 routers
• 2-way propagation delay
20-120 ms
• bandwidth, 2-6 Mbps
throughput
• PFTK model error
• throughput
System of Differential Equations
Timeouts and slow start ignored
Window Size: dWk 1 - p ( x (t - t k )) - Wk (t ) Wk (t - t k ) p ( x (t - t k ))
dt Rk (t ) 2 Rk (t - t k )
Additive Mult. Loss arrival
increase decrease rate
dq Wk (t )
Queue length: -C 1{q > 0} + k
dt Rk (t )
Outgoing Incoming
traffic traffic
System of Differential Equations
(cont.)
Average smoothed dx ln(1 - a ) ln a
queue length: x (t ) - q (t )
dt d d
Where
a = averaging parameter of RED(wth)
d = sampling interval ~ 1/C
dp dp dx
Loss probability:
dt dx dt
Where dp is obtained from the marking profile
dx
N+2 coupled equations
N flows
dWi dt f1 p, Ri , Wi ), i 1, , N
Wi(t) = Window size
of flow i
Ri(t) = RTT of flow i dp dt f 3 q ) dq dt f 2 Wi )
p(t) = Drop probability
q(t) = queue length
Equations solved numerically using MATLAB
Steady slate behavior
let t → ∞
dWk
0, p(t ) p, W (t ) W , Rk (t ) Rk
dt
this yields
1 - p Wk Wk 2(1 - p)
0 - p or Wk
Rk 2 Rk p
the throughput is
2(1 - p) 2
Bk for small p
Rk p Rk p
A Queue is not a Network
Network - set of AQM routers, V
sequence Vi for session i
Round trip time - aggregate delay
Ri(t) = Ai + vVi qv(t)
Loss/marking probability - cumulative prob
pi (t) = 1-Pv Vi (1 - pv(qv(t)))
Link bandwidth constraints
Queue equations
How well does it work?
OC-12 – OC-48 links
RED with target delay
5msec OC-12
2600 TCP flows
OC-48
decrease to 1300 at
30 sec. 2600 j 2600 j
1300 j
increase to 2600 at 90
sec.
t=30 t=90
simulation
fluid model
instantaneous delay
time (sec)
Good queue length match
average window size
simulation
fluid model
window size
simulation
fluid model
time (sec)
time (sec)
matches average window size
Scaling Properties
OC-12 OC-12 j
OC-48 OC-48 j
2600 1300 2600 2600 j 2600 j
1300 j
t=30 t=90 t=30 t=90
Wk(t) = Wj k(t)
qv(t) = qjv(t)/100
Summary: TCP flows as fluids
What have we seen?
model TCP as constant rate fluid flows
rate sensitive to congestion via:
capacities C =
avg. queue lengths x =
discard prob. p =
dynamic (transient) behavior of TCP modeled as
system of differential equations
ability to predict performance of
system of TCP flows using fluid models