==================== 0. LOGISTICS, REVIEW, OUTLINE ==================== * Review: last class * Sliding window protocol * Throughput of sliding window * Animation of sliding window throughput on the course web site. * This class: congestion collapse * What happens if everyone sets their own large window? * Three examples of congestion collapse * Next class: how do we fix congestion collapse? ==================== 1. CONDITIONS FOR CONGESTION COLLAPSE ==================== * Sliding window protocol throughput is W/RTT * What is the right value of W?: C*RTT * What happens if W exceeds this: queueing delay of W/C - RTT Why? * Why this can happen: * Don't know C, * Don't know RTT * Can vary over a flow's lifetime * What happens if the window is not right * Delays go up for everyone. Interactive apps are frustrated * Duplicate packets can degrade throughput * Further compounded when there are multiple senders, setting their W independently * Don't know effective C (depends on other flows) * Effective window is sum of individual windows * General term for all these bad conditions: congestion collapse * Formally, after a nw has collapsed, offered load (demand) for the nw is going up, but utility (useful work) is going down. (Draw out a cartoon figure of congestion collapse). * Similar to too many people talking in a room. * Similar concepts elsewhere: ** Economics: tragedy of the commons. Connections to game theory. ** OS: Thrashing ==================== 2. CONGESTION COLLAPSE EXAMPLE ================== * Several assumptions for our network: * n flows, each runs sliding window * window size is W * each flow has the same RTT * All flows share their bottleneck link of capacity C * Link has infinite buffers, never drops a packet * No retransmissions * Utility = throughput/latency. Aggregate utility = sum (utilities) * Offered load is n * 2 regimes: * nW < CRTT * nW > CRTT * First regime * Throughput increases linearly * Queueing delay is zero. RTT is constant * Aggregate utility increases linearly * Second regime * Throughput constant at C * Queueing delay increases linearly * Aggregate utility decreases as 1/x * Network is still 100% utilized, but not all its work is useful. * Late packets are not as useful as early ones. ========================= 3. A MORE LATENCY-ORIENTED UTILITY FUNCTION ========================= * What if the user decides utility = 0 once the latency crosses a threshold? * Many web browser users are like this. * Then the congestion collapse is more severe. ======================== 4. ANOTHER EXAMPLE ======================= * Similar conditions as previous example, except * Assume all packets are retransmitted after a fixed timeout T * Utility only measures number of unique in order packets received at the receiver * No latency in utility * Three regimes: * nW < CRTT, utility (and throughput) increase linearly * CRTT < nW < T, utility remains constant at C * nW > T, retransmissions start, soon overwhelm the network, utility falls to 0 * Regime three is hard to reason about using pen and paper * Run a simulation * Show them simulation results ======================== 5. HISTORICAL NOTES IN LECTURE NOTES (where to look for more information) ========================