router-assisted congestion control
DESCRIPTION
Router-assisted congestion control. Lecture 8 CS 653, Fall 2010. TCP congestion control performs poorly as bandwidth or delay increases. Shown analytically in [Low01] and via simulations. Avg. TCP Utilization. Avg. TCP Utilization. 50 flows in both directions Buffer = BW x Delay - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/1.jpg)
Router-assisted congestion control
Lecture 8CS 653, Fall 2010
![Page 2: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/2.jpg)
TCP congestion control performs poorly as 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
Shown analytically in [Low01] and via simulations
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
![Page 3: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/3.jpg)
Proposed Solution:
Decouple Congestion Control from Fairness
High Utilization; Small Queues; Few Drops
Bandwidth Allocation Policy
![Page 4: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/4.jpg)
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
![Page 5: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/5.jpg)
Characteristics ofSolution1. Improved Congestion Control (in high
bandwidth-delay & conventional environments):
• Small queues
• Almost no drops
2. Improved Fairness
Flexible bandwidth allocation: min-max fairness, proportional fairness, differential bandwidth allocation,…
3. Scalable (no per-flow state)
![Page 6: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/6.jpg)
XCP: An eXplicit Control Protocol
1. Congestion Controller2. Fairness Controller
![Page 7: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/7.jpg)
Feedback
Round Trip Time
Congestion Window
Congestion Header
Feedback
Round Trip Time
Congestion Window
How does XCP Work?
Feedback = + 0.1 packet
![Page 8: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/8.jpg)
Feedback = + 0.1 packet
Round Trip Time
Congestion Window
Feedback = - 0.3 packet
How does XCP Work?
![Page 9: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/9.jpg)
Congestion Window = Congestion Window + Feedback
Routers compute feedback without any per-flow state Routers compute feedback without any per-flow state
How does XCP Work?
XCP extends ECN and CSFQ
![Page 10: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/10.jpg)
How Does an XCP Router Compute the 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
Congestion Controller
Fairness Controller
![Page 11: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/11.jpg)
= 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 details …
Congestion Controller Fairness ControllerAlgorithm: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
![Page 12: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/12.jpg)
ImplementationImplementation 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
![Page 13: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/13.jpg)
Performance
![Page 14: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/14.jpg)
BottleneckS1
S2
R1, R2, …, Rn
Sn
Subset of Results
Similar behavior over:
![Page 15: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/15.jpg)
XCP Remains Efficient as Bandwidth 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
![Page 16: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/16.jpg)
Avg.
Uti
lizati
on
Avg.
Uti
lizati
on
XCP Remains Efficient as Bandwidth 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
![Page 17: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/17.jpg)
XCP Shows Faster Response than TCP
XCP shows fast response!XCP shows fast response!
Start 40 Flows
Start 40 Flows
Stop the 40 Flows
Stop the 40 Flows
![Page 18: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/18.jpg)
XCP Deals Well with Short Web-Like Flows
Arrivals of Short Flows/sec
Average Utilization
Average Queue
Drops
![Page 19: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/19.jpg)
XCP 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 )
![Page 20: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/20.jpg)
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
![Page 21: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/21.jpg)
XCP Pros and Cons
Long-lived flows: Works well Convergence to fair share rates, high link
utilization, small queue, low loss
Mix of flow lengths: Deviates from processor sharing Non-trivial convergence time Flow durations longer
![Page 22: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/22.jpg)
![Page 23: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/23.jpg)
![Page 24: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/24.jpg)
![Page 25: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/25.jpg)
![Page 26: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/26.jpg)
![Page 27: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/27.jpg)
![Page 28: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/28.jpg)
![Page 29: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/29.jpg)
![Page 30: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/30.jpg)
ATM ABR congestion control
ABR: available bit rate:
“Elastic service” If sender’s path
“underloaded”: sender should use
available bandwidth
If sender’s path congested:
sender throttled to minimum guaranteed rate
RM (resource management) cells:
Sent by sender, interspersed with data cells
Bits in RM cell set by switches (“network-assisted”)
NI bit: no increase in rate (mild congestion)
CI bit: congestion indication RM cells returned to sender
by receiver, with bits intact
![Page 31: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/31.jpg)
ATM ABR congestion control
Two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell sender’ send rate thus minimum supportable rate on path
EFCI bit in data cells: set to 1 in congested switch
if data cell preceding RM cell has EFCI set, sender sets CI bit in returned RM cell
![Page 32: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/32.jpg)
ATM ERICA Switch Algorithm
ERICA: Explicit rate indication for congestion avoidance goals: Utilization: allocate all available capacity to ABR
flows Queueing delay: keep queue small Fairness: max-min “sought only after utilization
achieved” (decoupled from utilization?) Stability, ie reaches steady-state, and robustness,
ie graceful degradation, when no steady-state
![Page 33: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/33.jpg)
ERICA: Setting explicit rate (ER)
Initialization MaxAllocPrev =
MaxAllocCur = FairShare
End of avg’ing interval
Total ABR Cap. = Link Cap. - VBR Cap.
Target ABR Cap. = Fraction*Tot. ABR Cap.
Z = ABR Input rate FairShare = Target ABR
Cap. / # Active VCs Goto Initialization
During congestion VCShare = VCRate/Z If (Z > 1+±)
• ER = max(FairShare, VCShare)
Else • ER = max(MaxAllocPrev,
VCShare) MaxAllocCur =
max(MaxAllocCur, ER) If (ER > FairShare and
VCRate < FairShare)• ER = FairShare
![Page 34: Router-assisted congestion control](https://reader033.vdocuments.us/reader033/viewer/2022051419/568158ca550346895dc613fb/html5/thumbnails/34.jpg)
ABR vs. XCP or RCP?
Similarities? Differences?