190 likes | 282 Vues
CSE 561 – Congestion Control with Network Support. David Wetherall djw@cs.washington.edu Spring 2000. Reminder. Presentations in-class May 3 (next wed) Lit Review Assignment due May 10 (wed, week 7) In-class exam May 17 (wed, week 8) Final project presentations
E N D
CSE 561 – Congestion Control with Network Support David Wetherall djw@cs.washington.edu Spring 2000
Reminder • Presentations in-class May 3 (next wed) • Lit Review Assignment due May 10 (wed, week 7) • In-class exam May 17 (wed, week 8) • Final project presentations • May 31 (wed, week 10) plus ? djw // CS 561, Spring 2000
Project Status Presentations • In-class, May 3 • 9 project groups • 8 minutes clocked plus 1 minute for questions • Use your time well: single presenter, practice • Feedback: peer evaluation • What you should convey: • Frame the problem you’re studying and why it matters • Tell us what you’ve done so far • Tell us what you plan to do and what kind of results you will show us at the end of quarter djw // CS 561, Spring 2000
Lit Review Assignment • Due May 10 • Pick a topic area, review the research literature and report on the development and ongoing issues • Short report (8 pages, single-spaced max) in teams of two • An experiment • Mini-generals (but MUCH smaller) • Good to do before your actual generals! djw // CS 561, Spring 2000
This Lecture • Papers: • Shenker, Making Greed Work in Networks, Sigcomm94 • Floyd/Jacobson, RED Gateways for Congestion Avoidance, TON93 djw // CS 561, Spring 2000
Floyd/Jacobson, TON 93 • Describes motivation for and details of RED gateways and provides an evaluation of them • Basic idea: congestion avoidance by detecting incipient congestion and dropping packets early • Elegant insight: the value of randomization • Contribution: incrementally deployable scheme that improves on the drop tail situation and is practical djw // CS 561, Spring 2000
Problems with DropTail Routers • Congestion is detected by overflowing the queue • Why is this bad? • Global synchronization phenomena • How does this happen and why is it bad? • Bias against bursty traffic • Why so? • Bottom line: we need help from the network djw // CS 561, Spring 2000
Incipient Congestion at a Router • Sustained overload causes queue to build and overflow djw // CS 561, Spring 2000
Random Early Detection (RED) • Send “early” signal by probabilistically dropping a packet, allow source to respond before queue builds MaxThreshold MinThreshold A vgLen djw // CS 561, Spring 2000
RED Algorithm • Calculate average queue length (EWMA) • Probabilistically drop (below) as queue builds • Flows receive drops proportional to their share • When queue is too high, revert to drop tail P(drop) 1.0 MaxP A vgLen MinThresh MaxThresh djw // CS 561, Spring 2000
Explicit Congestion Notification (ECN) • Why only drop packets to signal congestion? • Drops are a robust signal, but there are other means … • We need to be careful though: no extra packets • ECN signals congestion by setting a bit in the IP header • Receiver returns indication to the sender, who slows • RED actually works by “marking” packets • Mark can be a drop or ECN signal if hosts understand ECN • Supports congestion avoidance without loss djw // CS 561, Spring 2000
RED in Practice • Elegant idea, how well has it worked? • Setting parameters • Needed feedback a function of number of flows? • Effectiveness for short flows? • Misbehaving users • RED provides scant protection itself, but can be used to identify/punish misbehaving connections (the “penalty box”) djw // CS 561, Spring 2000
Shenker 94 • A game-theory take on the congestion problem • Interested about making statements on what is and isn’t possible in terms of a general setup with selfish users • Contribution is an incentive-based design philosophy and summary of what is known to be possible and what is known not to be possible for his setting. djw // CS 561, Spring 2000
Shenker’s Setup • Users behave selfishly according to their own utility functions • Weak restrictions on utility functions: they go up as rates increase and congestion decreases • We can choose only the switch algorithms that are applied to all packets • Question: Can we design switch algorithms that give “good” performance for all utility functions? djw // CS 561, Spring 2000
Results • FIFO / proportional allocation leads to poor network performance with selfish users • FQ / Fair Share has a unique Nash equilibrium that is fair and easily reached by selfish optimization • Not necessarily optimally efficient (Pareto optimal) • No other MAC service discipline has these properties djw // CS 561, Spring 2000
Fair Queuing (FQ) • FIFO is not guaranteed (or likely) to be fair • Flows jostle each other and hosts must play by the rules • Routers don’t discriminate traffic from different sources • Fair Queuing is an alternative scheduling algorithm • Maintain one queue per traffic source (flow) and send packets from each queue in turn • Actually, not quite, since packets are different sizes • Provides each flow with its “fair share” of the bandwidth • Issues: • Implementation complexity, definition of flow djw // CS 561, Spring 2000
Fair Queuing Flow 1 Flow 2 Round-robin service Flow 3 Flow 4 djw // CS 561, Spring 2000
Fair Queuing • Want to share bandwidth • At the “bit” level, but in reality must send whole packets • Approximate with finish times for each packet • finish (F) = arrive + length*rate; rate depends on # of flows • Send in order of finish times, except don’t preempt (stop) transmission if a new packet arrives that should go first • More generally, assign weights to queues (WFQ) Flow 1 Flow 2 Output F = 10 F = 8 F = 5 djw // CS 561, Spring 2000
Further Interest • Pricing for Congestion Avoidance • E.g., Frank Kelley and Cambridge University / MSR folk • How do we design an economic model from which congestion avoidance falls out? djw // CS 561, Spring 2000