Title: Congestion Control and Traffic Management in High Speed Networks
1Congestion Controland Traffic Management in
High Speed Networks
University of Calgary
2Introduction
- The goal of congestion control is to regulate
traffic flow in the network in order to avoid
saturating or overloading intermediate nodes in
the network
3Congestion Effects
- Congestion is undesirable because it can cause
- Increased delay, due to queueing within the
network - Packet loss, due to buffer overflow
- Reduced throughput, due to packet loss and
retransmission - Analogy rush hour traffic
4Congestion Causes
- The basic cause of congestion is that the input
traffic demands exceed the capacity of the
network - In typical packet switching networks, this can
occur quite easily when - - output links are slower than inputs
- - multiple traffic sources competing for same
output link at the same time
5Buffering A Solution?
- Buffering in switches can help alleviate short
term or transient congestion problems, but... - Under sustained overload, buffers will still fill
up, and packets will be lost - only defers the congestion problem
- More buffers means more queuing delay
- beyond a certain point, more buffering makes the
congestion problem worse, because of increased
delay and retransmission
6Motivation
- The congestion control problem is even more acute
in high speed networks - Faster link speeds mean that congestion can
happen faster than before - e.g., 64 kilobyte buffer
- _at_ 64 kbps 8.2 seconds
- _at_ 10 Mbps 52 milliseconds
- _at_ 1 Gbps 0.52 milliseconds
7Motivation (Contd)
- Buffer requirements increase with link speeds
- e.g., to store 1 second worth of traffic
- _at_ 64 kbps 8 kilobytes
- _at_ 10 Mbps 1.25 Mbytes
- _at_ 1 Gbps 125 Mbytes
8Motivation (Contd)
- Heterogeneity of link speeds
- - just because you add new high speed links to
a network doesnt mean that the old low speed
links go away - - interconnecting high speed and lower speed
networks creates congestion problems at the point
of interconnect
9Motivation (Contd)
- Traffic is bursty
- - high peak-to-mean ratio, peak rates
- - e.g., data traffic 10-to-1, 1-10 Mbps
- - e.g., video traffic 20-to-1, 5-100 Mbps
- - can statistically multiplex several
channels, but if too many are active at the same
time, congestion is inevitable
10Motivation (Contd)
- Reaction time is bounded by the propagation delay
- - in a high-speed wide-area network, the delay
x bandwidth product is HUGE!!! - - d x b tells you how many bits fit in the
pipe between you and the receiver - - by the time you realize that network is
congested, you may have already sent another Mbit
or more of data!!!
11Reactive versus Preventive
- There are two fundamental approaches to
congestion control reactive approaches and
preventive approaches - Reactive feedback-based
- attempt to detect congestion, or the onset of
congestion, and take action to resolve the
problem before things get worse - Preventive reservation-based
- prevent congestion from ever happening in the
first place, by reserving resources
12Reactive versus Preventive (Contd)
- Most of the Internet approaches are reactive
schemes - TCP Slow Start
- Random-Early-Detection (RED) Gateways
- Source Quench
- The large d x b product means that many of these
approaches are not applicable to high speed
networks - Most ATM congestion control strategies are
preventive, reservation-based
13Congestion Control in ATM
- When people discuss congestion control in the
context of high speed ATM networks, they usually
distinguish between call-level controls and
cell-level controls
14Call-Level Control
- An example of the call-level approach to
congestion control is call admission control (to
be discussed later this semester) - Tries to prevent congestion by not allowing new
calls or connections into the network unless the
network has sufficient capacity to support them
15Call-Level Control (Contd)
- At time of call setup (connection establishment)
you request the resources that you need for the
duration of the call (e.g., bandwidth, buffers) - If available, your call proceeds
- If not, your call is blocked
- E.g., telephone network, busy signal
16Call-Level Control (Contd)
- Tradeoff aggressive vs conservative
- Want to accept enough calls to have reasonably
high network utilization, but dont want to
accept so many calls that you have a high
probability of network congestion (which might
compromise the QOS requirements that you are
trying to meet)
17Call-Level Control (Contd)
- Problems
- Can be unfair
- - denial of service, long access delay
- Hard to specify resource requirements and QOS
parameters precisely - - may not know, or may cheat
- - congestion can still occur
18Cell-Level Control
- Also called input rate control
- Control the input rate of traffic sources to
prevent, reduce, or control the level of
congestion - Many possible mechanisms
- Traffic shaping, traffic policing, UPC
- Leaky bucket (token bucket)
- Cell tagging (colouring), cell discarding
- Cell scheduling disciplines
19Congestion Control in ATM
- There is actually a complete spectrum of traffic
control functions, ranging from the very
short-term (e.g., traffic shaping, cell
discarding) to the very long-term (e.g., network
provisioning) - See Gilbert et al 1991
20ATM Traffic Control Schemes
21ATM Traffic Control Schemes
Short Term
usec
22ATM Traffic Control Schemes
Long Term
Months, years
Short Term
usec
23ATM Traffic Control Schemes
Long Term
Resource Provisioning
Admission Control Routing, Load Balancing
Call Duration
Explicit Congestion Notification Fast Reservation
Protocol Node to Node Flow Control
Propagation Delay Time
Usage Parameter Control Priority Control Traffic
Shaping Cell Discarding
Cell Time
Time Scale
24ATM Traffic Control Schemes
Usage Parameter Control Priority Control Traffic
Shaping Cell Discarding
Cell Time
Time Scale
25ATM Traffic Control Schemes
Explicit Congestion Notification Fast Reservation
Protocol Node to Node Flow Control
Propagation Delay Time
Time Scale
26ATM Traffic Control Schemes
Admission Control Routing, Load Balancing
Call Duration
Time Scale
27ATM Traffic Control Schemes
Long Term
Resource Provisioning
Time Scale
28ATM Traffic Control Schemes
Long Term
Resource Provisioning
Admission Control Routing, Load Balancing
Call Duration
Explicit Congestion Notification Fast Reservation
Protocol Node to Node Flow Control
Propagation Delay Time
Usage Parameter Control Priority Control Traffic
Shaping Cell Discarding
Cell Time
Time Scale
29ATM Traffic Control Schemes
- Preventive controls
- Resource provisioning
- Connection admission control
- Call routing and load balancing
- Usage parameter control
- Priority control
- Traffic shaping
- Fast reservation protocol
30ATM Traffic Control Schemes
- Reactive controls
- Adaptive admission control
- Call routing and load balancing
- Adaptive usage parameter control
- Explicit congestion notification
- (forward or backward)
- Node to node flow control
- Selective cell discarding
31Leaky Bucket
- One of the cell-level control mechanisms that has
been proposed is the leaky bucket (a.k.a. token
bucket) - Has been proposed as a traffic policing mechanism
for Usage Parameter Control (UPC), to check
conformance of a source to its traffic descriptor - Can also be used as a traffic shaper
32Leaky Bucket (Contd)
- Think of a bucket (pail) with a small hole in the
bottom - You fill the bucket with water
- Water drips out the bottom at a nice constant
rate drip, drip, drip...
33Leaky Bucket (Contd)
34Leaky Bucket (Contd)
Bucket
35Leaky Bucket (Contd)
Empty
Bucket
36Leaky Bucket (Contd)
Bucket
Hole
37Leaky Bucket (Contd)
Water
Bucket
Hole
38Leaky Bucket (Contd)
39Leaky Bucket (Contd)
Drip
40Leaky Bucket (Contd)
41Leaky Bucket (Contd)
42Leaky Bucket (Contd)
43Leaky Bucket (Contd)
Constant rate stream of drips, all nicely spaced,
periodic
44Leaky Bucket (Contd)
Storage area for drips waiting to go
Constant rate stream of drips, all nicely spaced,
periodic
45Leaky Bucket (Contd)
- A leaky bucket flow control mechanism is then a
software realization of this very simple idea - Packets (cells) waiting for transmission arrive
according to some (perhaps unknown) arrival
distribution - Tokens arrive periodically (deterministically)
- Cell must have a token to enter network
46Leaky Bucket (Contd)
Incoming Tokens at rate r tokens/sec
Incoming Cells (generated by traffic source with
rate X)
To Network
47Leaky Bucket (Contd)
Incoming Tokens at rate r tokens/sec
Incoming Cells
To Network
1
5
2
3
4
48Leaky Bucket (Contd)
Incoming Tokens
Incoming Cells
To Network
5
1
2
3
4
49Leaky Bucket (Contd)
Incoming Tokens
Incoming Cells
To Network
1
2
3
4
5
50Leaky Bucket (Contd)
Incoming Tokens
Incoming Cells
To Network
2
1
3
4
5
51Leaky Bucket (Contd)
Incoming Tokens
Incoming Cells
To Network
1
2
3
4
5
52Leaky Bucket (Contd)
Incoming Tokens
Incoming Cells
X
To Network
2
3
1
4
5
53Leaky Bucket (Contd)
Incoming Tokens
Incoming Cells
X
X
To Network
1
2
3
4
5
54Leaky Bucket (Contd)
Incoming Tokens
Incoming Cells
X
X
To Network
1
2
3
55Leaky Bucket (Contd)
- Cells must obtain tokens in order to proceed into
the network - If no token available, then cell is discarded
- Constrains the rate at which cells enter the
network to be the rate negotiated at the time of
call setup - Shapes traffic, reduces burstiness
56Buffered Leaky Bucket
- Arriving cells that find a token waiting can
proceed directly into the network - Arriving cells that find no token ready must wait
in queue for a token - Cells that arrive to a full queue are lost
- Tokens that arrive to a full token pool are
simply discarded
57Buffered Leaky Bucket
Incoming Tokens at rate r tokens/sec
Pool of at most M waiting tokens
Incoming Cells
To Network
Queue of at most B waiting cells
58Buffered Leaky Bucket (Contd)
- Incoming cell rate X
- Token rate r
- If X gt r, then cells wait in buffer until tokens
are available - Output traffic is r cells/sec, nicely paced
- If X lt r, then tokens always ready
- Output traffic is X (lt r)
- Use for traffic shaping or UPC
59Buffered Leaky Bucket (Contd)
- A station can save up at most M tokens
- Limits the maximum burst size in the network
- Can send at most M cells back to back
- B can be set to balance the tradeoff between cell
loss and cell delay
60Leaky Bucket UPC
- The token rate r is set based on the rate
declared at the time of call setup - Makes sure that each source obeys rate that was
used when the call admission decision was made
(i.e., descriptor) - Can use single leaky bucket to police just the
peak cell rate (PCR) - Can use dual leaky bucket to police both PCR
and SCR
61Variations
- There are several different variations of the
basic leaky bucket concept described in the
literature, such as the virtual leaky bucket,
spacer, others - Basic idea rather than strictly enforcing rates,
allow senders to occasionally exceed their
prescribed rate, as long as they mark or tag
their extra cells
62Cell Marking Scheme
- Uses leaky bucket to regulate cell transmissions
as before, but rather than having cells wait for
tokens when there are no tokens ready, the
station can transmit the cell and mark it as a
violation cell (i.e., cell colouring) - Green (CLP 0) for cells that obey rate
- Red (CLP 1) for cells that dont
63Cell Colouring (Contd)
- If the network detects congestion at any point,
then it does not hesitate to throw away red cells
(CLP 1), but always gives preference to green
cells - Green cells must get through
- Red cells get through only if there is spare
capacity in the network - No harm in trying! principle
64Selective Cell Discard (SCD)
- A cell-level control mechanism in ATM switches
called selective cell discard can be implemented
quite easily using a CLP threshold on each
queue/buffer - Below the threshold, can accept both green and
red cells - Beyond the threshold, can only accept green cells
65Selective Cell Discard (Contd)
Buffer in an ATM switch
66Selective Cell Discard (Contd)
Buffer in an ATM switch
67Selective Cell Discard (Contd)
Some cells waiting to go
Buffer in an ATM switch
68Selective Cell Discard (Contd)
CLP Threshold
Buffer in an ATM switch
69Selective Cell Discard (Contd)
CLP Threshold
70Selective Cell Discard (Contd)
CLP Threshold
71Selective Cell Discard (Contd)
CLP Threshold
72Selective Cell Discard (Contd)
CLP Threshold
73Selective Cell Discard (Contd)
CLP Threshold
74Selective Cell Discard (Contd)
CLP Threshold
75Selective Cell Discard (Contd)
CLP Threshold
76Selective Cell Discard (Contd)
CLP Threshold
77Selective Cell Discard (Contd)
CLP Threshold
78Selective Cell Discard (Contd)
CLP Threshold
79Selective Cell Discard (Contd)
CLP Threshold
80Selective Cell Discard (Contd)
CLP Threshold
81Selective Cell Discard (Contd)
CLP Threshold
82Selective Cell Discard (Contd)
CLP Threshold
83Selective Cell Discard (Contd)
CLP Threshold
84Selective Cell Discard (Contd)
CLP Threshold
85Selective Cell Discard (Contd)
CLP Threshold
86Selective Cell Discard (Contd)
CLP Threshold
87Selective Cell Discard (Contd)
CLP Threshold
88Selective Cell Discard (Contd)
CLP Threshold
89Explicit Congestion Notification
- There are some proposals to use reactive
congestion control approaches for end-to-end flow
control in ATM - One of the mechanisms proposed is called Explicit
Forward Congestion Notification (EFCN) (or EFCI,
for Explicit Forward Congestion Indication)
90EFCI Basic Operation
- Switches can detect the onset of congestion
(e.g., buffers filling up) - Switches set a control bit in cell headers to
indicate this congestion condition - Sources react by reducing the volume of traffic
that they are sending through that switch - Suitable for VBR or ABR traffic
91EFCI Basic Operation (Contd)
Traffic Sink
Traffic Source
Switch
Switch
Switch
92EFCI Basic Operation (Contd)
Traffic Sink
Traffic Source
Switch
Switch
Switch
Buffer
93EFCI Basic Operation (Contd)
Traffic Sink
Traffic Source
Switch
Switch
Switch
Occupied
Unoccupied
94EFCI Basic Operation (Contd)
Traffic Sink
Traffic Source
Switch
Switch
Switch
EFCI Threshold
95EFCI Basic Operation (Contd)
Traffic Sink
Traffic Source
Switch
Switch
Switch
Data Cell
EFCI Threshold
96EFCI Basic Operation (Contd)
Traffic Sink
Traffic Source
Switch
Switch
Switch
EFCI Threshold
97EFCI Basic Operation (Contd)
Traffic Sink
Traffic Source
Switch
Switch
Switch
EFCI Threshold
98EFCI Basic Operation (Contd)
Traffic Sink
Traffic Source
Switch
Switch
Switch
EFCI Threshold
99EFCI Basic Operation (Contd)
Traffic Sink
Traffic Source
Switch
Switch
Switch
EFCI Threshold
100EFCI Basic Operation (Contd)
Traffic Sink
Traffic Source
Switch
Switch
Switch
EFCI Threshold
101EFCI Basic Operation (Contd)
Traffic Sink
Traffic Source
Switch
Switch
Switch
EFCI Threshold
102EFCI Basic Operation (Contd)
Traffic Sink
Traffic Source
Switch
Switch
Switch
EFCI Threshold
103EFCI Basic Operation (Contd)
Traffic Sink
Traffic Source
Switch
Switch
Switch
!!!
EFCI Threshold
104EFCI Basic Operation (Contd)
Ack Cell
Traffic Sink
Traffic Source
Switch
Switch
Switch
EFCI Threshold
105EFCI Basic Operation (Contd)
Traffic Sink
Traffic Source
Switch
Switch
Switch
EFCI Threshold
106EFCI Basic Operation (Contd)
Traffic Sink
Traffic Source
Switch
Switch
Switch
EFCI Threshold
107EFCI Basic Operation (Contd)
Traffic Sink
Traffic Source
Switch
Switch
Switch
EFCI Threshold
108EFCI Basic Operation (Contd)
Traffic Sink
Traffic Source
Switch
Switch
Switch
!!!
EFCI Threshold
109EFCI Basic Operation (Contd)
Traffic Sink
Traffic Source
Switch
Switch
Switch
EFCI Threshold
110EFCI Basic Operation (Contd)
Traffic Sink
Traffic Source
Switch
Switch
Switch
EFCI Threshold
111EFCI Basic Operation (Contd)
Traffic Sink
Traffic Source
Switch
Switch
Switch
EFCI Threshold
112EFCI Basic Operation (Contd)
Traffic Sink
Traffic Source
Switch
Switch
Switch
EFCI Threshold
113EFCI Basic Operation (Contd)
Traffic Sink
Traffic Source
Switch
Switch
Switch
EFCI Threshold
114EFCI Issues
- How to set EFCI threshold
- What should sources do when EFCI signal is seen
- What should sources do when no EFCI signal is
seen - Forward versus backward notification
- Effect of feedback delay
- Delay x bandwidth product
115Summary
- Congestion control in high speed ATM networks is
a difficult problem - Lots of good ideas of how to do it, but no real
standard (yet?) - Will likely require a combination of schemes at
different time scales and for different classes
of traffic - Lots more remains to be done