Advanced Computer Networks CS716 Advanced Computer Networks By Dr. Amir Qayyum 1
Lecture No. 34
Where we are now … Understand how to Today’s topic Build a network on one physical medium Connect networks together (with switches) Implement a reliable byte stream on Internet Implement a UDP/TCP connection/channel Address network heterogeneity Address global scale End-to-end issues and common protocols Today’s topic Congestion control
Congestion Control Outline Queuing Discipline Reacting to Congestion Avoiding Congestion
Air Travel Planning a vacation for your semester break ? Try a trip to scenic Northern Areas Its a mere 3 hops from VU-Islamabad Flight was overbooked Islamabad Airport Peshawer VU Sakardu
Congestion Control Reading: Peterson and Davie, Ch. 6 Basics: problem, terminology, approaches, metrics Solutions Router-based: queuing disciplines Host-based: TCP congestion control Congestion avoidance DECbit RED gateways Quality of service
Congestion Control Basics Problem Demand for network resources can grow beyond the resources available Want to provide “fair” amount to each user Examples Bandwidth between Islamabad and Peshawer Bandwidth in a network link Buffers in a queue
Range of Solutions Congestion control: cure congestion when it happens Congestion avoidance: stay away from congestion Resource allocation: prevent congestion from occurring
Model of Network Packet-switched internetwork (or network) Connectionless flows (logical channels/connections) between hosts
State Maintained in Routers Hard state: state used to support routing Soft state: Information about flows Helps control congestion Not necessary for correct routing
Congestion Control Basics Router role Controls forwarding and dropping policies Can send feedback to source Host role Monitors network conditions Adjusts accordingly Routing vs congestion Effective adaptive routing schemes can sometimes help congestion But not always
Finite Buffering Capacity per Output Customer Service Standard check-in lines x a angry mob eagerly awaiting opportunity to address underpaid customer service representative 1x6 Switch you are turned away at door
Congestion Control Taxonomy
Congestion Control Taxonomy Why is explicit per-flow congestion feedback from routers rarely used in practice? Too many sources to track Millions of flows may fan in to one router Can’t send feedback to all of them Adds complexity to router Need to track more state Certainly can’t track state for all sources
Congestion Control Taxonomy Wastes bandwidth: network already congested, not the time to generate more traffic Can’t force the sources (hosts) to use feedback Sol: use stochastic methods to select fairly between flows, or classify flows into categories at edge routers
Why Consider Rate Control ? Buffer space (window size) is an intrinsic physical quantity Can provide rate control with window control Only need estimate of RTT Answer: Want rate control when granularity of averaging must be smaller than RTT
Criticism of Resource Allocation Example: you have 10 Gbps total bandwidth Case 1: reserve whatever you want Users’ line of thought: On average, I don’t need much bandwidth, but when my personal web crawler goes to work, I need at least 100 Mbps, so I’ll reserve that much. Result: 100 users consume all bandwidth, all others get 0 Case 2: fair/equitable reservations 35,000 students + 5,000 faculty and staff Each user gets 250 kbps, almost 5x a modem! (watch that crawler crawl...)
Back to Air Travel Analogy Daily Islamabad to Peshawer flight, ~200 seats Case 1: reserve whatever you want 200 of us get seats. I’m Gold...are you ? Case 2: fair/equitable reservations 2,000 possible customers 0.099 seats per customer per flight Disclaimer: the passenger assumes all risks and damages related to unsuccessful reassembly in Peshawer !!!
Congestion Control Metrics How do we evaluate solutions ? Effectiveness (shown as power in the figure below) fairness
Congestion Control Metrics: What’s Fair ? Give flow A 1/3 of the link bandwidth ? Globally “fair” A uses 2 links at 1/3 bandwidth B and C use 1 link at 2/3 bandwidth Give flow A 1/2 of the link bandwidth ? Locally “fair” (fair on each link) Also globally “fair”: maximizes minimum flow
Power Measure for a Sliding Window Bottleneck link with capacity C Round-trip time RTT