6 829 Computer Networks Lecture 4 RouterAssisted Congestion

  • Slides: 33
Download presentation
6. 829 Computer Networks Lecture 4: Router-Assisted Congestion Control Mohammad Alizadeh Fall 2016 1

6. 829 Computer Networks Lecture 4: Router-Assisted Congestion Control Mohammad Alizadeh Fall 2016 1

Recap of last time End-to-end congestion control – Congestion signal: Packet loss – (TCP)

Recap of last time End-to-end congestion control – Congestion signal: Packet loss – (TCP) sources dynamically set window – Goals: Efficiency & “Fairness” Additive increase, multiplicative decrease Window Loss halved t 2

Routers can do more than drop packets Congestion happens at the routers – Have

Routers can do more than drop packets Congestion happens at the routers – Have a lot of visibility – Extent of congestion, queue size, which flows are misbehaving, etc. E 2 E congestion control cannot enforce isolation – Where the actions of one flow does not affect others Protecting against uncooperative (e. g. , malicious or buggy) sources needs router support 3

4

4

Outline How can routers help with congestion control? Active queue management – Random Early

Outline How can routers help with congestion control? Active queue management – Random Early Detection (RED) – PI / PIE Explicit congestion control – ECN – XCP 5

How can routers help? Buffer management – Which packets to drop? – When to

How can routers help? Buffer management – Which packets to drop? – When to signal congestion? Today Congestion signaling – Drop, mark, send explicit messages Scheduling – Which flow’s packet to send next? Thursday

Active Queue Management 7

Active Queue Management 7

Drop-tail queues Sender 1 Losses due to buffer overflow - De-facto mechanism today Receiver

Drop-tail queues Sender 1 Losses due to buffer overflow - De-facto mechanism today Receiver Sender 2 + Very simple to implement - Filled buffers (large delay) - Synchronizes flows 8

Queuing delay in the wild: “Bufferbloat” ² Mark Allman, Comments on bufferbloat, SIGCOMM-CCR, 43(1),

Queuing delay in the wild: “Bufferbloat” ² Mark Allman, Comments on bufferbloat, SIGCOMM-CCR, 43(1), Jan. 2013 ² http: //www. icir. org/mallman/papers/bufferbloat-ccr 13. pdf 9

RTT affects soft-real-time apps ² R. Peon & W. Chan, SPDYEssentials, Google Tech Talk,

RTT affects soft-real-time apps ² R. Peon & W. Chan, SPDYEssentials, Google Tech Talk, 12/8/11

Random Early Detection (RED) Proposed in 1993 Proactively drop packets probabilistically to – Prevent

Random Early Detection (RED) Proposed in 1993 Proactively drop packets probabilistically to – Prevent onset of congestion by reacting early – Remove synchronization between flows

RED Operation Drop based on average queue length x(t) (EWMA algorithm used for averaging)

RED Operation Drop based on average queue length x(t) (EWMA algorithm used for averaging) P(drop) - q(t) - x(t) 1. 0 max. P minth maxth Avg queue length x(t): T: smoothed, averaged Every x(t) (1 - wtime – T) + wq *q(t) q) * x(t ² Based on slide by Vishal Misra (Columbia) t ->

RED Problems Many parameters – minth, maxth, wq (EWMA averaging), … Performance very sensitive

RED Problems Many parameters – minth, maxth, wq (EWMA averaging), … Performance very sensitive to parameters – Tuning is difficult; control theory provides framework – Poorly tuned system can be worse than drop-tail Implemented in routers, but usually turned off 13

RED queue length depends on number of flows, RTT, … How does queue length

RED queue length depends on number of flows, RTT, … How does queue length change as the number of (long) TCP flows increases? P(drop) 1. 0 max. P minth maxth Avg queue length x(t) 14

Proportional Integral (PI) Three Ideas: 1. Remove EWMA Faster response than RED 2. Integral

Proportional Integral (PI) Three Ideas: 1. Remove EWMA Faster response than RED 2. Integral control Decouples queue length & number of flows 3. Use derivative of queue Improves stability (less oscillation)

Proportional Integral (PI) Algorithm Goal: Drive error to zero e(t) = q(t) – qref

Proportional Integral (PI) Algorithm Goal: Drive error to zero e(t) = q(t) – qref (“error”) q(t) qref Every T: p(t) p(t – T) + α*(q(t) – qref) (“Integral control”) 16

Proportional Integral (PI) Algorithm q(t) What’s different about these two points? qref t Every

Proportional Integral (PI) Algorithm q(t) What’s different about these two points? qref t Every T: p(t) p(t – T) + α*(q(t) – qref) + β*(q(t) – q(t-T)) 17

PIE – PI “Enhanced” Control delay instead of queue length Auto-tune parameters α and

PIE – PI “Enhanced” Control delay instead of queue length Auto-tune parameters α and β based on value of p Other heuristics (e. g. burst allowance) 18

Example: Varying TCP Traffic Intensity on 10 Mbps Link 150 Flows 100 Flows 50

Example: Varying TCP Traffic Intensity on 10 Mbps Link 150 Flows 100 Flows 50 Flows ² Credit: Rong Pan (Cisco) 100 Flows 50 Flows 19

PIE vs. RED Queuing Latency ² Credit: Rong Pan (Cisco) 20

PIE vs. RED Queuing Latency ² Credit: Rong Pan (Cisco) 20

PIE Drop Probability ² Credit: Rong Pan (Cisco) 21

PIE Drop Probability ² Credit: Rong Pan (Cisco) 21

Explicit Congestion Control 22

Explicit Congestion Control 22

ECN: “mark” instead of drop Sender 1 ECN = Explicit Congestion Notification ECN Mark

ECN: “mark” instead of drop Sender 1 ECN = Explicit Congestion Notification ECN Mark (1 bit) Receiver Sender 2 23

Beyond binary feedback Marks/drops are crude binary signals – Don’t tell source extent of

Beyond binary feedback Marks/drops are crude binary signals – Don’t tell source extent of congestion As a result, TCP must increase window slowly, and back off aggressively upon “congestion” – Esp. problematic in high BDP networks – Could take many RTTs to ramp up – Need big buffers to absorb TCP oscillations How can routers provide more information? 24

XCP: An e. Xplicit Control Protocol 1. Efficiency Controller 2. Fairness Controller ² Credit:

XCP: An e. Xplicit Control Protocol 1. Efficiency Controller 2. Fairness Controller ² Credit: Dina Katabi (MIT)

Motivation for Decoupling Router computes a flow’s fair rate explicitly To make a decision,

Motivation for Decoupling Router computes a flow’s fair rate explicitly To make a decision, router needs state of all flows Unscalable Shuffle bandwidth in aggregate to converge to fair rates To make a decision, router needs state of this flow Put a flow’s state in its packets [Stoica, CSFQ] Scalable ² Credit: Dina Katabi (MIT)

How does XCP Work? Round Trip Round Time Trip Time Congestion Window Feedback =

How does XCP Work? Round Trip Round Time Trip Time Congestion Window Feedback = + 0. 1 packet Congestion Header ² Credit: Dina Katabi (MIT)

How does XCP Work? Round Trip Time Congestion Window Feedback == +- 0. 3

How does XCP Work? Round Trip Time Congestion Window Feedback == +- 0. 3 0. 1 packet ² Credit: Dina Katabi (MIT)

How does XCP Work? Congestion Window = Congestion Window + Feedback Routers compute feedback

How does XCP Work? Congestion Window = Congestion Window + Feedback Routers compute feedback without keeping any per-flow state ² Credit: Dina Katabi (MIT)

How Does an XCP Router Compute the Feedback? Efficiency Controller Fairness Controller Goal: Matches

How Does an XCP Router Compute the Feedback? Efficiency Controller Fairness Controller Goal: Matches input traffic to link capacity & drains the queue Goal: Divides between flows to converge to fairness 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

Rate Control Protocol (RCP) Switch stamps packet with a rate: R(t). Receiver feeds back

Rate Control Protocol (RCP) Switch stamps packet with a rate: R(t). Receiver feeds back R(t). Source sends at R(t) 31

RCP Algorithm Control interval (average RTT) Estimate of # flows 32

RCP Algorithm Control interval (average RTT) Estimate of # flows 32

33

33