Congestion and the Role
- f Routers
Congestion and the Role of Routers Jeff Chase Duke University - - PowerPoint PPT Presentation
Congestion and the Role of Routers Jeff Chase Duke University Overview Problem is Bullies, Mobs, and Crooks [Floyd] AQM / RED / REM ECN Robust Congestion Signaling XCP Pushback Stoica Following slides
4
wnd = 3
segment 1 segment 2 segment 3 ACK 2 segment 4 ACK 3 segment 5 segment 6 ACK 4
RTT (Round Trip Time)
istoica@cs.berkeley.edu
Load Load Throughput Delay knee cliff congestion collapse packet loss
istoica@cs.berkeley.edu
Load Throughput knee cliff congestion collapse
istoica@cs.berkeley.edu
7
Initially: cwnd = 1; ssthresh = infinite; New ack received: if (cwnd < ssthresh) /* Slow Start*/ cwnd = cwnd + 1; else /* Congestion Avoidance */ cwnd = cwnd + 1/cwnd; Timeout: /* Multiplicative decrease */ ssthresh = cwnd/2; cwnd = 1; while (next < unack + win) transmit next packet; where win = min(cwnd, flow_win);
unack next win seq #
istoica@cs.berkeley.edu
8
Time cwnd Timeout Slow Start Congestion Avoidance
istoica@cs.berkeley.edu
9
Time cwnd Slow Start Congestion Avoidance
istoica@cs.berkeley.edu
10
Time cwnd Slow Start Congestion Avoidance
Timeout Fast Retransmit Fast recovery
istoica@cs.berkeley.edu
istoica@cs.berkeley.edu
istoica@cs.berkeley.edu
istoica@cs.berkeley.edu
– Congestion control mechanisms at end-systems, mainly implemented in TCP – Routers play little role
congestion management – Scheduling – Buffer management
– FIFO – Tail drop
istoica@cs.berkeley.edu
istoica@cs.berkeley.edu
istoica@cs.berkeley.edu
Discard Probability Average Queue Length 1 min_th max_th queue_len
istoica@cs.berkeley.edu
Discard Probability Average Queue Length 1 min_th max_th queue_len
istoica@cs.berkeley.edu
Discard Probability (P) Average Queue Length 1 min_th max_th queue_len
istoica@cs.berkeley.edu
Discard Probability Average Queue Length 1 min_th max_th queue_len avg_len P max_P
istoica@cs.berkeley.edu
istoica@cs.berkeley.edu
istoica@cs.berkeley.edu
1 2 3 4 5 6 7 8 9 10 1 4 7 10 13 16 19 22 25 28 31
Flow Number Throughput(Mbps) UDP
istoica@cs.berkeley.edu
istoica@cs.berkeley.edu
istoica@cs.berkeley.edu
istoica@cs.berkeley.edu
srini@cs.cmu.edu
srini@cs.cmu.edu
srini@cs.cmu.edu
srini@cs.cmu.edu
– W = pkts/RTT, T = RTTs – A = avg window * time = ¾ W * T
– BW = A / T = ¾ W
– Need to convert to bytes per second – BW = ¾ W * MSS / RTT
– Depends on loss rate
srini@cs.cmu.edu
srini@cs.cmu.edu
– Packets per loss (¾ W/RTT) * (W/2 * RTT) = 3W2/8 – 1 packet lost loss rate = p = 8/3W2 –
– –
3 2 p RTT MSS BW × =
p W 3 8 = p p W 2 3 3 4 3 8 × = =
srini@cs.cmu.edu
srini@cs.cmu.edu
srini@cs.cmu.edu
srini@cs.cmu.edu
– N “slow starts” = aggressive – No shared learning = inefficient
srini@cs.cmu.edu
necessarily get the same bandwidth. – Factors such as roundtrip time, small differences in timeouts, and start time, … affect how bandwidth is shared – The bandwidth ratio typically does stabilize
aggressiveness of TCP and will change how much bandwidth a source gets. – Affects “fairness” relative to other flows – Changing timeouts, dropping or adding features, ..
– Each flow gets a share of the bandwidth to the user gets more bandwidth than users who use only a single flow
srini@cs.cmu.edu
flows, or other means to identify high-bandwidth flows (bullies).
– Floyd and Fall, Promoting… – Mahajan and Floyd, RED-PD.
– Mobs: flash crowds – Crooks or vandals/terrorists (DDOS)
– (on pushback web page)