CS 514: Computer Networks Lecture 6: Explicit Congestion Control - - PowerPoint PPT Presentation

cs 514 computer networks lecture 6 explicit congestion
SMART_READER_LITE
LIVE PREVIEW

CS 514: Computer Networks Lecture 6: Explicit Congestion Control - - PowerPoint PPT Presentation

CS 514: Computer Networks Lecture 6: Explicit Congestion Control Xiaowei Yang Review A fundamental question to networking: Multiple users share the same network. Who can send at what speed? Approach 1: End-to-end congestion


slide-1
SLIDE 1

CS 514: Computer Networks Lecture 6: Explicit Congestion Control

Xiaowei Yang

slide-2
SLIDE 2

Review

  • A fundamental question to networking:

– Multiple users share the same network. Who can send at what speed?

  • Approach 1: End-to-end congestion control

– TCP uses AIMD to probe for available bandwidth, and exponential backoff to avoid congestion – XCP: routers explicitly stamp feedback (increase or decrease)

  • Nice control algorithms
slide-3
SLIDE 3

3

Why does it work? [Chiu-Jain]

– A feedback control system – The network uses feedback y to adjust users load åx_i

slide-4
SLIDE 4

4

Goals of Congestion Avoidance

– Efficiency: the closeness of the total load on the resource ot its knee – Fairness:

  • When all x_is are equal, F(x) = 1
  • When all x_is are zero but x_j = 1, F(x) = 1/n

– Distributedness

  • A centralized scheme requires complete knowledge of the state of

the system

– Convergence

  • The system approach the goal state from any starting state
slide-5
SLIDE 5

5

Model the system as a linear control system

  • Four sample types of controls
  • AIAD, AIMD, MIAD, MIMD
slide-6
SLIDE 6

6

Phase plane

x1 x2 https://en.wikipedia.org/wiki/Phase_plane

slide-7
SLIDE 7

Macroscopic behavior of TCP

slide-8
SLIDE 8
  • The total data delivered for each cycle is

the area under the sawtooth

  • Each cycle also delivers 1/p packets
  • Solve for W, we have
  • Substituting W into the bandwidth

equation:

  • Collect the constant at one term C, we

have

slide-9
SLIDE 9

9

XCP key ideas

  • Separate efficiency control from fairness

control

  • Using explicit router feedback to help

users adjust sending rates

slide-10
SLIDE 10

10

Feedback Round Trip Time Congestion Window

Congestion Header

Feedback Round Trip Time Congestion Window

How does XCP Work?

Feedback = + 0.1 packet

  • Routers send explicit bandwidth

adjustment information to end users

slide-11
SLIDE 11

11

Feedback = + 0.1 packet Round Trip Time Congestion Window Feedback =

  • 0.3 packet

How does XCP Work?

  • Routers send explicit bandwidth adjustment

information to end users

  • A downstream router overwrites the upstream

feedback only if its feedback is smaller

slide-12
SLIDE 12

12

Congestion Window = Congestion Window + Feedback

How does XCP Work?

  • Routers send explicit bandwidth

adjustment information to end users

slide-13
SLIDE 13

13

XCP: how a router computes feedback

  • Efficient control

– First figure out the aggregate bandwidth to reallocate

  • Fairness control

– Then figure out how to distribute spare bandwidth or reclaim over-allocated bandwidth – Bandwidth shuffle to prevent unfairness when C = åi xi

  • Separate for analytic tractability
slide-14
SLIDE 14

14

How to compute the aggregate bandwidth

  • f = a * d * S - b Q
  • S = C - åi xi (C is the output link capacity)
  • Why -b Q
slide-15
SLIDE 15

15

Bandwidth shuffling

  • To prevent no program in terms of fairness

when link is fully utilized

  • Simultaneously allocate and deallocate

bandwidth to achieve fairness

  • h = max (0, r * y - |f|)
  • If |f| > r*y, then no need to shuffle. AIMD

will take care of fairness

slide-16
SLIDE 16

16

Per packet feedback

  • Feedbacki = positivei – negativei
  • If f > 0, allocate it so that the increase in

throughput of all flows is the same

– Aggregate bandwidth to increase is

  • (f + h)/d

– Aggregate bandwidth to decrease is h

  • If f < 0, allocate it so that the decrement is

proportional to a flows current throughput

– Aggregate bandwidth to reduce is

  • (|f| + h)/d

– Aggregate bandwidth to increase is h

slide-17
SLIDE 17

How to compute per-packet positive feedback

  • Each flows throughput increases by a

constant a: xi(t+1) = xi(t) + a

  • The change in a flow’s cwndi is

proportional to its rtti to keep throughtput increase constant

  • Next step is to translate the change into a

per-packet feedback:

– total change of cwndi divided by Ni, the number of packets from flowi seen in interval d

slide-18
SLIDE 18
  • Ni is proportional to cwndi divided by

packet size si, inversely proportional to rtti (cwndi/si/rtti*d)

  • So we have
  • Let

where is a constant

  • The sum of all flow’s throughput increase

is

slide-19
SLIDE 19

Per-packet positive feedback

  • Thus
  • Routers compute per control interval
  • And compute per packet feedback on per

packet arrival/departure

slide-20
SLIDE 20

How to compute per packet negative feedback

  • The aggregate negative feedback is

proportional to a flow’s sending rate (MD)

  • The aggregate change of cwndi should be

proportional to the current cwndi

slide-21
SLIDE 21
  • Again, a router needs to divide the total

change in congestion window by the number of packets received in a control interval

  • Recall Ni is proportional to cwndi divided

by packet size si, inversely proportional to rtti (cwndi/si/rtti*d)

  • So we have
slide-22
SLIDE 22
  • The aggregate of all flows’ rate decrease

is the sum of all per packet rate decrease:

  • Therefore, we can compute as
slide-23
SLIDE 23

Comments

  • It turned out that routers need not keep

per flow state to compute exact AIMD parameters

  • Per-packet computation
  • A small number of state variables
  • Any simplification to approximate XCP?
  • Programmable router implementation?
  • Incremental deployment?
slide-24
SLIDE 24

26

Discussion

  • Explicit congestion signaling + dynamic packet

state

– With congestion header, a router does not have to keep per-flow state! – Clever math

  • Limitations of XCP

– Security – Rounding errors – Cannot deal with link layer congestion – Complexity – Non convergence with multiple bottlenecks

  • How can we robustly control resource

allocation?

slide-25
SLIDE 25

One more bit is enough

  • Variable Structure Congestion Control

Protocol

  • Key idea

– Four bits to signal regions of action – 01: low load MI – 10: high load AI – 11: overload MD

27

slide-26
SLIDE 26
  • TCP uses binary congestion signals, such as loss or one-bit

Explicit Congestion Notification (ECN)

time congestion window

Multiplicative Decrease (MD) Additive Increase (AI) slow!

  • AI with a fixed step-size can be very slow for large bandwidth
slide-27
SLIDE 27

Key observation

Fairness is not critical in low-utilization region Use Multiplicative Increase (MI) for fast convergence onto efficiency in this region Handle fairness in high-utilization region

slide-28
SLIDE 28

Variable structure control protocol

  • Routers signal the level of congestion
  • End-hosts adapt the control algorithm accordingly

sender receiver x router

traffic rate link capacity

(11) (10) (01) code load factor region

low-load high-load

  • verload

control

Multiplicative Decrease (MD) Additive Increase (AI) Multiplicative Increase (MI)

range of interest scale-free

ACK

2-bit ECN

1

2-bit ECN

slide-29
SLIDE 29

VCP Properties

  • verload

high-load low-load router fairness control efficiency control MI AIMD end-host

  • Use network link load factor as the congestion signal
  • Decouple efficiencyandfairness controls in different load regions
  • Achieve high efficiency, low loss, and small queue
  • Fairness model is similar to TCP:
  • Long flows get lower bandwidth than in XCP (proportional vs.

max-min fairness)

  • Fairness convergence much slower than XCP (solvable with

even more, e.g., 8 bits)

slide-30
SLIDE 30

Conclusion

  • Review of TCP AIMD congestion control
  • XCP

– Key ideas – How to compute positive and negative feedback