180 likes | 343 Views
Congestion Control An Overview. -Jyothi Guntaka. Congestion. What is congestion ? The aggregate demand for network resources exceeds the available capacity of a link. Effects of congestion Performance Degradation Multiple packet loss Low link utilization (low throughput)
E N D
Congestion Control An Overview -Jyothi Guntaka
Congestion • What is congestion ? • The aggregate demand for network resources exceeds the available capacity of a link. • Effects of congestion • Performance Degradation • Multiple packet loss • Low link utilization (low throughput) • High queueing delay • Congestion collapse
Approaches • Congestion Avoidance (Proactive) • Action before the network becomes overloaded. • Congestion Control (Reactive) • Action after the network is overloaded.
Implicit vs. Explicit feedback • Implicit feedback Congestion Control • Network drops packets when congestion occurs.. • Source infer congestion implicitly. • time-out, duplicated ACKs, etc. • Example: end-to-end TCP congestion Control. • Simple to implement but inaccurate. • implemented only at Transport layer (e.g., TCP)
Implicit vs. Explicit feedback (…contd) • Explicit feedback Congestion Control • Network component (e.g., router) provides congestion indication explicitly to sources. • use packet marking, or RM cells (in ATM ABR control) • Examples: DECbit, ECN, ATM ABR CC, etc. • Provide more accurate information to sources . • But is more complicated to implement. • Need to change both source and network algorithm • Need cooperation between sources and network component
Importance of Congestion Control - Issues • Fairness • No universal (mathematical) definition for fairness. • Depends on how many relevant dependencies are included in the model. • All being equal concept (in best effort networks) • Everybody gets equal service. • All resources available to everybody. • Each is expected to respect others and behave accordingly. • When a new connection is added, everybody gets a little bit worse service.
Issues (…contd) • Economical aspect (in QoS enabled networks) • You should get what you pay for. • Old flows should not experience harm if a new flow is accepted.
TCP Congestion Control • Use end-to-end congestion control • use implicit feedback. • e.g., time-out, triple duplicated ACKs, etc. • use window based flow control. • self-clocking • slow-start and congestion avoidance • Examples: • TCP Tahoe, TCP Reno, TCP Vegas, etc.
AIMD • Additive Increase/Multiplicative Decrease (AIMD) • Objective: adjust to changes in the available capacity. • New state variable per connection: CongestionWindow. • Limits how much data source has in transit. • TCP source sending no faster than the slowest component. (network or destination host) can tolerate. • Idea: • Increase CongestionWindow when congestion goes down. • Decrease CongestionWindow when congestion goes up.
Random Early Detection (RED) • RED • Use network algorithm to detect incipient congestion. • Design goals: • minimize packet loss and queueing delay • avoid global synchronization • maintain high link utilization • removing bias against bursty source • Achieve goals by • randomized packet drop • queue length averaging
Explicit Congestion Notification (ECN) • Current congestion indication • use packet drop to indicate congestion. • source infers congestion implicitly. • ECN • to give less packet drop and better performance. • use packet marking rather than drop. • need cooperation between sources and network.
High Bandwidth-Delay Product Environments • TCP congestion control performs poorly as bandwidth or delay increases. • Proposed an eXplicit Control Protocol (XCP). • Small queues • Almost no drops • Improved fairness • Scalable (no per-flow state)
TCP vs. XCP • TCP • AIMD controls both congestion and fairness. • XCP • To control congestion: MIMD is used which shows fast response. • To control fairness: AIMD is used which converges to fairness. • XCP provides a joint design of end-systems and routers and it can co-exist with TCP.
TCP friendly congestion control • TCP friendly: a protocol that behaves like TCP • Backs off if congestion and uses a fair share of resources. • Protocol that obeys TCP long term throughput relation. • Internet requirement: new transport protocols must be TCP friendly • Backs off if congestion and uses a fair share of resources. • Applies also to application layer protocols transmitting over UDP, e.g., real time telephony or streaming applications. • Rate control implemented on top of UDP as part of application.
TCP friendly congestion control (…contd) • Non-TCP friendly: • A protocol that takes more than its fair share of bandwidth (greedy). • May cause fluctuations in network load and result in congestion collapse. • How to protect your protocol against non-TCP friendly greedy protocols? • RED is designed to solve this problem to some extent.
Research • Develop a multipath protocol dealing with congestion control. • Further study on measuring available bandwidth and other network path characteristics. • Congestion control in wireless networks. • Sensor networks. • Completely wireless and hybrid wireless networks.
Acknowlegements • Some of the slides from • Improving Adaptability and Fairness in Internet Congestion Control. • Congestion Control for High Bandwidth-Delay Product Environments. • Lecture notes on Congestion Control (http://www.tct.hut.fi/opetus/s38188/2003/lect/188lect8net.pdf).