Congestion Control for High Bandwidth-Delay Product Environments Dina Katabi Mark Handley Charlie Rohrs High Performance Switching and Routing Telecom Center Workshop: Sept 4, 1997.
Download
Report
Transcript Congestion Control for High Bandwidth-Delay Product Environments Dina Katabi Mark Handley Charlie Rohrs High Performance Switching and Routing Telecom Center Workshop: Sept 4, 1997.
Congestion Control for High
Bandwidth-Delay Product Environments
Dina Katabi
Mark Handley
Charlie Rohrs
High Performance
Switching and Routing
Telecom Center Workshop: Sept 4, 1997.
TCP congestion control performs poorly as
bandwidth or delay increases
Shown analytically in [Low01] and via simulations
50 flows in both directions
Buffer = BW x Delay
RTT = 80 ms
50 flows in both directions
Buffer = BW x Delay
BW = 155 Mb/s
Because TCP lacks fast response
• Spare bandwidth is available TCP increases
by 1 pkt/RTT even if spare bandwidth is huge
• When a TCP starts, it increases exponentially
Too many drops Flows ramp up by 1 pkt/RTT,
taking forever
to grab
the large
bandwidth
Bottleneck
Bandwidth
(Mb/s)
Round
Trip Delay (sec)
Proposed Solution:
Decouple Congestion Control from Fairness
High Utilization;
Small Queues;
Few Drops
Bandwidth
Allocation
Policy
Proposed Solution:
Decouple Congestion Control from Fairness
Coupled because a single mechanism controls both
Example: In TCP, Additive-Increase MultiplicativeDecrease (AIMD) controls both
How does decoupling solve the problem?
1. To control congestion: use MIMD which shows fast
response
2. To control fairness: use AIMD which converges to
fairness
Characteristics of Our Solution
1. Improved Congestion Control (in high bandwidthdelay & conventional environments):
•
Small queues
•
Almost no drops
2. Improved Fairness
3. Scalable (no per-flow state)
4. Flexible bandwidth allocation: min-max fairness,
proportional fairness, differential bandwidth
allocation,…
XCP: An eXplicit Control Protocol
1. Congestion Controller
2. Fairness Controller
How does XCP Work?
Round Trip
Round
Time
Trip Time
Congestion
Congestion
WindowWindow
Feedback
Feedback
Feedback =
+ 0.1 packet
Congestion Header
How does XCP Work?
Round Trip Time
Congestion Window
Feedback ==
Feedback
+- 0.3
0.1 packet
How does XCP Work?
Congestion Window = Congestion Window + Feedback
XCP extends ECN and CSFQ
Routers compute feedback without
any per-flow state
How Does an XCP Router Compute the
Feedback?
Congestion Controller
Fairness Controller
Looks at aggregate traffic &
queue
Looks at a flow’s state in
Congestion Header
Algorithm:
Aggregate traffic changes by
~ Spare Bandwidth
~ - Queue Size
So, = davg Spare - Queue
Algorithm:
If > 0 Divide equally
between flows
If < 0 Divide between
flows proportionally to their
current rates
Congestion
Fairness
Goal: Matches input traffic to
Goal: Divides between
link capacityController
& drains the queue flows Controller
to converge to fairness
MIMD
AIMD
Getting the devil out of the details …
Congestion Controller
= davg Spare - Queue
Theorem: System converges
to optimal utilization (i.e.,
stable) for any link bandwidth,
delay, number of sources if:
0
4 2
and
2 2
No Parameter
Tuning
(Proof
based on Nyquist
Criterion)
Fairness Controller
Algorithm:
If > 0 Divide equally between flows
If < 0 Divide between flows
proportionally to their current rates
Need to estimate number of
flows N
N
pkts in T
1
T (Cwnd pkt / RTTpkt )
RTTpkt : Round Trip Time in header
No Per-Flow State
Cwndpkt : Congestion Window in header
T: Counting Interval
Implementation
Implementation uses few
multiplications & additions per
packet
Practical!
Liars?
• Policing agents at edges of the network or
statistical monitoring
• Easier to detect than in TCP
Gradual Deployment
XCP can co-exist with TCP and can be deployed
gradually
Performance
Subset of Results
S1
Bottleneck
S2
R1, R2, …, Rn
Sn
Similar behavior over:
XCP Remains Efficient as Bandwidth or
Delay Increases
Utilization as a function of
Bandwidth
Bottleneck Bandwidth (Mb/s)
Utilization as a function
of Delay
Round Trip Delay (sec)
XCP Remains Efficient as Bandwidth or
Delay Increases
Utilization as a function of
Bandwidth
XCP increases
proportionally to
spare bandwidth
Bottleneck Bandwidth (Mb/s)
Utilization as a function
of Delay
and chosen to
make XCP robust
to delay
Round Trip Delay (sec)
XCP Shows Faster Response than TCP
Start
40 Flows
Start
40 Flows
Stop the
40 Flows
Stop the
40 Flows
XCP shows fast response!
XCP Deals Well with Short Web-Like Flows
Arrivals of Short Flows/sec
XCP is Fairer than TCP
Same RTT
Flow ID
Different RTT
Flow ID
(RTT is 40 ms
330 ms )
XCP Summary
• XCP
Outperforms TCP
Efficient for any bandwidth
Efficient for any delay
Scalable
• Benefits of Decoupling
Use MIMD for congestion control which can
grab/release large bandwidth quickly
Use AIMD for fairness which converges to
fair bandwidth allocation
Questions?
NS Code & More Information at:
http://ana.lcs.mit.edu/dina/XCP