Post on 18-Dec-2015
transcript
Advanced Computer Advanced Computer NetworkingNetworking
Congestion Control for High Bandwidth-Delay Product
Environments(XCP Algorithm)
11
Trends in the Future Trends in the Future InternetInternet
•High Bandwidth–Gigabit Links
•High Latency–Satellite–Wireless
As we will find out…these spell bad news for TCP!
22
TCP congestion control performs poorly TCP congestion control performs poorly as bandwidth or delay increasesas bandwidth or delay increases
Round Trip Delay (sec)
Avg.
TC
P U
tiliz
ati
on
Bottleneck Bandwidth (Mb/s)
Avg.
TC
P U
tiliz
ati
on
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
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
50 flows in both directionsBuffer = BW x Delay
RTT = 80 ms
50 flows in both directionsBuffer = BW x Delay
BW = 155 Mb/s
33 behnam shafagatybehnam shafagaty
Efficiency and FairnessEfficiency and Fairness
• Efficiency of a link involves only the aggregate traffic’s behavior
• Fairness is the relative throughput of flows sharing a link.
• Can have efficiency but not fairness• Coupled in TCP since the same
control low is used for both, uses AIMD (additive increase multiplicative decrease).
44 behnam shafagatybehnam shafagaty
What If We Could Do It OverWhat If We Could Do It Over??
• If you could build a new congestion control architecture, what would it look like?
• Points of Observation– Packet loss is a poor signal of congestion
• Congestion is not a binary variable!• We want precise congestion feedback
– Aggressiveness of sources should adjust to delay• As delay increase, rate change should be slower
55 behnam shafagatybehnam shafagaty
Points of Observations Points of Observations ContCont..– Needs to be independent of number of flows
• Number of flows at AQM is not constant therefore it cannot be fast enough to adapt to changes
– De-coupling of efficiency and fairness• Done with both an efficiency controller and a
fairness controller• Simplifies design and provides framework for
differential bandwidth allocations• Use MIMD for the efficiency (quickly get BW)• Use AIMD for fairness
66 behnam shafagatybehnam shafagaty
Proposed Solution:
Decouple Congestion Control from Fairness
High Utilization; Small Queues; Few Drops
Bandwidth Allocation Policy
77 behnam shafagatybehnam shafagaty
Proposed Solution:
Decouple Congestion Control from Fairness
Example: In TCP, Additive-Increase Multiplicative-Decrease (AIMD) controls both
Coupled because a single mechanism 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
88 behnam shafagatybehnam shafagaty
Characteristics of Our Characteristics of Our SolutionSolution
1. Improved Congestion Control (in high bandwidth-delay & 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,…
99 behnam shafagatybehnam shafagaty
XCP: An eXCP: An eXXplicit plicit CControl ontrol PProtocolrotocol
1. Congestion Controller2. Fairness Controller
1010 behnam shafagatybehnam shafagaty
Feedback
Round Trip Time
Congestion Window
Congestion Header
Feedback
Round Trip Time
Congestion Window
How does XCP WorkHow does XCP Work??
Feedback = + 0.1 packet
1111 behnam shafagatybehnam shafagaty
Feedback = + 0.1 packet
Round Trip Time
Congestion Window
Feedback = - 0.3 packet
How does XCP WorkHow does XCP Work??
1212 behnam shafagatybehnam shafagaty
Congestion Window = Congestion Window + Feedback
Routers compute feedback without any per-flow state Routers compute feedback without any per-flow state
How does XCP WorkHow does XCP Work??
XCP extends ECN
1313 behnam shafagatybehnam shafagaty
How Does an XCP Router Compute How Does an XCP Router Compute the Feedbackthe Feedback??
Congestion Controller
Fairness ControllerGoal: Divides between flows to converge to fairnessLooks at a flow’s state in Congestion Header
Algorithm:If > 0 Divide equally between flowsIf < 0 Divide between flows proportionally to their current rates
MIMD AIMD
Goal: Matches input traffic to link capacity & drains the queueLooks at aggregate traffic & queue
Algorithm:Aggregate traffic changes by ~ Spare Bandwidth ~ - Queue SizeSo, = davg Spare - Queue 1414 behnam shafagatybehnam shafagaty
= davg Spare - Queue
224
0 2 and
Theorem: System converges to optimal utilization (i.e., stable) for any link bandwidth, delay, number of sources if:
(Proof based on Nyquist Criterion)
Getting the devil out of the detailsGetting the devil out of the details ……
Congestion Controller Fairness Controller
No Parameter Tuning
No Parameter Tuning
Algorithm:If > 0 Divide equally between flowsIf < 0 Divide between flows proportionally to their current rates
Need to estimate number of flows N
Tinpkts pktpkt RTTCwndTN
)/(1
RTTpkt : Round Trip Time in header
Cwndpkt : Congestion Window in headerT: Counting Interval
No Per-Flow State
No Per-Flow State
1515 behnam shafagatybehnam shafagaty
ImplementationImplementation
Implementation uses few multiplications & additions per packet
Practical!
XCP can co-exist with TCP and can be deployed gradually
Gradual Deployment
Liars?• Policing agents at edges of the network or statistical monitoring• Easier to detect than in TCP
1616 behnam shafagatybehnam shafagaty
PerformancePerformance
1717 behnam shafagatybehnam shafagaty
BottleneckS1
S2
R1, R2, …, Rn
Sn
Subset of Results
Similar behavior over:
1818 behnam shafagatybehnam shafagaty
XCP Remains Efficient as XCP Remains Efficient as Bandwidth or Delay IncreasesBandwidth or Delay Increases
Bottleneck Bandwidth (Mb/s)
Utilization as a function of Bandwidth
Avg.
Uti
lizati
on
Round Trip Delay (sec)
Avg.
Uti
lizati
on
Utilization as a function of Delay
1919 behnam shafagatybehnam shafagaty
Avg.
Uti
lizati
on
Avg.
Uti
lizati
on
XCP Remains Efficient as XCP Remains Efficient as Bandwidth or Delay IncreasesBandwidth or Delay Increases
Bottleneck Bandwidth (Mb/s) Round Trip Delay (sec)
Utilization as a function of Delay
XCP increases proportionally to spare bandwidth
and chosen to make XCP robust to delay
Utilization as a function of Bandwidth
2020 behnam shafagatybehnam shafagaty
XCP Shows Faster Response XCP Shows Faster Response than TCPthan TCP
XCP shows fast response!XCP shows fast response!
Start 40 Flows
Start 40 Flows
Stop the 40 Flows
Stop the 40 Flows
2121 behnam shafagatybehnam shafagaty
XCP Deals Well with Short Web-Like FlowsXCP Deals Well with Short Web-Like Flows
Arrivals of Short Flows/sec
Average Utilization
Average Queue
Drops
2222 behnam shafagatybehnam shafagaty
XCP is Fairer than TCPXCP is Fairer than TCP
Flow ID
Different RTTSame RTT
Avg
. Th
rou
gh
pu
t
Flow ID
Avg
. Th
rou
gh
pu
t
(RTT is 40 ms 330 ms )
2323 behnam shafagatybehnam shafagaty
XCP SummaryXCP 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
2424 behnam shafagatybehnam shafagaty
NS Code & More Information at:NS Code & More Information at:
http://ana.lcs.mit.edu/dina/XCPhttp://ana.lcs.mit.edu/dina/XCP
2525 behnam shafagatybehnam shafagaty