Congestion Control. Need to understand: What is congestion? How do we prevent or manage it?

Similar documents
Congestion Control. Phenomenon: when too much traffic enters into system, performance degrades excessive traffic can cause congestion

CS418 Operating Systems

Min Congestion Control for High- Speed Heterogeneous Networks. JetMax: Scalable Max-Min

NICTA Short Course. Network Analysis. Vijay Sivaraman. Day 1 Queueing Systems and Markov Chains. Network Analysis, 2008s2 1-1

requests/sec. The total channel load is requests/sec. Using slot as the time unit, the total channel load is 50 ( ) = 1

These are special traffic patterns that create more stress on a switch

Wireless Internet Exercises

CSE 123: Computer Networks

Performance Analysis of Priority Queueing Schemes in Internet Routers

cs/ee/ids 143 Communication Networks

PIQI-RCP: Design and Analysis of Rate-Based Explicit Congestion Control

ATM VP-Based Ring Network Exclusive Video or Data Traffics

Analysis of the Increase and Decrease. Congestion Avoidance in Computer Networks

A Mathematical Model of the Skype VoIP Congestion Control Algorithm

The Analysis of Microburst (Burstiness) on Virtual Switch

Processor Sharing Flows in the Internet

Congestion Control In The Internet Part 1: Theory. JY Le Boudec 2018

Analysis of Rate-distortion Functions and Congestion Control in Scalable Internet Video Streaming

Hybrid Control and Switched Systems. Lecture #1 Hybrid systems are everywhere: Examples

384Y Project June 5, Stability of Congestion Control Algorithms Using Control Theory with an application to XCP

Congestion Control. Topics

CS276 Homework 1: ns-2

Worst-case delay control in multigroup overlay networks. Tu, Wanqing; Sreenan, Cormac J.; Jia, Weijia. Article (peer-reviewed)

Part 2: Random Routing and Load Balancing

Large Deviations for Channels with Memory

Internet Traffic Modeling and Its Implications to Network Performance and Control

CDA5530: Performance Models of Computers and Networks. Chapter 4: Elementary Queuing Theory

Lan Performance LAB Ethernet : CSMA/CD TOKEN RING: TOKEN

A Quantitative View: Delay, Throughput, Loss

Distributed Systems Fundamentals

Chapter 5. Elementary Performance Analysis

Dynamic resource sharing

Singular perturbation analysis of an additive increase multiplicative decrease control algorithm under time-varying buffering delays.

Rate adaptation, Congestion Control and Fairness: A Tutorial. JEAN-YVES LE BOUDEC Ecole Polytechnique Fédérale de Lausanne (EPFL)

communication networks

P e = 0.1. P e = 0.01

Lecture on Sensor Networks

Before proceeding to bad news: connection between heavy-tailedness and google? saga of two lucky kids (aka grad students ) lesson to be drawn?

Reliable Data Transport: Sliding Windows

An Optimal Index Policy for the Multi-Armed Bandit Problem with Re-Initializing Bandits

Approximate Fairness with Quantized Congestion Notification for Multi-tenanted Data Centers

Analysis of Scalable TCP in the presence of Markovian Losses

A Different Kind of Flow Analysis. David M Nicol University of Illinois at Urbana-Champaign

Giuseppe Bianchi, Ilenia Tinnirello

Multiaccess Communication

Multimedia Communication Services Traffic Modeling and Streaming

Computer Networks ( Classroom Practice Booklet Solutions)

Service differentiation without prioritization in IEEE WLANs

Analysis on Packet Resequencing for Reliable Network Protocols

Capacity management for packet-switched networks with heterogeneous sources. Linda de Jonge. Master Thesis July 29, 2009.

CHAPTER 4. Networks of queues. 1. Open networks Suppose that we have a network of queues as given in Figure 4.1. Arrivals

Performance Evaluation of Queuing Systems

On Tandem Blocking Queues with a Common Retrial Queue

Stochastic Optimization for Undergraduate Computer Science Students

Rate Control in Communication Networks

Modeling and Simulation NETW 707

Mixed Stochastic and Event Flows

WiFi MAC Models David Malone

Controlo Switched Systems: Mixing Logic with Differential Equations. João P. Hespanha. University of California at Santa Barbara.

Random Access Protocols ALOHA

Competitive Management of Non-Preemptive Queues with Multiple Values

of 8 28/11/ :25

Strong Performance Guarantees for Asynchronous Buffered Crossbar Schedulers

Resource Allocation for Video Streaming in Wireless Environment

Quiz 1 EE 549 Wednesday, Feb. 27, 2008

Queueing Theory I Summary! Little s Law! Queueing System Notation! Stationary Analysis of Elementary Queueing Systems " M/M/1 " M/M/m " M/M/1/K "

Scheduling I. Today. Next Time. ! Introduction to scheduling! Classical algorithms. ! Advanced topics on scheduling

Analysis of an M/G/1 queue with customer impatience and an adaptive arrival process

An Admission Control Mechanism for Providing Service Differentiation in Optical Burst-Switching Networks

Job Scheduling and Multiple Access. Emre Telatar, EPFL Sibi Raj (EPFL), David Tse (UC Berkeley)

Methodology for Computer Science Research Lecture 4: Mathematical Modeling

Routing. Topics: 6.976/ESD.937 1

Socket Programming. Daniel Zappala. CS 360 Internet Programming Brigham Young University

Analysis of TCP-AQM Interaction via Periodic Optimization and Linear Programming: The Case of Sigmoidal Utility Function

Appendix A Prototypes Models

Discrete Random Variables

Window Size. Window Size. Window Size. Time. Time. Time

DIMENSIONING BANDWIDTH FOR ELASTIC TRAFFIC IN HIGH-SPEED DATA NETWORKS

Theoretical Analysis of Performances of TCP/IP Congestion Control Algorithm with Different Distances

Analysis of random-access MAC schemes

Window-aware Load Shedding for Aggregation Queries over Data Streams

Lecture 7: Simulation of Markov Processes. Pasi Lassila Department of Communications and Networking

Window Flow Control Systems with Random Service

Linear Model Predictive Control for Queueing Networks in Manufacturing and Road Traffic

A POMDP Framework for Cognitive MAC Based on Primary Feedback Exploitation

Stability of window-based queue control with application to mobile terminal download

CDM. Recurrences and Fibonacci. 20-fibonacci 2017/12/15 23:16. Terminology 4. Recurrence Equations 3. Solution and Asymptotics 6.

COMP9334: Capacity Planning of Computer Systems and Networks

Switched Systems: Mixing Logic with Differential Equations

Microeconomic Algorithms for Flow Control in Virtual Circuit Networks (Subset in Infocom 1989)

Bounded Delay for Weighted Round Robin with Burst Crediting

ESTIMATION OF THE BURST LENGTH IN OBS NETWORKS

Optimization and Stability of TCP/IP with Delay-Sensitive Utility Functions

Inequality Comparisons and Traffic Smoothing in Multi-Stage ATM Multiplexers

Chapter 2: A Fluid Model Analysis of Streaming Media in the Presence of Time- Varying Bandwidth

Towards a Framework For Resource Allocation in Networks

On Tandem Blocking Queues with a Common Retrial Queue

Power Laws in ALOHA Systems

Simplification of Network Dynamics in Large Systems

A Measurement-Analytic Approach for QoS Estimation in a Network Based on the Dominant Time Scale

Transcription:

Congestion Control Phenomenon: when too much traffic enters into system, performance degrades excessive traffic can cause congestion Problem: regulate traffic influx such that congestion does not occur congestion control Need to understand: What is congestion? How do we prevent or manage it?

Traffic influx/outflux picture: traffic influx Network traffic outflux traffic in flight traffic influx: λ(t) offered load rate: bps (or pps) at time t traffic outflux: γ(t) throughput rate: bps (or pps) at time t traffic in-flight: Q(t) volume: total packets in transit at time t

Examples: Highway system: traffic influx: no. of cars entering highway per second traffic outflux: no. of cars exiting highway per second traffic in-flight: no. of cars traveling on highway at time instance t California Dept. of Transportation (Caltrans)

Water faucet and sink: traffic influx: water influx per second traffic outflux: water outflux per second traffic in-flight: water level in sink congestion? faucet.com Thermostat...

82.11b WLAN: Throughput 5.5 5 node 2 node 5 node 1 node 2 node 3 node 5 node 1 MAC System Thoughput (Mb/s) 4.5 4 3.5 3 3.5 4 4.5 5 5.5 6 6.5 Offered Load (Mb/s) unimodal or bell-shaped recall: less pronounced in real systems

82.11b WLAN: Collision 7 6 node 2 node 5 node 1 node 2 node 3 node 5 node 1 5 Collision Probability (%) 4 3 2 1 3.5 4 4.5 5 5.5 6 6.5 Offered Load (Mb/s) underlying cause of unimodal throughput

What we can regulate or control: traffic influx rate λ(t) Ex.: Faucet knob in water sink Temperature needle in thermostat Cars entering onto highway Traffic sent by UDP or TCP What we cannot control: the rest except in the long run: bandwidth planning does scheduling help? Kleinrock s conservation law: zero-sum pie

How does in-flight traffic or load Q(t) vary? At time t +1: Q(t +1)=Q(t)+λ(t) γ(t) Q(t): what was there to begin with λ(t): what newly arrived γ(t): what newly exited (delivered to applications) λ(t) γ(t): net influx Q(t) cannot be negative Q(t + 1) = max{,q(t)+λ(t) γ(t)} missing item?

Goal: Want to keep system in good/desirable state Ex.: If λ(t) >γ(t) for all time then Q(t) as t water level in sink grows and grows water sink has finite buffer capacity, overflows want to keep water level stable; how? Control actions: If water level is too high, close faucet If water level is too low, open faucet feedback control state of system : water level

Pseudo Real- Multimedia Streaming e.g., RealPlayer, Rhapsody, Internet radio pseudo because of prefetching trick application is given headstart: few seconds why? Goal: fill buffer & prevent from becoming empty Method: prefetch X seconds worth of data (e.g., audio/video) initial delayed playback: penalty of pseudo real-time keep fetching audio/video data such that X seconds worth of future data resides in receiver s buffer allows hiding of spurious congestion user: continuous playback experience can it work if bandwidth < app data rate?

Pseudo real-time traffic control architecture: Sender Receiver λ (t) Buffer γ Q * Q(t) Q(t): current buffer level Q : desired buffer level γ: throughput, i.e., playback rate e.g., for video 24 frames-per-second (fps) Goal: vary λ(t) such that Q(t) Q don t buffer too much (memory cost) don t buffer too little (bumpy road)

Basic idea: if Q(t) =Q do nothing if Q(t) <Q increase λ(t) if Q(t) >Q decrease λ(t) control law thermostat control (same as water faucet) Protocol implementation: control action undertaken at sender smart sender/dump receiver when might the opposite be better? receiver informs sender of Q and Q(t) feedback packet ( control signaling ) or just Q Q(t) or just up/down (binary)

Other applications: Router congestion control active queue management (AQM) receiver is a router Q is desired buffer occupancy/delay at router router throttles sender(s) to maintain Q similar to old source quench message (ICMP) considered too much messaging overhead

Slightly modified Internet standard: ECN (explicit congestion notification) two bits in IPv4 TOS field ECT: ECN capable transport (bit 6) CE: congestion experienced (bit 7) congested router marks ECT supported in most routers, default not turned on requires TCP sender/receiver changes Also proposed to throttle denial-of-service attack traffic push-back good guy vs. bad guy problem

Key question in feedback congestion control: how much to increase or decrease λ(t) control problem different specific manifestation TCP has its own specific rule Desired state of the system: i.e., target operating point want: Q(t) =Q and λ(t) =γ Start from: empty buffer and no sending rate at start i.e., Q(t) =andλ(t) =

evolution (or dynamics): track Q(t) and λ(t) Q(t) Q * λ(t) 1 2 3 4 5 6 7 8 9 1 11 12... t γ 1 2 3 4 5 6 7 8 9 1 11 12... t

Congestion control methods: A, B, C and D Method A: if Q(t) =Q then λ(t +1) λ(t) if Q(t) <Q then λ(t +1) λ(t)+a if Q(t) >Q then λ(t +1) λ(t) a where a> is a fixed parameter linear increase and linear decrease Question: does it work? Example: Q = 1 γ =1 Q()= λ()= a =1

25 Load Evolution Target 2 15 Load 1 5 1 2 3 4 5 3 Lambda Evolution Gamma 25 2 Lambda 15 1 5 1 2 3 4 5

With a =.5: 25 Load Evolution Target 2 15 Load 1 5 1 2 3 4 5 3 Lambda Evolution Gamma 25 2 Lambda 15 1 5 1 2 3 4 5

With a =3: 25 Load Evolution Target 2 15 Load 1 5 1 2 3 4 5 3 Lambda Evolution Gamma 25 2 Lambda 15 1 5 1 2 3 4 5

With a =6: 25 Load Evolution Target 2 15 Load 1 5 1 2 3 4 5 3 Lambda Evolution Gamma 25 2 Lambda 15 1 5 1 2 3 4 5

Remarks: Method A isn t that great no matter what a value is used keeps oscillating Actually: would lead to unbounded oscillation if not for physical restriction λ(t) and Q(t) easily seen: start from non-zero buffer e.g., Q() = 11

With a =1,Q() = 11, λ() = 11: 25 Load Evolution Target 2 15 Load 1 5 2 4 6 8 1 3 Lambda Evolution Gamma 25 2 Lambda 15 1 5 2 4 6 8 1

Method B: if Q(t) =Q then λ(t +1) λ(t) if Q(t) <Q then λ(t +1) λ(t)+a if Q(t) >Q then λ(t +1) δ λ(t) where a> and <δ<1 are fixed parameters Note: only decrease part differs from Method A. linear increase with slope a exponential decrease with backoff factor δ e.g., binary backoff in case δ =1/2 Similar to Ethernet and WLAN backoff question: does it work?

With a =1,δ =1/2: 25 Load Evolution Target 2 15 Load 1 5 4 8 12 16 2 3 Lambda Evolution Gamma 25 2 Lambda 15 1 5 4 8 12 16 2

With a =3,δ =1/2: 25 Load Evolution Target 2 15 Load 1 5 4 8 12 16 2 3 Lambda Evolution Gamma 25 2 Lambda 15 1 5 4 8 12 16 2

With a =1,δ =1/4: 25 Load Evolution Target 2 15 Load 1 5 4 8 12 16 2 3 Lambda Evolution Gamma 25 2 Lambda 15 1 5 4 8 12 16 2

With a =1,δ =3/4: 25 Load Evolution Target 2 15 Load 1 5 4 8 12 16 2 3 Lambda Evolution Gamma 25 2 Lambda 15 1 5 4 8 12 16 2

Note: Method B isn t that great either One advantage over Method A: doesn t lead to unbounded oscillation note: doesn t hit rock bottom due to asymmetry in increase vs. decrease policy typical sawtooth pattern Method B is used by TCP linear increase/exponential decrease additive increase/multiplicative decrease (AIMD) Question: can we do better? what freebie have we not utilized yet?

Method C: λ(t +1) λ(t)+ε(q Q(t)) where ε> is a fixed parameter Tries to adjust magnitude of change as a function of the gap Q Q(t) Thus: incorporate distance from target Q before: just the sign (above/below) if Q Q(t) >, increase λ(t) proportional to gap if Q Q(t) <, decrease λ(t) proportional to gap Trying to be more clever... bottom line: is it any good?

With ε =.1: 25 Load Evolution Target 2 15 Load 1 5 5 1 15 2 3 Lambda Evolution Gamma 25 2 Lambda 15 1 5 5 1 15 2

With ε =.5: 25 Load Evolution Target 2 15 Load 1 5 5 1 15 2 3 Lambda Evolution Gamma 25 2 Lambda 15 1 5 5 1 15 2

Answer: no looks good but looks can be deceiving to try something strange any (crazy) ideas? good for course project (assuming it works)

Odd looking modification to Method C: Method D: λ(t +1) λ(t)+ε(q Q(t)) β(λ(t) γ) where ε> and β>are fixed parameters additional term β(λ(t) γ) what s going on? Sanity check: at desired operating point Q(t) =Q and λ(t) = γ, nothing should move check with methods A, B and C fixed-point property what about Method D? Now: does Method D get to the targe fixed point?

With ε =.2 and β =.5: 25 Load Evolution Target 2 15 Load 1 5 5 1 15 2 25 3 35 4 45 5 3 Lambda Evolution Gamma 25 2 Lambda 15 1 5 5 1 15 2 25 3 35 4 45 5

With ε =.5 and β =1.1: 25 Load Evolution Target 2 15 Load 1 5 5 1 15 2 25 3 35 4 45 5 3 Lambda Evolution Gamma 25 2 Lambda 15 1 5 5 1 15 2 25 3 35 4 45 5

With ε =.1 and β =1.: 25 Load Evolution Target 2 15 Load 1 5 5 1 15 2 25 3 35 4 45 5 3 Lambda Evolution Gamma 25 2 Lambda 15 1 5 5 1 15 2 25 3 35 4 45 5

Remarks: Method D has desired behavior Is superior to Methods A, B, and C No unbounded oscillation In fact, dampening and convergence to desired operating point converges to target operating point (Q,γ) lim t (Q(t),λ(t))=(Q,γ) asymptotic stability Starting point (Q(),λ()) issue: if target is reached from anywhere: global stability if target is reached when nearby: local stability want global stability

Why does it work? What is the role of the β(λ(t) γ) term in the control law: λ(t +1) λ(t)+ε(q Q(t)) β(λ(t) γ) Need to look beneath the hood... do you care about the engine or just the exterior? are you deep or superficial? answer: let s try to be both