You are on page 1of 39

CS 456: Computer Networks: Congestion Control/QoS

Prof. Varsha Apte

Slides based on William Stallings+Tanenbaum

What is congestion? Impact of congestion


Packet queues at links start to grow Packets start dropping Sources start re-transmitting After a while only re-transmissions occupy the network Network resources start getting utilized in useless work (packets in queues that get timed out and re-transmitted) Goodput goes to nearly zero
Max capacity

Congestion controls try to avoid getting into this situation

Congestion Control
What is congestion control? How is it done in example networks ?

Bus LAN Switched LANs Internet Telephone network

Congestion control
Is done in some form at all layers

Flow control b/w source and destn. Network layer congestion control is still needed. (Why?)

Can be done at various time-scales

Congestion control and QoS


Pre-QoS: Everything best-effort

E.g. TCP/IP networks, congestion control is left to TCP, i.e. TCP is a well-behaved source, that adapts to congestion

Post QoS-Integrated Services: Congestion control should be different for different sources

Different for file-transfer/e-mail Different for real-time-sensitive apps, e.g. voice, video
Different based on what type of coding is used for these

apps

Quality of Service
Quality parameters that define the performance needs of a flow (i.e. a stream of packets belonging to a particular connection)

Reliability Probability of delivering packets correctly Delay Jitter Variation in Packet delay Bandwidth

QoS Requirements

Jitter Control

(a) High jitter.

(b) Low jitter.

Buffering
Smoothing the output stream by buffering packets.

General Principles of Congestion Control


Monitor the system .

detect when and where congestion occurs.

Pass information to where action can be taken. Adjust system operation to correct the problem.

Congestion control time-scales


Long Term: Network Resource Provisioning (sizing the network correctly) Connection duration

Connection (call) admission control: In connection oriented networks, decide whether to admit connection or not

Round Trip propagation time: Explicit forward congestion signaling Packet Insertion Level:

Traffic shaping, policing, selective discarding

Congestion Prevention Policies


Policies that affect congestion.
5-26

Routing around congestion

(a) A congested subnet. (b) A redrawn subnet, eliminates congestion and a virtual circuit from A to B.

Mechanisms for Congestion Control

Implicit Congestion Signaling


Transmission delay may increase with congestion Packet may be discarded Source can detect these as implicit indications of congestion Useful on connectionless (datagram) networks

e.g. IP based
(TCP includes congestion and flow control)

Backpressure
If node becomes congested it can slow down or halt flow of packets from other nodes May mean that other nodes have to apply control on incoming packet rates Propagates back to source Can restrict to logical connections generating most traffic Used in connection oriented that allow hop by hop congestion control (e.g. X.25) Not used in ATM nor frame relay Only recently developed for IP

Choke Packets
Earlier method takes too much time to send back congestion message Instead, router can send choke packet back to source

Once choke packet is send, original packet is marked, so downstream routers do not generate any more choke packets When choke packet comes to receiver, it decreases its traffic rate
E.g. by changing window size

Increase traffic rate if choke packets slow down, decrease if more come.

e.g. ICMP source quench

Hop-by-Hop Choke Packets


(a) A choke packet that affects only the source. (b) A choke packet that affects each hop it passes through.
Not QoS aware Reactive, rather than pro-active

Generates more packets during

congestion

Congestion Signaling
Network alerts end systems of increasing congestion End systems take steps to reduce offered load Backwards

Congestion avoidance in opposite direction to packet required


Congestion avoidance in same direction as packet required

Forwards

Backward Notification
Mark packets headed in the opposite direction of the congestion Tell source that packets transmitted on this logical connection may encounter congestion

Source can slow down

Forward notification
Marks packets going in the direction of congestion Tells the destination that these packets experienced congestion Destination may alert source about congestion

At network layer At transport layer

Categories of Explicit Signaling


Binary

A bit set in a packet indicates congestion Indicates how many packets source may send Common for end to end flow control Supply explicit data rate limit e.g. ATM

Credit based

Rate based

Load Shedding
Drop packets when buffers are full Router can try to drop intelligently

Dropping older packets is better for multimedia streaming apps Dropping newer packets is better for data apps (e.g. file transfer).
Receiver may discard out-of-order packets

Random Early Detect


Drop packets before buffers are full, so prevent congestion before it occurs

Sources will react to packet drops and slow down (e.g. TCP)

Issues to be addressed in broadband multi-service networks


Sources may not be doing flow control (voice, video) Feedback is slow, (propagation time much greater compared to transmission time) Diverse capacity requirements may get penalized unfairly Traffic patterns very different (not Poisson) (CBR, VBR, very bursty) Vastly different QoS requirements Very high speed network wide fluctuations in reactive controls

ATM Example
Data rate: 150 Mbps Cell size (Fixed): 53 bytes Cell Insertion Time = 2.8 microsecs Assuming US coast-to-coast, round trip propagation delay is approx. 48 milliseconds Suppose a file transfer is initiated, congestion occurs, and implicit congestion control is used

Time required on the order of propagation delay

Number of cells transmitted in this time = 17000 = 7 Megabits of data

Controlling Sources
Connection admission control

Based on some traffic descriptors, determine whether this connection can be admitted Make sure the traffic has certain performance attribute (shape) e.g. not bursty Make sure traffic sent by user is according to contract done during connection admission

Traffic Shaping

Traffic Policing

The Leaky Bucket Algorithm

(a) A leaky bucket with water. (b) a leaky bucket with packets

Leaky bucket
Let one packet out per clock tick If packet arrives, queue it If bucket full, packet is discarded If packets are the same size, this enforces a uniform rate For variable size packets

Initialize counter to n If packet size < counter, let packet thru and decrement counter by packet size If size > counter, wait until clock ticks, and reinitialized

The Leaky Bucket Algorithm


(a) Input to a leaky bucket. (1 MB burst). Network speed is 200 Mbps (b) Output from a leaky bucket (2MB/sec), 1 MB bucket size

Output from a token bucket with capacities of (c) 250 KB, (d) 500 KB, (e) 750 KB, (f) Output from a 500KB token bucket feeding a 10-MB/sec leaky bucket.

The Token Bucket Algorithm

5-34

(a) Before.

(b) After.

Token bucket
Leaky bucket enforces rigid shape Token bucket allows some bursts

Save unused credit (upto size of bucket)

Does not discard packets (in principle) Variant can be done for variable size packets

Increment counter every clock tick by k bytes Decrement counter when packet passes thry

Calculating burst length


Let burst length = S Token arrival rate = r Maximum output rate = M Bucket capacity = C Burst size = C + Sr Burst size is also = M S S = C/(M-r)

Generalized Token bucket in ATM


Termed leaky bucket Also termed Generalized Cell Rate Algorithm, used to mark cells as conformant or non

Described with two parameters as GCRA (T, ) Bucket size = T + Bucket filled with fluid at rate 1/unit time (Unit time = 1 cell transmission time) Let F(t) denote fluid in the bucket at time t.
If cell arrives at time t, and F(t-) >= T, cell is labeled

conformant and F(t+) = F(t-) T If F(t-) < T, cell is labeled non-conformant and F(t+) = F(t-) If the next cell arrives s time units later, then F(t+s-) = min {F(t+)+s, T + }

ATM Leaky Bucket


Constant Bit Rate traffic (CBR) should on a line with rate R describe itself with PCR (peak cell rate per second) and CDVT, cell delay variation tolerance Parameters translate into GCRA as GCRA(R/PCR, CDVT) Implies a long term cell rate of PCR, with CDVT being measure of departure from this rate

ATM CBR
Example: R/PCR = 5, CDVT = 1. I.e. PCR is 20 % of line rate. Suppose initially, bucket is full = 6. Cell arrival times: 0,4,9,14,16,22,24,29 Cell Labels: (C= conformant, NC= non)
F(0-)= 6, C,F(0+)=1,F(4-)=5, C, F(4+)=0, F(9-)=5, C,

F(9+)=0, F(14-)=5, C, F(14+)=0, F(16-)=2, NC, F(16+)=2, F(22-)=6, C, F(22+) = 1, F(24-)= 3, NC, F(24+) = 3, NC, F(29-)=6, C, F(29+)=1

ATM VBR
Variable bit rate: much more bursty, with idle periods Described by: PCR, CDVT, BT (burst tolerance), SCR (sustained cell rate)

Should conform to GCRA(R/PCR, CDVT), and GCRA(R/SCR, BT+ CDVT)

ATM VBR example


VBR stream with R/PCR=1, R/SCR = 20, BT = 57, CDVT = 0

GCRA (1,0) means ? GCRA (20, 57):With full bucket, allows four cells back-to-back (times 0,1,2,3)
GCRA(5,16) and GCRA (10, 36) Bursts of five consecutive cells every 50 cell trans times (0,1,2,3,4,50,51,52,53,54,100,101,102,103,104,.)

Ex. 2: R/PCR=5, R/SCR=10, CDVT=16, BT=20


(Material done on board)


Deriving an algorithm which takes decides whether a GCRA(T, ) flow will be admitted.

You might also like