Download presentation
Presentation is loading. Please wait.
Published byGyles Gray Modified over 5 years ago
1
Understanding Congestion Control Mohammad Alizadeh Fall 2018
6.829 Computer Networks Understanding Congestion Control Mohammad Alizadeh Fall 2018
2
What Problem is TCP really solving?
Max-min rate allocation? 1 Mb/s x1 = ? x2 = ? x3 = ? x1 x2 x3 Max-min 1/3 TCP Assuming equal RTTs
3
What Problem is TCP really solving?
Max-min rate allocation? 1 Mb/s 1 Mb/s x1 = ? x3 = ? x2 = ? x1 x2 x3 Max-min 1/2 TCP ~0.4 ~0.6
4
What Problem is TCP really solving?
1 Mb/s 1 Mb/s 1 Mb/s x1 = ? x3 = ? x2 = ? What is the difference between these links?
5
What Problem is TCP really solving?
6
Network Utility Maximization
TCP is solving an optimization problem! Spurred a lot of research on analyzing and designing network protocols from the lens of optimization
7
Is My Protocol “Stable”?
Example: ns2 simulations, 50 AIMD TCP sources, capacity = 9000 pkt, RED AQM Credit: Low et al. “Dynamics of TCP/RED and a Scalable Control”, INFOCOM 2002.
8
Control Theoretic Analysis of TCP
Model TCP as a dynamical system (“fluid model”) Analyze stability properties via control theory
9
Outline for Rest of Lecture
Network Utility Maximization (NUM) Distributed Algorithm for NUM TCP’s NUM Problem TCP Fluid Models
10
Utility Function The benefit derived from sending at rate x
Good model for elastic flows e.g. file downloads The benefit derived from sending at rate x We’ll assume U(.) is increasing & concave
11
Examples of Concave Utility Functions
12
Elastic vs. Inelastic Flows
utility, U(x) rate, x utility, U(x) rate, x elastic traffic (e.g., file download) delay-tolerant, no intrinsic rate prefers to share inelastic traffic (e.g., real-time video) delay-sensitive, intrinsic rate prefers to randomize Credit: Frank Kelly (University of Cambridge)
13
Network Utility Maximization (NUM)
c1 = 1 Mb/s c2 = 1 Mb/s x1 x3 x2 maximize log(x1) + log(x2) + log(x3) subject to: x1 + x2 ≤ 1 x1 + x3 ≤ 1
14
Network Utility Maximization (NUM)
c1 = 1 Mb/s c2 = 1 Mb/s x1 x3 x2 maximize log(x1) + log(x2) + log(x3) subject to: x1 x2 x3 1
15
RLxN NUM: General Case maximize subject to: routing matrix N flows
L links maximize subject to: x1 x2 xN c1 c2 cL RLxN routing matrix If Ui(.) strictly concave, the problem has unique solution
16
NUM Example 1: Throughput Maximization
c1 = 1 Mb/s c2 = 1 Mb/s x1 x3 x2 maximize x1 + x2 + x3 subject to: x1 + x2 ≤ 1 x1 + x3 ≤ 1 x1★ = 0 Mb/s x2★ = 1 Mb/s x3★ = 1 Mb/s
17
NUM Example 2: Proportional Fairness
c1 = 1 Mb/s c2 = 1 Mb/s x1 x3 x2 maximize log(x1) + log(x2) + log(x3) subject to: x1 + x2 ≤ 1 x1 + x3 ≤ 1 x1★ = 1/3 Mb/s x2★ = 2/3 Mb/s x3★ = 2/3 Mb/s
18
NUM Example 3: “α-fairness”
c1 = 1 Mb/s c2 = 1 Mb/s x1 x3 x2 α ≥ 0 (a constant) maximize subject to: x1 + x2 ≤ 1 x1 + x3 ≤ 1 alpha Objective α = 0 Thrput Maximization α → 1 Proportional Fairness α →∞ Max-min Fairness
19
Outline The Network Utility Maximization (NUM) Problem Distributed Algorithm for NUM TCP’s NUM Problem TCP Fluid Models
20
Proportional Fairness Example
c1 = 1 Mb/s c2 = 1 Mb/s x1 x3 x2 maximize log(x1) + log(x2) + log(x3) subject to: x1 + x2 ≤ 1 x1 + x3 ≤ 1
21
Distributed Algorithm
c1 = 1 Mb/s c2 = 1 Mb/s x1 p1 p2 x3 x2 pl = “congestion price” for link l price per unit of bandwidth (pl ≥ 0) qi = total price for source i Sum of prices on source i’s path
22
This is done independently at each source.
The Source Problem c1 = 1 Mb/s c2 = 1 Mb/s x1 p1 p2 x3 x2 Pick rate xi to maximize utility: log(xi) – qi xi benefit cost xi = 1/qi This is done independently at each source.
23
The Network Problem p1 p2 pl(t+1) = [ pl(t) + κ(yl(t) – cl) ]+
c1 = 1 Mb/s c2 = 1 Mb/s x1 p1 p2 x3 x2 Adapt link prices periodically based on congestion pl(t+1) = [ pl(t) + κ(yl(t) – cl) ]+ total traffic at link l [.]+ = max(., 0)
24
This is done independently at each link.
The Network Problem c1 = 1 Mb/s c2 = 1 Mb/s x1 p1 p2 x3 x2 Adapt link prices periodically based on congestion pl(t+1) = [ pl(t) + κ(yl(t) – cl) ]+ This is done independently at each link.
25
Putting it All Together
c1 = 1 Mb/s c2 = 1 Mb/s x1 p1 p2 x3 x2 Sources Links x1(t) = 1 / (p1(t) + p2(t)) x2(t) = 1 / p1(t) x3(t) = 1 / p2(t) p1(t+1) = [p1(t) + κ(y1(t) – c1)]+ p2(t+1) = [p2(t) + κ(y2(t) – c2)]+
26
Example x1 x2 x3
27
Outline The Network Utility Maximization (NUM) Problem NUM Distributed Algorithm TCP’s NUM Problem TCP Fluid Models
28
TCP + PI p1 p2 Sources Links p1(t+1) = [p1(t) + κ(y1(t) – c1)]+
c1 = 1 Mb/s c2 = 1 Mb/s x1 p1 p2 x3 x2 Sources Links x1(t) = 1 / RTT1 x2(t) = 1 / RTT2 x3(t) = 1 / RTT3 p1(t+1) = [p1(t) + κ(y1(t) – c1)]+ p2(t+1) = [p2(t) + κ(y2(t) – c2)]+
29
What is TCP’s Utility Function?
30
Outline The Network Utility Maximization (NUM) Problem NUM Distributed Algorithm TCP’s NUM Problem TCP Fluid Models
31
Is My Protocol “Stable”?
Example: ns2 simulations, 50 AIMD TCP sources, capacity = 9000 pkt, RED AQM Credit: Low et al. “Dynamics of TCP/RED and a Scalable Control”, INFOCOM 2002.
32
TCP/RED Fluid Model - Setup
p(t) Bi(t) q(t) Receiver Sender Receiver Sender C Receiver i Sender i One bottlenecked RED router capacity {C (packets/sec) } queue length q(t) drop prob. p(t) N TCP flows window sizes Wi(t) round trip time Ri(t) = Ai+q(t)/C throughputs Bi (t) = Wi(t)/Ri(t)
33
Fluid Model vs. Simulation
Flow set 1 Flow set 2 Flow set 3 Flow set 4 Flow set 5 RED router 1 RED router 2 # flows per flow set: 40 -> 10 (t=75) -> 40 (t=150) Credit: Vishal Misra (Columbia)
34
Fluid Model vs. Simulation
Queue 1 Queue 2
36
System of Differential Equations
All quantities are average values. Timeouts and slow start ignored dWi dt ^ = 1 Ri(q(t)) Additive increase Wi(t-t) ^ Ri (q(t-t)) p(t-t) Loss arrival rate - Wi 2 ^ Mult. decrease Window Size: Queue length: dq dt = ^ + S Ri(q(t)) ^ Wi(t) Incoming traffic -1[q(t) > 0]C ^ Outgoing traffic
37
System of Differential Equations (cont.)
Average queue length: q(t) ^ dx dt = ln (1-a) d - x(t) Where a = averaging parameter of RED(wth) d = sampling interval ~ 1/C Loss probability: dp dt = dx ^ Where dp is obtained from the marking profile
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.